Loading packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java +5 −2 Original line number Diff line number Diff line Loading @@ -182,7 +182,8 @@ public class KeyguardService extends Service { // Wrap Keyguard going away animation. // Note: Also used for wrapping occlude by Dream animation. It works (with some redundancy). public static IRemoteTransition wrap(IRemoteAnimationRunner runner) { public static IRemoteTransition wrap(IRemoteAnimationRunner runner, boolean lockscreenLiveWallpaperEnabled) { return new IRemoteTransition.Stub() { private final ArrayMap<SurfaceControl, SurfaceControl> mLeashMap = new ArrayMap<>(); Loading Loading @@ -213,7 +214,9 @@ public class KeyguardService extends Service { } } initAlphaForAnimationTargets(t, apps); if (lockscreenLiveWallpaperEnabled) { initAlphaForAnimationTargets(t, wallpapers); } t.apply(); mFinishCallback = finishCallback; runner.onAnimationStart( Loading packages/SystemUI/src/com/android/systemui/keyguard/KeyguardUnlockAnimationController.kt +8 −4 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.systemui.keyguard import android.animation.Animator import android.animation.AnimatorListenerAdapter import android.animation.ValueAnimator import android.app.WallpaperManager import android.content.Context import android.graphics.Matrix import android.graphics.Rect Loading Loading @@ -148,7 +149,8 @@ class KeyguardUnlockAnimationController @Inject constructor( private val biometricUnlockControllerLazy: Lazy<BiometricUnlockController>, private val statusBarStateController: SysuiStatusBarStateController, private val notificationShadeWindowController: NotificationShadeWindowController, private val powerManager: PowerManager private val powerManager: PowerManager, private val wallpaperManager: WallpaperManager ) : KeyguardStateController.Callback, ISysuiUnlockAnimationController.Stub() { interface KeyguardUnlockAnimationListener { Loading Loading @@ -686,8 +688,10 @@ class KeyguardUnlockAnimationController @Inject constructor( return@postDelayed } if (wallpaperTargets != null) { if ((wallpaperTargets?.isNotEmpty() == true) && wallpaperManager.isLockscreenLiveWallpaperEnabled()) { fadeInWallpaper() hideKeyguardViewAfterRemoteAnimation() } else { keyguardViewMediator.get().exitKeyguardAndFinishSurfaceBehindRemoteAnimation( false /* cancelled */) Loading Loading @@ -961,7 +965,7 @@ class KeyguardUnlockAnimationController @Inject constructor( 0 /* fadeOutDuration */ ) } else { Log.e(TAG, "#hideKeyguardViewAfterRemoteAnimation called when keyguard view is not " + Log.i(TAG, "#hideKeyguardViewAfterRemoteAnimation called when keyguard view is not " + "showing. Ignoring...") } } Loading packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +15 −4 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ import android.app.AlarmManager; import android.app.BroadcastOptions; import android.app.PendingIntent; import android.app.StatusBarManager; import android.app.WallpaperManager; import android.app.WindowConfiguration; import android.app.trust.TrustManager; import android.content.BroadcastReceiver; Loading Loading @@ -280,6 +281,7 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable, private AlarmManager mAlarmManager; private AudioManager mAudioManager; private StatusBarManager mStatusBarManager; private WallpaperManager mWallpaperManager; private final IStatusBarService mStatusBarService; private final IBinder mStatusBarDisableToken = new Binder(); private final UserTracker mUserTracker; Loading Loading @@ -1350,11 +1352,12 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable, setShowingLocked(false /* showing */, true /* forceCallbacks */); } boolean isLockscreenLwpEnabled = getWallpaperManager().isLockscreenLiveWallpaperEnabled(); mKeyguardTransitions.register( KeyguardService.wrap(getExitAnimationRunner()), KeyguardService.wrap(getOccludeAnimationRunner()), KeyguardService.wrap(getOccludeByDreamAnimationRunner()), KeyguardService.wrap(getUnoccludeAnimationRunner())); KeyguardService.wrap(getExitAnimationRunner(), isLockscreenLwpEnabled), KeyguardService.wrap(getOccludeAnimationRunner(), isLockscreenLwpEnabled), KeyguardService.wrap(getOccludeByDreamAnimationRunner(), isLockscreenLwpEnabled), KeyguardService.wrap(getUnoccludeAnimationRunner(), isLockscreenLwpEnabled)); final ContentResolver cr = mContext.getContentResolver(); Loading Loading @@ -1400,6 +1403,14 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable, mWorkLockController = new WorkLockActivityController(mContext, mUserTracker); } // TODO(b/273443374) remove, temporary util to get a feature flag private WallpaperManager getWallpaperManager() { if (mWallpaperManager == null) { mWallpaperManager = mContext.getSystemService(WallpaperManager.class); } return mWallpaperManager; } @Override public void start() { synchronized (this) { Loading packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardUnlockAnimationControllerTest.kt +5 −1 Original line number Diff line number Diff line package com.android.systemui.keyguard import android.app.ActivityManager import android.app.WallpaperManager import android.app.WindowConfiguration import android.graphics.Point import android.graphics.Rect Loading Loading @@ -64,6 +65,8 @@ class KeyguardUnlockAnimationControllerTest : SysuiTestCase() { private lateinit var notificationShadeWindowController: NotificationShadeWindowController @Mock private lateinit var powerManager: PowerManager @Mock private lateinit var wallpaperManager: WallpaperManager @Mock private lateinit var launcherUnlockAnimationController: ILauncherUnlockAnimationController.Stub Loading Loading @@ -94,13 +97,14 @@ class KeyguardUnlockAnimationControllerTest : SysuiTestCase() { keyguardUnlockAnimationController = KeyguardUnlockAnimationController( context, keyguardStateController, { keyguardViewMediator }, keyguardViewController, featureFlags, { biometricUnlockController }, statusBarStateController, notificationShadeWindowController, powerManager notificationShadeWindowController, powerManager, wallpaperManager ) keyguardUnlockAnimationController.setLauncherUnlockController( launcherUnlockAnimationController) whenever(keyguardViewController.viewRootImpl).thenReturn(mock(ViewRootImpl::class.java)) whenever(powerManager.isInteractive).thenReturn(true) whenever(wallpaperManager.isLockscreenLiveWallpaperEnabled).thenReturn(false) // All of these fields are final, so we can't mock them, but are needed so that the surface // appear amount setter doesn't short circuit. Loading Loading
packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java +5 −2 Original line number Diff line number Diff line Loading @@ -182,7 +182,8 @@ public class KeyguardService extends Service { // Wrap Keyguard going away animation. // Note: Also used for wrapping occlude by Dream animation. It works (with some redundancy). public static IRemoteTransition wrap(IRemoteAnimationRunner runner) { public static IRemoteTransition wrap(IRemoteAnimationRunner runner, boolean lockscreenLiveWallpaperEnabled) { return new IRemoteTransition.Stub() { private final ArrayMap<SurfaceControl, SurfaceControl> mLeashMap = new ArrayMap<>(); Loading Loading @@ -213,7 +214,9 @@ public class KeyguardService extends Service { } } initAlphaForAnimationTargets(t, apps); if (lockscreenLiveWallpaperEnabled) { initAlphaForAnimationTargets(t, wallpapers); } t.apply(); mFinishCallback = finishCallback; runner.onAnimationStart( Loading
packages/SystemUI/src/com/android/systemui/keyguard/KeyguardUnlockAnimationController.kt +8 −4 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.systemui.keyguard import android.animation.Animator import android.animation.AnimatorListenerAdapter import android.animation.ValueAnimator import android.app.WallpaperManager import android.content.Context import android.graphics.Matrix import android.graphics.Rect Loading Loading @@ -148,7 +149,8 @@ class KeyguardUnlockAnimationController @Inject constructor( private val biometricUnlockControllerLazy: Lazy<BiometricUnlockController>, private val statusBarStateController: SysuiStatusBarStateController, private val notificationShadeWindowController: NotificationShadeWindowController, private val powerManager: PowerManager private val powerManager: PowerManager, private val wallpaperManager: WallpaperManager ) : KeyguardStateController.Callback, ISysuiUnlockAnimationController.Stub() { interface KeyguardUnlockAnimationListener { Loading Loading @@ -686,8 +688,10 @@ class KeyguardUnlockAnimationController @Inject constructor( return@postDelayed } if (wallpaperTargets != null) { if ((wallpaperTargets?.isNotEmpty() == true) && wallpaperManager.isLockscreenLiveWallpaperEnabled()) { fadeInWallpaper() hideKeyguardViewAfterRemoteAnimation() } else { keyguardViewMediator.get().exitKeyguardAndFinishSurfaceBehindRemoteAnimation( false /* cancelled */) Loading Loading @@ -961,7 +965,7 @@ class KeyguardUnlockAnimationController @Inject constructor( 0 /* fadeOutDuration */ ) } else { Log.e(TAG, "#hideKeyguardViewAfterRemoteAnimation called when keyguard view is not " + Log.i(TAG, "#hideKeyguardViewAfterRemoteAnimation called when keyguard view is not " + "showing. Ignoring...") } } Loading
packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +15 −4 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ import android.app.AlarmManager; import android.app.BroadcastOptions; import android.app.PendingIntent; import android.app.StatusBarManager; import android.app.WallpaperManager; import android.app.WindowConfiguration; import android.app.trust.TrustManager; import android.content.BroadcastReceiver; Loading Loading @@ -280,6 +281,7 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable, private AlarmManager mAlarmManager; private AudioManager mAudioManager; private StatusBarManager mStatusBarManager; private WallpaperManager mWallpaperManager; private final IStatusBarService mStatusBarService; private final IBinder mStatusBarDisableToken = new Binder(); private final UserTracker mUserTracker; Loading Loading @@ -1350,11 +1352,12 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable, setShowingLocked(false /* showing */, true /* forceCallbacks */); } boolean isLockscreenLwpEnabled = getWallpaperManager().isLockscreenLiveWallpaperEnabled(); mKeyguardTransitions.register( KeyguardService.wrap(getExitAnimationRunner()), KeyguardService.wrap(getOccludeAnimationRunner()), KeyguardService.wrap(getOccludeByDreamAnimationRunner()), KeyguardService.wrap(getUnoccludeAnimationRunner())); KeyguardService.wrap(getExitAnimationRunner(), isLockscreenLwpEnabled), KeyguardService.wrap(getOccludeAnimationRunner(), isLockscreenLwpEnabled), KeyguardService.wrap(getOccludeByDreamAnimationRunner(), isLockscreenLwpEnabled), KeyguardService.wrap(getUnoccludeAnimationRunner(), isLockscreenLwpEnabled)); final ContentResolver cr = mContext.getContentResolver(); Loading Loading @@ -1400,6 +1403,14 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable, mWorkLockController = new WorkLockActivityController(mContext, mUserTracker); } // TODO(b/273443374) remove, temporary util to get a feature flag private WallpaperManager getWallpaperManager() { if (mWallpaperManager == null) { mWallpaperManager = mContext.getSystemService(WallpaperManager.class); } return mWallpaperManager; } @Override public void start() { synchronized (this) { Loading
packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardUnlockAnimationControllerTest.kt +5 −1 Original line number Diff line number Diff line package com.android.systemui.keyguard import android.app.ActivityManager import android.app.WallpaperManager import android.app.WindowConfiguration import android.graphics.Point import android.graphics.Rect Loading Loading @@ -64,6 +65,8 @@ class KeyguardUnlockAnimationControllerTest : SysuiTestCase() { private lateinit var notificationShadeWindowController: NotificationShadeWindowController @Mock private lateinit var powerManager: PowerManager @Mock private lateinit var wallpaperManager: WallpaperManager @Mock private lateinit var launcherUnlockAnimationController: ILauncherUnlockAnimationController.Stub Loading Loading @@ -94,13 +97,14 @@ class KeyguardUnlockAnimationControllerTest : SysuiTestCase() { keyguardUnlockAnimationController = KeyguardUnlockAnimationController( context, keyguardStateController, { keyguardViewMediator }, keyguardViewController, featureFlags, { biometricUnlockController }, statusBarStateController, notificationShadeWindowController, powerManager notificationShadeWindowController, powerManager, wallpaperManager ) keyguardUnlockAnimationController.setLauncherUnlockController( launcherUnlockAnimationController) whenever(keyguardViewController.viewRootImpl).thenReturn(mock(ViewRootImpl::class.java)) whenever(powerManager.isInteractive).thenReturn(true) whenever(wallpaperManager.isLockscreenLiveWallpaperEnabled).thenReturn(false) // All of these fields are final, so we can't mock them, but are needed so that the surface // appear amount setter doesn't short circuit. Loading