Loading packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java +0 −3 Original line number Diff line number Diff line Loading @@ -37,9 +37,6 @@ import java.util.StringJoiner; * Various shared constants between Launcher and SysUI as part of quickstep */ public class QuickStepContract { // Fully qualified name of the Launcher activity. public static final String LAUNCHER_ACTIVITY_CLASS_NAME = "com.google.android.apps.nexuslauncher.NexusLauncherActivity"; public static final String KEY_EXTRA_SYSUI_PROXY = "extra_sysui_proxy"; public static final String KEY_EXTRA_UNFOLD_ANIMATION_FORWARDER = "extra_unfold_animation"; Loading packages/SystemUI/shared/src/com/android/systemui/shared/system/smartspace/ISysuiUnlockAnimationController.aidl +2 −1 Original line number Diff line number Diff line Loading @@ -24,7 +24,8 @@ import com.android.systemui.shared.system.smartspace.SmartspaceState; interface ISysuiUnlockAnimationController { // Provides an implementation of the LauncherUnlockAnimationController to System UI, so that // SysUI can use it to control the unlock animation in the launcher window. oneway void setLauncherUnlockController(ILauncherUnlockAnimationController callback); oneway void setLauncherUnlockController( String activityClass, ILauncherUnlockAnimationController callback); // Called by Launcher whenever anything happens to change the state of its smartspace. System UI // proactively saves this and uses it to perform the unlock animation without needing to make a Loading packages/SystemUI/src/com/android/systemui/keyguard/KeyguardUnlockAnimationController.kt +21 −14 Original line number Diff line number Diff line Loading @@ -44,7 +44,6 @@ import com.android.systemui.flags.Flags import com.android.systemui.plugins.BcSmartspaceDataPlugin import com.android.systemui.shared.recents.utilities.Utilities import com.android.systemui.shared.system.ActivityManagerWrapper import com.android.systemui.shared.system.QuickStepContract import com.android.systemui.shared.system.smartspace.ILauncherUnlockAnimationController import com.android.systemui.shared.system.smartspace.ISysuiUnlockAnimationController import com.android.systemui.shared.system.smartspace.SmartspaceState Loading Loading @@ -219,6 +218,11 @@ class KeyguardUnlockAnimationController @Inject constructor( */ private var launcherUnlockController: ILauncherUnlockAnimationController? = null /** * Fully qualified class name of the launcher activity */ private var launcherActivityClass: String? = null private val listeners = ArrayList<KeyguardUnlockAnimationListener>() /** Loading @@ -226,7 +230,11 @@ class KeyguardUnlockAnimationController @Inject constructor( * doesn't happen, we won't use in-window animations or the smartspace shared element * transition, but that's okay! */ override fun setLauncherUnlockController(callback: ILauncherUnlockAnimationController?) { override fun setLauncherUnlockController( activityClass: String, callback: ILauncherUnlockAnimationController? ) { launcherActivityClass = activityClass launcherUnlockController = callback } Loading Loading @@ -545,7 +553,6 @@ class KeyguardUnlockAnimationController @Inject constructor( // gesture and the surface behind the keyguard should be made visible so that we can animate // it in. if (requestedShowSurfaceBehindKeyguard) { // If we're flinging to dismiss here, it means the touch gesture ended in a fling during // the time it takes the keyguard exit animation to start. This is an edge case race // condition, which we handle by just playing a canned animation on the now-visible Loading Loading @@ -785,7 +792,6 @@ class KeyguardUnlockAnimationController @Inject constructor( if (dismissAmount >= DISMISS_AMOUNT_SHOW_SURFACE_THRESHOLD && !keyguardViewMediator.get().requestedShowSurfaceBehindKeyguard()) { keyguardViewMediator.get().showSurfaceBehindKeyguard() } else if (dismissAmount < DISMISS_AMOUNT_SHOW_SURFACE_THRESHOLD && keyguardViewMediator.get().requestedShowSurfaceBehindKeyguard()) { Loading Loading @@ -1113,18 +1119,19 @@ class KeyguardUnlockAnimationController @Inject constructor( return playingCannedUnlockAnimation } companion object { /** * Return whether the Google Nexus launcher is underneath the keyguard, vs. some other * launcher or an app. If so, we can communicate with it to perform in-window/shared element * transitions! */ fun isNexusLauncherUnderneath(): Boolean { return ActivityManagerWrapper.getInstance() .runningTask?.topActivity?.className?.equals( QuickStepContract.LAUNCHER_ACTIVITY_CLASS_NAME) ?: false return launcherActivityClass?.let { ActivityManagerWrapper.getInstance() .runningTask?.topActivity?.className?.equals(it) } ?: false } companion object { fun isFoldable(context: Context): Boolean { return context.resources.getIntArray(R.array.config_foldedDeviceStates).isNotEmpty() } Loading packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +3 −4 Original line number Diff line number Diff line Loading @@ -128,7 +128,6 @@ import com.android.systemui.CoreStartable; import com.android.systemui.DejankUtils; import com.android.systemui.Dumpable; import com.android.systemui.EventLogTags; import com.android.systemui.res.R; import com.android.systemui.animation.ActivityLaunchAnimator; import com.android.systemui.animation.LaunchAnimator; import com.android.systemui.broadcast.BroadcastDispatcher; Loading @@ -146,6 +145,7 @@ import com.android.systemui.keyguard.ui.viewmodel.DreamingToLockscreenTransition import com.android.systemui.log.SessionTracker; import com.android.systemui.navigationbar.NavigationModeController; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.res.R; import com.android.systemui.settings.UserTracker; import com.android.systemui.shade.ShadeController; import com.android.systemui.shade.ShadeExpansionStateManager; Loading Loading @@ -181,7 +181,6 @@ import java.util.concurrent.Executor; import java.util.function.Consumer; import dagger.Lazy; import kotlinx.coroutines.CoroutineDispatcher; /** Loading Loading @@ -2833,7 +2832,7 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable, // playing in-window animations for this particular unlock since a previous unlock might // have changed the Launcher state. if (mWakeAndUnlocking && KeyguardUnlockAnimationController.Companion.isNexusLauncherUnderneath()) { && mKeyguardUnlockAnimationControllerLazy.get().isNexusLauncherUnderneath()) { flags |= KEYGUARD_GOING_AWAY_FLAG_TO_LAUNCHER_CLEAR_SNAPSHOT; } Loading Loading @@ -3287,7 +3286,7 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable, // of the in-window animations are reflected. This is needed even if we're not actually // playing in-window animations for this particular unlock since a previous unlock might // have changed the Launcher state. if (KeyguardUnlockAnimationController.Companion.isNexusLauncherUnderneath()) { if (mKeyguardUnlockAnimationControllerLazy.get().isNexusLauncherUnderneath()) { flags |= KEYGUARD_GOING_AWAY_FLAG_TO_LAUNCHER_CLEAR_SNAPSHOT; } Loading packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardUnlockAnimationControllerTest.kt +1 −1 Original line number Diff line number Diff line Loading @@ -102,7 +102,7 @@ class KeyguardUnlockAnimationControllerTest : SysuiTestCase() { notificationShadeWindowController, powerManager, wallpaperManager ) keyguardUnlockAnimationController.setLauncherUnlockController( launcherUnlockAnimationController) "", launcherUnlockAnimationController) whenever(keyguardViewController.viewRootImpl).thenReturn(mock(ViewRootImpl::class.java)) whenever(powerManager.isInteractive).thenReturn(true) Loading Loading
packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java +0 −3 Original line number Diff line number Diff line Loading @@ -37,9 +37,6 @@ import java.util.StringJoiner; * Various shared constants between Launcher and SysUI as part of quickstep */ public class QuickStepContract { // Fully qualified name of the Launcher activity. public static final String LAUNCHER_ACTIVITY_CLASS_NAME = "com.google.android.apps.nexuslauncher.NexusLauncherActivity"; public static final String KEY_EXTRA_SYSUI_PROXY = "extra_sysui_proxy"; public static final String KEY_EXTRA_UNFOLD_ANIMATION_FORWARDER = "extra_unfold_animation"; Loading
packages/SystemUI/shared/src/com/android/systemui/shared/system/smartspace/ISysuiUnlockAnimationController.aidl +2 −1 Original line number Diff line number Diff line Loading @@ -24,7 +24,8 @@ import com.android.systemui.shared.system.smartspace.SmartspaceState; interface ISysuiUnlockAnimationController { // Provides an implementation of the LauncherUnlockAnimationController to System UI, so that // SysUI can use it to control the unlock animation in the launcher window. oneway void setLauncherUnlockController(ILauncherUnlockAnimationController callback); oneway void setLauncherUnlockController( String activityClass, ILauncherUnlockAnimationController callback); // Called by Launcher whenever anything happens to change the state of its smartspace. System UI // proactively saves this and uses it to perform the unlock animation without needing to make a Loading
packages/SystemUI/src/com/android/systemui/keyguard/KeyguardUnlockAnimationController.kt +21 −14 Original line number Diff line number Diff line Loading @@ -44,7 +44,6 @@ import com.android.systemui.flags.Flags import com.android.systemui.plugins.BcSmartspaceDataPlugin import com.android.systemui.shared.recents.utilities.Utilities import com.android.systemui.shared.system.ActivityManagerWrapper import com.android.systemui.shared.system.QuickStepContract import com.android.systemui.shared.system.smartspace.ILauncherUnlockAnimationController import com.android.systemui.shared.system.smartspace.ISysuiUnlockAnimationController import com.android.systemui.shared.system.smartspace.SmartspaceState Loading Loading @@ -219,6 +218,11 @@ class KeyguardUnlockAnimationController @Inject constructor( */ private var launcherUnlockController: ILauncherUnlockAnimationController? = null /** * Fully qualified class name of the launcher activity */ private var launcherActivityClass: String? = null private val listeners = ArrayList<KeyguardUnlockAnimationListener>() /** Loading @@ -226,7 +230,11 @@ class KeyguardUnlockAnimationController @Inject constructor( * doesn't happen, we won't use in-window animations or the smartspace shared element * transition, but that's okay! */ override fun setLauncherUnlockController(callback: ILauncherUnlockAnimationController?) { override fun setLauncherUnlockController( activityClass: String, callback: ILauncherUnlockAnimationController? ) { launcherActivityClass = activityClass launcherUnlockController = callback } Loading Loading @@ -545,7 +553,6 @@ class KeyguardUnlockAnimationController @Inject constructor( // gesture and the surface behind the keyguard should be made visible so that we can animate // it in. if (requestedShowSurfaceBehindKeyguard) { // If we're flinging to dismiss here, it means the touch gesture ended in a fling during // the time it takes the keyguard exit animation to start. This is an edge case race // condition, which we handle by just playing a canned animation on the now-visible Loading Loading @@ -785,7 +792,6 @@ class KeyguardUnlockAnimationController @Inject constructor( if (dismissAmount >= DISMISS_AMOUNT_SHOW_SURFACE_THRESHOLD && !keyguardViewMediator.get().requestedShowSurfaceBehindKeyguard()) { keyguardViewMediator.get().showSurfaceBehindKeyguard() } else if (dismissAmount < DISMISS_AMOUNT_SHOW_SURFACE_THRESHOLD && keyguardViewMediator.get().requestedShowSurfaceBehindKeyguard()) { Loading Loading @@ -1113,18 +1119,19 @@ class KeyguardUnlockAnimationController @Inject constructor( return playingCannedUnlockAnimation } companion object { /** * Return whether the Google Nexus launcher is underneath the keyguard, vs. some other * launcher or an app. If so, we can communicate with it to perform in-window/shared element * transitions! */ fun isNexusLauncherUnderneath(): Boolean { return ActivityManagerWrapper.getInstance() .runningTask?.topActivity?.className?.equals( QuickStepContract.LAUNCHER_ACTIVITY_CLASS_NAME) ?: false return launcherActivityClass?.let { ActivityManagerWrapper.getInstance() .runningTask?.topActivity?.className?.equals(it) } ?: false } companion object { fun isFoldable(context: Context): Boolean { return context.resources.getIntArray(R.array.config_foldedDeviceStates).isNotEmpty() } Loading
packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +3 −4 Original line number Diff line number Diff line Loading @@ -128,7 +128,6 @@ import com.android.systemui.CoreStartable; import com.android.systemui.DejankUtils; import com.android.systemui.Dumpable; import com.android.systemui.EventLogTags; import com.android.systemui.res.R; import com.android.systemui.animation.ActivityLaunchAnimator; import com.android.systemui.animation.LaunchAnimator; import com.android.systemui.broadcast.BroadcastDispatcher; Loading @@ -146,6 +145,7 @@ import com.android.systemui.keyguard.ui.viewmodel.DreamingToLockscreenTransition import com.android.systemui.log.SessionTracker; import com.android.systemui.navigationbar.NavigationModeController; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.res.R; import com.android.systemui.settings.UserTracker; import com.android.systemui.shade.ShadeController; import com.android.systemui.shade.ShadeExpansionStateManager; Loading Loading @@ -181,7 +181,6 @@ import java.util.concurrent.Executor; import java.util.function.Consumer; import dagger.Lazy; import kotlinx.coroutines.CoroutineDispatcher; /** Loading Loading @@ -2833,7 +2832,7 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable, // playing in-window animations for this particular unlock since a previous unlock might // have changed the Launcher state. if (mWakeAndUnlocking && KeyguardUnlockAnimationController.Companion.isNexusLauncherUnderneath()) { && mKeyguardUnlockAnimationControllerLazy.get().isNexusLauncherUnderneath()) { flags |= KEYGUARD_GOING_AWAY_FLAG_TO_LAUNCHER_CLEAR_SNAPSHOT; } Loading Loading @@ -3287,7 +3286,7 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable, // of the in-window animations are reflected. This is needed even if we're not actually // playing in-window animations for this particular unlock since a previous unlock might // have changed the Launcher state. if (KeyguardUnlockAnimationController.Companion.isNexusLauncherUnderneath()) { if (mKeyguardUnlockAnimationControllerLazy.get().isNexusLauncherUnderneath()) { flags |= KEYGUARD_GOING_AWAY_FLAG_TO_LAUNCHER_CLEAR_SNAPSHOT; } Loading
packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardUnlockAnimationControllerTest.kt +1 −1 Original line number Diff line number Diff line Loading @@ -102,7 +102,7 @@ class KeyguardUnlockAnimationControllerTest : SysuiTestCase() { notificationShadeWindowController, powerManager, wallpaperManager ) keyguardUnlockAnimationController.setLauncherUnlockController( launcherUnlockAnimationController) "", launcherUnlockAnimationController) whenever(keyguardViewController.viewRootImpl).thenReturn(mock(ViewRootImpl::class.java)) whenever(powerManager.isInteractive).thenReturn(true) Loading