Loading core/java/android/app/ActivityOptions.java +1 −0 Original line number Diff line number Diff line Loading @@ -2505,6 +2505,7 @@ public class ActivityOptions extends ComponentOptions { mSpecsFuture = otherOptions.mSpecsFuture; mRemoteAnimationAdapter = otherOptions.mRemoteAnimationAdapter; mLaunchIntoPipParams = otherOptions.mLaunchIntoPipParams; mLaunchDisplayId = otherOptions.mLaunchDisplayId; mIsEligibleForLegacyPermissionPrompt = otherOptions.mIsEligibleForLegacyPermissionPrompt; sendResultIgnoreErrors(mAnimationAbortListener, null); Loading packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/LegacyActivityStarterInternalImplTest.kt +46 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.systemui.statusbar.phone import android.app.ActivityOptions import android.app.IActivityTaskManager import android.app.PendingIntent import android.content.Intent import android.os.Bundle Loading @@ -25,6 +26,7 @@ import android.os.RemoteException import android.os.UserHandle import android.platform.test.annotations.DisableFlags import android.platform.test.annotations.EnableFlags import android.view.RemoteAnimationAdapter import android.view.View import android.widget.FrameLayout import android.window.SplashScreen.SPLASH_SCREEN_STYLE_SOLID_COLOR Loading @@ -44,6 +46,7 @@ import com.android.systemui.keyguard.KeyguardViewMediator import com.android.systemui.keyguard.WakefulnessLifecycle import com.android.systemui.kosmos.testScope import com.android.systemui.model.SysUiState import com.android.systemui.plugins.ActivityStartOptions import com.android.systemui.plugins.ActivityStarter.OnDismissAction import com.android.systemui.settings.UserTracker import com.android.systemui.shade.ShadeController Loading Loading @@ -107,12 +110,14 @@ class LegacyActivityStarterInternalImplTest : SysuiTestCase() { @Mock private lateinit var statusBarStateController: SysuiStatusBarStateController @Mock private lateinit var keyguardUpdateMonitor: KeyguardUpdateMonitor @Mock private lateinit var deviceProvisionedController: DeviceProvisionedController @Mock private lateinit var activityTaskManager: IActivityTaskManager @Mock private lateinit var userTracker: UserTracker @Mock private lateinit var activityIntentHelper: ActivityIntentHelper @Mock private lateinit var communalSceneInteractor: CommunalSceneInteractor @Mock private lateinit var communalSettingsInteractor: CommunalSettingsInteractor @Mock private lateinit var perDisplaySysUiStateRepository: PerDisplayRepository<SysUiState> @Mock private lateinit var sysUIState: SysUiState @Mock private lateinit var remoteAnimationAdapter: RemoteAnimationAdapter private lateinit var underTest: LegacyActivityStarterInternalImpl private val kosmos = testKosmos() private val mainExecutor = FakeExecutor(FakeSystemClock()) Loading Loading @@ -147,6 +152,7 @@ class LegacyActivityStarterInternalImplTest : SysuiTestCase() { deviceProvisionedController = deviceProvisionedController, userTracker = userTracker, activityIntentHelper = activityIntentHelper, activityTaskManager = activityTaskManager, mainExecutor = mainExecutor, applicationScope = kosmos.testScope, communalSceneInteractor = communalSceneInteractor, Loading Loading @@ -259,6 +265,46 @@ class LegacyActivityStarterInternalImplTest : SysuiTestCase() { .startIntentWithAnimation(eq(null), eq(false), eq(null), eq(false), any()) } @Test fun startActivityDismissingKeyguard_includesDisplayLaunchId() { val intent = mock(Intent::class.java) val activityOptions = ActivityOptions.makeBasic().apply { launchDisplayId = 17 } underTest.startActivityDismissingKeyguard( ActivityStartOptions(intent, activityOptions = activityOptions) ) mainExecutor.runAllReady() val intentStarterCaptor = argumentCaptor<(RemoteAnimationAdapter?) -> Int>() verify(activityTransitionAnimator) .startIntentWithAnimation( eq(null), eq(false), eq(null), eq(false), intentStarterCaptor.capture(), ) intentStarterCaptor.lastValue(remoteAnimationAdapter) val activityOptionsCaptor = argumentCaptor<Bundle>() verify(activityTaskManager) .startActivityAsUser( eq(null), any(), eq(null), eq(intent), eq(null), eq(null), eq(null), any(), any(), eq(null), activityOptionsCaptor.capture(), any(), ) val calledActivityOptions = ActivityOptions.fromBundle(activityOptionsCaptor.lastValue) assertThat(calledActivityOptions.launchDisplayId).isEqualTo(17) } @Test fun startPendingIntentDismissingKeyguard_keyguardShowing_dismissWithAction() { val pendingIntent = mock(PendingIntent::class.java) Loading packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlayController.java +4 −1 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBO import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.app.ActivityOptions; import android.app.RemoteAction; import android.content.BroadcastReceiver; import android.content.ClipData; Loading Loading @@ -488,7 +489,9 @@ public class ClipboardOverlayController implements ClipboardListener.ClipboardOv mActivityStarter.startActivityDismissingKeyguard( new ActivityStartOptions(intent, false, false, null, intent.getFlags(), null, null, false, mUserTracker.getUserHandle(), null)); mUserTracker.getUserHandle(), ActivityOptions.makeBasic() .setLaunchDisplayId(mContext.getDisplayId()))); } else { mContext.startActivity(intent); } Loading packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardToast.java +2 −1 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.systemui.clipboardoverlay; import android.content.Context; import android.widget.Toast; import com.android.systemui.clipboardoverlay.dagger.ClipboardOverlayModule; import com.android.systemui.res.R; import javax.inject.Inject; Loading @@ -31,7 +32,7 @@ class ClipboardToast extends Toast.Callback { private Toast mCopiedToast; @Inject ClipboardToast(Context context) { ClipboardToast(@ClipboardOverlayModule.OverlayWindowContext Context context) { mContext = context; } Loading packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardTransitionExecutor.kt +1 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ constructor( ) transition.second.startExit() if (clipboardOverlayMultiuser()) { transition.first.launchDisplayId = window.context.displayId activityStarter.startActivityDismissingKeyguard( ActivityStartOptions( intent, Loading Loading
core/java/android/app/ActivityOptions.java +1 −0 Original line number Diff line number Diff line Loading @@ -2505,6 +2505,7 @@ public class ActivityOptions extends ComponentOptions { mSpecsFuture = otherOptions.mSpecsFuture; mRemoteAnimationAdapter = otherOptions.mRemoteAnimationAdapter; mLaunchIntoPipParams = otherOptions.mLaunchIntoPipParams; mLaunchDisplayId = otherOptions.mLaunchDisplayId; mIsEligibleForLegacyPermissionPrompt = otherOptions.mIsEligibleForLegacyPermissionPrompt; sendResultIgnoreErrors(mAnimationAbortListener, null); Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/LegacyActivityStarterInternalImplTest.kt +46 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.systemui.statusbar.phone import android.app.ActivityOptions import android.app.IActivityTaskManager import android.app.PendingIntent import android.content.Intent import android.os.Bundle Loading @@ -25,6 +26,7 @@ import android.os.RemoteException import android.os.UserHandle import android.platform.test.annotations.DisableFlags import android.platform.test.annotations.EnableFlags import android.view.RemoteAnimationAdapter import android.view.View import android.widget.FrameLayout import android.window.SplashScreen.SPLASH_SCREEN_STYLE_SOLID_COLOR Loading @@ -44,6 +46,7 @@ import com.android.systemui.keyguard.KeyguardViewMediator import com.android.systemui.keyguard.WakefulnessLifecycle import com.android.systemui.kosmos.testScope import com.android.systemui.model.SysUiState import com.android.systemui.plugins.ActivityStartOptions import com.android.systemui.plugins.ActivityStarter.OnDismissAction import com.android.systemui.settings.UserTracker import com.android.systemui.shade.ShadeController Loading Loading @@ -107,12 +110,14 @@ class LegacyActivityStarterInternalImplTest : SysuiTestCase() { @Mock private lateinit var statusBarStateController: SysuiStatusBarStateController @Mock private lateinit var keyguardUpdateMonitor: KeyguardUpdateMonitor @Mock private lateinit var deviceProvisionedController: DeviceProvisionedController @Mock private lateinit var activityTaskManager: IActivityTaskManager @Mock private lateinit var userTracker: UserTracker @Mock private lateinit var activityIntentHelper: ActivityIntentHelper @Mock private lateinit var communalSceneInteractor: CommunalSceneInteractor @Mock private lateinit var communalSettingsInteractor: CommunalSettingsInteractor @Mock private lateinit var perDisplaySysUiStateRepository: PerDisplayRepository<SysUiState> @Mock private lateinit var sysUIState: SysUiState @Mock private lateinit var remoteAnimationAdapter: RemoteAnimationAdapter private lateinit var underTest: LegacyActivityStarterInternalImpl private val kosmos = testKosmos() private val mainExecutor = FakeExecutor(FakeSystemClock()) Loading Loading @@ -147,6 +152,7 @@ class LegacyActivityStarterInternalImplTest : SysuiTestCase() { deviceProvisionedController = deviceProvisionedController, userTracker = userTracker, activityIntentHelper = activityIntentHelper, activityTaskManager = activityTaskManager, mainExecutor = mainExecutor, applicationScope = kosmos.testScope, communalSceneInteractor = communalSceneInteractor, Loading Loading @@ -259,6 +265,46 @@ class LegacyActivityStarterInternalImplTest : SysuiTestCase() { .startIntentWithAnimation(eq(null), eq(false), eq(null), eq(false), any()) } @Test fun startActivityDismissingKeyguard_includesDisplayLaunchId() { val intent = mock(Intent::class.java) val activityOptions = ActivityOptions.makeBasic().apply { launchDisplayId = 17 } underTest.startActivityDismissingKeyguard( ActivityStartOptions(intent, activityOptions = activityOptions) ) mainExecutor.runAllReady() val intentStarterCaptor = argumentCaptor<(RemoteAnimationAdapter?) -> Int>() verify(activityTransitionAnimator) .startIntentWithAnimation( eq(null), eq(false), eq(null), eq(false), intentStarterCaptor.capture(), ) intentStarterCaptor.lastValue(remoteAnimationAdapter) val activityOptionsCaptor = argumentCaptor<Bundle>() verify(activityTaskManager) .startActivityAsUser( eq(null), any(), eq(null), eq(intent), eq(null), eq(null), eq(null), any(), any(), eq(null), activityOptionsCaptor.capture(), any(), ) val calledActivityOptions = ActivityOptions.fromBundle(activityOptionsCaptor.lastValue) assertThat(calledActivityOptions.launchDisplayId).isEqualTo(17) } @Test fun startPendingIntentDismissingKeyguard_keyguardShowing_dismissWithAction() { val pendingIntent = mock(PendingIntent::class.java) Loading
packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlayController.java +4 −1 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBO import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.app.ActivityOptions; import android.app.RemoteAction; import android.content.BroadcastReceiver; import android.content.ClipData; Loading Loading @@ -488,7 +489,9 @@ public class ClipboardOverlayController implements ClipboardListener.ClipboardOv mActivityStarter.startActivityDismissingKeyguard( new ActivityStartOptions(intent, false, false, null, intent.getFlags(), null, null, false, mUserTracker.getUserHandle(), null)); mUserTracker.getUserHandle(), ActivityOptions.makeBasic() .setLaunchDisplayId(mContext.getDisplayId()))); } else { mContext.startActivity(intent); } Loading
packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardToast.java +2 −1 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.systemui.clipboardoverlay; import android.content.Context; import android.widget.Toast; import com.android.systemui.clipboardoverlay.dagger.ClipboardOverlayModule; import com.android.systemui.res.R; import javax.inject.Inject; Loading @@ -31,7 +32,7 @@ class ClipboardToast extends Toast.Callback { private Toast mCopiedToast; @Inject ClipboardToast(Context context) { ClipboardToast(@ClipboardOverlayModule.OverlayWindowContext Context context) { mContext = context; } Loading
packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardTransitionExecutor.kt +1 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ constructor( ) transition.second.startExit() if (clipboardOverlayMultiuser()) { transition.first.launchDisplayId = window.context.displayId activityStarter.startActivityDismissingKeyguard( ActivityStartOptions( intent, Loading