diff options
Diffstat (limited to 'src/com/android/packageinstaller/permission/model/AppPermissions.java')
-rw-r--r-- | src/com/android/packageinstaller/permission/model/AppPermissions.java | 40 |
1 files changed, 17 insertions, 23 deletions
diff --git a/src/com/android/packageinstaller/permission/model/AppPermissions.java b/src/com/android/packageinstaller/permission/model/AppPermissions.java index a0f23d64..e455ef13 100644 --- a/src/com/android/packageinstaller/permission/model/AppPermissions.java +++ b/src/com/android/packageinstaller/permission/model/AppPermissions.java @@ -19,6 +19,7 @@ package com.android.packageinstaller.permission.model; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; +import android.os.Build; import android.text.BidiFormatter; import android.text.TextPaint; import android.text.TextUtils; @@ -31,16 +32,6 @@ import java.util.LinkedHashMap; import java.util.List; public final class AppPermissions { - private static final float MAX_APP_LABEL_LENGTH_PIXELS = 500; - - private static final TextPaint sAppLabelEllipsizePaint = new TextPaint(); - static { - sAppLabelEllipsizePaint.setAntiAlias(true); - // Both text size and width are given in absolute pixels, for consistent truncation - // across devices; this value corresponds to the default 14dip size on an xdhpi device. - sAppLabelEllipsizePaint.setTextSize(42); - } - private final ArrayList<AppPermissionGroup> mGroups = new ArrayList<>(); private final LinkedHashMap<String, AppPermissionGroup> mNameToGroupMap = new LinkedHashMap<>(); @@ -62,7 +53,9 @@ public final class AppPermissions { mContext = context; mPackageInfo = packageInfo; mFilterPermissions = permissions; - mAppLabel = loadEllipsizedAppLabel(context, packageInfo); + mAppLabel = BidiFormatter.getInstance().unicodeWrap( + packageInfo.applicationInfo.loadSafeLabel( + context.getPackageManager()).toString()); mSortGroups = sortGroups; mOnErrorCallback = onErrorCallback; loadPermissionGroups(); @@ -89,6 +82,19 @@ public final class AppPermissions { return mGroups; } + public boolean isReviewRequired() { + if (!Build.PERMISSIONS_REVIEW_REQUIRED) { + return false; + } + final int groupCount = mGroups.size(); + for (int i = 0; i < groupCount; i++) { + AppPermissionGroup group = mGroups.get(i); + if (group.isReviewRequired()) { + return true; + } + } + return false; + } private void loadPackageInfo() { try { @@ -163,16 +169,4 @@ public final class AppPermissions { } return false; } - - private static CharSequence loadEllipsizedAppLabel(Context context, PackageInfo packageInfo) { - String label = packageInfo.applicationInfo.loadLabel( - context.getPackageManager()).toString(); - String ellipsizedLabel = label.replace("\n", " "); - if (!DeviceUtils.isWear(context)) { - // Only ellipsize for non-Wear devices. - ellipsizedLabel = TextUtils.ellipsize(ellipsizedLabel, sAppLabelEllipsizePaint, - MAX_APP_LABEL_LENGTH_PIXELS, TextUtils.TruncateAt.END).toString(); - } - return BidiFormatter.getInstance().unicodeWrap(ellipsizedLabel); - } } |