Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d221d28b authored by Coco Duan's avatar Coco Duan Committed by Android (Google) Code Review
Browse files

Merge "Clean up delete widget functions in CommunalWidgetRepository" into main

parents 43b8ccaa 09b1588e
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -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
+9 −16
Original line number Diff line number Diff line
@@ -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,22 +147,14 @@ 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.")
            }
        }
    }

    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 {
+3 −6
Original line number Diff line number Diff line
@@ -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.
     *
+1 −1
Original line number Diff line number Diff line
@@ -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)
+1 −1
Original line number Diff line number Diff line
@@ -50,7 +50,7 @@ constructor(
            .launchIn(bgScope)

        appWidgetHost.appWidgetIdToRemove
            .onEach { appWidgetId -> communalInteractor.deleteWidgetFromDb(appWidgetId) }
            .onEach { appWidgetId -> communalInteractor.deleteWidget(id = appWidgetId) }
            .launchIn(bgScope)
    }

Loading