summaryrefslogtreecommitdiff
path: root/PermissionController/src/com/android/permissioncontroller/role
diff options
context:
space:
mode:
authorJason Parks <jparks@google.com>2023-01-09 19:08:15 +0000
committerJason Parks <jparks@google.com>2023-01-11 14:50:19 +0000
commit44f82052d1f0fa6da6cda8ddcfb3fee5a4f248de (patch)
treee22b1e7a2b7ff24b5609232ba1f898d2445521a2 /PermissionController/src/com/android/permissioncontroller/role
parentcbcbe2e7db0c0fa9078630be7a1564c447f8e86c (diff)
downloadPermission-44f82052d1f0fa6da6cda8ddcfb3fee5a4f248de.tar.gz
Disable default app settings.
Disable changing these when DISALLOW_CONFIG_DEFAULT_APPS is set. Bug: 254268464 Test: manual Change-Id: Ia1385afda60a0a6d02f79734b5f4f1564a4f733d
Diffstat (limited to 'PermissionController/src/com/android/permissioncontroller/role')
-rw-r--r--PermissionController/src/com/android/permissioncontroller/role/ui/TwoTargetPreference.java3
-rw-r--r--PermissionController/src/com/android/permissioncontroller/role/ui/behavior/DialerRoleUiBehavior.java3
-rw-r--r--PermissionController/src/com/android/permissioncontroller/role/ui/behavior/HomeRoleUiBehavior.java9
-rw-r--r--PermissionController/src/com/android/permissioncontroller/role/ui/behavior/RoleUiBehavior.java12
4 files changed, 26 insertions, 1 deletions
diff --git a/PermissionController/src/com/android/permissioncontroller/role/ui/TwoTargetPreference.java b/PermissionController/src/com/android/permissioncontroller/role/ui/TwoTargetPreference.java
index a6a453aee..23044b833 100644
--- a/PermissionController/src/com/android/permissioncontroller/role/ui/TwoTargetPreference.java
+++ b/PermissionController/src/com/android/permissioncontroller/role/ui/TwoTargetPreference.java
@@ -49,4 +49,7 @@ public interface TwoTargetPreference {
*/
void onSecondTargetClick(@NonNull TwoTargetPreference preference);
}
+
+ /** @see androidx.preference.Preference#setEnabled(boolean) */
+ void setEnabled(boolean enabled);
}
diff --git a/PermissionController/src/com/android/permissioncontroller/role/ui/behavior/DialerRoleUiBehavior.java b/PermissionController/src/com/android/permissioncontroller/role/ui/behavior/DialerRoleUiBehavior.java
index e6b8dabe1..8a5c8bdc7 100644
--- a/PermissionController/src/com/android/permissioncontroller/role/ui/behavior/DialerRoleUiBehavior.java
+++ b/PermissionController/src/com/android/permissioncontroller/role/ui/behavior/DialerRoleUiBehavior.java
@@ -40,6 +40,9 @@ public class DialerRoleUiBehavior implements RoleUiBehavior {
public void prepareApplicationPreferenceAsUser(@NonNull Role role,
@NonNull Preference preference, @NonNull ApplicationInfo applicationInfo,
@NonNull UserHandle user, @NonNull Context context) {
+ RoleUiBehavior.super.prepareApplicationPreferenceAsUser(
+ role, preference, applicationInfo, user, context);
+
TelecomManager telecomManager = context.getSystemService(TelecomManager.class);
String systemPackageName = telecomManager.getSystemDialerPackage();
if (Objects.equals(applicationInfo.packageName, systemPackageName)) {
diff --git a/PermissionController/src/com/android/permissioncontroller/role/ui/behavior/HomeRoleUiBehavior.java b/PermissionController/src/com/android/permissioncontroller/role/ui/behavior/HomeRoleUiBehavior.java
index ac8538b9e..a2b858cd2 100644
--- a/PermissionController/src/com/android/permissioncontroller/role/ui/behavior/HomeRoleUiBehavior.java
+++ b/PermissionController/src/com/android/permissioncontroller/role/ui/behavior/HomeRoleUiBehavior.java
@@ -56,6 +56,8 @@ public class HomeRoleUiBehavior implements RoleUiBehavior {
@Override
public void preparePreferenceAsUser(@NonNull Role role, @NonNull TwoTargetPreference preference,
@NonNull UserHandle user, @NonNull Context context) {
+ RoleUiBehavior.super.preparePreferenceAsUser(role, preference, user, context);
+
TwoTargetPreference.OnSecondTargetClickListener listener = null;
RoleManager roleManager = context.getSystemService(RoleManager.class);
String packageName = CollectionUtils.firstOrNull(roleManager.getRoleHoldersAsUser(
@@ -93,8 +95,13 @@ public class HomeRoleUiBehavior implements RoleUiBehavior {
public void prepareApplicationPreferenceAsUser(@NonNull Role role,
@NonNull Preference preference, @NonNull ApplicationInfo applicationInfo,
@NonNull UserHandle user, @NonNull Context context) {
+ RoleUiBehavior.super.prepareApplicationPreferenceAsUser(
+ role, preference, applicationInfo, user, context);
+
boolean missingWorkProfileSupport = isMissingWorkProfileSupport(applicationInfo, context);
- preference.setEnabled(!missingWorkProfileSupport);
+ if (preference.isEnabled()) {
+ preference.setEnabled(!missingWorkProfileSupport);
+ }
preference.setSummary(missingWorkProfileSupport ? Utils.getEnterpriseString(context,
DevicePolicyResources.Strings.DefaultAppSettings
.HOME_MISSING_WORK_PROFILE_SUPPORT_MESSAGE,
diff --git a/PermissionController/src/com/android/permissioncontroller/role/ui/behavior/RoleUiBehavior.java b/PermissionController/src/com/android/permissioncontroller/role/ui/behavior/RoleUiBehavior.java
index a71904050..13343e926 100644
--- a/PermissionController/src/com/android/permissioncontroller/role/ui/behavior/RoleUiBehavior.java
+++ b/PermissionController/src/com/android/permissioncontroller/role/ui/behavior/RoleUiBehavior.java
@@ -20,11 +20,13 @@ import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.os.UserHandle;
+import android.os.UserManager;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.preference.Preference;
+import com.android.modules.utils.build.SdkLevel;
import com.android.permissioncontroller.role.ui.TwoTargetPreference;
import com.android.role.controller.model.Role;
@@ -74,6 +76,11 @@ public interface RoleUiBehavior {
@NonNull TwoTargetPreference preference,
@NonNull UserHandle user,
@NonNull Context context) {
+ if (SdkLevel.isAtLeastU() && role.isExclusive()) {
+ final UserManager userManager = context.getSystemService(UserManager.class);
+ preference.setEnabled(!userManager.hasUserRestrictionForUser(
+ UserManager.DISALLOW_CONFIG_DEFAULT_APPS, user));
+ }
}
/**
@@ -102,6 +109,11 @@ public interface RoleUiBehavior {
default void prepareApplicationPreferenceAsUser(@NonNull Role role,
@NonNull Preference preference, @NonNull ApplicationInfo applicationInfo,
@NonNull UserHandle user, @NonNull Context context) {
+ if (SdkLevel.isAtLeastU() && role.isExclusive()) {
+ final UserManager userManager = context.getSystemService(UserManager.class);
+ preference.setEnabled(!userManager.hasUserRestrictionForUser(
+ UserManager.DISALLOW_CONFIG_DEFAULT_APPS, user));
+ }
}
/**