summaryrefslogtreecommitdiff
path: root/PermissionController/src/com/android/permissioncontroller/role/ui/specialappaccess/SpecialAppAccessChildFragment.java
diff options
context:
space:
mode:
authorTreehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com>2023-07-24 23:32:35 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2023-07-24 23:32:35 +0000
commitbf6f83008330250ed63fafeed57f2ea95b7fee43 (patch)
tree84f4c349288285b764770c34a5f12557e516aec5 /PermissionController/src/com/android/permissioncontroller/role/ui/specialappaccess/SpecialAppAccessChildFragment.java
parent6c21720be9788393a2c615e752a8649741862936 (diff)
parente9eac0ef6dda48adf645f27ec2be4ff40b9a4f65 (diff)
downloadPermission-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.java16
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.