diff options
author | Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> | 2023-07-24 23:32:35 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2023-07-24 23:32:35 +0000 |
commit | bf6f83008330250ed63fafeed57f2ea95b7fee43 (patch) | |
tree | 84f4c349288285b764770c34a5f12557e516aec5 /PermissionController/src/com/android/permissioncontroller/role/ui/specialappaccess/SpecialAppAccessChildFragment.java | |
parent | 6c21720be9788393a2c615e752a8649741862936 (diff) | |
parent | e9eac0ef6dda48adf645f27ec2be4ff40b9a4f65 (diff) | |
download | Permission-bf6f83008330250ed63fafeed57f2ea95b7fee43.tar.gz |
Merge "Show the default device admin dialog when clicking on a preference blocked by policy." into udc-mainline-prod
Diffstat (limited to 'PermissionController/src/com/android/permissioncontroller/role/ui/specialappaccess/SpecialAppAccessChildFragment.java')
-rw-r--r-- | PermissionController/src/com/android/permissioncontroller/role/ui/specialappaccess/SpecialAppAccessChildFragment.java | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/PermissionController/src/com/android/permissioncontroller/role/ui/specialappaccess/SpecialAppAccessChildFragment.java b/PermissionController/src/com/android/permissioncontroller/role/ui/specialappaccess/SpecialAppAccessChildFragment.java index d75747b52..b95440bbd 100644 --- a/PermissionController/src/com/android/permissioncontroller/role/ui/specialappaccess/SpecialAppAccessChildFragment.java +++ b/PermissionController/src/com/android/permissioncontroller/role/ui/specialappaccess/SpecialAppAccessChildFragment.java @@ -37,6 +37,7 @@ import androidx.preference.TwoStatePreference; import com.android.permissioncontroller.permission.utils.Utils; import com.android.permissioncontroller.role.ui.ManageRoleHolderStateLiveData; +import com.android.permissioncontroller.role.ui.RoleApplicationPreference; import com.android.permissioncontroller.role.utils.RoleUiBehaviorUtils; import com.android.role.controller.model.Role; import com.android.role.controller.model.Roles; @@ -143,9 +144,12 @@ public class SpecialAppAccessChildFragment<PF extends PreferenceFragmentCompat String key = qualifyingApplicationInfo.packageName + '_' + qualifyingApplicationInfo.uid; - TwoStatePreference preference = (TwoStatePreference) oldPreferences.get(key); - if (preference == null) { - preference = preferenceFragment.createApplicationPreference(); + RoleApplicationPreference roleApplicationPreference = + (RoleApplicationPreference) oldPreferences.get(key); + TwoStatePreference preference; + if (roleApplicationPreference == null) { + roleApplicationPreference = preferenceFragment.createApplicationPreference(); + preference = roleApplicationPreference.asTwoStatePreference(); preference.setKey(key); preference.setIcon(Utils.getBadgedIcon(context, qualifyingApplicationInfo)); preference.setTitle(Utils.getFullAppLabel(qualifyingApplicationInfo, context)); @@ -154,11 +158,13 @@ public class SpecialAppAccessChildFragment<PF extends PreferenceFragmentCompat preference.setOnPreferenceClickListener(this); preference.getExtras().putParcelable(PREFERENCE_EXTRA_APPLICATION_INFO, qualifyingApplicationInfo); + } else { + preference = roleApplicationPreference.asTwoStatePreference(); } preference.setChecked(isHolderPackage); UserHandle user = UserHandle.getUserHandleForUid(qualifyingApplicationInfo.uid); - RoleUiBehaviorUtils.prepareApplicationPreferenceAsUser(mRole, preference, + RoleUiBehaviorUtils.prepareApplicationPreferenceAsUser(mRole, roleApplicationPreference, qualifyingApplicationInfo, user, context); preferenceScreen.addPreference(preference); } @@ -228,7 +234,7 @@ public class SpecialAppAccessChildFragment<PF extends PreferenceFragmentCompat * @return a new preference for an application */ @NonNull - TwoStatePreference createApplicationPreference(); + RoleApplicationPreference createApplicationPreference(); /** * Create a new preference for the footer. |