summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/communal/data/repository/CommunalWidgetRepositoryImplTest.kt15
-rw-r--r--packages/SystemUI/src/com/android/systemui/communal/data/repository/CommunalWidgetRepository.kt25
-rw-r--r--packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalInteractor.kt9
-rw-r--r--packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalEditModeViewModel.kt2
-rw-r--r--packages/SystemUI/src/com/android/systemui/communal/widgets/CommunalAppWidgetHostStartable.kt2
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/communal/data/repository/FakeCommunalWidgetRepository.kt6
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))
}