diff options
6 files changed, 25 insertions, 34 deletions
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/data/repository/CommunalWidgetRepositoryImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/data/repository/CommunalWidgetRepositoryImplTest.kt index 475179dfdb72..a54a00d539b8 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/data/repository/CommunalWidgetRepositoryImplTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/data/repository/CommunalWidgetRepositoryImplTest.kt @@ -52,6 +52,7 @@ import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mock import org.mockito.Mockito.anyInt +import org.mockito.Mockito.eq import org.mockito.Mockito.never import org.mockito.Mockito.verify import org.mockito.MockitoAnnotations @@ -198,23 +199,27 @@ class CommunalWidgetRepositoryImplTest : SysuiTestCase() { } @Test - fun deleteWidgetFromDb() = + fun deleteWidget_deletefromDbTrue_alsoDeleteFromHost() = testScope.runTest { val id = 1 - underTest.deleteWidgetFromDb(id) + whenever(communalWidgetDao.deleteWidgetById(eq(id))).thenReturn(true) + underTest.deleteWidget(id) runCurrent() verify(communalWidgetDao).deleteWidgetById(id) + verify(appWidgetHost).deleteAppWidgetId(id) } @Test - fun deleteWidgetFromHost() = + fun deleteWidget_deletefromDbFalse_doesNotDeleteFromHost() = testScope.runTest { val id = 1 - underTest.deleteWidgetFromHost(id) + whenever(communalWidgetDao.deleteWidgetById(eq(id))).thenReturn(false) + underTest.deleteWidget(id) runCurrent() - verify(appWidgetHost).deleteAppWidgetId(id) + verify(communalWidgetDao).deleteWidgetById(id) + verify(appWidgetHost, never()).deleteAppWidgetId(id) } @Test diff --git a/packages/SystemUI/src/com/android/systemui/communal/data/repository/CommunalWidgetRepository.kt b/packages/SystemUI/src/com/android/systemui/communal/data/repository/CommunalWidgetRepository.kt index 2ac9d053f8d0..e4c91957ee56 100644 --- a/packages/SystemUI/src/com/android/systemui/communal/data/repository/CommunalWidgetRepository.kt +++ b/packages/SystemUI/src/com/android/systemui/communal/data/repository/CommunalWidgetRepository.kt @@ -54,11 +54,12 @@ interface CommunalWidgetRepository { configurator: WidgetConfigurator? = null ) {} - /** Delete a widget by id from the database. */ - fun deleteWidgetFromDb(widgetId: Int) {} - - /** Delete a widget by id from app widget host. */ - fun deleteWidgetFromHost(widgetId: Int) {} + /** + * Delete a widget by id from the database and app widget host. + * + * @param widgetId id of the widget to remove. + */ + fun deleteWidget(widgetId: Int) {} /** * Update the order of widgets in the database. @@ -146,23 +147,15 @@ constructor( } } - override fun deleteWidgetFromDb(widgetId: Int) { + override fun deleteWidget(widgetId: Int) { bgScope.launch { if (communalWidgetDao.deleteWidgetById(widgetId)) { - logger.i("Deleted widget with id $widgetId from DB .") - } else { - logger.w("Widget with id $widgetId cannot be deleted from DB.") + appWidgetHost.deleteAppWidgetId(widgetId) + logger.i("Deleted widget with id $widgetId.") } } } - override fun deleteWidgetFromHost(widgetId: Int) { - bgScope.launch { - appWidgetHost.deleteAppWidgetId(widgetId) - logger.i("Deleted widget with id $widgetId.") - } - } - override fun updateWidgetOrder(widgetIdToPriorityMap: Map<Int, Int>) { bgScope.launch { communalWidgetDao.updateWidgetOrder(widgetIdToPriorityMap) diff --git a/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalInteractor.kt b/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalInteractor.kt index 23f590e30235..b4f4099af124 100644 --- a/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalInteractor.kt @@ -236,14 +236,11 @@ constructor( ) = widgetRepository.addWidget(componentName, priority, configurator) /** - * Delete a widget by id from the database. [CommunalAppWidgetHostStartable] invokes this - * function to manage the deletion from the database for uninstalled or user-deleted widgets, - * following the removal of a widget from the host. + * Delete a widget by id. Called when user deletes a widget from the hub or a widget is + * uninstalled from App widget host. */ - fun deleteWidgetFromDb(id: Int) = widgetRepository.deleteWidgetFromDb(id) + fun deleteWidget(id: Int) = widgetRepository.deleteWidget(id) - /** Delete a widget by id from AppWidgetHost. Called when user deletes a widget from the hub */ - fun deleteWidgetFromHost(id: Int) = widgetRepository.deleteWidgetFromHost(id) /** * Reorder the widgets. * diff --git a/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalEditModeViewModel.kt b/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalEditModeViewModel.kt index 69d55815fe01..0b355cc10db5 100644 --- a/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalEditModeViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalEditModeViewModel.kt @@ -62,7 +62,7 @@ constructor( override val reorderingWidgets: StateFlow<Boolean> get() = _reorderingWidgets - override fun onDeleteWidget(id: Int) = communalInteractor.deleteWidgetFromHost(id) + override fun onDeleteWidget(id: Int) = communalInteractor.deleteWidget(id) override fun onReorderWidgets(widgetIdToPriorityMap: Map<Int, Int>) = communalInteractor.updateWidgetOrder(widgetIdToPriorityMap) diff --git a/packages/SystemUI/src/com/android/systemui/communal/widgets/CommunalAppWidgetHostStartable.kt b/packages/SystemUI/src/com/android/systemui/communal/widgets/CommunalAppWidgetHostStartable.kt index 6fd0fbe80fd7..4ddd7681dd98 100644 --- a/packages/SystemUI/src/com/android/systemui/communal/widgets/CommunalAppWidgetHostStartable.kt +++ b/packages/SystemUI/src/com/android/systemui/communal/widgets/CommunalAppWidgetHostStartable.kt @@ -50,7 +50,7 @@ constructor( .launchIn(bgScope) appWidgetHost.appWidgetIdToRemove - .onEach { appWidgetId -> communalInteractor.deleteWidgetFromDb(appWidgetId) } + .onEach { appWidgetId -> communalInteractor.deleteWidget(id = appWidgetId) } .launchIn(bgScope) } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/communal/data/repository/FakeCommunalWidgetRepository.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/communal/data/repository/FakeCommunalWidgetRepository.kt index 7301404eada0..fab64e38e1f8 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/communal/data/repository/FakeCommunalWidgetRepository.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/communal/data/repository/FakeCommunalWidgetRepository.kt @@ -36,7 +36,7 @@ class FakeCommunalWidgetRepository(private val coroutineScope: CoroutineScope) : } } - override fun deleteWidgetFromDb(widgetId: Int) { + override fun deleteWidget(widgetId: Int) { if (_communalWidgets.value.none { it.appWidgetId == widgetId }) { return } @@ -44,10 +44,6 @@ class FakeCommunalWidgetRepository(private val coroutineScope: CoroutineScope) : _communalWidgets.value = _communalWidgets.value.filter { it.appWidgetId != widgetId } } - override fun deleteWidgetFromHost(widgetId: Int) { - deleteWidgetFromDb(widgetId) - } - private fun onConfigured(id: Int, providerInfo: AppWidgetProviderInfo, priority: Int) { _communalWidgets.value += listOf(CommunalWidgetContentModel(id, providerInfo, priority)) } |