summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/com/android/packageinstaller/permission/model/PermissionApps.java19
-rw-r--r--src/com/android/packageinstaller/permission/model/PermissionStatusReceiver.java4
-rw-r--r--src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java35
3 files changed, 56 insertions, 2 deletions
diff --git a/src/com/android/packageinstaller/permission/model/PermissionApps.java b/src/com/android/packageinstaller/permission/model/PermissionApps.java
index 06ef7981..1aadeb2c 100644
--- a/src/com/android/packageinstaller/permission/model/PermissionApps.java
+++ b/src/com/android/packageinstaller/permission/model/PermissionApps.java
@@ -85,6 +85,10 @@ public class PermissionApps {
if (!Utils.shouldShowPermission(app)) {
continue;
}
+ if (app.isSystem()) {
+ // We default to not showing system apps, so hide them from count.
+ continue;
+ }
if (app.areRuntimePermissionsGranted()) {
count++;
}
@@ -98,6 +102,10 @@ public class PermissionApps {
if (!Utils.shouldShowPermission(app)) {
continue;
}
+ if (app.isSystem()) {
+ // We default to not showing system apps, so hide them from count.
+ continue;
+ }
count++;
}
return count;
@@ -166,7 +174,8 @@ public class PermissionApps {
String label = mSkipUi ? app.packageName
: app.applicationInfo.loadLabel(mPm).toString();
PermissionApp permApp = new PermissionApp(app.packageName,
- group, label, getBadgedIcon(app.applicationInfo));
+ group, label, getBadgedIcon(app.applicationInfo),
+ app.applicationInfo.isSystemApp());
permApps.add(permApp);
}
@@ -259,13 +268,19 @@ public class PermissionApps {
private final AppPermissionGroup mAppPermissionGroup;
private final String mLabel;
private final Drawable mIcon;
+ private final boolean mSystem;
public PermissionApp(String packageName, AppPermissionGroup appPermissionGroup,
- String label, Drawable icon) {
+ String label, Drawable icon, boolean isSystem) {
mPackageName = packageName;
mAppPermissionGroup = appPermissionGroup;
mLabel = label;
mIcon = icon;
+ mSystem = isSystem;
+ }
+
+ public boolean isSystem() {
+ return mSystem;
}
public String getKey() {
diff --git a/src/com/android/packageinstaller/permission/model/PermissionStatusReceiver.java b/src/com/android/packageinstaller/permission/model/PermissionStatusReceiver.java
index f84a0757..9e2bfd13 100644
--- a/src/com/android/packageinstaller/permission/model/PermissionStatusReceiver.java
+++ b/src/com/android/packageinstaller/permission/model/PermissionStatusReceiver.java
@@ -80,6 +80,10 @@ public class PermissionStatusReceiver extends BroadcastReceiver {
permissionApps.loadNowWithoutUi();
for (PermissionApp app : permissionApps.getApps()) {
int uid = app.getUid();
+ if (app.isSystem()) {
+ // We default to not showing system apps, so hide them from count.
+ continue;
+ }
if (app.areRuntimePermissionsGranted()) {
grantedApps.put(uid, true);
}
diff --git a/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java b/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java
index 1cd8f936..7b704bfd 100644
--- a/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java
+++ b/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java
@@ -30,6 +30,8 @@ import android.preference.PreferenceScreen;
import android.preference.SwitchPreference;
import android.support.v4.util.ArrayMap;
import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
@@ -50,6 +52,9 @@ import java.util.List;
public final class PermissionAppsFragment extends SettingsWithHeader implements Callback,
OnPreferenceChangeListener {
+ private static final int MENU_SHOW_SYSTEM = Menu.FIRST;
+ private static final int MENU_HIDE_SYSTEM = Menu.FIRST + 1;
+
public static PermissionAppsFragment newInstance(String permissionName) {
PermissionAppsFragment instance = new PermissionAppsFragment();
Bundle arguments = new Bundle();
@@ -63,6 +68,10 @@ public final class PermissionAppsFragment extends SettingsWithHeader implements
private ArrayMap<String, AppPermissionGroup> mToggledGroups;
private boolean mHasConfirmedRevoke;
+ private boolean mShowSystem;
+ private MenuItem mShowSystemMenu;
+ private MenuItem mHideSystemMenu;
+
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -80,15 +89,35 @@ public final class PermissionAppsFragment extends SettingsWithHeader implements
}
@Override
+ public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+ mShowSystemMenu = menu.add(Menu.NONE, MENU_SHOW_SYSTEM, Menu.NONE,
+ R.string.menu_show_system);
+ mHideSystemMenu = menu.add(Menu.NONE, MENU_HIDE_SYSTEM, Menu.NONE,
+ R.string.menu_hide_system);
+ updateMenu();
+ }
+
+ @Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
getActivity().finish();
return true;
+ case MENU_SHOW_SYSTEM:
+ case MENU_HIDE_SYSTEM:
+ mShowSystem = item.getItemId() == MENU_SHOW_SYSTEM;
+ onPermissionsLoaded(mPermissionApps);
+ updateMenu();
+ break;
}
return super.onOptionsItemSelected(item);
}
+ private void updateMenu() {
+ mShowSystemMenu.setVisible(!mShowSystem);
+ mHideSystemMenu.setVisible(mShowSystem);
+ }
+
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
@@ -154,6 +183,12 @@ public final class PermissionAppsFragment extends SettingsWithHeader implements
}
SwitchPreference pref = (SwitchPreference) findPreference(app.getKey());
+ if (!mShowSystem && app.isSystem()) {
+ if (pref != null) {
+ preferences.removePreference(pref);
+ }
+ continue;
+ }
if (pref == null) {
pref = new SwitchPreference(context);
pref.setOnPreferenceChangeListener(this);