Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 91a15cb8 authored by Ale Nijamkin's avatar Ale Nijamkin Committed by Automerger Merge Worker
Browse files

Merge "Exposes affordance names through content provider." into tm-qpr-dev am: 51e55151

parents ee8cc9a2 51e55151
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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"
        }
    }

+7 −4
Original line number Diff line number Diff line
@@ -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,
                            )
                        )
                    }
+9 −3
Original line number Diff line number Diff line
@@ -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]
                }
        }
    }

+19 −3
Original line number Diff line number Diff line
@@ -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"
    }
}
+43 −6
Original line number Diff line number Diff line
@@ -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,
                                ),
                            ),
                    )
                )