Merge "Fall back to default custom shortcuts if custom shortcuts are disabled" into udc-dev

This commit is contained in:
Brad Hinegardner
2023-05-26 19:36:40 +00:00
committed by Android (Google) Code Review
5 changed files with 44 additions and 2 deletions

View File

@@ -47,7 +47,7 @@ import kotlinx.coroutines.flow.onStart
class KeyguardQuickAffordanceLocalUserSelectionManager class KeyguardQuickAffordanceLocalUserSelectionManager
@Inject @Inject
constructor( constructor(
@Application context: Context, @Application private val context: Context,
private val userFileManager: UserFileManager, private val userFileManager: UserFileManager,
private val userTracker: UserTracker, private val userTracker: UserTracker,
broadcastDispatcher: BroadcastDispatcher, broadcastDispatcher: BroadcastDispatcher,
@@ -126,6 +126,11 @@ constructor(
} }
override fun getSelections(): Map<String, List<String>> { override fun getSelections(): Map<String, List<String>> {
// If the custom shortcuts feature is not enabled, ignore prior selections and use defaults
if (!context.resources.getBoolean(R.bool.custom_lockscreen_shortcuts_enabled)) {
return defaults
}
val slotKeys = sharedPrefs.all.keys.filter { it.startsWith(KEY_PREFIX_SLOT) } val slotKeys = sharedPrefs.all.keys.filter { it.startsWith(KEY_PREFIX_SLOT) }
val result = val result =
slotKeys slotKeys

View File

@@ -72,6 +72,8 @@ class KeyguardQuickAffordanceLegacySettingSyncerTest : SysuiTestCase() {
val resources: Resources = mock() val resources: Resources = mock()
whenever(resources.getStringArray(R.array.config_keyguardQuickAffordanceDefaults)) whenever(resources.getStringArray(R.array.config_keyguardQuickAffordanceDefaults))
.thenReturn(emptyArray()) .thenReturn(emptyArray())
whenever(resources.getBoolean(R.bool.custom_lockscreen_shortcuts_enabled))
.thenReturn(true)
whenever(context.resources).thenReturn(resources) whenever(context.resources).thenReturn(resources)
testDispatcher = UnconfinedTestDispatcher() testDispatcher = UnconfinedTestDispatcher()

View File

@@ -66,6 +66,7 @@ class KeyguardQuickAffordanceLocalUserSelectionManagerTest : SysuiTestCase() {
@Before @Before
fun setUp() { fun setUp() {
MockitoAnnotations.initMocks(this) MockitoAnnotations.initMocks(this)
overrideResource(R.bool.custom_lockscreen_shortcuts_enabled, true)
sharedPrefs = mutableMapOf() sharedPrefs = mutableMapOf()
whenever(userFileManager.getSharedPreferences(anyString(), anyInt(), anyInt())).thenAnswer { whenever(userFileManager.getSharedPreferences(anyString(), anyInt(), anyInt())).thenAnswer {
val userId = it.arguments[2] as Int val userId = it.arguments[2] as Int
@@ -86,6 +87,13 @@ class KeyguardQuickAffordanceLocalUserSelectionManagerTest : SysuiTestCase() {
@After @After
fun tearDown() { fun tearDown() {
mContext
.getOrCreateTestableResources()
.removeOverride(R.bool.custom_lockscreen_shortcuts_enabled)
mContext
.getOrCreateTestableResources()
.removeOverride(R.array.config_keyguardQuickAffordanceDefaults)
Dispatchers.resetMain() Dispatchers.resetMain()
} }
@@ -358,6 +366,22 @@ class KeyguardQuickAffordanceLocalUserSelectionManagerTest : SysuiTestCase() {
job.cancel() job.cancel()
} }
@Test
fun getSelections_alwaysReturnsDefaultsIfCustomShortcutsFeatureDisabled() {
overrideResource(R.bool.custom_lockscreen_shortcuts_enabled, false)
overrideResource(
R.array.config_keyguardQuickAffordanceDefaults,
arrayOf("leftTest:testShortcut1", "rightTest:testShortcut2")
)
assertThat(underTest.getSelections()).isEqualTo(
mapOf(
"leftTest" to listOf("testShortcut1"),
"rightTest" to listOf("testShortcut2"),
)
)
}
private fun assertSelections( private fun assertSelections(
observed: Map<String, List<String>>?, observed: Map<String, List<String>>?,
expected: Map<String, List<String>>, expected: Map<String, List<String>>,

View File

@@ -47,6 +47,7 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.test.StandardTestDispatcher import kotlinx.coroutines.test.StandardTestDispatcher
import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.TestScope
import kotlinx.coroutines.test.runTest import kotlinx.coroutines.test.runTest
import org.junit.After
import org.junit.Before import org.junit.Before
import org.junit.Test import org.junit.Test
import org.junit.runner.RunWith import org.junit.runner.RunWith
@@ -70,6 +71,7 @@ class KeyguardQuickAffordanceRepositoryTest : SysuiTestCase() {
@Before @Before
fun setUp() { fun setUp() {
overrideResource(R.bool.custom_lockscreen_shortcuts_enabled, true)
context.resources.configuration.setLayoutDirection(Locale.US) context.resources.configuration.setLayoutDirection(Locale.US)
config1 = FakeKeyguardQuickAffordanceConfig(FakeCustomizationProviderClient.AFFORDANCE_1) config1 = FakeKeyguardQuickAffordanceConfig(FakeCustomizationProviderClient.AFFORDANCE_1)
config2 = FakeKeyguardQuickAffordanceConfig(FakeCustomizationProviderClient.AFFORDANCE_2) config2 = FakeKeyguardQuickAffordanceConfig(FakeCustomizationProviderClient.AFFORDANCE_2)
@@ -137,6 +139,13 @@ class KeyguardQuickAffordanceRepositoryTest : SysuiTestCase() {
) )
} }
@After
fun tearDown() {
mContext
.getOrCreateTestableResources()
.removeOverride(R.bool.custom_lockscreen_shortcuts_enabled)
}
@Test @Test
fun setSelections() = fun setSelections() =
testScope.runTest { testScope.runTest {

View File

@@ -102,6 +102,8 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() {
fun setUp() { fun setUp() {
MockitoAnnotations.initMocks(this) MockitoAnnotations.initMocks(this)
overrideResource(R.bool.custom_lockscreen_shortcuts_enabled, true)
repository = FakeKeyguardRepository() repository = FakeKeyguardRepository()
repository.setKeyguardShowing(true) repository.setKeyguardShowing(true)
@@ -200,7 +202,7 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() {
devicePolicyManager = devicePolicyManager, devicePolicyManager = devicePolicyManager,
dockManager = dockManager, dockManager = dockManager,
backgroundDispatcher = testDispatcher, backgroundDispatcher = testDispatcher,
appContext = mContext, appContext = context,
) )
} }