Improve resetting of application state.
We now reset preferred apps to our defaults, instead of
just clearing everything out.
Change-Id: I70f713ce62b2ffb2d7f6a8e056978847734c27f7
diff --git a/src/com/android/settings/applications/ManageApplications.java b/src/com/android/settings/applications/ManageApplications.java
index c6a9792..c48f648 100644
--- a/src/com/android/settings/applications/ManageApplications.java
+++ b/src/com/android/settings/applications/ManageApplications.java
@@ -1115,6 +1115,8 @@
public void onClick(DialogInterface dialog, int which) {
if (mResetDialog == dialog) {
final PackageManager pm = getActivity().getPackageManager();
+ final IPackageManager mIPm = IPackageManager.Stub.asInterface(
+ ServiceManager.getService("package"));
final INotificationManager nm = INotificationManager.Stub.asInterface(
ServiceManager.getService(Context.NOTIFICATION_SERVICE));
final NetworkPolicyManager npm = NetworkPolicyManager.from(getActivity());
@@ -1130,8 +1132,6 @@
nm.setNotificationsEnabledForPackage(app.packageName, true);
} catch (android.os.RemoteException ex) {
}
- if (DEBUG) Log.v(TAG, "Clearing preferred: " + app.packageName);
- pm.clearPackagePreferredActivities(app.packageName);
if (!app.enabled) {
if (DEBUG) Log.v(TAG, "Enabling app: " + app.packageName);
if (pm.getApplicationEnabledSetting(app.packageName)
@@ -1142,16 +1142,9 @@
}
}
}
- // We should have cleared all of the preferred apps above;
- // just in case some may be lingering, retrieve whatever is
- // still set and remove it.
- ArrayList<IntentFilter> filters = new ArrayList<IntentFilter>();
- ArrayList<ComponentName> prefActivities = new ArrayList<ComponentName>();
- pm.getPreferredActivities(filters, prefActivities, null);
- for (int i=0; i<prefActivities.size(); i++) {
- if (DEBUG) Log.v(TAG, "Clearing preferred: "
- + prefActivities.get(i).getPackageName());
- pm.clearPackagePreferredActivities(prefActivities.get(i).getPackageName());
+ try {
+ mIPm.resetPreferredActivities(UserHandle.myUserId());
+ } catch (RemoteException e) {
}
final int[] restrictedUids = npm.getUidsWithPolicy(
POLICY_REJECT_METERED_BACKGROUND);