diff options
Diffstat (limited to 'src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java')
-rw-r--r-- | src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java | 47 |
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; |