Merge "Add keyguard before app removal in Home Controls" into udc-dev am: e38a303dc4
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23049439 Change-Id: Ic0c4e64d46d2a15d1de40a183209f8fdf8d2861f Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -328,6 +328,13 @@ class ControlsUiControllerImpl @Inject constructor (
|
|||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
internal fun startRemovingApp(componentName: ComponentName, appName: CharSequence) {
|
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?.cancel()
|
||||||
removeAppDialog = dialogsFactory.createRemoveAppDialog(context, appName) { shouldRemove ->
|
removeAppDialog = dialogsFactory.createRemoveAppDialog(context, appName) { shouldRemove ->
|
||||||
if (!shouldRemove || !controlsController.get().removeFavorites(componentName)) {
|
if (!shouldRemove || !controlsController.get().removeFavorites(componentName)) {
|
||||||
|
|||||||
@@ -70,7 +70,9 @@ import org.junit.Test
|
|||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
import org.mockito.Mock
|
import org.mockito.Mock
|
||||||
import org.mockito.Mockito.clearInvocations
|
import org.mockito.Mockito.clearInvocations
|
||||||
|
import org.mockito.Mockito.doAnswer
|
||||||
import org.mockito.Mockito.doReturn
|
import org.mockito.Mockito.doReturn
|
||||||
|
import org.mockito.Mockito.isNull
|
||||||
import org.mockito.Mockito.never
|
import org.mockito.Mockito.never
|
||||||
import org.mockito.Mockito.spy
|
import org.mockito.Mockito.spy
|
||||||
import org.mockito.Mockito.verify
|
import org.mockito.Mockito.verify
|
||||||
@@ -104,6 +106,9 @@ class ControlsUiControllerImplTest : SysuiTestCase() {
|
|||||||
private lateinit var parent: FrameLayout
|
private lateinit var parent: FrameLayout
|
||||||
private lateinit var underTest: ControlsUiControllerImpl
|
private lateinit var underTest: ControlsUiControllerImpl
|
||||||
|
|
||||||
|
private var isKeyguardDismissed: Boolean = true
|
||||||
|
private var isRemoveAppDialogCreated: Boolean = false
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setup() {
|
fun setup() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.initMocks(this)
|
||||||
@@ -140,11 +145,23 @@ class ControlsUiControllerImplTest : SysuiTestCase() {
|
|||||||
authorizedPanelsRepository,
|
authorizedPanelsRepository,
|
||||||
preferredPanelRepository,
|
preferredPanelRepository,
|
||||||
featureFlags,
|
featureFlags,
|
||||||
ControlsDialogsFactory { fakeDialogController.dialog },
|
ControlsDialogsFactory {
|
||||||
|
isRemoveAppDialogCreated = true
|
||||||
|
fakeDialogController.dialog
|
||||||
|
},
|
||||||
dumpManager,
|
dumpManager,
|
||||||
)
|
)
|
||||||
`when`(userTracker.userId).thenReturn(0)
|
`when`(userTracker.userId).thenReturn(0)
|
||||||
`when`(userTracker.userHandle).thenReturn(UserHandle.of(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
|
@Test
|
||||||
@@ -413,6 +430,26 @@ class ControlsUiControllerImplTest : SysuiTestCase() {
|
|||||||
assertThat(preferredPanelRepository.getSelectedComponent()).isNull()
|
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
|
@Test
|
||||||
fun testCancelRemovingAppsDoesntRemoveFavorite() {
|
fun testCancelRemovingAppsDoesntRemoveFavorite() {
|
||||||
val componentName = ComponentName(context, "cls")
|
val componentName = ComponentName(context, "cls")
|
||||||
|
|||||||
Reference in New Issue
Block a user