Merge "Add dumpsys to KeyguardStatusViewController" into udc-qpr-dev

This commit is contained in:
Lucas Dupin
2023-07-20 03:21:32 +00:00
committed by Android (Google) Code Review
6 changed files with 47 additions and 5 deletions

View File

@@ -113,6 +113,7 @@ public class KeyguardStatusView extends GridLayout {
public void dump(PrintWriter pw, String[] args) {
pw.println("KeyguardStatusView:");
pw.println(" mDarkAmount: " + mDarkAmount);
pw.println(" visibility: " + getVisibility());
if (mClockView != null) {
mClockView.dump(pw, args);
}

View File

@@ -37,6 +37,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.constraintlayout.widget.ConstraintSet;
@@ -46,7 +47,9 @@ import com.android.app.animation.Interpolators;
import com.android.internal.jank.InteractionJankMonitor;
import com.android.keyguard.KeyguardClockSwitch.ClockSize;
import com.android.keyguard.logging.KeyguardLogger;
import com.android.systemui.Dumpable;
import com.android.systemui.R;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.plugins.ClockController;
import com.android.systemui.statusbar.notification.AnimatableProperty;
@@ -59,14 +62,17 @@ import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.util.ViewController;
import java.io.PrintWriter;
import javax.inject.Inject;
/**
* 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 String TAG = "KeyguardStatusViewController";
@VisibleForTesting static final String TAG = "KeyguardStatusViewController";
/**
* Duration to use for the animator when the keyguard status view alignment changes, and a
@@ -88,6 +94,8 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
private Boolean mStatusViewCentered = true;
private DumpManager mDumpManager;
private final TransitionListenerAdapter mKeyguardStatusAlignmentTransitionListener =
new TransitionListenerAdapter() {
@Override
@@ -113,7 +121,8 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
ScreenOffAnimationController screenOffAnimationController,
KeyguardLogger logger,
FeatureFlags featureFlags,
InteractionJankMonitor interactionJankMonitor) {
InteractionJankMonitor interactionJankMonitor,
DumpManager dumpManager) {
super(keyguardStatusView);
mKeyguardSliceViewController = keyguardSliceViewController;
mKeyguardClockSwitchController = keyguardClockSwitchController;
@@ -124,11 +133,13 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
logger.getBuffer());
mInteractionJankMonitor = interactionJankMonitor;
mFeatureFlags = featureFlags;
mDumpManager = dumpManager;
}
@Override
public void onInit() {
mKeyguardClockSwitchController.init();
mDumpManager.registerDumpable(this);
}
@Override
@@ -143,6 +154,13 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
mConfigurationController.removeCallback(mConfigurationListener);
}
/**
* Called in notificationPanelViewController to avoid leak
*/
public void onDestroy() {
mDumpManager.unregisterDumpable(TAG);
}
/**
* Updates views on doze time tick.
*/
@@ -440,6 +458,11 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
constraintSet.applyTo(notifContainerParent);
}
@Override
public void dump(@NonNull PrintWriter pw, @NonNull String[] args) {
mView.dump(pw, args);
}
@VisibleForTesting
static class SplitShadeTransitionAdapter extends Transition {
private static final String PROP_BOUNDS_LEFT = "splitShadeTransitionAdapter:boundsLeft";

View File

@@ -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.ScreenOffAnimationController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.util.Assert;
import com.google.errorprone.annotations.CompileTimeConstant;
@@ -85,6 +86,7 @@ public class KeyguardVisibilityHelper {
boolean keyguardFadingAway,
boolean goingToFullShade,
int oldStatusBarState) {
Assert.isMainThread();
PropertyAnimator.cancelAnimation(mView, AnimatableProperty.ALPHA);
boolean isOccluded = mKeyguardStateController.isOccluded();
mKeyguardViewVisibilityAnimating = false;

View File

@@ -1169,6 +1169,9 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
private void updateViewControllers(KeyguardStatusView keyguardStatusView,
FrameLayout userAvatarView,
KeyguardUserSwitcherView keyguardUserSwitcherView) {
if (mKeyguardStatusViewController != null) {
mKeyguardStatusViewController.onDestroy();
}
// Re-associate the KeyguardStatusViewController
KeyguardStatusViewComponent statusViewComponent =
mKeyguardStatusViewComponentFactory.build(keyguardStatusView);

View File

@@ -27,6 +27,7 @@ import android.testing.AndroidTestingRunner;
import com.android.internal.jank.InteractionJankMonitor;
import com.android.keyguard.logging.KeyguardLogger;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.plugins.ClockConfig;
import com.android.systemui.plugins.ClockController;
@@ -62,6 +63,8 @@ public class KeyguardStatusViewControllerTest extends SysuiTestCase {
@Mock private FeatureFlags mFeatureFlags;
@Mock private InteractionJankMonitor mInteractionJankMonitor;
@Mock private DumpManager mDumpManager;
@Captor
private ArgumentCaptor<KeyguardUpdateMonitorCallback> mKeyguardUpdateMonitorCallbackCaptor;
@@ -82,7 +85,8 @@ public class KeyguardStatusViewControllerTest extends SysuiTestCase {
mScreenOffAnimationController,
mKeyguardLogger,
mFeatureFlags,
mInteractionJankMonitor) {
mInteractionJankMonitor,
mDumpManager) {
@Override
void setProperty(
AnimatableProperty property,
@@ -170,4 +174,12 @@ public class KeyguardStatusViewControllerTest extends SysuiTestCase {
verify(mKeyguardClockSwitchController, times(1)).setSplitShadeEnabled(false);
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);
}
}

View File

@@ -370,7 +370,8 @@ public class NotificationPanelViewControllerBaseTest extends SysuiTestCase {
mScreenOffAnimationController,
mKeyguardLogger,
mFeatureFlags,
mInteractionJankMonitor));
mInteractionJankMonitor,
mDumpManager));
when(mAuthController.isUdfpsEnrolled(anyInt())).thenReturn(false);
when(mHeadsUpCallback.getContext()).thenReturn(mContext);