Loading packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java +1 −0 Original line number Original line Diff line number Diff line Loading @@ -113,6 +113,7 @@ public class KeyguardStatusView extends GridLayout { public void dump(PrintWriter pw, String[] args) { public void dump(PrintWriter pw, String[] args) { pw.println("KeyguardStatusView:"); pw.println("KeyguardStatusView:"); pw.println(" mDarkAmount: " + mDarkAmount); pw.println(" mDarkAmount: " + mDarkAmount); pw.println(" visibility: " + getVisibility()); if (mClockView != null) { if (mClockView != null) { mClockView.dump(pw, args); mClockView.dump(pw, args); } } Loading packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java +26 −3 Original line number Original line Diff line number Diff line Loading @@ -37,6 +37,7 @@ import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.FrameLayout; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting; import androidx.constraintlayout.widget.ConstraintLayout; import androidx.constraintlayout.widget.ConstraintLayout; import androidx.constraintlayout.widget.ConstraintSet; import androidx.constraintlayout.widget.ConstraintSet; Loading @@ -46,7 +47,9 @@ import com.android.app.animation.Interpolators; import com.android.internal.jank.InteractionJankMonitor; import com.android.internal.jank.InteractionJankMonitor; import com.android.keyguard.KeyguardClockSwitch.ClockSize; import com.android.keyguard.KeyguardClockSwitch.ClockSize; import com.android.keyguard.logging.KeyguardLogger; import com.android.keyguard.logging.KeyguardLogger; import com.android.systemui.Dumpable; import com.android.systemui.R; import com.android.systemui.R; import com.android.systemui.dump.DumpManager; import com.android.systemui.flags.FeatureFlags; import com.android.systemui.flags.FeatureFlags; import com.android.systemui.plugins.ClockController; import com.android.systemui.plugins.ClockController; import com.android.systemui.statusbar.notification.AnimatableProperty; import com.android.systemui.statusbar.notification.AnimatableProperty; Loading @@ -59,14 +62,17 @@ import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.util.ViewController; import com.android.systemui.util.ViewController; import java.io.PrintWriter; import javax.inject.Inject; import javax.inject.Inject; /** /** * Injectable controller for {@link KeyguardStatusView}. * Injectable controller for {@link KeyguardStatusView}. */ */ public class KeyguardStatusViewController extends ViewController<KeyguardStatusView> { public class KeyguardStatusViewController extends ViewController<KeyguardStatusView> implements Dumpable { private static final boolean DEBUG = KeyguardConstants.DEBUG; private static final boolean DEBUG = KeyguardConstants.DEBUG; private static final String TAG = "KeyguardStatusViewController"; @VisibleForTesting static final String TAG = "KeyguardStatusViewController"; /** /** * Duration to use for the animator when the keyguard status view alignment changes, and a * Duration to use for the animator when the keyguard status view alignment changes, and a Loading @@ -88,6 +94,8 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV private Boolean mStatusViewCentered = true; private Boolean mStatusViewCentered = true; private DumpManager mDumpManager; private final TransitionListenerAdapter mKeyguardStatusAlignmentTransitionListener = private final TransitionListenerAdapter mKeyguardStatusAlignmentTransitionListener = new TransitionListenerAdapter() { new TransitionListenerAdapter() { @Override @Override Loading @@ -113,7 +121,8 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV ScreenOffAnimationController screenOffAnimationController, ScreenOffAnimationController screenOffAnimationController, KeyguardLogger logger, KeyguardLogger logger, FeatureFlags featureFlags, FeatureFlags featureFlags, InteractionJankMonitor interactionJankMonitor) { InteractionJankMonitor interactionJankMonitor, DumpManager dumpManager) { super(keyguardStatusView); super(keyguardStatusView); mKeyguardSliceViewController = keyguardSliceViewController; mKeyguardSliceViewController = keyguardSliceViewController; mKeyguardClockSwitchController = keyguardClockSwitchController; mKeyguardClockSwitchController = keyguardClockSwitchController; Loading @@ -124,11 +133,13 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV logger.getBuffer()); logger.getBuffer()); mInteractionJankMonitor = interactionJankMonitor; mInteractionJankMonitor = interactionJankMonitor; mFeatureFlags = featureFlags; mFeatureFlags = featureFlags; mDumpManager = dumpManager; } } @Override @Override public void onInit() { public void onInit() { mKeyguardClockSwitchController.init(); mKeyguardClockSwitchController.init(); mDumpManager.registerDumpable(this); } } @Override @Override Loading @@ -143,6 +154,13 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV mConfigurationController.removeCallback(mConfigurationListener); mConfigurationController.removeCallback(mConfigurationListener); } } /** * Called in notificationPanelViewController to avoid leak */ public void onDestroy() { mDumpManager.unregisterDumpable(TAG); } /** /** * Updates views on doze time tick. * Updates views on doze time tick. */ */ Loading Loading @@ -440,6 +458,11 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV constraintSet.applyTo(notifContainerParent); constraintSet.applyTo(notifContainerParent); } } @Override public void dump(@NonNull PrintWriter pw, @NonNull String[] args) { mView.dump(pw, args); } @VisibleForTesting @VisibleForTesting static class SplitShadeTransitionAdapter extends Transition { static class SplitShadeTransitionAdapter extends Transition { private static final String PROP_BOUNDS_LEFT = "splitShadeTransitionAdapter:boundsLeft"; private static final String PROP_BOUNDS_LEFT = "splitShadeTransitionAdapter:boundsLeft"; Loading packages/SystemUI/src/com/android/keyguard/KeyguardVisibilityHelper.java +2 −0 Original line number Original line Diff line number Diff line Loading @@ -31,6 +31,7 @@ import com.android.systemui.statusbar.notification.stack.AnimationProperties; import com.android.systemui.statusbar.phone.DozeParameters; import com.android.systemui.statusbar.phone.DozeParameters; import com.android.systemui.statusbar.phone.ScreenOffAnimationController; import com.android.systemui.statusbar.phone.ScreenOffAnimationController; import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.util.Assert; import com.google.errorprone.annotations.CompileTimeConstant; import com.google.errorprone.annotations.CompileTimeConstant; Loading Loading @@ -85,6 +86,7 @@ public class KeyguardVisibilityHelper { boolean keyguardFadingAway, boolean keyguardFadingAway, boolean goingToFullShade, boolean goingToFullShade, int oldStatusBarState) { int oldStatusBarState) { Assert.isMainThread(); PropertyAnimator.cancelAnimation(mView, AnimatableProperty.ALPHA); PropertyAnimator.cancelAnimation(mView, AnimatableProperty.ALPHA); boolean isOccluded = mKeyguardStateController.isOccluded(); boolean isOccluded = mKeyguardStateController.isOccluded(); mKeyguardViewVisibilityAnimating = false; mKeyguardViewVisibilityAnimating = false; Loading packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +3 −0 Original line number Original line Diff line number Diff line Loading @@ -1169,6 +1169,9 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump private void updateViewControllers(KeyguardStatusView keyguardStatusView, private void updateViewControllers(KeyguardStatusView keyguardStatusView, FrameLayout userAvatarView, FrameLayout userAvatarView, KeyguardUserSwitcherView keyguardUserSwitcherView) { KeyguardUserSwitcherView keyguardUserSwitcherView) { if (mKeyguardStatusViewController != null) { mKeyguardStatusViewController.onDestroy(); } // Re-associate the KeyguardStatusViewController // Re-associate the KeyguardStatusViewController KeyguardStatusViewComponent statusViewComponent = KeyguardStatusViewComponent statusViewComponent = mKeyguardStatusViewComponentFactory.build(keyguardStatusView); mKeyguardStatusViewComponentFactory.build(keyguardStatusView); Loading packages/SystemUI/tests/src/com/android/keyguard/KeyguardStatusViewControllerTest.java +13 −1 Original line number Original line Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.testing.AndroidTestingRunner; import com.android.internal.jank.InteractionJankMonitor; import com.android.internal.jank.InteractionJankMonitor; import com.android.keyguard.logging.KeyguardLogger; import com.android.keyguard.logging.KeyguardLogger; import com.android.systemui.SysuiTestCase; import com.android.systemui.SysuiTestCase; import com.android.systemui.dump.DumpManager; import com.android.systemui.flags.FeatureFlags; import com.android.systemui.flags.FeatureFlags; import com.android.systemui.plugins.ClockConfig; import com.android.systemui.plugins.ClockConfig; import com.android.systemui.plugins.ClockController; import com.android.systemui.plugins.ClockController; Loading Loading @@ -62,6 +63,8 @@ public class KeyguardStatusViewControllerTest extends SysuiTestCase { @Mock private FeatureFlags mFeatureFlags; @Mock private FeatureFlags mFeatureFlags; @Mock private InteractionJankMonitor mInteractionJankMonitor; @Mock private InteractionJankMonitor mInteractionJankMonitor; @Mock private DumpManager mDumpManager; @Captor @Captor private ArgumentCaptor<KeyguardUpdateMonitorCallback> mKeyguardUpdateMonitorCallbackCaptor; private ArgumentCaptor<KeyguardUpdateMonitorCallback> mKeyguardUpdateMonitorCallbackCaptor; Loading @@ -82,7 +85,8 @@ public class KeyguardStatusViewControllerTest extends SysuiTestCase { mScreenOffAnimationController, mScreenOffAnimationController, mKeyguardLogger, mKeyguardLogger, mFeatureFlags, mFeatureFlags, mInteractionJankMonitor) { mInteractionJankMonitor, mDumpManager) { @Override @Override void setProperty( void setProperty( AnimatableProperty property, AnimatableProperty property, Loading Loading @@ -170,4 +174,12 @@ public class KeyguardStatusViewControllerTest extends SysuiTestCase { verify(mKeyguardClockSwitchController, times(1)).setSplitShadeEnabled(false); verify(mKeyguardClockSwitchController, times(1)).setSplitShadeEnabled(false); verify(mKeyguardClockSwitchController, times(0)).setSplitShadeEnabled(true); verify(mKeyguardClockSwitchController, times(0)).setSplitShadeEnabled(true); } } @Test public void correctlyDump() { mController.onInit(); verify(mDumpManager).registerDumpable(mController); mController.onDestroy(); verify(mDumpManager, times(1)).unregisterDumpable(KeyguardStatusViewController.TAG); } } } Loading
packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java +1 −0 Original line number Original line Diff line number Diff line Loading @@ -113,6 +113,7 @@ public class KeyguardStatusView extends GridLayout { public void dump(PrintWriter pw, String[] args) { public void dump(PrintWriter pw, String[] args) { pw.println("KeyguardStatusView:"); pw.println("KeyguardStatusView:"); pw.println(" mDarkAmount: " + mDarkAmount); pw.println(" mDarkAmount: " + mDarkAmount); pw.println(" visibility: " + getVisibility()); if (mClockView != null) { if (mClockView != null) { mClockView.dump(pw, args); mClockView.dump(pw, args); } } Loading
packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java +26 −3 Original line number Original line Diff line number Diff line Loading @@ -37,6 +37,7 @@ import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.FrameLayout; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting; import androidx.constraintlayout.widget.ConstraintLayout; import androidx.constraintlayout.widget.ConstraintLayout; import androidx.constraintlayout.widget.ConstraintSet; import androidx.constraintlayout.widget.ConstraintSet; Loading @@ -46,7 +47,9 @@ import com.android.app.animation.Interpolators; import com.android.internal.jank.InteractionJankMonitor; import com.android.internal.jank.InteractionJankMonitor; import com.android.keyguard.KeyguardClockSwitch.ClockSize; import com.android.keyguard.KeyguardClockSwitch.ClockSize; import com.android.keyguard.logging.KeyguardLogger; import com.android.keyguard.logging.KeyguardLogger; import com.android.systemui.Dumpable; import com.android.systemui.R; import com.android.systemui.R; import com.android.systemui.dump.DumpManager; import com.android.systemui.flags.FeatureFlags; import com.android.systemui.flags.FeatureFlags; import com.android.systemui.plugins.ClockController; import com.android.systemui.plugins.ClockController; import com.android.systemui.statusbar.notification.AnimatableProperty; import com.android.systemui.statusbar.notification.AnimatableProperty; Loading @@ -59,14 +62,17 @@ import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.util.ViewController; import com.android.systemui.util.ViewController; import java.io.PrintWriter; import javax.inject.Inject; import javax.inject.Inject; /** /** * Injectable controller for {@link KeyguardStatusView}. * Injectable controller for {@link KeyguardStatusView}. */ */ public class KeyguardStatusViewController extends ViewController<KeyguardStatusView> { public class KeyguardStatusViewController extends ViewController<KeyguardStatusView> implements Dumpable { private static final boolean DEBUG = KeyguardConstants.DEBUG; private static final boolean DEBUG = KeyguardConstants.DEBUG; private static final String TAG = "KeyguardStatusViewController"; @VisibleForTesting static final String TAG = "KeyguardStatusViewController"; /** /** * Duration to use for the animator when the keyguard status view alignment changes, and a * Duration to use for the animator when the keyguard status view alignment changes, and a Loading @@ -88,6 +94,8 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV private Boolean mStatusViewCentered = true; private Boolean mStatusViewCentered = true; private DumpManager mDumpManager; private final TransitionListenerAdapter mKeyguardStatusAlignmentTransitionListener = private final TransitionListenerAdapter mKeyguardStatusAlignmentTransitionListener = new TransitionListenerAdapter() { new TransitionListenerAdapter() { @Override @Override Loading @@ -113,7 +121,8 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV ScreenOffAnimationController screenOffAnimationController, ScreenOffAnimationController screenOffAnimationController, KeyguardLogger logger, KeyguardLogger logger, FeatureFlags featureFlags, FeatureFlags featureFlags, InteractionJankMonitor interactionJankMonitor) { InteractionJankMonitor interactionJankMonitor, DumpManager dumpManager) { super(keyguardStatusView); super(keyguardStatusView); mKeyguardSliceViewController = keyguardSliceViewController; mKeyguardSliceViewController = keyguardSliceViewController; mKeyguardClockSwitchController = keyguardClockSwitchController; mKeyguardClockSwitchController = keyguardClockSwitchController; Loading @@ -124,11 +133,13 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV logger.getBuffer()); logger.getBuffer()); mInteractionJankMonitor = interactionJankMonitor; mInteractionJankMonitor = interactionJankMonitor; mFeatureFlags = featureFlags; mFeatureFlags = featureFlags; mDumpManager = dumpManager; } } @Override @Override public void onInit() { public void onInit() { mKeyguardClockSwitchController.init(); mKeyguardClockSwitchController.init(); mDumpManager.registerDumpable(this); } } @Override @Override Loading @@ -143,6 +154,13 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV mConfigurationController.removeCallback(mConfigurationListener); mConfigurationController.removeCallback(mConfigurationListener); } } /** * Called in notificationPanelViewController to avoid leak */ public void onDestroy() { mDumpManager.unregisterDumpable(TAG); } /** /** * Updates views on doze time tick. * Updates views on doze time tick. */ */ Loading Loading @@ -440,6 +458,11 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV constraintSet.applyTo(notifContainerParent); constraintSet.applyTo(notifContainerParent); } } @Override public void dump(@NonNull PrintWriter pw, @NonNull String[] args) { mView.dump(pw, args); } @VisibleForTesting @VisibleForTesting static class SplitShadeTransitionAdapter extends Transition { static class SplitShadeTransitionAdapter extends Transition { private static final String PROP_BOUNDS_LEFT = "splitShadeTransitionAdapter:boundsLeft"; private static final String PROP_BOUNDS_LEFT = "splitShadeTransitionAdapter:boundsLeft"; Loading
packages/SystemUI/src/com/android/keyguard/KeyguardVisibilityHelper.java +2 −0 Original line number Original line Diff line number Diff line Loading @@ -31,6 +31,7 @@ import com.android.systemui.statusbar.notification.stack.AnimationProperties; import com.android.systemui.statusbar.phone.DozeParameters; import com.android.systemui.statusbar.phone.DozeParameters; import com.android.systemui.statusbar.phone.ScreenOffAnimationController; import com.android.systemui.statusbar.phone.ScreenOffAnimationController; import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.util.Assert; import com.google.errorprone.annotations.CompileTimeConstant; import com.google.errorprone.annotations.CompileTimeConstant; Loading Loading @@ -85,6 +86,7 @@ public class KeyguardVisibilityHelper { boolean keyguardFadingAway, boolean keyguardFadingAway, boolean goingToFullShade, boolean goingToFullShade, int oldStatusBarState) { int oldStatusBarState) { Assert.isMainThread(); PropertyAnimator.cancelAnimation(mView, AnimatableProperty.ALPHA); PropertyAnimator.cancelAnimation(mView, AnimatableProperty.ALPHA); boolean isOccluded = mKeyguardStateController.isOccluded(); boolean isOccluded = mKeyguardStateController.isOccluded(); mKeyguardViewVisibilityAnimating = false; mKeyguardViewVisibilityAnimating = false; Loading
packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +3 −0 Original line number Original line Diff line number Diff line Loading @@ -1169,6 +1169,9 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump private void updateViewControllers(KeyguardStatusView keyguardStatusView, private void updateViewControllers(KeyguardStatusView keyguardStatusView, FrameLayout userAvatarView, FrameLayout userAvatarView, KeyguardUserSwitcherView keyguardUserSwitcherView) { KeyguardUserSwitcherView keyguardUserSwitcherView) { if (mKeyguardStatusViewController != null) { mKeyguardStatusViewController.onDestroy(); } // Re-associate the KeyguardStatusViewController // Re-associate the KeyguardStatusViewController KeyguardStatusViewComponent statusViewComponent = KeyguardStatusViewComponent statusViewComponent = mKeyguardStatusViewComponentFactory.build(keyguardStatusView); mKeyguardStatusViewComponentFactory.build(keyguardStatusView); Loading
packages/SystemUI/tests/src/com/android/keyguard/KeyguardStatusViewControllerTest.java +13 −1 Original line number Original line Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.testing.AndroidTestingRunner; import com.android.internal.jank.InteractionJankMonitor; import com.android.internal.jank.InteractionJankMonitor; import com.android.keyguard.logging.KeyguardLogger; import com.android.keyguard.logging.KeyguardLogger; import com.android.systemui.SysuiTestCase; import com.android.systemui.SysuiTestCase; import com.android.systemui.dump.DumpManager; import com.android.systemui.flags.FeatureFlags; import com.android.systemui.flags.FeatureFlags; import com.android.systemui.plugins.ClockConfig; import com.android.systemui.plugins.ClockConfig; import com.android.systemui.plugins.ClockController; import com.android.systemui.plugins.ClockController; Loading Loading @@ -62,6 +63,8 @@ public class KeyguardStatusViewControllerTest extends SysuiTestCase { @Mock private FeatureFlags mFeatureFlags; @Mock private FeatureFlags mFeatureFlags; @Mock private InteractionJankMonitor mInteractionJankMonitor; @Mock private InteractionJankMonitor mInteractionJankMonitor; @Mock private DumpManager mDumpManager; @Captor @Captor private ArgumentCaptor<KeyguardUpdateMonitorCallback> mKeyguardUpdateMonitorCallbackCaptor; private ArgumentCaptor<KeyguardUpdateMonitorCallback> mKeyguardUpdateMonitorCallbackCaptor; Loading @@ -82,7 +85,8 @@ public class KeyguardStatusViewControllerTest extends SysuiTestCase { mScreenOffAnimationController, mScreenOffAnimationController, mKeyguardLogger, mKeyguardLogger, mFeatureFlags, mFeatureFlags, mInteractionJankMonitor) { mInteractionJankMonitor, mDumpManager) { @Override @Override void setProperty( void setProperty( AnimatableProperty property, AnimatableProperty property, Loading Loading @@ -170,4 +174,12 @@ public class KeyguardStatusViewControllerTest extends SysuiTestCase { verify(mKeyguardClockSwitchController, times(1)).setSplitShadeEnabled(false); verify(mKeyguardClockSwitchController, times(1)).setSplitShadeEnabled(false); verify(mKeyguardClockSwitchController, times(0)).setSplitShadeEnabled(true); verify(mKeyguardClockSwitchController, times(0)).setSplitShadeEnabled(true); } } @Test public void correctlyDump() { mController.onInit(); verify(mDumpManager).registerDumpable(mController); mController.onDestroy(); verify(mDumpManager, times(1)).unregisterDumpable(KeyguardStatusViewController.TAG); } } }