Merge "Keeps magnification button StartDelay for 3 secs even remove animations settings is on"

This commit is contained in:
Minche Li
2020-09-09 02:29:33 +00:00
committed by Android (Google) Code Review
2 changed files with 16 additions and 9 deletions

View File

@@ -43,6 +43,7 @@ class MagnificationModeSwitch {
private static final int DURATION_MS = 5000;
private static final int START_DELAY_MS = 3000;
private final Runnable mAnimationTask;
private final Context mContext;
private final WindowManager mWindowManager;
@@ -70,6 +71,14 @@ class MagnificationModeSwitch {
applyResourcesValues();
mImageView.setImageResource(getIconResId(mMagnificationMode));
mImageView.setOnTouchListener(this::onTouch);
mAnimationTask = () -> {
mImageView.animate()
.alpha(0f)
.setDuration(DURATION_MS)
.withEndAction(() -> removeButton())
.start();
};
}
private void applyResourcesValues() {
@@ -147,13 +156,8 @@ class MagnificationModeSwitch {
// Dismiss the magnification switch button after the button is displayed for a period of
// time.
mImageView.animate().cancel();
mImageView.animate()
.alpha(0f)
.setStartDelay(START_DELAY_MS)
.setDuration(DURATION_MS)
.withEndAction(
() -> removeButton())
.start();
mImageView.removeCallbacks(mAnimationTask);
mImageView.postDelayed(mAnimationTask, START_DELAY_MS);
}
void onConfigurationChanged(int configDiff) {

View File

@@ -231,7 +231,6 @@ public class MagnificationModeSwitchTest extends SysuiTestCase {
private void assertShowButtonAnimation() {
verify(mViewPropertyAnimator).cancel();
verify(mViewPropertyAnimator).setDuration(anyLong());
verify(mViewPropertyAnimator).setStartDelay(anyLong());
verify(mViewPropertyAnimator).alpha(anyFloat());
verify(mViewPropertyAnimator).start();
}
@@ -239,11 +238,15 @@ public class MagnificationModeSwitchTest extends SysuiTestCase {
private void initMockImageViewAndAnimator() {
when(mViewPropertyAnimator.setDuration(anyLong())).thenReturn(mViewPropertyAnimator);
when(mViewPropertyAnimator.alpha(anyFloat())).thenReturn(mViewPropertyAnimator);
when(mViewPropertyAnimator.setStartDelay(anyLong())).thenReturn(mViewPropertyAnimator);
when(mViewPropertyAnimator.withEndAction(any(Runnable.class))).thenReturn(
mViewPropertyAnimator);
when(mSpyImageView.animate()).thenReturn(mViewPropertyAnimator);
doAnswer(invocation -> {
Runnable run = invocation.getArgument(0);
run.run();
return null;
}).when(mSpyImageView).postDelayed(any(), anyLong());
}
private void resetMockImageViewAndAnimator() {