Merge "Set Visibility on ClockSwitch Animation" into tm-qpr-dev am: 00020dbde2

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20680902

Change-Id: I6805e9ce54bd4a93e691458b5f11a750954f2ff7
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Hawkwood Glazier
2023-01-10 21:09:06 +00:00
committed by Automerger Merge Worker
3 changed files with 16 additions and 11 deletions

View File

@@ -209,6 +209,7 @@ public class KeyguardClockSwitch extends RelativeLayout {
if (!animate) {
out.setAlpha(0f);
out.setVisibility(INVISIBLE);
in.setAlpha(1f);
in.setVisibility(VISIBLE);
mStatusArea.setTranslationY(statusAreaYTranslation);
@@ -224,7 +225,10 @@ public class KeyguardClockSwitch extends RelativeLayout {
direction * -mClockSwitchYAmount));
mClockOutAnim.addListener(new AnimatorListenerAdapter() {
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.addListener(new AnimatorListenerAdapter() {
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.addListener(new AnimatorListenerAdapter() {
public void onAnimationEnd(Animator animation) {
mStatusAreaAnim = null;
if (mStatusAreaAnim == animation) {
mStatusAreaAnim = null;
}
}
});
mStatusAreaAnim.start();

View File

@@ -346,10 +346,6 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS
int clockHeight = clock.getLargeClock().getView().getHeight();
return frameHeight / 2 + clockHeight / 2 + mKeyguardLargeClockTopMargin / -2;
} 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();
return clockHeight + statusBarHeaderHeight + mKeyguardSmallClockTopMargin;
}
@@ -367,15 +363,11 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS
if (mLargeClockFrame.getVisibility() == View.VISIBLE) {
return clock.getLargeClock().getView().getHeight();
} 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();
}
}
boolean isClockTopAligned() {
// Returns false except certain edge cases, see comment in getClockBottom
// TODO(b/261755021): Cleanup Large Frame Visibility
return mLargeClockFrame.getVisibility() != View.VISIBLE;
}

View File

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