summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/controls/controller/ControlsControllerImpl.kt61
1 files changed, 38 insertions, 23 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsControllerImpl.kt b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsControllerImpl.kt
index a1f4c9666423..181170b0dee5 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsControllerImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsControllerImpl.kt
@@ -89,35 +89,36 @@ class ControlsControllerImpl @Inject constructor (
contentResolver, CONTROLS_AVAILABLE, DEFAULT_ENABLED, currentUserId) != 0
private set
- private var file = Environment.buildPath(
- context.filesDir,
- ControlsFavoritePersistenceWrapper.FILE_NAME
- )
- private var auxiliaryFile = Environment.buildPath(
- context.filesDir,
- AuxiliaryPersistenceWrapper.AUXILIARY_FILE_NAME
- )
- private val persistenceWrapper = optionalWrapper.orElseGet {
- ControlsFavoritePersistenceWrapper(
- file,
- executor,
- BackupManager(context)
+ private val persistenceWrapper: ControlsFavoritePersistenceWrapper
+ @VisibleForTesting
+ internal var auxiliaryPersistenceWrapper: AuxiliaryPersistenceWrapper
+
+ init {
+ val userStructure = UserStructure(context, currentUser)
+
+ persistenceWrapper = optionalWrapper.orElseGet {
+ ControlsFavoritePersistenceWrapper(
+ userStructure.file,
+ executor,
+ BackupManager(userStructure.userContext)
+ )
+ }
+
+ auxiliaryPersistenceWrapper = AuxiliaryPersistenceWrapper(
+ userStructure.auxiliaryFile,
+ executor
)
}
- @VisibleForTesting
- internal var auxiliaryPersistenceWrapper = AuxiliaryPersistenceWrapper(auxiliaryFile, executor)
-
private fun setValuesForUser(newUser: UserHandle) {
Log.d(TAG, "Changing to user: $newUser")
currentUser = newUser
- val userContext = context.createContextAsUser(currentUser, 0)
- file = Environment.buildPath(
- userContext.filesDir, ControlsFavoritePersistenceWrapper.FILE_NAME)
- auxiliaryFile = Environment.buildPath(
- userContext.filesDir, AuxiliaryPersistenceWrapper.AUXILIARY_FILE_NAME)
- persistenceWrapper.changeFileAndBackupManager(file, BackupManager(userContext))
- auxiliaryPersistenceWrapper.changeFile(auxiliaryFile)
+ val userStructure = UserStructure(context, currentUser)
+ persistenceWrapper.changeFileAndBackupManager(
+ userStructure.file,
+ BackupManager(userStructure.userContext)
+ )
+ auxiliaryPersistenceWrapper.changeFile(userStructure.auxiliaryFile)
available = Settings.Secure.getIntForUser(contentResolver, CONTROLS_AVAILABLE,
DEFAULT_ENABLED, newUser.identifier) != 0
resetFavorites(available)
@@ -564,6 +565,20 @@ class ControlsControllerImpl @Inject constructor (
}
}
+class UserStructure(context: Context, user: UserHandle) {
+ val userContext = context.createContextAsUser(user, 0)
+
+ val file = Environment.buildPath(
+ context.filesDir,
+ ControlsFavoritePersistenceWrapper.FILE_NAME
+ )
+
+ val auxiliaryFile = Environment.buildPath(
+ context.filesDir,
+ AuxiliaryPersistenceWrapper.AUXILIARY_FILE_NAME
+ )
+}
+
/**
* Relies on immutable data for thread safety. When necessary to update favMap, use reassignment to
* replace it, which will not disrupt any ongoing map traversal.