Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 97c96d4f authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Show usage duration in Permissions Hub."

parents 95c870b3 a5acd0e9
Loading
Loading
Loading
Loading
+20 −2
Original line number Diff line number Diff line
@@ -256,10 +256,28 @@
    <string name="permission_usage_title">Permissions usage</string>

    <!-- Summary for showing a single permission access and the number of accesses [CHAR LIMIT=80] -->
    <string name="permission_usage_summary">Last access: <xliff:g id="time" example="12:10 PM">%1$s</xliff:g>\n<xliff:g id="num" example="42">%2$s</xliff:g> accesses</string>
    <plurals name="permission_usage_summary">
        <item quantity="one">Last access: <xliff:g id="time" example="12:10 PM">%1$s</xliff:g>\n<xliff:g id="num" example="42">%2$s</xliff:g> access</item>
        <item quantity="other">Last access: <xliff:g id="time" example="12:10 PM">%1$s</xliff:g>\n<xliff:g id="num" example="42">%2$s</xliff:g> accesses</item>
    </plurals>

    <!-- Summary for showing a single permission access and the number of accesses, including those in the background [CHAR LIMIT=80] -->
    <string name="permission_usage_summary_background">Last access: <xliff:g id="time" example="12:10 PM">%1$s</xliff:g>\n<xliff:g id="num" example="42">%2$s</xliff:g> accesses (<xliff:g id="num" example="7">%3$s</xliff:g> in background)</string>
    <plurals name="permission_usage_summary_background">
        <item quantity="one">Last access: <xliff:g id="time" example="12:10 PM">%1$s</xliff:g>\n<xliff:g id="num" example="42">%2$s</xliff:g> access (<xliff:g id="num" example="7">%3$s</xliff:g> in background)</item>
        <item quantity="other">Last access: <xliff:g id="time" example="12:10 PM">%1$s</xliff:g>\n<xliff:g id="num" example="42">%2$s</xliff:g> accesses (<xliff:g id="num" example="7">%3$s</xliff:g> in background)</item>
    </plurals>

    <!-- Summary for showing a single permission access and the number of accesses [CHAR LIMIT=120] -->
    <plurals name="permission_usage_summary_duration">
        <item quantity="one">Last access: <xliff:g id="time" example="12:10 PM">%1$s</xliff:g>\n<xliff:g id="num" example="42">%2$s</xliff:g> access\nDuration: <xliff:g id="time" example="2 hours">%3$s</xliff:g></item>
        <item quantity="other">Last access: <xliff:g id="time" example="12:10 PM">%1$s</xliff:g>\n<xliff:g id="num" example="42">%2$s</xliff:g> accesses\nDuration: <xliff:g id="time" example="2 hours">%3$s</xliff:g></item>
    </plurals>

    <!-- Summary for showing a single permission access and the number of accesses, including those in the background [CHAR LIMIT=120] -->
    <plurals name="permission_usage_summary_background_duration">
        <item quantity="one">Last access: <xliff:g id="time" example="12:10 PM">%1$s</xliff:g>\n<xliff:g id="num" example="42">%2$s</xliff:g> access (<xliff:g id="num" example="7">%3$s</xliff:g> in background)\nDuration: <xliff:g id="time" example="2 hours">%3$s</xliff:g></item>
        <item quantity="other">Last access: <xliff:g id="time" example="12:10 PM">%1$s</xliff:g>\n<xliff:g id="num" example="42">%2$s</xliff:g> accesses (<xliff:g id="num" example="7">%3$s</xliff:g> in background)\nDuration: <xliff:g id="time" example="2 hours">%3$s</xliff:g></item>
    </plurals>

    <!-- Description for showing permission accesses with any permission [CHAR LIMIT=30] -->
    <string name="permission_usage_any_permission">Any permission</string>
+33 −6
Original line number Diff line number Diff line
@@ -16,6 +16,9 @@

package com.android.packageinstaller.permission.ui.handheld;

import static android.Manifest.permission_group.CAMERA;
import static android.Manifest.permission_group.MICROPHONE;

import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.Drawable;
@@ -34,6 +37,7 @@ import androidx.preference.PreferenceViewHolder;
import com.android.packageinstaller.permission.model.AppPermissionGroup;
import com.android.packageinstaller.permission.model.AppPermissionUsage.GroupUsage;
import com.android.packageinstaller.permission.ui.AppPermissionActivity;
import com.android.packageinstaller.permission.utils.Utils;
import com.android.permissioncontroller.R;

import java.util.List;
@@ -121,13 +125,36 @@ public class PermissionControlPreference extends Preference {
     * @param accessTimeStr the string representing the last access time
     */
    public void setUsageSummary(@NonNull GroupUsage groupUsage, @NonNull String accessTimeStr) {
        if (groupUsage.getBackgroundAccessCount() == 0) {
            setSummary(mContext.getString(R.string.permission_usage_summary, accessTimeStr,
                    groupUsage.getForegroundAccessCount()));
        long backgroundAccessCount = groupUsage.getBackgroundAccessCount();
        long duration = 0;
        String groupName = groupUsage.getGroup().getName();
        if (groupName.equals(CAMERA) || groupName.equals(MICROPHONE)) {
            duration = groupUsage.getAccessDuration();
        }
        if (backgroundAccessCount == 0) {
            long numForegroundAccesses = groupUsage.getForegroundAccessCount();
            if (duration == 0) {
                setSummary(mContext.getResources().getQuantityString(
                        R.plurals.permission_usage_summary, (int) numForegroundAccesses,
                        accessTimeStr, numForegroundAccesses));
            } else {
                setSummary(mContext.getResources().getQuantityString(
                        R.plurals.permission_usage_summary_duration, (int) numForegroundAccesses,
                        accessTimeStr, numForegroundAccesses,
                        Utils.getUsageDurationString(mContext, groupUsage)));
            }
        } else {
            setSummary(
                    mContext.getString(R.string.permission_usage_summary_background, accessTimeStr,
                            groupUsage.getAccessCount(), groupUsage.getBackgroundAccessCount()));
            long numAccesses = groupUsage.getAccessCount();
            if (duration == 0) {
                setSummary(mContext.getResources().getQuantityString(
                        R.plurals.permission_usage_summary_background, (int) numAccesses,
                        accessTimeStr, numAccesses, backgroundAccessCount));
            } else {
                setSummary(mContext.getResources().getQuantityString(
                        R.plurals.permission_usage_summary_background_duration, (int) numAccesses,
                        accessTimeStr, numAccesses, backgroundAccessCount,
                        Utils.getUsageDurationString(mContext, groupUsage)));
            }
        }
    }

+3 −4
Original line number Diff line number Diff line
@@ -573,16 +573,15 @@ public final class Utils {
    /**
     * Build a string representing the duration of a permission usage.
     *
     * @return a string representing the amount of time since this app's most recent permission
     * usage or null if there are no usages.
     * @return a string representing the duration of this app's usage or null if there are no
     * usages.
     */
    public static @Nullable String getUsageDurationString(@NonNull Context context,
            @Nullable AppPermissionUsage.GroupUsage groupUsage) {
        if (groupUsage == null) {
            return null;
        }
        return getTimeDiffStr(context, System.currentTimeMillis()
                - groupUsage.getAccessDuration());
        return getTimeDiffStr(context, groupUsage.getAccessDuration());
    }

    /**