Merge "Add keyguard before app removal in Home Controls" into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
e38a303dc4
@@ -328,6 +328,13 @@ class ControlsUiControllerImpl @Inject constructor (
|
||||
|
||||
@VisibleForTesting
|
||||
internal fun startRemovingApp(componentName: ComponentName, appName: CharSequence) {
|
||||
activityStarter.dismissKeyguardThenExecute({
|
||||
showAppRemovalDialog(componentName, appName)
|
||||
true
|
||||
}, null, true)
|
||||
}
|
||||
|
||||
private fun showAppRemovalDialog(componentName: ComponentName, appName: CharSequence) {
|
||||
removeAppDialog?.cancel()
|
||||
removeAppDialog = dialogsFactory.createRemoveAppDialog(context, appName) { shouldRemove ->
|
||||
if (!shouldRemove || !controlsController.get().removeFavorites(componentName)) {
|
||||
|
||||
@@ -70,7 +70,9 @@ import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.mockito.Mock
|
||||
import org.mockito.Mockito.clearInvocations
|
||||
import org.mockito.Mockito.doAnswer
|
||||
import org.mockito.Mockito.doReturn
|
||||
import org.mockito.Mockito.isNull
|
||||
import org.mockito.Mockito.never
|
||||
import org.mockito.Mockito.spy
|
||||
import org.mockito.Mockito.verify
|
||||
@@ -104,6 +106,9 @@ class ControlsUiControllerImplTest : SysuiTestCase() {
|
||||
private lateinit var parent: FrameLayout
|
||||
private lateinit var underTest: ControlsUiControllerImpl
|
||||
|
||||
private var isKeyguardDismissed: Boolean = true
|
||||
private var isRemoveAppDialogCreated: Boolean = false
|
||||
|
||||
@Before
|
||||
fun setup() {
|
||||
MockitoAnnotations.initMocks(this)
|
||||
@@ -140,11 +145,23 @@ class ControlsUiControllerImplTest : SysuiTestCase() {
|
||||
authorizedPanelsRepository,
|
||||
preferredPanelRepository,
|
||||
featureFlags,
|
||||
ControlsDialogsFactory { fakeDialogController.dialog },
|
||||
ControlsDialogsFactory {
|
||||
isRemoveAppDialogCreated = true
|
||||
fakeDialogController.dialog
|
||||
},
|
||||
dumpManager,
|
||||
)
|
||||
`when`(userTracker.userId).thenReturn(0)
|
||||
`when`(userTracker.userHandle).thenReturn(UserHandle.of(0))
|
||||
doAnswer {
|
||||
if (isKeyguardDismissed) {
|
||||
it.getArgument<ActivityStarter.OnDismissAction>(0).onDismiss()
|
||||
} else {
|
||||
it.getArgument<Runnable?>(1)?.run()
|
||||
}
|
||||
}
|
||||
.whenever(activityStarter)
|
||||
.dismissKeyguardThenExecute(any(), isNull(), any())
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -413,6 +430,26 @@ class ControlsUiControllerImplTest : SysuiTestCase() {
|
||||
assertThat(preferredPanelRepository.getSelectedComponent()).isNull()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testKeyguardRemovingAppsNotShowingDialog() {
|
||||
isKeyguardDismissed = false
|
||||
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")
|
||||
|
||||
assertThat(isRemoveAppDialogCreated).isFalse()
|
||||
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 testCancelRemovingAppsDoesntRemoveFavorite() {
|
||||
val componentName = ComponentName(context, "cls")
|
||||
|
||||
Reference in New Issue
Block a user