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
@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

View File

@@ -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()

View File

@@ -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>>,

View File

@@ -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 {

View File

@@ -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,
)
}