summaryrefslogtreecommitdiffstats
path: root/src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java')
-rw-r--r--src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java b/src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java
index 304aa38a..a34420d4 100644
--- a/src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java
+++ b/src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java
@@ -48,6 +48,7 @@ import com.android.packageinstaller.permission.model.AppPermissionGroup;
import com.android.packageinstaller.permission.model.PermissionApps;
import com.android.packageinstaller.permission.model.PermissionApps.Callback;
import com.android.packageinstaller.permission.model.PermissionApps.PermissionApp;
+import com.android.packageinstaller.permission.model.PermissionUsages;
import com.android.packageinstaller.permission.utils.Utils;
import com.android.permissioncontroller.R;
import com.android.settingslib.HelpUtils;
@@ -320,6 +321,10 @@ public final class PermissionAppsFragment extends SettingsWithLargeHeader implem
}
if (existingPref != null) {
+ if (existingPref instanceof PermissionControlPreference) {
+ setPreferenceSummary(group, (PermissionControlPreference) existingPref,
+ category != denied, context);
+ }
category.addPreference(existingPref);
continue;
}
@@ -331,6 +336,7 @@ public final class PermissionAppsFragment extends SettingsWithLargeHeader implem
pref.setTitle(Utils.getFullAppLabel(app.getAppInfo(), context));
pref.setEllipsizeEnd();
pref.useSmallerIcon();
+ setPreferenceSummary(group, pref, category != denied, context);
if (isSystemApp && isTelevision) {
if (mExtraScreen == null) {
@@ -404,6 +410,18 @@ public final class PermissionAppsFragment extends SettingsWithLargeHeader implem
denied.addPreference(empty);
}
+ if (!Utils.shouldShowPermissionUsage(mPermissionApps.getGroupName())
+ && findPreference(KEY_FOOTER) == null) {
+ PreferenceCategory footer = new PreferenceCategory(context);
+ footer.setKey(KEY_FOOTER);
+ getPreferenceScreen().addPreference(footer);
+ Preference footerText = new Preference(context);
+ footerText.setSummary(context.getString(R.string.app_permission_footer_not_available));
+ footerText.setIcon(R.drawable.ic_info_outline);
+ footerText.setSelectable(false);
+ footer.addPreference(footerText);
+ }
+
setLoading(false /* loading */, true /* animate */);
if (mOnPermissionsLoadedListener != null) {
@@ -433,6 +451,35 @@ public final class PermissionAppsFragment extends SettingsWithLargeHeader implem
+ " category=" + category);
};
+ private void setPreferenceSummary(AppPermissionGroup group, PermissionControlPreference pref,
+ boolean allowed, Context context) {
+ if (!Utils.isModernPermissionGroup(group.getName())) {
+ return;
+ }
+ if (!Utils.shouldShowPermissionUsage(group.getName())) {
+ return;
+ }
+ String lastAccessStr = Utils.getAbsoluteLastUsageString(context,
+ PermissionUsages.loadLastGroupUsage(context, group));
+ if (lastAccessStr != null) {
+ if (allowed) {
+ pref.setSummary(context.getString(R.string.app_permission_most_recent_summary,
+ lastAccessStr));
+ } else {
+ pref.setSummary(
+ context.getString(R.string.app_permission_most_recent_denied_summary,
+ lastAccessStr));
+ }
+ } else if (Utils.isPermissionsHubEnabled()) {
+ if (allowed) {
+ pref.setSummary(context.getString(R.string.app_permission_never_accessed_summary));
+ } else {
+ pref.setSummary(
+ context.getString(R.string.app_permission_never_accessed_denied_summary));
+ }
+ }
+ }
+
public static class SystemAppsFragment extends SettingsWithLargeHeader implements Callback {
PermissionAppsFragment mOuterFragment;