Merge "Locking screen after timeout to dream" into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
2fad91a2b7
@@ -132,6 +132,11 @@ object Flags {
|
||||
// TODO(b/254512676): Tracking Bug
|
||||
@JvmField val LOCKSCREEN_CUSTOM_CLOCKS = releasedFlag(207, "lockscreen_custom_clocks")
|
||||
|
||||
// TODO(b/275694445): Tracking Bug
|
||||
@JvmField
|
||||
val LOCKSCREEN_WITHOUT_SECURE_LOCK_WHEN_DREAMING = unreleasedFlag(208,
|
||||
"lockscreen_without_secure_lock_when_dreaming")
|
||||
|
||||
/**
|
||||
* Whether the clock on a wide lock screen should use the new "stepping" animation for moving
|
||||
* the digits when the clock moves.
|
||||
|
||||
@@ -128,6 +128,8 @@ import com.android.systemui.classifier.FalsingCollector;
|
||||
import com.android.systemui.dagger.qualifiers.UiBackground;
|
||||
import com.android.systemui.dreams.DreamOverlayStateController;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.flags.FeatureFlags;
|
||||
import com.android.systemui.flags.Flags;
|
||||
import com.android.systemui.keyguard.dagger.KeyguardModule;
|
||||
import com.android.systemui.navigationbar.NavigationModeController;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
@@ -1184,6 +1186,8 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
|
||||
private Lazy<ActivityLaunchAnimator> mActivityLaunchAnimator;
|
||||
private Lazy<ScrimController> mScrimControllerLazy;
|
||||
|
||||
private FeatureFlags mFeatureFlags;
|
||||
|
||||
/**
|
||||
* Injected constructor. See {@link KeyguardModule}.
|
||||
*/
|
||||
@@ -1214,7 +1218,8 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
|
||||
Lazy<ShadeController> shadeControllerLazy,
|
||||
Lazy<NotificationShadeWindowController> notificationShadeWindowControllerLazy,
|
||||
Lazy<ActivityLaunchAnimator> activityLaunchAnimator,
|
||||
Lazy<ScrimController> scrimControllerLazy) {
|
||||
Lazy<ScrimController> scrimControllerLazy,
|
||||
FeatureFlags featureFlags) {
|
||||
mContext = context;
|
||||
mUserTracker = userTracker;
|
||||
mFalsingCollector = falsingCollector;
|
||||
@@ -1269,6 +1274,8 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
|
||||
|
||||
mDreamOpenAnimationDuration = (int) DREAMING_ANIMATION_DURATION_MS;
|
||||
mDreamCloseAnimationDuration = (int) LOCKSCREEN_ANIMATION_DURATION_MS;
|
||||
|
||||
mFeatureFlags = featureFlags;
|
||||
}
|
||||
|
||||
public void userActivity() {
|
||||
@@ -1682,14 +1689,17 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
|
||||
}
|
||||
|
||||
/**
|
||||
* A dream started. We should lock after the usual screen-off lock timeout but only
|
||||
* if there is a secure lock pattern.
|
||||
* A dream started. We should lock after the usual screen-off lock timeout regardless if
|
||||
* there is a secure lock pattern or not
|
||||
*/
|
||||
public void onDreamingStarted() {
|
||||
mUpdateMonitor.dispatchDreamingStarted();
|
||||
synchronized (this) {
|
||||
final boolean alwaysShowKeyguard =
|
||||
mFeatureFlags.isEnabled(Flags.LOCKSCREEN_WITHOUT_SECURE_LOCK_WHEN_DREAMING);
|
||||
if (mDeviceInteractive
|
||||
&& mLockPatternUtils.isSecure(KeyguardUpdateMonitor.getCurrentUser())) {
|
||||
&& (alwaysShowKeyguard ||
|
||||
mLockPatternUtils.isSecure(KeyguardUpdateMonitor.getCurrentUser()))) {
|
||||
doKeyguardLaterLocked();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,6 +39,7 @@ import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dagger.qualifiers.UiBackground;
|
||||
import com.android.systemui.dreams.DreamOverlayStateController;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.flags.FeatureFlags;
|
||||
import com.android.systemui.keyguard.DismissCallbackRegistry;
|
||||
import com.android.systemui.keyguard.KeyguardUnlockAnimationController;
|
||||
import com.android.systemui.keyguard.KeyguardViewMediator;
|
||||
@@ -119,7 +120,8 @@ public class KeyguardModule {
|
||||
Lazy<ShadeController> shadeController,
|
||||
Lazy<NotificationShadeWindowController> notificationShadeWindowController,
|
||||
Lazy<ActivityLaunchAnimator> activityLaunchAnimator,
|
||||
Lazy<ScrimController> scrimControllerLazy) {
|
||||
Lazy<ScrimController> scrimControllerLazy,
|
||||
FeatureFlags featureFlags) {
|
||||
return new KeyguardViewMediator(
|
||||
context,
|
||||
userTracker,
|
||||
@@ -149,7 +151,8 @@ public class KeyguardModule {
|
||||
shadeController,
|
||||
notificationShadeWindowController,
|
||||
activityLaunchAnimator,
|
||||
scrimControllerLazy);
|
||||
scrimControllerLazy,
|
||||
featureFlags);
|
||||
}
|
||||
|
||||
/** */
|
||||
|
||||
@@ -66,6 +66,8 @@ import com.android.systemui.classifier.FalsingCollectorFake;
|
||||
import com.android.systemui.colorextraction.SysuiColorExtractor;
|
||||
import com.android.systemui.dreams.DreamOverlayStateController;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.flags.FakeFeatureFlags;
|
||||
import com.android.systemui.flags.Flags;
|
||||
import com.android.systemui.navigationbar.NavigationModeController;
|
||||
import com.android.systemui.settings.UserTracker;
|
||||
import com.android.systemui.shade.NotificationShadeWindowControllerImpl;
|
||||
@@ -142,6 +144,8 @@ public class KeyguardViewMediatorTest extends SysuiTestCase {
|
||||
|
||||
private @Mock CentralSurfaces mCentralSurfaces;
|
||||
|
||||
private FakeFeatureFlags mFeatureFlags;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
@@ -160,6 +164,8 @@ public class KeyguardViewMediatorTest extends SysuiTestCase {
|
||||
mColorExtractor, mDumpManager, mKeyguardStateController,
|
||||
mScreenOffAnimationController, mAuthController, mShadeExpansionStateManager,
|
||||
mShadeWindowLogger);
|
||||
mFeatureFlags = new FakeFeatureFlags();
|
||||
|
||||
|
||||
DejankUtils.setImmediate(true);
|
||||
|
||||
@@ -515,6 +521,28 @@ public class KeyguardViewMediatorTest extends SysuiTestCase {
|
||||
verify(mStatusBarKeyguardViewManager, never()).reset(anyBoolean());
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestableLooper.RunWithLooper(setAsMainLooper = true)
|
||||
public void testNotStartingKeyguardWhenFlagIsDisabled() {
|
||||
mViewMediator.setShowingLocked(false);
|
||||
when(mKeyguardStateController.isShowing()).thenReturn(false);
|
||||
|
||||
mFeatureFlags.set(Flags.LOCKSCREEN_WITHOUT_SECURE_LOCK_WHEN_DREAMING, false);
|
||||
mViewMediator.onDreamingStarted();
|
||||
assertFalse(mViewMediator.isShowingAndNotOccluded());
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestableLooper.RunWithLooper(setAsMainLooper = true)
|
||||
public void testStartingKeyguardWhenFlagIsEnabled() {
|
||||
mViewMediator.setShowingLocked(true);
|
||||
when(mKeyguardStateController.isShowing()).thenReturn(true);
|
||||
|
||||
mFeatureFlags.set(Flags.LOCKSCREEN_WITHOUT_SECURE_LOCK_WHEN_DREAMING, true);
|
||||
mViewMediator.onDreamingStarted();
|
||||
assertTrue(mViewMediator.isShowingAndNotOccluded());
|
||||
}
|
||||
|
||||
private void createAndStartViewMediator() {
|
||||
mViewMediator = new KeyguardViewMediator(
|
||||
mContext,
|
||||
@@ -545,7 +573,8 @@ public class KeyguardViewMediatorTest extends SysuiTestCase {
|
||||
() -> mShadeController,
|
||||
() -> mNotificationShadeWindowController,
|
||||
() -> mActivityLaunchAnimator,
|
||||
() -> mScrimController);
|
||||
() -> mScrimController,
|
||||
mFeatureFlags);
|
||||
mViewMediator.start();
|
||||
|
||||
mViewMediator.registerCentralSurfaces(mCentralSurfaces, null, null, null, null, null);
|
||||
|
||||
Reference in New Issue
Block a user