Merge "Fade out minimized view before animating expanded view" into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
3ac452b39d
@@ -351,9 +351,20 @@ public class ClipboardOverlayController implements ClipboardListener.ClipboardOv
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void animateFromMinimized() {
|
private void animateFromMinimized() {
|
||||||
mIsMinimized = false;
|
if (mEnterAnimator != null && mEnterAnimator.isRunning()) {
|
||||||
setExpandedView();
|
mEnterAnimator.cancel();
|
||||||
animateIn();
|
}
|
||||||
|
mEnterAnimator = mView.getMinimizedFadeoutAnimation();
|
||||||
|
mEnterAnimator.addListener(new AnimatorListenerAdapter() {
|
||||||
|
@Override
|
||||||
|
public void onAnimationEnd(Animator animation) {
|
||||||
|
super.onAnimationEnd(animation);
|
||||||
|
mIsMinimized = false;
|
||||||
|
setExpandedView();
|
||||||
|
animateIn();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
mEnterAnimator.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getAccessibilityAnnouncement(ClipboardModel.Type type) {
|
private String getAccessibilityAnnouncement(ClipboardModel.Type type) {
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import static android.content.res.Configuration.ORIENTATION_PORTRAIT;
|
|||||||
import android.animation.Animator;
|
import android.animation.Animator;
|
||||||
import android.animation.AnimatorListenerAdapter;
|
import android.animation.AnimatorListenerAdapter;
|
||||||
import android.animation.AnimatorSet;
|
import android.animation.AnimatorSet;
|
||||||
|
import android.animation.ObjectAnimator;
|
||||||
import android.animation.TimeInterpolator;
|
import android.animation.TimeInterpolator;
|
||||||
import android.animation.ValueAnimator;
|
import android.animation.ValueAnimator;
|
||||||
import android.annotation.Nullable;
|
import android.annotation.Nullable;
|
||||||
@@ -286,6 +287,20 @@ public class ClipboardOverlayView extends DraggableConstraintLayout {
|
|||||||
mActionChips.clear();
|
mActionChips.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Animator getMinimizedFadeoutAnimation() {
|
||||||
|
ObjectAnimator anim = ObjectAnimator.ofFloat(mMinimizedPreview, "alpha", 1, 0);
|
||||||
|
anim.setDuration(66);
|
||||||
|
anim.addListener(new AnimatorListenerAdapter() {
|
||||||
|
@Override
|
||||||
|
public void onAnimationEnd(Animator animation) {
|
||||||
|
super.onAnimationEnd(animation);
|
||||||
|
mMinimizedPreview.setVisibility(View.GONE);
|
||||||
|
mMinimizedPreview.setAlpha(1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return anim;
|
||||||
|
}
|
||||||
|
|
||||||
Animator getEnterAnimation() {
|
Animator getEnterAnimation() {
|
||||||
if (mAccessibilityManager.isEnabled()) {
|
if (mAccessibilityManager.isEnabled()) {
|
||||||
mDismissButton.setVisibility(View.VISIBLE);
|
mDismissButton.setVisibility(View.VISIBLE);
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import android.animation.Animator;
|
import android.animation.Animator;
|
||||||
|
import android.animation.AnimatorListenerAdapter;
|
||||||
import android.app.RemoteAction;
|
import android.app.RemoteAction;
|
||||||
import android.content.ClipData;
|
import android.content.ClipData;
|
||||||
import android.content.ClipDescription;
|
import android.content.ClipDescription;
|
||||||
@@ -101,6 +102,9 @@ public class ClipboardOverlayControllerTest extends SysuiTestCase {
|
|||||||
private ArgumentCaptor<ClipboardOverlayView.ClipboardOverlayCallbacks> mOverlayCallbacksCaptor;
|
private ArgumentCaptor<ClipboardOverlayView.ClipboardOverlayCallbacks> mOverlayCallbacksCaptor;
|
||||||
private ClipboardOverlayView.ClipboardOverlayCallbacks mCallbacks;
|
private ClipboardOverlayView.ClipboardOverlayCallbacks mCallbacks;
|
||||||
|
|
||||||
|
@Captor
|
||||||
|
private ArgumentCaptor<AnimatorListenerAdapter> mAnimatorArgumentCaptor;
|
||||||
|
|
||||||
private FakeExecutor mExecutor = new FakeExecutor(new FakeSystemClock());
|
private FakeExecutor mExecutor = new FakeExecutor(new FakeSystemClock());
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
@@ -478,12 +482,16 @@ public class ClipboardOverlayControllerTest extends SysuiTestCase {
|
|||||||
when(mClipboardOverlayWindow.getWindowInsets()).thenReturn(
|
when(mClipboardOverlayWindow.getWindowInsets()).thenReturn(
|
||||||
getImeInsets(new Rect(0, 0, 0, 1)));
|
getImeInsets(new Rect(0, 0, 0, 1)));
|
||||||
mOverlayController.setClipData(mSampleClipData, "");
|
mOverlayController.setClipData(mSampleClipData, "");
|
||||||
|
Animator mockFadeoutAnimator = Mockito.mock(Animator.class);
|
||||||
|
when(mClipboardOverlayView.getMinimizedFadeoutAnimation()).thenReturn(mockFadeoutAnimator);
|
||||||
|
|
||||||
verify(mClipboardOverlayView).setMinimized(true);
|
verify(mClipboardOverlayView).setMinimized(true);
|
||||||
verify(mClipboardOverlayView, never()).setMinimized(false);
|
verify(mClipboardOverlayView, never()).setMinimized(false);
|
||||||
verify(mClipboardOverlayView, never()).showTextPreview(any(), anyBoolean());
|
verify(mClipboardOverlayView, never()).showTextPreview(any(), anyBoolean());
|
||||||
|
|
||||||
mCallbacks.onMinimizedViewTapped();
|
mCallbacks.onMinimizedViewTapped();
|
||||||
|
verify(mockFadeoutAnimator).addListener(mAnimatorArgumentCaptor.capture());
|
||||||
|
mAnimatorArgumentCaptor.getValue().onAnimationEnd(mockFadeoutAnimator);
|
||||||
|
|
||||||
verify(mClipboardOverlayView).setMinimized(false);
|
verify(mClipboardOverlayView).setMinimized(false);
|
||||||
verify(mClipboardOverlayView).showTextPreview("Test Item", false);
|
verify(mClipboardOverlayView).showTextPreview("Test Item", false);
|
||||||
|
|||||||
Reference in New Issue
Block a user