Merge "Set Visibility on ClockSwitch Animation" into tm-qpr-dev

This commit is contained in:
Hawkwood Glazier
2023-01-10 20:41:22 +00:00
committed by Android (Google) Code Review
3 changed files with 16 additions and 11 deletions

View File

@@ -209,6 +209,7 @@ public class KeyguardClockSwitch extends RelativeLayout {
if (!animate) { if (!animate) {
out.setAlpha(0f); out.setAlpha(0f);
out.setVisibility(INVISIBLE);
in.setAlpha(1f); in.setAlpha(1f);
in.setVisibility(VISIBLE); in.setVisibility(VISIBLE);
mStatusArea.setTranslationY(statusAreaYTranslation); mStatusArea.setTranslationY(statusAreaYTranslation);
@@ -224,7 +225,10 @@ public class KeyguardClockSwitch extends RelativeLayout {
direction * -mClockSwitchYAmount)); direction * -mClockSwitchYAmount));
mClockOutAnim.addListener(new AnimatorListenerAdapter() { mClockOutAnim.addListener(new AnimatorListenerAdapter() {
public void onAnimationEnd(Animator animation) { public void onAnimationEnd(Animator animation) {
mClockOutAnim = null; if (mClockOutAnim == animation) {
out.setVisibility(INVISIBLE);
mClockOutAnim = null;
}
} }
}); });
@@ -238,7 +242,9 @@ public class KeyguardClockSwitch extends RelativeLayout {
mClockInAnim.setStartDelay(CLOCK_OUT_MILLIS / 2); mClockInAnim.setStartDelay(CLOCK_OUT_MILLIS / 2);
mClockInAnim.addListener(new AnimatorListenerAdapter() { mClockInAnim.addListener(new AnimatorListenerAdapter() {
public void onAnimationEnd(Animator animation) { public void onAnimationEnd(Animator animation) {
mClockInAnim = null; if (mClockInAnim == animation) {
mClockInAnim = null;
}
} }
}); });
@@ -251,7 +257,9 @@ public class KeyguardClockSwitch extends RelativeLayout {
mStatusAreaAnim.setInterpolator(Interpolators.FAST_OUT_SLOW_IN); mStatusAreaAnim.setInterpolator(Interpolators.FAST_OUT_SLOW_IN);
mStatusAreaAnim.addListener(new AnimatorListenerAdapter() { mStatusAreaAnim.addListener(new AnimatorListenerAdapter() {
public void onAnimationEnd(Animator animation) { public void onAnimationEnd(Animator animation) {
mStatusAreaAnim = null; if (mStatusAreaAnim == animation) {
mStatusAreaAnim = null;
}
} }
}); });
mStatusAreaAnim.start(); mStatusAreaAnim.start();

View File

@@ -346,10 +346,6 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS
int clockHeight = clock.getLargeClock().getView().getHeight(); int clockHeight = clock.getLargeClock().getView().getHeight();
return frameHeight / 2 + clockHeight / 2 + mKeyguardLargeClockTopMargin / -2; return frameHeight / 2 + clockHeight / 2 + mKeyguardLargeClockTopMargin / -2;
} else { } else {
// This is only called if we've never shown the large clock as the frame is inflated
// with 'gone', but then the visibility is never set when it is animated away by
// KeyguardClockSwitch, instead it is removed from the view hierarchy.
// TODO(b/261755021): Cleanup Large Frame Visibility
int clockHeight = clock.getSmallClock().getView().getHeight(); int clockHeight = clock.getSmallClock().getView().getHeight();
return clockHeight + statusBarHeaderHeight + mKeyguardSmallClockTopMargin; return clockHeight + statusBarHeaderHeight + mKeyguardSmallClockTopMargin;
} }
@@ -367,15 +363,11 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS
if (mLargeClockFrame.getVisibility() == View.VISIBLE) { if (mLargeClockFrame.getVisibility() == View.VISIBLE) {
return clock.getLargeClock().getView().getHeight(); return clock.getLargeClock().getView().getHeight();
} else { } else {
// Is not called except in certain edge cases, see comment in getClockBottom
// TODO(b/261755021): Cleanup Large Frame Visibility
return clock.getSmallClock().getView().getHeight(); return clock.getSmallClock().getView().getHeight();
} }
} }
boolean isClockTopAligned() { boolean isClockTopAligned() {
// Returns false except certain edge cases, see comment in getClockBottom
// TODO(b/261755021): Cleanup Large Frame Visibility
return mLargeClockFrame.getVisibility() != View.VISIBLE; return mLargeClockFrame.getVisibility() != View.VISIBLE;
} }

View File

@@ -16,6 +16,7 @@
package com.android.keyguard; package com.android.keyguard;
import static android.view.View.INVISIBLE;
import static android.view.View.VISIBLE; import static android.view.View.VISIBLE;
import static com.android.keyguard.KeyguardClockSwitch.LARGE; import static com.android.keyguard.KeyguardClockSwitch.LARGE;
@@ -189,6 +190,7 @@ public class KeyguardClockSwitchTest extends SysuiTestCase {
assertThat(mLargeClockFrame.getAlpha()).isEqualTo(1); assertThat(mLargeClockFrame.getAlpha()).isEqualTo(1);
assertThat(mLargeClockFrame.getVisibility()).isEqualTo(VISIBLE); assertThat(mLargeClockFrame.getVisibility()).isEqualTo(VISIBLE);
assertThat(mSmallClockFrame.getAlpha()).isEqualTo(0); assertThat(mSmallClockFrame.getAlpha()).isEqualTo(0);
assertThat(mSmallClockFrame.getVisibility()).isEqualTo(INVISIBLE);
} }
@Test @Test
@@ -198,6 +200,7 @@ public class KeyguardClockSwitchTest extends SysuiTestCase {
assertThat(mLargeClockFrame.getAlpha()).isEqualTo(1); assertThat(mLargeClockFrame.getAlpha()).isEqualTo(1);
assertThat(mLargeClockFrame.getVisibility()).isEqualTo(VISIBLE); assertThat(mLargeClockFrame.getVisibility()).isEqualTo(VISIBLE);
assertThat(mSmallClockFrame.getAlpha()).isEqualTo(0); assertThat(mSmallClockFrame.getAlpha()).isEqualTo(0);
assertThat(mSmallClockFrame.getVisibility()).isEqualTo(INVISIBLE);
} }
@Test @Test
@@ -212,6 +215,7 @@ public class KeyguardClockSwitchTest extends SysuiTestCase {
// only big clock is removed at switch // only big clock is removed at switch
assertThat(mLargeClockFrame.getParent()).isNull(); assertThat(mLargeClockFrame.getParent()).isNull();
assertThat(mLargeClockFrame.getAlpha()).isEqualTo(0); assertThat(mLargeClockFrame.getAlpha()).isEqualTo(0);
assertThat(mLargeClockFrame.getVisibility()).isEqualTo(INVISIBLE);
} }
@Test @Test
@@ -223,6 +227,7 @@ public class KeyguardClockSwitchTest extends SysuiTestCase {
// only big clock is removed at switch // only big clock is removed at switch
assertThat(mLargeClockFrame.getParent()).isNull(); assertThat(mLargeClockFrame.getParent()).isNull();
assertThat(mLargeClockFrame.getAlpha()).isEqualTo(0); assertThat(mLargeClockFrame.getAlpha()).isEqualTo(0);
assertThat(mLargeClockFrame.getVisibility()).isEqualTo(INVISIBLE);
} }
@Test @Test