Merge "Reset permissions and app links when clearing app preferences - settings" into mnc-dev
diff --git a/src/com/android/settings/WirelessSettings.java b/src/com/android/settings/WirelessSettings.java
index 32d50bf..8cc98cc 100644
--- a/src/com/android/settings/WirelessSettings.java
+++ b/src/com/android/settings/WirelessSettings.java
@@ -237,11 +237,7 @@
         mAirplaneModeEnabler = new AirplaneModeEnabler(activity, mAirplaneModePreference);
         mNfcEnabler = new NfcEnabler(activity, nfc, androidBeam);
 
-        if (ImsManager.isWfcEnabledByPlatform(activity)) {
-            mButtonWfc = (PreferenceScreen) findPreference(KEY_WFC_SETTINGS);
-        } else {
-            removePreference(KEY_WFC_SETTINGS);
-        }
+        mButtonWfc = (PreferenceScreen) findPreference(KEY_WFC_SETTINGS);
 
         // Remove NSD checkbox by default
         getPreferenceScreen().removePreference(nsd);
@@ -373,10 +369,15 @@
             mNsdEnabler.resume();
         }
 
+        // update WFC setting
         final Context context = getActivity();
         if (ImsManager.isWfcEnabledByPlatform(context)) {
+            getPreferenceScreen().addPreference(mButtonWfc);
+
             mButtonWfc.setSummary(WifiCallingSettings.getWfcModeSummary(
                     context, ImsManager.getWfcMode(context)));
+        } else {
+            removePreference(KEY_WFC_SETTINGS);
         }
     }
 
diff --git a/src/com/android/settings/applications/ManageApplications.java b/src/com/android/settings/applications/ManageApplications.java
index 3820123..ce2dbe0 100644
--- a/src/com/android/settings/applications/ManageApplications.java
+++ b/src/com/android/settings/applications/ManageApplications.java
@@ -152,8 +152,10 @@
     // This is the actual mapping to filters from FILTER_ constants above, the order must
     // be kept in sync.
     public static final AppFilter[] FILTERS = new AppFilter[] {
-        AppStatePowerBridge.FILTER_POWER_WHITELISTED,     // High power whitelist, on
-        ApplicationsState.FILTER_PERSONAL,    // All apps label, but personal filter
+        new CompoundFilter(AppStatePowerBridge.FILTER_POWER_WHITELISTED,
+                ApplicationsState.FILTER_ALL_ENABLED),     // High power whitelist, on
+        new CompoundFilter(ApplicationsState.FILTER_PERSONAL,
+                ApplicationsState.FILTER_ALL_ENABLED),     // All apps label, but personal filter
         ApplicationsState.FILTER_EVERYTHING,  // All apps
         ApplicationsState.FILTER_ALL_ENABLED, // Enabled
         ApplicationsState.FILTER_DISABLED,    // Disabled
@@ -617,6 +619,9 @@
     }
 
     public void setHasDisabled(boolean hasDisabledApps) {
+        if (mListType == LIST_TYPE_HIGH_POWER) {
+            return;
+        }
         mFilterAdapter.setFilterEnabled(FILTER_APPS_ENABLED, hasDisabledApps);
         mFilterAdapter.setFilterEnabled(FILTER_APPS_DISABLED, hasDisabledApps);
     }
diff --git a/src/com/android/settings/deviceinfo/PublicVolumeSettings.java b/src/com/android/settings/deviceinfo/PublicVolumeSettings.java
index 4c77d21..c9b4beb 100644
--- a/src/com/android/settings/deviceinfo/PublicVolumeSettings.java
+++ b/src/com/android/settings/deviceinfo/PublicVolumeSettings.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.deviceinfo;
 
+import android.app.ActivityManager;
 import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
@@ -81,7 +82,8 @@
 
         final Context context = getActivity();
 
-        mIsPermittedToAdopt = UserManager.get(context).isAdminUser();
+        mIsPermittedToAdopt = UserManager.get(context).isAdminUser()
+                && !ActivityManager.isUserAMonkey();
 
         mStorageManager = context.getSystemService(StorageManager.class);
 
diff --git a/src/com/android/settings/deviceinfo/StorageWizardInit.java b/src/com/android/settings/deviceinfo/StorageWizardInit.java
index 284e67d..c3c2430 100644
--- a/src/com/android/settings/deviceinfo/StorageWizardInit.java
+++ b/src/com/android/settings/deviceinfo/StorageWizardInit.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.deviceinfo;
 
+import android.app.ActivityManager;
 import android.content.Intent;
 import android.os.Bundle;
 import android.os.UserManager;
@@ -42,7 +43,8 @@
         }
         setContentView(R.layout.storage_wizard_init);
 
-        mIsPermittedToAdopt = UserManager.get(this).isAdminUser();
+        mIsPermittedToAdopt = UserManager.get(this).isAdminUser()
+                && !ActivityManager.isUserAMonkey();
 
         setIllustrationInternal(true);
         setHeaderText(R.string.storage_wizard_init_title, mDisk.getDescription());
diff --git a/src/com/android/settings/fuelgauge/PowerUsageDetail.java b/src/com/android/settings/fuelgauge/PowerUsageDetail.java
index 9e7fa48..6d4e398 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageDetail.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageDetail.java
@@ -163,7 +163,9 @@
                     printWriter.flush();
                     args.putString(PowerUsageDetail.EXTRA_REPORT_CHECKIN_DETAILS,
                             result.toString());
-                    userId = UserHandle.getUserId(uid.getUid());
+                    if (uid.getUid() != 0) {
+                        userId = UserHandle.getUserId(uid.getUid());
+                    }
                 }
             }
             break;
@@ -438,11 +440,11 @@
                     }
                 });
             } else {
-                removePreference(KEY_HIGH_POWER);
+                mControlsParent.removePreference(findPreference(KEY_HIGH_POWER));
             }
         } else {
             removePreference(KEY_TWO_BUTTONS);
-            removePreference(KEY_HIGH_POWER);
+            mControlsParent.removePreference(findPreference(KEY_HIGH_POWER));
         }
 
         refreshStats();
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index 1475034..9e3029d 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -346,6 +346,8 @@
         }
         stats.add(new BatterySipper(DrainType.APP,
                 new FakeUid(Process.FIRST_APPLICATION_UID), use));
+        stats.add(new BatterySipper(DrainType.APP,
+                new FakeUid(0), use));
 
         // Simulate dex2oat process.
         BatterySipper sipper = new BatterySipper(DrainType.APP,