diff options
author | Jason Parks <jparks@google.com> | 2023-01-09 19:08:15 +0000 |
---|---|---|
committer | Jason Parks <jparks@google.com> | 2023-01-11 14:50:19 +0000 |
commit | 44f82052d1f0fa6da6cda8ddcfb3fee5a4f248de (patch) | |
tree | e22b1e7a2b7ff24b5609232ba1f898d2445521a2 /PermissionController/src/com/android/permissioncontroller/role | |
parent | cbcbe2e7db0c0fa9078630be7a1564c447f8e86c (diff) | |
download | Permission-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')
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)); + } } /** |