diff options
Diffstat (limited to 'src/com/android/packageinstaller/permission/ui/auto/AutoAppPermissionsFragment.java')
-rw-r--r-- | src/com/android/packageinstaller/permission/ui/auto/AutoAppPermissionsFragment.java | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/com/android/packageinstaller/permission/ui/auto/AutoAppPermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/auto/AutoAppPermissionsFragment.java index 010fa7ad..aac7faf6 100644 --- a/src/com/android/packageinstaller/permission/ui/auto/AutoAppPermissionsFragment.java +++ b/src/com/android/packageinstaller/permission/ui/auto/AutoAppPermissionsFragment.java @@ -23,6 +23,7 @@ import android.content.pm.PackageInfo; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.UserHandle; +import android.text.TextUtils; import android.widget.Toast; import androidx.annotation.NonNull; @@ -35,6 +36,7 @@ import androidx.preference.PreferenceScreen; import com.android.packageinstaller.auto.AutoSettingsFrameFragment; import com.android.packageinstaller.permission.model.AppPermissionGroup; import com.android.packageinstaller.permission.model.AppPermissions; +import com.android.packageinstaller.permission.model.PermissionUsages; import com.android.packageinstaller.permission.ui.AppPermissionActivity; import com.android.packageinstaller.permission.utils.Utils; import com.android.permissioncontroller.R; @@ -245,6 +247,7 @@ public class AutoAppPermissionsFragment extends AutoSettingsFrameFragment { preference.setKey(group.getName()); preference.setTitle(group.getFullLabel()); preference.setIcon(Utils.applyTint(context, icon, android.R.attr.colorControlNormal)); + preference.setSummary(getPreferenceSummary(group)); preference.setOnPreferenceClickListener(pref -> { Intent intent = new Intent(Intent.ACTION_MANAGE_APP_PERMISSION); intent.putExtra(Intent.EXTRA_PACKAGE_NAME, group.getApp().packageName); @@ -258,6 +261,37 @@ public class AutoAppPermissionsFragment extends AutoSettingsFrameFragment { return preference; } + private String getPreferenceSummary(AppPermissionGroup group) { + String groupSummary = getGroupSummary(group); + + if (Utils.isModernPermissionGroup(group.getName()) && Utils.shouldShowPermissionUsage( + group.getName())) { + String lastAccessStr = Utils.getAbsoluteLastUsageString(getContext(), + PermissionUsages.loadLastGroupUsage(getContext(), group)); + if (lastAccessStr != null) { + if (group.areRuntimePermissionsGranted()) { + return getContext().getString(R.string.app_permission_most_recent_summary, + lastAccessStr); + } else { + return getContext().getString( + R.string.app_permission_most_recent_denied_summary, lastAccessStr); + } + } else { + if (TextUtils.isEmpty(groupSummary) && Utils.isPermissionsHubEnabled()) { + if (group.areRuntimePermissionsGranted()) { + return getContext().getString( + R.string.app_permission_never_accessed_summary); + } else { + return getContext().getString( + R.string.app_permission_never_accessed_denied_summary); + } + } + } + } + + return groupSummary; + } + private String getGroupSummary(AppPermissionGroup group) { if (group.hasPermissionWithBackgroundMode() && group.areRuntimePermissionsGranted()) { AppPermissionGroup backgroundGroup = group.getBackgroundPermissions(); |