diff options
Diffstat (limited to 'src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java')
-rw-r--r-- | src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java | 60 |
1 files changed, 29 insertions, 31 deletions
diff --git a/src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java b/src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java index eee2f716..df0bdd46 100644 --- a/src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java +++ b/src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java @@ -43,14 +43,17 @@ import com.android.packageinstaller.permission.model.AppPermissionGroup; import com.android.packageinstaller.permission.model.PermissionApps; import com.android.packageinstaller.permission.model.PermissionApps.Callback; import com.android.packageinstaller.permission.model.PermissionApps.PermissionApp; -import com.android.packageinstaller.permission.ui.OverlayTouchActivity; import com.android.packageinstaller.permission.utils.LocationUtils; import com.android.packageinstaller.permission.utils.SafetyNetLogger; import com.android.packageinstaller.permission.utils.Utils; +import com.android.settingslib.HelpUtils; +import com.android.settingslib.RestrictedLockUtils; import java.util.ArrayList; import java.util.List; +import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; + public final class PermissionAppsFragment extends PermissionsFrameFragment implements Callback, Preference.OnPreferenceChangeListener { @@ -111,6 +114,8 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple R.string.menu_show_system); mHideSystemMenu = menu.add(Menu.NONE, MENU_HIDE_SYSTEM, Menu.NONE, R.string.menu_hide_system); + HelpUtils.prepareHelpMenuItem(getActivity(), menu, R.string.help_app_permissions, + getClass().getName()); updateMenu(); } @@ -150,22 +155,6 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple if (ab != null) { ab.setTitle(fragment.getString(R.string.permission_title, label)); } - - final ViewGroup rootView = (ViewGroup) fragment.getView(); - final ImageView iconView = (ImageView) rootView.findViewById(R.id.lb_icon); - if (iconView != null) { - // Set the icon as the background instead of the image because ImageView - // doesn't properly scale vector drawables beyond their intrinsic size - iconView.setBackground(icon); - } - final TextView titleView = (TextView) rootView.findViewById(R.id.lb_title); - if (titleView != null) { - titleView.setText(label); - } - final TextView breadcrumbView = (TextView) rootView.findViewById(R.id.lb_breadcrumb); - if (breadcrumbView != null) { - breadcrumbView.setText(R.string.app_permissions); - } } private void setOnPermissionsLoadedListener(Callback callback) { @@ -219,12 +208,20 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple if (existingPref != null) { // If existing preference - only update its state. - if (app.isPolicyFixed()) { - existingPref.setSummary(getString( - R.string.permission_summary_enforced_by_policy)); + final boolean isPolicyFixed = app.isPolicyFixed(); + EnforcedAdmin enforcedAdmin = RestrictedLockUtils.getProfileOrDeviceOwner( + getActivity(), app.getUserId()); + if (!isTelevision && (existingPref instanceof RestrictedSwitchPreference)) { + ((RestrictedSwitchPreference) existingPref).setDisabledByAdmin( + isPolicyFixed ? enforcedAdmin : null); + existingPref.setSummary(isPolicyFixed ? + getString(R.string.disabled_by_admin_summary_text) : null); + } else { + existingPref.setEnabled(!isPolicyFixed); + existingPref.setSummary(isPolicyFixed ? + getString(R.string.permission_summary_enforced_by_policy) : null); } existingPref.setPersistent(false); - existingPref.setEnabled(!app.isPolicyFixed()); if (existingPref instanceof SwitchPreference) { ((SwitchPreference) existingPref) .setChecked(app.areRuntimePermissionsGranted()); @@ -232,16 +229,23 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple continue; } - SwitchPreference pref = new SwitchPreference(context); + RestrictedSwitchPreference pref = new RestrictedSwitchPreference(context); pref.setOnPreferenceChangeListener(this); pref.setKey(app.getKey()); pref.setIcon(app.getIcon()); pref.setTitle(app.getLabel()); + EnforcedAdmin enforcedAdmin = RestrictedLockUtils.getProfileOrDeviceOwner( + getActivity(), app.getUserId()); if (app.isPolicyFixed()) { - pref.setSummary(getString(R.string.permission_summary_enforced_by_policy)); + if (!isTelevision && enforcedAdmin != null) { + pref.setDisabledByAdmin(enforcedAdmin); + pref.setSummary(R.string.disabled_by_admin_summary_text); + } else { + pref.setEnabled(false); + pref.setSummary(R.string.permission_summary_enforced_by_policy); + } } pref.setPersistent(false); - pref.setEnabled(!app.isPolicyFixed()); pref.setChecked(app.areRuntimePermissionsGranted()); if (isSystemApp && isTelevision) { @@ -318,12 +322,6 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple return false; } - OverlayTouchActivity activity = (OverlayTouchActivity) getActivity(); - if (activity.isObscuredTouch()) { - activity.showOverlayDialog(); - return false; - } - addToggledGroup(app.getPackageName(), app.getPermissionGroup()); if (LocationUtils.isLocationGroupAndProvider(mPermissionApps.getGroupName(), @@ -340,7 +338,7 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple .setMessage(grantedByDefault ? R.string.system_warning : R.string.old_sdk_deny_warning) .setNegativeButton(R.string.cancel, null) - .setPositiveButton(R.string.grant_dialog_button_deny, + .setPositiveButton(R.string.grant_dialog_button_deny_anyway, new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { |