Merge "Add UiEvent for the device starting to wake up" into udc-dev am: 957410032e
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22955155 Change-Id: Ie7cae6d465ceaf5edf2a337ceea5da69ee0d8e18 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package com.android.systemui.keyguard;
|
package com.android.systemui.keyguard;
|
||||||
|
|
||||||
|
import static android.app.StatusBarManager.SESSION_KEYGUARD;
|
||||||
import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
|
import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
|
||||||
import static android.view.WindowManagerPolicyConstants.KEYGUARD_GOING_AWAY_FLAG_NO_WINDOW_ANIMATIONS;
|
import static android.view.WindowManagerPolicyConstants.KEYGUARD_GOING_AWAY_FLAG_NO_WINDOW_ANIMATIONS;
|
||||||
import static android.view.WindowManagerPolicyConstants.KEYGUARD_GOING_AWAY_FLAG_TO_LAUNCHER_CLEAR_SNAPSHOT;
|
import static android.view.WindowManagerPolicyConstants.KEYGUARD_GOING_AWAY_FLAG_TO_LAUNCHER_CLEAR_SNAPSHOT;
|
||||||
@@ -101,6 +102,7 @@ import androidx.annotation.VisibleForTesting;
|
|||||||
import com.android.app.animation.Interpolators;
|
import com.android.app.animation.Interpolators;
|
||||||
import com.android.internal.jank.InteractionJankMonitor;
|
import com.android.internal.jank.InteractionJankMonitor;
|
||||||
import com.android.internal.jank.InteractionJankMonitor.Configuration;
|
import com.android.internal.jank.InteractionJankMonitor.Configuration;
|
||||||
|
import com.android.internal.logging.UiEventLogger;
|
||||||
import com.android.internal.policy.IKeyguardDismissCallback;
|
import com.android.internal.policy.IKeyguardDismissCallback;
|
||||||
import com.android.internal.policy.IKeyguardExitCallback;
|
import com.android.internal.policy.IKeyguardExitCallback;
|
||||||
import com.android.internal.policy.IKeyguardStateCallback;
|
import com.android.internal.policy.IKeyguardStateCallback;
|
||||||
@@ -131,6 +133,7 @@ import com.android.systemui.dump.DumpManager;
|
|||||||
import com.android.systemui.flags.FeatureFlags;
|
import com.android.systemui.flags.FeatureFlags;
|
||||||
import com.android.systemui.flags.Flags;
|
import com.android.systemui.flags.Flags;
|
||||||
import com.android.systemui.keyguard.dagger.KeyguardModule;
|
import com.android.systemui.keyguard.dagger.KeyguardModule;
|
||||||
|
import com.android.systemui.log.SessionTracker;
|
||||||
import com.android.systemui.navigationbar.NavigationModeController;
|
import com.android.systemui.navigationbar.NavigationModeController;
|
||||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||||
import com.android.systemui.settings.UserTracker;
|
import com.android.systemui.settings.UserTracker;
|
||||||
@@ -1181,12 +1184,16 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
|
|||||||
private Lazy<ScrimController> mScrimControllerLazy;
|
private Lazy<ScrimController> mScrimControllerLazy;
|
||||||
|
|
||||||
private FeatureFlags mFeatureFlags;
|
private FeatureFlags mFeatureFlags;
|
||||||
|
private final UiEventLogger mUiEventLogger;
|
||||||
|
private final SessionTracker mSessionTracker;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Injected constructor. See {@link KeyguardModule}.
|
* Injected constructor. See {@link KeyguardModule}.
|
||||||
*/
|
*/
|
||||||
public KeyguardViewMediator(
|
public KeyguardViewMediator(
|
||||||
Context context,
|
Context context,
|
||||||
|
UiEventLogger uiEventLogger,
|
||||||
|
SessionTracker sessionTracker,
|
||||||
UserTracker userTracker,
|
UserTracker userTracker,
|
||||||
FalsingCollector falsingCollector,
|
FalsingCollector falsingCollector,
|
||||||
LockPatternUtils lockPatternUtils,
|
LockPatternUtils lockPatternUtils,
|
||||||
@@ -1270,6 +1277,8 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
|
|||||||
mDreamCloseAnimationDuration = (int) LOCKSCREEN_ANIMATION_DURATION_MS;
|
mDreamCloseAnimationDuration = (int) LOCKSCREEN_ANIMATION_DURATION_MS;
|
||||||
|
|
||||||
mFeatureFlags = featureFlags;
|
mFeatureFlags = featureFlags;
|
||||||
|
mUiEventLogger = uiEventLogger;
|
||||||
|
mSessionTracker = sessionTracker;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void userActivity() {
|
public void userActivity() {
|
||||||
@@ -1660,6 +1669,13 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
|
|||||||
if (DEBUG) Log.d(TAG, "onStartedWakingUp, seq = " + mDelayedShowingSequence);
|
if (DEBUG) Log.d(TAG, "onStartedWakingUp, seq = " + mDelayedShowingSequence);
|
||||||
notifyStartedWakingUp();
|
notifyStartedWakingUp();
|
||||||
}
|
}
|
||||||
|
mUiEventLogger.logWithInstanceIdAndPosition(
|
||||||
|
BiometricUnlockController.BiometricUiEvent.STARTED_WAKING_UP,
|
||||||
|
0,
|
||||||
|
null,
|
||||||
|
mSessionTracker.getSessionId(SESSION_KEYGUARD),
|
||||||
|
pmWakeReason
|
||||||
|
);
|
||||||
mUpdateMonitor.dispatchStartedWakingUp(pmWakeReason);
|
mUpdateMonitor.dispatchStartedWakingUp(pmWakeReason);
|
||||||
maybeSendUserPresentBroadcast();
|
maybeSendUserPresentBroadcast();
|
||||||
Trace.endSection();
|
Trace.endSection();
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import android.content.Context;
|
|||||||
import android.os.PowerManager;
|
import android.os.PowerManager;
|
||||||
|
|
||||||
import com.android.internal.jank.InteractionJankMonitor;
|
import com.android.internal.jank.InteractionJankMonitor;
|
||||||
|
import com.android.internal.logging.UiEventLogger;
|
||||||
import com.android.internal.widget.LockPatternUtils;
|
import com.android.internal.widget.LockPatternUtils;
|
||||||
import com.android.keyguard.KeyguardDisplayManager;
|
import com.android.keyguard.KeyguardDisplayManager;
|
||||||
import com.android.keyguard.KeyguardUpdateMonitor;
|
import com.android.keyguard.KeyguardUpdateMonitor;
|
||||||
@@ -50,6 +51,7 @@ import com.android.systemui.keyguard.domain.interactor.StartKeyguardTransitionMo
|
|||||||
import com.android.systemui.keyguard.domain.quickaffordance.KeyguardQuickAffordanceModule;
|
import com.android.systemui.keyguard.domain.quickaffordance.KeyguardQuickAffordanceModule;
|
||||||
import com.android.systemui.keyguard.shared.quickaffordance.KeyguardQuickAffordancesMetricsLogger;
|
import com.android.systemui.keyguard.shared.quickaffordance.KeyguardQuickAffordancesMetricsLogger;
|
||||||
import com.android.systemui.keyguard.shared.quickaffordance.KeyguardQuickAffordancesMetricsLoggerImpl;
|
import com.android.systemui.keyguard.shared.quickaffordance.KeyguardQuickAffordancesMetricsLoggerImpl;
|
||||||
|
import com.android.systemui.log.SessionTracker;
|
||||||
import com.android.systemui.navigationbar.NavigationModeController;
|
import com.android.systemui.navigationbar.NavigationModeController;
|
||||||
import com.android.systemui.settings.UserTracker;
|
import com.android.systemui.settings.UserTracker;
|
||||||
import com.android.systemui.shade.ShadeController;
|
import com.android.systemui.shade.ShadeController;
|
||||||
@@ -63,12 +65,12 @@ import com.android.systemui.statusbar.policy.KeyguardStateController;
|
|||||||
import com.android.systemui.statusbar.policy.UserSwitcherController;
|
import com.android.systemui.statusbar.policy.UserSwitcherController;
|
||||||
import com.android.systemui.util.DeviceConfigProxy;
|
import com.android.systemui.util.DeviceConfigProxy;
|
||||||
|
|
||||||
import java.util.concurrent.Executor;
|
|
||||||
|
|
||||||
import dagger.Lazy;
|
import dagger.Lazy;
|
||||||
import dagger.Module;
|
import dagger.Module;
|
||||||
import dagger.Provides;
|
import dagger.Provides;
|
||||||
|
|
||||||
|
import java.util.concurrent.Executor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dagger Module providing keyguard.
|
* Dagger Module providing keyguard.
|
||||||
*/
|
*/
|
||||||
@@ -93,6 +95,8 @@ public class KeyguardModule {
|
|||||||
@SysUISingleton
|
@SysUISingleton
|
||||||
public static KeyguardViewMediator newKeyguardViewMediator(
|
public static KeyguardViewMediator newKeyguardViewMediator(
|
||||||
Context context,
|
Context context,
|
||||||
|
UiEventLogger uiEventLogger,
|
||||||
|
SessionTracker sessionTracker,
|
||||||
UserTracker userTracker,
|
UserTracker userTracker,
|
||||||
FalsingCollector falsingCollector,
|
FalsingCollector falsingCollector,
|
||||||
LockPatternUtils lockPatternUtils,
|
LockPatternUtils lockPatternUtils,
|
||||||
@@ -124,6 +128,8 @@ public class KeyguardModule {
|
|||||||
FeatureFlags featureFlags) {
|
FeatureFlags featureFlags) {
|
||||||
return new KeyguardViewMediator(
|
return new KeyguardViewMediator(
|
||||||
context,
|
context,
|
||||||
|
uiEventLogger,
|
||||||
|
sessionTracker,
|
||||||
userTracker,
|
userTracker,
|
||||||
falsingCollector,
|
falsingCollector,
|
||||||
lockPatternUtils,
|
lockPatternUtils,
|
||||||
|
|||||||
@@ -190,7 +190,6 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
|
||||||
public enum BiometricUiEvent implements UiEventLogger.UiEventEnum {
|
public enum BiometricUiEvent implements UiEventLogger.UiEventEnum {
|
||||||
|
|
||||||
@UiEvent(doc = "A biometric event of type fingerprint succeeded.")
|
@UiEvent(doc = "A biometric event of type fingerprint succeeded.")
|
||||||
@@ -221,7 +220,10 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp
|
|||||||
BIOMETRIC_IRIS_ERROR(404),
|
BIOMETRIC_IRIS_ERROR(404),
|
||||||
|
|
||||||
@UiEvent(doc = "Bouncer was shown as a result of consecutive failed UDFPS attempts.")
|
@UiEvent(doc = "Bouncer was shown as a result of consecutive failed UDFPS attempts.")
|
||||||
BIOMETRIC_BOUNCER_SHOWN(916);
|
BIOMETRIC_BOUNCER_SHOWN(916),
|
||||||
|
|
||||||
|
@UiEvent(doc = "Screen started waking up with the given PowerManager wake reason.")
|
||||||
|
STARTED_WAKING_UP(1378);
|
||||||
|
|
||||||
private final int mId;
|
private final int mId;
|
||||||
|
|
||||||
|
|||||||
@@ -52,6 +52,8 @@ import android.view.WindowManager;
|
|||||||
import androidx.test.filters.SmallTest;
|
import androidx.test.filters.SmallTest;
|
||||||
|
|
||||||
import com.android.internal.jank.InteractionJankMonitor;
|
import com.android.internal.jank.InteractionJankMonitor;
|
||||||
|
import com.android.internal.logging.InstanceId;
|
||||||
|
import com.android.internal.logging.UiEventLogger;
|
||||||
import com.android.internal.widget.LockPatternUtils;
|
import com.android.internal.widget.LockPatternUtils;
|
||||||
import com.android.keyguard.KeyguardDisplayManager;
|
import com.android.keyguard.KeyguardDisplayManager;
|
||||||
import com.android.keyguard.KeyguardSecurityView;
|
import com.android.keyguard.KeyguardSecurityView;
|
||||||
@@ -68,6 +70,7 @@ import com.android.systemui.dreams.DreamOverlayStateController;
|
|||||||
import com.android.systemui.dump.DumpManager;
|
import com.android.systemui.dump.DumpManager;
|
||||||
import com.android.systemui.flags.FakeFeatureFlags;
|
import com.android.systemui.flags.FakeFeatureFlags;
|
||||||
import com.android.systemui.flags.Flags;
|
import com.android.systemui.flags.Flags;
|
||||||
|
import com.android.systemui.log.SessionTracker;
|
||||||
import com.android.systemui.navigationbar.NavigationModeController;
|
import com.android.systemui.navigationbar.NavigationModeController;
|
||||||
import com.android.systemui.settings.UserTracker;
|
import com.android.systemui.settings.UserTracker;
|
||||||
import com.android.systemui.shade.NotificationShadeWindowControllerImpl;
|
import com.android.systemui.shade.NotificationShadeWindowControllerImpl;
|
||||||
@@ -77,6 +80,7 @@ import com.android.systemui.shade.ShadeWindowLogger;
|
|||||||
import com.android.systemui.statusbar.NotificationShadeDepthController;
|
import com.android.systemui.statusbar.NotificationShadeDepthController;
|
||||||
import com.android.systemui.statusbar.NotificationShadeWindowController;
|
import com.android.systemui.statusbar.NotificationShadeWindowController;
|
||||||
import com.android.systemui.statusbar.SysuiStatusBarStateController;
|
import com.android.systemui.statusbar.SysuiStatusBarStateController;
|
||||||
|
import com.android.systemui.statusbar.phone.BiometricUnlockController;
|
||||||
import com.android.systemui.statusbar.phone.CentralSurfaces;
|
import com.android.systemui.statusbar.phone.CentralSurfaces;
|
||||||
import com.android.systemui.statusbar.phone.DozeParameters;
|
import com.android.systemui.statusbar.phone.DozeParameters;
|
||||||
import com.android.systemui.statusbar.phone.KeyguardBypassController;
|
import com.android.systemui.statusbar.phone.KeyguardBypassController;
|
||||||
@@ -143,6 +147,8 @@ public class KeyguardViewMediatorTest extends SysuiTestCase {
|
|||||||
private FalsingCollectorFake mFalsingCollector;
|
private FalsingCollectorFake mFalsingCollector;
|
||||||
|
|
||||||
private @Mock CentralSurfaces mCentralSurfaces;
|
private @Mock CentralSurfaces mCentralSurfaces;
|
||||||
|
private @Mock UiEventLogger mUiEventLogger;
|
||||||
|
private @Mock SessionTracker mSessionTracker;
|
||||||
|
|
||||||
private FakeFeatureFlags mFeatureFlags;
|
private FakeFeatureFlags mFeatureFlags;
|
||||||
|
|
||||||
@@ -543,9 +549,26 @@ public class KeyguardViewMediatorTest extends SysuiTestCase {
|
|||||||
assertTrue(mViewMediator.isShowingAndNotOccluded());
|
assertTrue(mViewMediator.isShowingAndNotOccluded());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testOnStartedWakingUp_logsUiEvent() {
|
||||||
|
final InstanceId instanceId = InstanceId.fakeInstanceId(8);
|
||||||
|
when(mSessionTracker.getSessionId((anyInt()))).thenReturn(instanceId);
|
||||||
|
mViewMediator.onStartedWakingUp(PowerManager.WAKE_REASON_LIFT, false);
|
||||||
|
|
||||||
|
verify(mUiEventLogger).logWithInstanceIdAndPosition(
|
||||||
|
eq(BiometricUnlockController.BiometricUiEvent.STARTED_WAKING_UP),
|
||||||
|
anyInt(),
|
||||||
|
any(),
|
||||||
|
eq(instanceId),
|
||||||
|
eq(PowerManager.WAKE_REASON_LIFT)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
private void createAndStartViewMediator() {
|
private void createAndStartViewMediator() {
|
||||||
mViewMediator = new KeyguardViewMediator(
|
mViewMediator = new KeyguardViewMediator(
|
||||||
mContext,
|
mContext,
|
||||||
|
mUiEventLogger,
|
||||||
|
mSessionTracker,
|
||||||
mUserTracker,
|
mUserTracker,
|
||||||
mFalsingCollector,
|
mFalsingCollector,
|
||||||
mLockPatternUtils,
|
mLockPatternUtils,
|
||||||
|
|||||||
Reference in New Issue
Block a user