Make sure that common role behavior applies to all roles.

Specifically this will fix a problem when `DISALLOW_CONFIG_DEFAULT_APPS`
restriction doesn't work when there is no custom UI behavior.

Test: manual
Bug: 286450745
Change-Id: I1a733b145a2cc39069d0a7cf5bcfaf4ad2ab11da
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 8a5c8bd..e6b8dab 100644
--- a/PermissionController/src/com/android/permissioncontroller/role/ui/behavior/DialerRoleUiBehavior.java
+++ b/PermissionController/src/com/android/permissioncontroller/role/ui/behavior/DialerRoleUiBehavior.java
@@ -40,9 +40,6 @@
     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 36bbd1c..d0e7c0e 100644
--- a/PermissionController/src/com/android/permissioncontroller/role/ui/behavior/HomeRoleUiBehavior.java
+++ b/PermissionController/src/com/android/permissioncontroller/role/ui/behavior/HomeRoleUiBehavior.java
@@ -56,8 +56,6 @@
     @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(
@@ -95,9 +93,6 @@
     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);
         if (preference.isEnabled()) {
             preference.setEnabled(!missingWorkProfileSupport);
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 13343e9..6e3b47f 100644
--- a/PermissionController/src/com/android/permissioncontroller/role/ui/behavior/RoleUiBehavior.java
+++ b/PermissionController/src/com/android/permissioncontroller/role/ui/behavior/RoleUiBehavior.java
@@ -20,13 +20,11 @@
 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;
 
@@ -75,13 +73,7 @@
     default void preparePreferenceAsUser(@NonNull Role role,
             @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));
-        }
-    }
+            @NonNull Context context) {}
 
     /**
      * Check whether a qualifying application should be visible to user.
@@ -108,13 +100,7 @@
      */
     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));
-        }
-    }
+            @NonNull UserHandle user, @NonNull Context context) {}
 
     /**
      * Get the confirmation message for adding an application as a holder of this role.
diff --git a/PermissionController/src/com/android/permissioncontroller/role/utils/RoleUiBehaviorUtils.java b/PermissionController/src/com/android/permissioncontroller/role/utils/RoleUiBehaviorUtils.java
index e60bc6d..40088c7 100644
--- a/PermissionController/src/com/android/permissioncontroller/role/utils/RoleUiBehaviorUtils.java
+++ b/PermissionController/src/com/android/permissioncontroller/role/utils/RoleUiBehaviorUtils.java
@@ -21,12 +21,14 @@
 import android.content.pm.ApplicationInfo;
 import android.os.Process;
 import android.os.UserHandle;
+import android.os.UserManager;
 import android.util.Log;
 
 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.permissioncontroller.role.ui.behavior.RoleUiBehavior;
 import com.android.role.controller.model.Role;
@@ -102,6 +104,12 @@
     public static void preparePreferenceAsUser(@NonNull Role role,
             @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));
+        }
+
         RoleUiBehavior uiBehavior = getUiBehavior(role);
         if (uiBehavior == null) {
             return;
@@ -128,6 +136,12 @@
     public static 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));
+        }
+
         RoleUiBehavior uiBehavior = getUiBehavior(role);
         if (uiBehavior == null) {
             return;