diff options
| author | 2024-05-07 16:47:19 +0000 | |
|---|---|---|
| committer | 2024-05-07 16:47:19 +0000 | |
| commit | a72e33cc908356d0a622c9f8f4cf09842d55af1c (patch) | |
| tree | dcd3834ef56cb0c71b7ec5bc2729c69967ccc83b | |
| parent | 9cdd3afacd87fd9de3700ac38c6ebed1caeabfd6 (diff) | |
| parent | 598d7a18601a04b9904f0e170cc7c1777a3389ff (diff) | |
Merge "Security fix for VPN app killable via lockscreen." into udc-dev
2 files changed, 15 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/footer/ui/viewmodel/FooterActionsViewModel.kt b/packages/SystemUI/src/com/android/systemui/qs/footer/ui/viewmodel/FooterActionsViewModel.kt index b3596a254b7d..b9258ac1497a 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/footer/ui/viewmodel/FooterActionsViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/footer/ui/viewmodel/FooterActionsViewModel.kt @@ -30,6 +30,7 @@ import com.android.systemui.common.shared.model.Icon  import com.android.systemui.dagger.SysUISingleton  import com.android.systemui.dagger.qualifiers.Application  import com.android.systemui.globalactions.GlobalActionsDialogLite +import com.android.systemui.plugins.ActivityStarter  import com.android.systemui.plugins.FalsingManager  import com.android.systemui.qs.dagger.QSFlagsModule.PM_LITE_ENABLED  import com.android.systemui.qs.footer.data.model.UserSwitcherStatusModel @@ -54,6 +55,7 @@ class FooterActionsViewModel(      private val footerActionsInteractor: FooterActionsInteractor,      private val falsingManager: FalsingManager,      private val globalActionsDialogLite: GlobalActionsDialogLite, +    private val activityStarter: ActivityStarter,      showPowerButton: Boolean,  ) {      /** The context themed with the Quick Settings colors. */ @@ -222,7 +224,14 @@ class FooterActionsViewModel(              return          } -        footerActionsInteractor.showForegroundServicesDialog(expandable) +        activityStarter.dismissKeyguardThenExecute( +            { +                footerActionsInteractor.showForegroundServicesDialog(expandable) +                false /* if the dismiss should be deferred */ +            }, +            null /* cancelAction */, +            true /* afterKeyguardGone */ +        )      }      private fun onUserSwitcherClicked(expandable: Expandable) { @@ -283,6 +292,7 @@ class FooterActionsViewModel(          private val falsingManager: FalsingManager,          private val footerActionsInteractor: FooterActionsInteractor,          private val globalActionsDialogLiteProvider: Provider<GlobalActionsDialogLite>, +        private val activityStarter: ActivityStarter,          @Named(PM_LITE_ENABLED) private val showPowerButton: Boolean,      ) {          /** Create a [FooterActionsViewModel] bound to the lifecycle of [lifecycleOwner]. */ @@ -308,6 +318,7 @@ class FooterActionsViewModel(                  footerActionsInteractor,                  falsingManager,                  globalActionsDialogLite, +                activityStarter,                  showPowerButton,              )          } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/footer/FooterActionsTestUtils.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/footer/FooterActionsTestUtils.kt index 1a893f8c523c..a94acf9c8106 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/footer/FooterActionsTestUtils.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/footer/FooterActionsTestUtils.kt @@ -68,6 +68,7 @@ class FooterActionsTestUtils(      private val testableLooper: TestableLooper,      private val scheduler: TestCoroutineScheduler,  ) { +    private val mockActivityStarter: ActivityStarter = mock<ActivityStarter>()      /** Enable or disable the user switcher in the settings. */      fun setUserSwitcherEnabled(settings: GlobalSettings, enabled: Boolean, userId: Int) {          settings.putBoolForUser(Settings.Global.USER_SWITCHER_ENABLED, enabled, userId) @@ -90,13 +91,14 @@ class FooterActionsTestUtils(              footerActionsInteractor,              falsingManager,              globalActionsDialogLite, +            mockActivityStarter,              showPowerButton,          )      }      /** Create a [FooterActionsInteractor] to be used in tests. */      fun footerActionsInteractor( -        activityStarter: ActivityStarter = mock(), +        activityStarter: ActivityStarter = mockActivityStarter,          metricsLogger: MetricsLogger = FakeMetricsLogger(),          uiEventLogger: UiEventLogger = UiEventLoggerFake(),          deviceProvisionedController: DeviceProvisionedController = mock(),  |