summaryrefslogtreecommitdiffstats
path: root/src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java')
-rw-r--r--src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java60
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) {