diff options
-rw-r--r-- | src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java | 27 | ||||
-rw-r--r-- | src/com/android/packageinstaller/permission/ui/television/PermissionAppsFragment.java | 23 |
2 files changed, 37 insertions, 13 deletions
diff --git a/src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java b/src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java index df0bdd46..1a21f2de 100644 --- a/src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java +++ b/src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java @@ -34,9 +34,6 @@ import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; import com.android.packageinstaller.DeviceUtils; import com.android.packageinstaller.R; import com.android.packageinstaller.permission.model.AppPermissionGroup; @@ -81,6 +78,7 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple private boolean mHasConfirmedRevoke; private boolean mShowSystem; + private boolean mHasSystemApps; private MenuItem mShowSystemMenu; private MenuItem mHideSystemMenu; @@ -110,13 +108,16 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple @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); + 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(); + } + HelpUtils.prepareHelpMenuItem(getActivity(), menu, R.string.help_app_permissions, getClass().getName()); - updateMenu(); } @Override @@ -186,6 +187,9 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple } } + mHasSystemApps = false; + boolean menuOptionsInvalided = false; + for (PermissionApp app : permissionApps.getApps()) { if (!Utils.shouldShowPermission(app)) { continue; @@ -199,6 +203,13 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple } 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); 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); |