Merge "Keeps magnification button StartDelay for 3 secs even remove animations settings is on"
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user