summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/shared/src/com/android/systemui/shared/keyguard/data/content/KeyguardQuickAffordanceProviderContract.kt2
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyguard/KeyguardQuickAffordanceProvider.kt11
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractor.kt12
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardQuickAffordanceProviderTest.kt22
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorTest.kt49
5 files changed, 80 insertions, 16 deletions
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/keyguard/data/content/KeyguardQuickAffordanceProviderContract.kt b/packages/SystemUI/shared/src/com/android/systemui/shared/keyguard/data/content/KeyguardQuickAffordanceProviderContract.kt
index f60db2ad2687..71469a363f74 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/keyguard/data/content/KeyguardQuickAffordanceProviderContract.kt
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/keyguard/data/content/KeyguardQuickAffordanceProviderContract.kt
@@ -106,6 +106,8 @@ object KeyguardQuickAffordanceProviderContract {
const val SLOT_ID = "slot_id"
/** String. Unique ID for the selected affordance. */
const val AFFORDANCE_ID = "affordance_id"
+ /** String. Human-readable name for the affordance. */
+ const val AFFORDANCE_NAME = "affordance_name"
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardQuickAffordanceProvider.kt b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardQuickAffordanceProvider.kt
index 1f1ed007fca0..bfc60c17225f 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardQuickAffordanceProvider.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardQuickAffordanceProvider.kt
@@ -199,16 +199,19 @@ class KeyguardQuickAffordanceProvider :
arrayOf(
Contract.SelectionTable.Columns.SLOT_ID,
Contract.SelectionTable.Columns.AFFORDANCE_ID,
+ Contract.SelectionTable.Columns.AFFORDANCE_NAME,
)
)
.apply {
- val affordanceIdsBySlotId = interactor.getSelections()
- affordanceIdsBySlotId.entries.forEach { (slotId, affordanceIds) ->
- affordanceIds.forEach { affordanceId ->
+ val affordanceRepresentationsBySlotId = interactor.getSelections()
+ affordanceRepresentationsBySlotId.entries.forEach {
+ (slotId, affordanceRepresentations) ->
+ affordanceRepresentations.forEach { affordanceRepresentation ->
addRow(
arrayOf(
slotId,
- affordanceId,
+ affordanceRepresentation.id,
+ affordanceRepresentation.name,
)
)
}
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractor.kt
index 45eb6f501287..c8216c5d72d7 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractor.kt
@@ -189,12 +189,18 @@ constructor(
}
/** Returns affordance IDs indexed by slot ID, for all known slots. */
- fun getSelections(): Map<String, List<String>> {
+ fun getSelections(): Map<String, List<KeyguardQuickAffordancePickerRepresentation>> {
check(isUsingRepository)
+ val slots = repository.get().getSlotPickerRepresentations()
val selections = repository.get().getSelections()
- return repository.get().getSlotPickerRepresentations().associate { slotRepresentation ->
- slotRepresentation.id to (selections[slotRepresentation.id] ?: emptyList())
+ val affordanceById =
+ getAffordancePickerRepresentations().associateBy { affordance -> affordance.id }
+ return slots.associate { slot ->
+ slot.id to
+ (selections[slot.id] ?: emptyList()).mapNotNull { affordanceId ->
+ affordanceById[affordanceId]
+ }
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardQuickAffordanceProviderTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardQuickAffordanceProviderTest.kt
index 8395f02cbc41..5e27a500125b 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardQuickAffordanceProviderTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardQuickAffordanceProviderTest.kt
@@ -99,10 +99,12 @@ class KeyguardQuickAffordanceProviderTest : SysuiTestCase() {
setOf(
FakeKeyguardQuickAffordanceConfig(
key = AFFORDANCE_1,
+ pickerName = AFFORDANCE_1_NAME,
pickerIconResourceId = 1,
),
FakeKeyguardQuickAffordanceConfig(
key = AFFORDANCE_2,
+ pickerName = AFFORDANCE_2_NAME,
pickerIconResourceId = 2,
),
),
@@ -176,6 +178,7 @@ class KeyguardQuickAffordanceProviderTest : SysuiTestCase() {
runBlocking(IMMEDIATE) {
val slotId = KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_START
val affordanceId = AFFORDANCE_2
+ val affordanceName = AFFORDANCE_2_NAME
insertSelection(
slotId = slotId,
@@ -188,6 +191,7 @@ class KeyguardQuickAffordanceProviderTest : SysuiTestCase() {
Selection(
slotId = slotId,
affordanceId = affordanceId,
+ affordanceName = affordanceName,
)
)
)
@@ -219,12 +223,12 @@ class KeyguardQuickAffordanceProviderTest : SysuiTestCase() {
listOf(
Affordance(
id = AFFORDANCE_1,
- name = AFFORDANCE_1,
+ name = AFFORDANCE_1_NAME,
iconResourceId = 1,
),
Affordance(
id = AFFORDANCE_2,
- name = AFFORDANCE_2,
+ name = AFFORDANCE_2_NAME,
iconResourceId = 2,
),
)
@@ -259,6 +263,7 @@ class KeyguardQuickAffordanceProviderTest : SysuiTestCase() {
Selection(
slotId = KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_START,
affordanceId = AFFORDANCE_1,
+ affordanceName = AFFORDANCE_1_NAME,
)
)
)
@@ -290,6 +295,7 @@ class KeyguardQuickAffordanceProviderTest : SysuiTestCase() {
Selection(
slotId = KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_START,
affordanceId = AFFORDANCE_1,
+ affordanceName = AFFORDANCE_1_NAME,
)
)
)
@@ -323,7 +329,13 @@ class KeyguardQuickAffordanceProviderTest : SysuiTestCase() {
cursor.getColumnIndex(Contract.SelectionTable.Columns.SLOT_ID)
val affordanceIdColumnIndex =
cursor.getColumnIndex(Contract.SelectionTable.Columns.AFFORDANCE_ID)
- if (slotIdColumnIndex == -1 || affordanceIdColumnIndex == -1) {
+ val affordanceNameColumnIndex =
+ cursor.getColumnIndex(Contract.SelectionTable.Columns.AFFORDANCE_NAME)
+ if (
+ slotIdColumnIndex == -1 ||
+ affordanceIdColumnIndex == -1 ||
+ affordanceNameColumnIndex == -1
+ ) {
return@buildList
}
@@ -332,6 +344,7 @@ class KeyguardQuickAffordanceProviderTest : SysuiTestCase() {
Selection(
slotId = cursor.getString(slotIdColumnIndex),
affordanceId = cursor.getString(affordanceIdColumnIndex),
+ affordanceName = cursor.getString(affordanceNameColumnIndex),
)
)
}
@@ -419,11 +432,14 @@ class KeyguardQuickAffordanceProviderTest : SysuiTestCase() {
data class Selection(
val slotId: String,
val affordanceId: String,
+ val affordanceName: String,
)
companion object {
private val IMMEDIATE = Dispatchers.Main.immediate
private const val AFFORDANCE_1 = "affordance_1"
private const val AFFORDANCE_2 = "affordance_2"
+ private const val AFFORDANCE_1_NAME = "affordance_1_name"
+ private const val AFFORDANCE_2_NAME = "affordance_2_name"
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorTest.kt
index c47e6f52c596..4850ea5ffed2 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorTest.kt
@@ -33,6 +33,7 @@ import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository
import com.android.systemui.keyguard.data.repository.KeyguardQuickAffordanceRepository
import com.android.systemui.keyguard.domain.model.KeyguardQuickAffordanceModel
import com.android.systemui.keyguard.domain.quickaffordance.FakeKeyguardQuickAffordanceRegistry
+import com.android.systemui.keyguard.shared.model.KeyguardQuickAffordancePickerRepresentation
import com.android.systemui.keyguard.shared.quickaffordance.ActivationState
import com.android.systemui.keyguard.shared.quickaffordance.KeyguardQuickAffordancePosition
import com.android.systemui.plugins.ActivityStarter
@@ -314,7 +315,13 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() {
.isEqualTo(
mapOf(
KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_START to
- listOf(homeControls.key),
+ listOf(
+ KeyguardQuickAffordancePickerRepresentation(
+ id = homeControls.key,
+ name = homeControls.pickerName,
+ iconResourceId = homeControls.pickerIconResourceId,
+ ),
+ ),
KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_END to emptyList(),
)
)
@@ -343,7 +350,13 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() {
.isEqualTo(
mapOf(
KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_START to
- listOf(quickAccessWallet.key),
+ listOf(
+ KeyguardQuickAffordancePickerRepresentation(
+ id = quickAccessWallet.key,
+ name = quickAccessWallet.pickerName,
+ iconResourceId = quickAccessWallet.pickerIconResourceId,
+ ),
+ ),
KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_END to emptyList(),
)
)
@@ -375,9 +388,21 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() {
.isEqualTo(
mapOf(
KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_START to
- listOf(quickAccessWallet.key),
+ listOf(
+ KeyguardQuickAffordancePickerRepresentation(
+ id = quickAccessWallet.key,
+ name = quickAccessWallet.pickerName,
+ iconResourceId = quickAccessWallet.pickerIconResourceId,
+ ),
+ ),
KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_END to
- listOf(qrCodeScanner.key),
+ listOf(
+ KeyguardQuickAffordancePickerRepresentation(
+ id = qrCodeScanner.key,
+ name = qrCodeScanner.pickerName,
+ iconResourceId = qrCodeScanner.pickerIconResourceId,
+ ),
+ ),
)
)
@@ -441,7 +466,13 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() {
mapOf(
KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_START to emptyList(),
KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_END to
- listOf(quickAccessWallet.key),
+ listOf(
+ KeyguardQuickAffordancePickerRepresentation(
+ id = quickAccessWallet.key,
+ name = quickAccessWallet.pickerName,
+ iconResourceId = quickAccessWallet.pickerIconResourceId,
+ ),
+ ),
)
)
@@ -502,7 +533,13 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() {
mapOf(
KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_START to emptyList(),
KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_END to
- listOf(quickAccessWallet.key),
+ listOf(
+ KeyguardQuickAffordancePickerRepresentation(
+ id = quickAccessWallet.key,
+ name = quickAccessWallet.pickerName,
+ iconResourceId = quickAccessWallet.pickerIconResourceId,
+ ),
+ ),
)
)