Loading packages/SystemUI/src/com/android/systemui/controls/controller/ControlsControllerImpl.kt +2 −2 Original line number Diff line number Diff line Loading @@ -200,9 +200,9 @@ class ControlsControllerImpl @Inject constructor ( GlobalActionsDialog.PREFS_CONTROLS_FILE, Context.MODE_PRIVATE) val completedSeedingPackageSet = prefs.getStringSet( GlobalActionsDialog.PREFS_CONTROLS_SEEDING_COMPLETED, mutableSetOf<String>()) val favoritePackageSet = favoriteComponentSet.map { it.packageName } val servicePackageSet = serviceInfoSet.map { it.packageName } prefs.edit().putStringSet(GlobalActionsDialog.PREFS_CONTROLS_SEEDING_COMPLETED, completedSeedingPackageSet.intersect(favoritePackageSet)).apply() completedSeedingPackageSet.intersect(servicePackageSet)).apply() var changed = false favoriteComponentSet.subtract(serviceInfoSet).forEach { Loading packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java +23 −23 Original line number Diff line number Diff line Loading @@ -247,7 +247,6 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, private final Executor mBackgroundExecutor; private List<ControlsServiceInfo> mControlsServiceInfos = new ArrayList<>(); private Optional<ControlsController> mControlsControllerOptional; private SharedPreferences mControlsPreferences; private final RingerModeTracker mRingerModeTracker; private int mDialogPressDelay = DIALOG_PRESS_DELAY; // ms private Handler mMainHandler; Loading Loading @@ -405,12 +404,6 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, }); } // Need to be user-specific with the context to make sure we read the correct prefs Context userContext = context.createContextAsUser( new UserHandle(mUserManager.getUserHandle()), 0); mControlsPreferences = userContext.getSharedPreferences(PREFS_CONTROLS_FILE, Context.MODE_PRIVATE); // Listen for changes to show controls on the power menu while locked onPowerMenuLockScreenSettingsChanged(); mContext.getContentResolver().registerContentObserver( Loading Loading @@ -444,21 +437,24 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, Collections.emptySet()); List<ComponentName> componentsToSeed = new ArrayList<>(); for (int i = 0; i < Math.min(SEEDING_MAX, preferredControlsPackages.length); i++) { String pkg = preferredControlsPackages[i]; for (ControlsServiceInfo info : mControlsServiceInfos) { String pkg = info.componentName.getPackageName(); if (seededPackages.contains(pkg) || mControlsControllerOptional.get().countFavoritesForComponent( info.componentName) > 0) { continue; if (!pkg.equals(info.componentName.getPackageName())) continue; if (seededPackages.contains(pkg)) { break; } else if (mControlsControllerOptional.get() .countFavoritesForComponent(info.componentName) > 0) { // When there are existing controls but no saved preference, assume it // is out of sync, perhaps through a device restore, and update the // preference addPackageToSeededSet(prefs, pkg); break; } for (int i = 0; i < Math.min(SEEDING_MAX, preferredControlsPackages.length); i++) { if (pkg.equals(preferredControlsPackages[i])) { componentsToSeed.add(info.componentName); break; } } } if (componentsToSeed.isEmpty()) return; Loading @@ -466,16 +462,20 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, componentsToSeed, (response) -> { Log.d(TAG, "Controls seeded: " + response); Set<String> completedPkgs = prefs.getStringSet(PREFS_CONTROLS_SEEDING_COMPLETED, new HashSet<String>()); if (response.getAccepted()) { completedPkgs.add(response.getPackageName()); prefs.edit().putStringSet(PREFS_CONTROLS_SEEDING_COMPLETED, completedPkgs).apply(); addPackageToSeededSet(prefs, response.getPackageName()); } }); } private void addPackageToSeededSet(SharedPreferences prefs, String pkg) { Set<String> seededPackages = prefs.getStringSet(PREFS_CONTROLS_SEEDING_COMPLETED, Collections.emptySet()); Set<String> updatedPkgs = new HashSet<>(seededPackages); updatedPkgs.add(pkg); prefs.edit().putStringSet(PREFS_CONTROLS_SEEDING_COMPLETED, updatedPkgs).apply(); } /** * Show the global actions dialog (creating if necessary) * Loading Loading
packages/SystemUI/src/com/android/systemui/controls/controller/ControlsControllerImpl.kt +2 −2 Original line number Diff line number Diff line Loading @@ -200,9 +200,9 @@ class ControlsControllerImpl @Inject constructor ( GlobalActionsDialog.PREFS_CONTROLS_FILE, Context.MODE_PRIVATE) val completedSeedingPackageSet = prefs.getStringSet( GlobalActionsDialog.PREFS_CONTROLS_SEEDING_COMPLETED, mutableSetOf<String>()) val favoritePackageSet = favoriteComponentSet.map { it.packageName } val servicePackageSet = serviceInfoSet.map { it.packageName } prefs.edit().putStringSet(GlobalActionsDialog.PREFS_CONTROLS_SEEDING_COMPLETED, completedSeedingPackageSet.intersect(favoritePackageSet)).apply() completedSeedingPackageSet.intersect(servicePackageSet)).apply() var changed = false favoriteComponentSet.subtract(serviceInfoSet).forEach { Loading
packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java +23 −23 Original line number Diff line number Diff line Loading @@ -247,7 +247,6 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, private final Executor mBackgroundExecutor; private List<ControlsServiceInfo> mControlsServiceInfos = new ArrayList<>(); private Optional<ControlsController> mControlsControllerOptional; private SharedPreferences mControlsPreferences; private final RingerModeTracker mRingerModeTracker; private int mDialogPressDelay = DIALOG_PRESS_DELAY; // ms private Handler mMainHandler; Loading Loading @@ -405,12 +404,6 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, }); } // Need to be user-specific with the context to make sure we read the correct prefs Context userContext = context.createContextAsUser( new UserHandle(mUserManager.getUserHandle()), 0); mControlsPreferences = userContext.getSharedPreferences(PREFS_CONTROLS_FILE, Context.MODE_PRIVATE); // Listen for changes to show controls on the power menu while locked onPowerMenuLockScreenSettingsChanged(); mContext.getContentResolver().registerContentObserver( Loading Loading @@ -444,21 +437,24 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, Collections.emptySet()); List<ComponentName> componentsToSeed = new ArrayList<>(); for (int i = 0; i < Math.min(SEEDING_MAX, preferredControlsPackages.length); i++) { String pkg = preferredControlsPackages[i]; for (ControlsServiceInfo info : mControlsServiceInfos) { String pkg = info.componentName.getPackageName(); if (seededPackages.contains(pkg) || mControlsControllerOptional.get().countFavoritesForComponent( info.componentName) > 0) { continue; if (!pkg.equals(info.componentName.getPackageName())) continue; if (seededPackages.contains(pkg)) { break; } else if (mControlsControllerOptional.get() .countFavoritesForComponent(info.componentName) > 0) { // When there are existing controls but no saved preference, assume it // is out of sync, perhaps through a device restore, and update the // preference addPackageToSeededSet(prefs, pkg); break; } for (int i = 0; i < Math.min(SEEDING_MAX, preferredControlsPackages.length); i++) { if (pkg.equals(preferredControlsPackages[i])) { componentsToSeed.add(info.componentName); break; } } } if (componentsToSeed.isEmpty()) return; Loading @@ -466,16 +462,20 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, componentsToSeed, (response) -> { Log.d(TAG, "Controls seeded: " + response); Set<String> completedPkgs = prefs.getStringSet(PREFS_CONTROLS_SEEDING_COMPLETED, new HashSet<String>()); if (response.getAccepted()) { completedPkgs.add(response.getPackageName()); prefs.edit().putStringSet(PREFS_CONTROLS_SEEDING_COMPLETED, completedPkgs).apply(); addPackageToSeededSet(prefs, response.getPackageName()); } }); } private void addPackageToSeededSet(SharedPreferences prefs, String pkg) { Set<String> seededPackages = prefs.getStringSet(PREFS_CONTROLS_SEEDING_COMPLETED, Collections.emptySet()); Set<String> updatedPkgs = new HashSet<>(seededPackages); updatedPkgs.add(pkg); prefs.edit().putStringSet(PREFS_CONTROLS_SEEDING_COMPLETED, updatedPkgs).apply(); } /** * Show the global actions dialog (creating if necessary) * Loading