diff options
author | Svet Ganov <svetoslavganov@google.com> | 2016-06-28 18:12:37 -0700 |
---|---|---|
committer | Svetoslav Ganov <svetoslavganov@google.com> | 2016-06-29 19:11:33 +0000 |
commit | 8321e0fdc7562b08b036c07d7576cba0bf3e644f (patch) | |
tree | b2decda4543b5fe673f4d764d121c24ac1fbecf6 /src/com/android/packageinstaller/permission/ui/television | |
parent | b0984af02fbfa1eefaf7fbc932aebd89119458d5 (diff) | |
download | android_packages_apps_PackageInstaller-8321e0fdc7562b08b036c07d7576cba0bf3e644f.tar.gz android_packages_apps_PackageInstaller-8321e0fdc7562b08b036c07d7576cba0bf3e644f.tar.bz2 android_packages_apps_PackageInstaller-8321e0fdc7562b08b036c07d7576cba0bf3e644f.zip |
Don't offer menu items it they are no-op
In the permission apps screen we have a menu item to show/hide
system apps. It is possible that no system app uses the permission
making the menu item do nothing. We don't add the menu item if
no system app uses the permission.
bug:29395895
Change-Id: I1756981b2f711fc7a886bd4227196fef1a3cea03
Diffstat (limited to 'src/com/android/packageinstaller/permission/ui/television')
-rw-r--r-- | src/com/android/packageinstaller/permission/ui/television/PermissionAppsFragment.java | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/src/com/android/packageinstaller/permission/ui/television/PermissionAppsFragment.java b/src/com/android/packageinstaller/permission/ui/television/PermissionAppsFragment.java index 29839c14..ec320701 100644 --- a/src/com/android/packageinstaller/permission/ui/television/PermissionAppsFragment.java +++ b/src/com/android/packageinstaller/permission/ui/television/PermissionAppsFragment.java @@ -81,6 +81,7 @@ public final class PermissionAppsFragment extends SettingsWithHeader implements private boolean mHasConfirmedRevoke; private boolean mShowSystem; + private boolean mHasSystemApps; private MenuItem mShowSystemMenu; private MenuItem mHideSystemMenu; @@ -110,11 +111,13 @@ 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(); + if (mHasSystemApps) { + 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 @@ -184,6 +187,9 @@ public final class PermissionAppsFragment extends SettingsWithHeader implements } } + mHasSystemApps = false; + boolean menuOptionsInvalided = false; + for (PermissionApp app : permissionApps.getApps()) { if (!Utils.shouldShowPermission(app)) { continue; @@ -197,6 +203,13 @@ public final class PermissionAppsFragment extends SettingsWithHeader implements } boolean isSystemApp = Utils.isSystem(app, mLauncherPkgs); + + if (isSystemApp && !menuOptionsInvalided) { + mHasSystemApps = true; + getActivity().invalidateOptionsMenu(); + menuOptionsInvalided = true; + } + if (isSystemApp && !isTelevision && !mShowSystem) { if (existingPref != null) { screen.removePreference(existingPref); |