diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml
index 88af1793d7716..7a362040427a8 100644
--- a/packages/SystemUI/res/values/config.xml
+++ b/packages/SystemUI/res/values/config.xml
@@ -817,4 +817,13 @@
- bottom_end:1
+
+
+
+
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/data/quickaffordance/KeyguardQuickAffordanceSelectionManager.kt b/packages/SystemUI/src/com/android/systemui/keyguard/data/quickaffordance/KeyguardQuickAffordanceSelectionManager.kt
index d89ac37322b42..b29cf45cc7094 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/data/quickaffordance/KeyguardQuickAffordanceSelectionManager.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/data/quickaffordance/KeyguardQuickAffordanceSelectionManager.kt
@@ -20,9 +20,11 @@ package com.android.systemui.keyguard.data.quickaffordance
import android.content.Context
import android.content.SharedPreferences
import androidx.annotation.VisibleForTesting
+import com.android.systemui.R
import com.android.systemui.common.coroutine.ChannelExt.trySendWithFailureLogging
import com.android.systemui.common.coroutine.ConflatedCallbackFlow.conflatedCallbackFlow
import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.settings.UserFileManager
import com.android.systemui.settings.UserTracker
import javax.inject.Inject
@@ -38,6 +40,7 @@ import kotlinx.coroutines.flow.flatMapLatest
class KeyguardQuickAffordanceSelectionManager
@Inject
constructor(
+ @Application context: Context,
private val userFileManager: UserFileManager,
private val userTracker: UserTracker,
) {
@@ -63,6 +66,17 @@ constructor(
awaitClose { userTracker.removeCallback(callback) }
}
+ private val defaults: Map> by lazy {
+ context.resources
+ .getStringArray(R.array.config_keyguardQuickAffordanceDefaults)
+ .associate { item ->
+ val splitUp = item.split(SLOT_AFFORDANCES_DELIMITER)
+ check(splitUp.size == 2)
+ val slotId = splitUp[0]
+ val affordanceIds = splitUp[1].split(AFFORDANCE_DELIMITER)
+ slotId to affordanceIds
+ }
+ }
/** IDs of affordances to show, indexed by slot ID, and sorted in descending priority order. */
val selections: Flow