diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt index 5da86de933e63..6cbf062ef340c 100644 --- a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt +++ b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt @@ -327,8 +327,8 @@ class ControlsUiControllerImpl @Inject constructor ( @VisibleForTesting internal fun startRemovingApp(componentName: ComponentName, appName: CharSequence) { removeAppDialog?.cancel() - removeAppDialog = dialogsFactory.createRemoveAppDialog(context, appName) { - if (!controlsController.get().removeFavorites(componentName)) { + removeAppDialog = dialogsFactory.createRemoveAppDialog(context, appName) { shouldRemove -> + if (!shouldRemove || !controlsController.get().removeFavorites(componentName)) { return@createRemoveAppDialog } diff --git a/packages/SystemUI/tests/src/com/android/systemui/controls/ui/ControlsUiControllerImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/controls/ui/ControlsUiControllerImplTest.kt index 3f61bf75740a3..3b609c15b4dc9 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/controls/ui/ControlsUiControllerImplTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/controls/ui/ControlsUiControllerImplTest.kt @@ -347,7 +347,7 @@ class ControlsUiControllerImplTest : SysuiTestCase() { whenever(controlsController.removeFavorites(eq(componentName))).thenReturn(true) val panel = SelectedItem.PanelItem("App name", componentName) preferredPanelRepository.setSelectedComponent( - SelectedComponentRepository.SelectedComponent(panel) + SelectedComponentRepository.SelectedComponent(panel) ) underTest.show(parent, {}, context) underTest.startRemovingApp(componentName, "Test App") @@ -361,6 +361,26 @@ class ControlsUiControllerImplTest : SysuiTestCase() { assertThat(preferredPanelRepository.getSelectedComponent()).isNull() } + @Test + fun testCancelRemovingAppsDoesntRemoveFavorite() { + val componentName = ComponentName(context, "cls") + whenever(controlsController.removeFavorites(eq(componentName))).thenReturn(true) + val panel = SelectedItem.PanelItem("App name", componentName) + preferredPanelRepository.setSelectedComponent( + SelectedComponentRepository.SelectedComponent(panel) + ) + underTest.show(parent, {}, context) + underTest.startRemovingApp(componentName, "Test App") + + fakeDialogController.clickNeutral() + + verify(controlsController, never()).removeFavorites(eq(componentName)) + assertThat(underTest.getPreferredSelectedItem(emptyList())).isEqualTo(panel) + assertThat(preferredPanelRepository.shouldAddDefaultComponent()).isTrue() + assertThat(preferredPanelRepository.getSelectedComponent()) + .isEqualTo(SelectedComponentRepository.SelectedComponent(panel)) + } + @Test fun testHideCancelsTheRemoveAppDialog() { val componentName = ComponentName(context, "cls") @@ -375,7 +395,7 @@ class ControlsUiControllerImplTest : SysuiTestCase() { private fun setUpPanel(panel: SelectedItem.PanelItem): ControlsServiceInfo { val activity = ComponentName(context, "activity") preferredPanelRepository.setSelectedComponent( - SelectedComponentRepository.SelectedComponent(panel) + SelectedComponentRepository.SelectedComponent(panel) ) return ControlsServiceInfo(panel.componentName, panel.appName, activity) }