Merge "Fall back to default custom shortcuts if custom shortcuts are disabled" into udc-dev am: 1fe8b30f0f
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23197030 Change-Id: Ifd73f6a2ce66c38b2bd1259448d735aa5bb238c3 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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>>,
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user