OSDN Git Service

Clearing cache for managed profile apps
authorSuprabh Shukla <suprabh@google.com>
Tue, 12 Apr 2016 22:57:11 +0000 (15:57 -0700)
committerSuprabh Shukla <suprabh@google.com>
Tue, 12 Apr 2016 23:47:08 +0000 (16:47 -0700)
Added code to loop over all the child profiles and delete application
cache files for them, when clearing cache from Settings->Storage

Bug: b/25338468
Change-Id: I87dba56218402be44b71a009e93b2e93f48a574c

src/com/android/settings/deviceinfo/PrivateVolumeSettings.java

index a19b5b8..5f5975d 100644 (file)
@@ -725,11 +725,16 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment {
                 public void onClick(DialogInterface dialog, int which) {
                     final PrivateVolumeSettings target = (PrivateVolumeSettings) getTargetFragment();
                     final PackageManager pm = context.getPackageManager();
-                    final List<PackageInfo> infos = pm.getInstalledPackages(0);
-                    final ClearCacheObserver observer = new ClearCacheObserver(
-                            target, infos.size());
-                    for (PackageInfo info : infos) {
-                        pm.deleteApplicationCacheFiles(info.packageName, observer);
+                    final UserManager um = context.getSystemService(UserManager.class);
+
+                    for (int userId : um.getProfileIdsWithDisabled(context.getUserId())) {
+                        final List<PackageInfo> infos = pm.getInstalledPackagesAsUser(0, userId);
+                        final ClearCacheObserver observer = new ClearCacheObserver(
+                                target, infos.size());
+                        for (PackageInfo info : infos) {
+                            pm.deleteApplicationCacheFilesAsUser(info.packageName, userId,
+                                    observer);
+                        }
                     }
                 }
             });