Fall back to default custom shortcuts if custom shortcuts are disabled
Bug: b/281528589 Test: manual - customize shortcuts, disable customization, then observe falling back to defaults Change-Id: I6d74cf9960a09b7d3261154e711f824058b0d25a Merged-In: I6d74cf9960a09b7d3261154e711f824058b0d25a
This commit is contained in:
@@ -47,7 +47,7 @@ import kotlinx.coroutines.flow.onStart
|
||||
class KeyguardQuickAffordanceLocalUserSelectionManager
|
||||
@Inject
|
||||
constructor(
|
||||
@Application context: Context,
|
||||
@Application private val context: Context,
|
||||
private val userFileManager: UserFileManager,
|
||||
private val userTracker: UserTracker,
|
||||
broadcastDispatcher: BroadcastDispatcher,
|
||||
@@ -126,6 +126,11 @@ constructor(
|
||||
}
|
||||
|
||||
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 result =
|
||||
slotKeys
|
||||
|
||||
@@ -72,6 +72,8 @@ class KeyguardQuickAffordanceLegacySettingSyncerTest : SysuiTestCase() {
|
||||
val resources: Resources = mock()
|
||||
whenever(resources.getStringArray(R.array.config_keyguardQuickAffordanceDefaults))
|
||||
.thenReturn(emptyArray())
|
||||
whenever(resources.getBoolean(R.bool.custom_lockscreen_shortcuts_enabled))
|
||||
.thenReturn(true)
|
||||
whenever(context.resources).thenReturn(resources)
|
||||
|
||||
testDispatcher = UnconfinedTestDispatcher()
|
||||
|
||||
@@ -66,6 +66,7 @@ class KeyguardQuickAffordanceLocalUserSelectionManagerTest : SysuiTestCase() {
|
||||
@Before
|
||||
fun setUp() {
|
||||
MockitoAnnotations.initMocks(this)
|
||||
overrideResource(R.bool.custom_lockscreen_shortcuts_enabled, true)
|
||||
sharedPrefs = mutableMapOf()
|
||||
whenever(userFileManager.getSharedPreferences(anyString(), anyInt(), anyInt())).thenAnswer {
|
||||
val userId = it.arguments[2] as Int
|
||||
@@ -86,6 +87,13 @@ class KeyguardQuickAffordanceLocalUserSelectionManagerTest : SysuiTestCase() {
|
||||
|
||||
@After
|
||||
fun tearDown() {
|
||||
mContext
|
||||
.getOrCreateTestableResources()
|
||||
.removeOverride(R.bool.custom_lockscreen_shortcuts_enabled)
|
||||
mContext
|
||||
.getOrCreateTestableResources()
|
||||
.removeOverride(R.array.config_keyguardQuickAffordanceDefaults)
|
||||
|
||||
Dispatchers.resetMain()
|
||||
}
|
||||
|
||||
@@ -358,6 +366,22 @@ class KeyguardQuickAffordanceLocalUserSelectionManagerTest : SysuiTestCase() {
|
||||
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(
|
||||
observed: Map<String, List<String>>?,
|
||||
expected: Map<String, List<String>>,
|
||||
|
||||
@@ -47,6 +47,7 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
import kotlinx.coroutines.test.StandardTestDispatcher
|
||||
import kotlinx.coroutines.test.TestScope
|
||||
import kotlinx.coroutines.test.runTest
|
||||
import org.junit.After
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
@@ -70,6 +71,7 @@ class KeyguardQuickAffordanceRepositoryTest : SysuiTestCase() {
|
||||
|
||||
@Before
|
||||
fun setUp() {
|
||||
overrideResource(R.bool.custom_lockscreen_shortcuts_enabled, true)
|
||||
context.resources.configuration.setLayoutDirection(Locale.US)
|
||||
config1 = FakeKeyguardQuickAffordanceConfig(FakeCustomizationProviderClient.AFFORDANCE_1)
|
||||
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
|
||||
fun setSelections() =
|
||||
testScope.runTest {
|
||||
|
||||
@@ -102,6 +102,8 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() {
|
||||
fun setUp() {
|
||||
MockitoAnnotations.initMocks(this)
|
||||
|
||||
overrideResource(R.bool.custom_lockscreen_shortcuts_enabled, true)
|
||||
|
||||
repository = FakeKeyguardRepository()
|
||||
repository.setKeyguardShowing(true)
|
||||
|
||||
@@ -200,7 +202,7 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() {
|
||||
devicePolicyManager = devicePolicyManager,
|
||||
dockManager = dockManager,
|
||||
backgroundDispatcher = testDispatcher,
|
||||
appContext = mContext,
|
||||
appContext = context,
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user