Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c4d316a0 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Add UiEvent for the device starting to wake up" into udc-dev am: 95741003

parents 26aee20c 95741003
Loading
Loading
Loading
Loading
+16 −0
Original line number Original line Diff line number Diff line
@@ -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();
+8 −2
Original line number Original line Diff line number Diff line
@@ -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,
+4 −2
Original line number Original line Diff line number Diff line
@@ -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;


+23 −0
Original line number Original line Diff line number Diff line
@@ -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,