OSDN Git Service

Reset app preferences now resets all app ops.
authorDianne Hackborn <hackbod@google.com>
Sat, 3 Aug 2013 01:22:42 +0000 (18:22 -0700)
committerDianne Hackborn <hackbod@google.com>
Sat, 3 Aug 2013 02:20:48 +0000 (19:20 -0700)
Change-Id: I7966245b5f322f55e139b2da661c02cd58530f11

res/values/strings.xml
src/com/android/settings/applications/ManageApplications.java

index 6d181b5..6bb5371 100644 (file)
         <li>Disabled app notifications</li>\n
         <li>Default applications for actions</li>\n
         <li>Background data restrictions for apps</li>\n\n
+        <li>Any permission restrictions</li>\n\n
         You will not lose any app data.</string>
     <!-- [CHAR LIMIT=25] Manage applications screen, menu item.  Confirmation button of dialog to confirm resetting user's app preferences. -->
     <string name="reset_app_preferences_button">Reset apps</string>
index 7ec01aa..d37688c 100644 (file)
@@ -22,6 +22,7 @@ import static android.net.NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND;
 import android.app.Activity;
 import android.app.ActivityManager;
 import android.app.AlertDialog;
+import android.app.AppOpsManager;
 import android.app.Fragment;
 import android.app.INotificationManager;
 import android.content.ComponentName;
@@ -1116,10 +1117,12 @@ public class ManageApplications extends Fragment implements
         if (mResetDialog == dialog) {
             final PackageManager pm = getActivity().getPackageManager();
             final IPackageManager mIPm = IPackageManager.Stub.asInterface(
-                            ServiceManager.getService("package"));
+                    ServiceManager.getService("package"));
             final INotificationManager nm = INotificationManager.Stub.asInterface(
                     ServiceManager.getService(Context.NOTIFICATION_SERVICE));
             final NetworkPolicyManager npm = NetworkPolicyManager.from(getActivity());
+            final AppOpsManager aom = (AppOpsManager)getActivity().getSystemService(
+                    Context.APP_OPS_SERVICE);
             final Handler handler = new Handler(getActivity().getMainLooper());
             (new AsyncTask<Void, Void, Void>() {
                 @Override protected Void doInBackground(Void... params) {
@@ -1146,6 +1149,7 @@ public class ManageApplications extends Fragment implements
                         mIPm.resetPreferredActivities(UserHandle.myUserId());
                     } catch (RemoteException e) {
                     }
+                    aom.resetAllModes();
                     final int[] restrictedUids = npm.getUidsWithPolicy(
                             POLICY_REJECT_METERED_BACKGROUND);
                     final int currentUserId = ActivityManager.getCurrentUser();