Merge "Controls UI - Reset seeding upon app uninstall" into rvc-dev am: bc109d011e
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11709075 Change-Id: If45535b698040ebcdc1f97106d0125713265a438
This commit is contained in:
@@ -44,6 +44,7 @@ import com.android.systemui.controls.management.ControlsListingController
|
|||||||
import com.android.systemui.controls.ui.ControlsUiController
|
import com.android.systemui.controls.ui.ControlsUiController
|
||||||
import com.android.systemui.dagger.qualifiers.Background
|
import com.android.systemui.dagger.qualifiers.Background
|
||||||
import com.android.systemui.dump.DumpManager
|
import com.android.systemui.dump.DumpManager
|
||||||
|
import com.android.systemui.globalactions.GlobalActionsDialog
|
||||||
import com.android.systemui.util.concurrency.DelayableExecutor
|
import com.android.systemui.util.concurrency.DelayableExecutor
|
||||||
import java.io.FileDescriptor
|
import java.io.FileDescriptor
|
||||||
import java.io.PrintWriter
|
import java.io.PrintWriter
|
||||||
@@ -79,6 +80,7 @@ class ControlsControllerImpl @Inject constructor (
|
|||||||
}
|
}
|
||||||
|
|
||||||
private var userChanging: Boolean = true
|
private var userChanging: Boolean = true
|
||||||
|
private var userStructure: UserStructure
|
||||||
|
|
||||||
private var seedingInProgress = false
|
private var seedingInProgress = false
|
||||||
private val seedingCallbacks = mutableListOf<Consumer<Boolean>>()
|
private val seedingCallbacks = mutableListOf<Consumer<Boolean>>()
|
||||||
@@ -97,7 +99,7 @@ class ControlsControllerImpl @Inject constructor (
|
|||||||
internal var auxiliaryPersistenceWrapper: AuxiliaryPersistenceWrapper
|
internal var auxiliaryPersistenceWrapper: AuxiliaryPersistenceWrapper
|
||||||
|
|
||||||
init {
|
init {
|
||||||
val userStructure = UserStructure(context, currentUser)
|
userStructure = UserStructure(context, currentUser)
|
||||||
|
|
||||||
persistenceWrapper = optionalWrapper.orElseGet {
|
persistenceWrapper = optionalWrapper.orElseGet {
|
||||||
ControlsFavoritePersistenceWrapper(
|
ControlsFavoritePersistenceWrapper(
|
||||||
@@ -116,7 +118,7 @@ class ControlsControllerImpl @Inject constructor (
|
|||||||
private fun setValuesForUser(newUser: UserHandle) {
|
private fun setValuesForUser(newUser: UserHandle) {
|
||||||
Log.d(TAG, "Changing to user: $newUser")
|
Log.d(TAG, "Changing to user: $newUser")
|
||||||
currentUser = newUser
|
currentUser = newUser
|
||||||
val userStructure = UserStructure(context, currentUser)
|
userStructure = UserStructure(context, currentUser)
|
||||||
persistenceWrapper.changeFileAndBackupManager(
|
persistenceWrapper.changeFileAndBackupManager(
|
||||||
userStructure.file,
|
userStructure.file,
|
||||||
BackupManager(userStructure.userContext)
|
BackupManager(userStructure.userContext)
|
||||||
@@ -192,6 +194,16 @@ class ControlsControllerImpl @Inject constructor (
|
|||||||
it.componentName
|
it.componentName
|
||||||
}.toSet()
|
}.toSet()
|
||||||
|
|
||||||
|
// When a component is uninstalled, allow seeding to happen again if the user
|
||||||
|
// reinstalls the app
|
||||||
|
val prefs = userStructure.userContext.getSharedPreferences(
|
||||||
|
GlobalActionsDialog.PREFS_CONTROLS_FILE, Context.MODE_PRIVATE)
|
||||||
|
val completedSeedingPackageSet = prefs.getStringSet(
|
||||||
|
GlobalActionsDialog.PREFS_CONTROLS_SEEDING_COMPLETED, mutableSetOf<String>())
|
||||||
|
val favoritePackageSet = favoriteComponentSet.map { it.packageName }
|
||||||
|
prefs.edit().putStringSet(GlobalActionsDialog.PREFS_CONTROLS_SEEDING_COMPLETED,
|
||||||
|
completedSeedingPackageSet.intersect(favoritePackageSet)).apply()
|
||||||
|
|
||||||
var changed = false
|
var changed = false
|
||||||
favoriteComponentSet.subtract(serviceInfoSet).forEach {
|
favoriteComponentSet.subtract(serviceInfoSet).forEach {
|
||||||
changed = true
|
changed = true
|
||||||
|
|||||||
@@ -183,8 +183,8 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
|
|||||||
static final String GLOBAL_ACTION_KEY_EMERGENCY = "emergency";
|
static final String GLOBAL_ACTION_KEY_EMERGENCY = "emergency";
|
||||||
static final String GLOBAL_ACTION_KEY_SCREENSHOT = "screenshot";
|
static final String GLOBAL_ACTION_KEY_SCREENSHOT = "screenshot";
|
||||||
|
|
||||||
private static final String PREFS_CONTROLS_SEEDING_COMPLETED = "SeedingCompleted";
|
public static final String PREFS_CONTROLS_SEEDING_COMPLETED = "SeedingCompleted";
|
||||||
private static final String PREFS_CONTROLS_FILE = "controls_prefs";
|
public static final String PREFS_CONTROLS_FILE = "controls_prefs";
|
||||||
private static final int SEEDING_MAX = 2;
|
private static final int SEEDING_MAX = 2;
|
||||||
|
|
||||||
private final Context mContext;
|
private final Context mContext;
|
||||||
|
|||||||
Reference in New Issue
Block a user