summaryrefslogtreecommitdiffstats
path: root/src/com/android/packageinstaller/permission/ui/auto
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/packageinstaller/permission/ui/auto')
-rw-r--r--src/com/android/packageinstaller/permission/ui/auto/AutoAppPermissionsFragment.java34
-rw-r--r--src/com/android/packageinstaller/permission/ui/auto/AutoPermissionAppsFragment.java34
-rw-r--r--src/com/android/packageinstaller/permission/ui/auto/ReviewOngoingUsageAutoFragment.java45
3 files changed, 113 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();
diff --git a/src/com/android/packageinstaller/permission/ui/auto/AutoPermissionAppsFragment.java b/src/com/android/packageinstaller/permission/ui/auto/AutoPermissionAppsFragment.java
index 9d310006..d4242385 100644
--- a/src/com/android/packageinstaller/permission/ui/auto/AutoPermissionAppsFragment.java
+++ b/src/com/android/packageinstaller/permission/ui/auto/AutoPermissionAppsFragment.java
@@ -33,6 +33,7 @@ import com.android.packageinstaller.auto.AutoSettingsFrameFragment;
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.PermissionUsages;
import com.android.packageinstaller.permission.ui.handheld.PermissionAppsFragment;
import com.android.packageinstaller.permission.ui.handheld.PermissionControlPreference;
import com.android.packageinstaller.permission.utils.Utils;
@@ -262,6 +263,10 @@ public class AutoPermissionAppsFragment extends AutoSettingsFrameFragment implem
}
if (existingPref != null) {
+ if (existingPref instanceof PermissionControlPreference) {
+ setPreferenceSummary(group, (PermissionControlPreference) existingPref,
+ category != denied, context);
+ }
category.addPreference(existingPref);
continue;
}
@@ -273,6 +278,7 @@ public class AutoPermissionAppsFragment extends AutoSettingsFrameFragment implem
pref.setTitle(Utils.getFullAppLabel(app.getAppInfo(), context));
pref.setEllipsizeEnd();
pref.useSmallerIcon();
+ setPreferenceSummary(group, pref, category != denied, context);
category.addPreference(pref);
}
@@ -301,4 +307,32 @@ public class AutoPermissionAppsFragment extends AutoSettingsFrameFragment implem
setShowSystemAppsToggle();
setLoading(false);
}
+
+ 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(R.string.app_permission_never_accessed_summary);
+ } else {
+ pref.setSummary(R.string.app_permission_never_accessed_denied_summary);
+ }
+ }
+ }
}
diff --git a/src/com/android/packageinstaller/permission/ui/auto/ReviewOngoingUsageAutoFragment.java b/src/com/android/packageinstaller/permission/ui/auto/ReviewOngoingUsageAutoFragment.java
new file mode 100644
index 00000000..beeed38b
--- /dev/null
+++ b/src/com/android/packageinstaller/permission/ui/auto/ReviewOngoingUsageAutoFragment.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.packageinstaller.permission.ui.auto;
+
+import android.app.AlertDialog;
+import android.content.Intent;
+import android.os.Bundle;
+
+import com.android.packageinstaller.permission.ui.handheld.ReviewOngoingUsageFragment;
+
+/**
+ * A dialog listing the currently uses of camera, microphone, and location.
+ */
+public class ReviewOngoingUsageAutoFragment extends ReviewOngoingUsageFragment {
+
+ /**
+ * @return A new {@link ReviewOngoingUsageAutoFragment}
+ */
+ public static ReviewOngoingUsageAutoFragment newInstance(long numMillis) {
+ ReviewOngoingUsageAutoFragment fragment = new ReviewOngoingUsageAutoFragment();
+ Bundle arguments = new Bundle();
+ arguments.putLong(Intent.EXTRA_DURATION_MILLIS, numMillis);
+ fragment.setArguments(arguments);
+ return fragment;
+ }
+
+ @Override
+ protected void setNeutralButton(AlertDialog.Builder builder) {
+ // do nothing
+ }
+}