From ad7fcc400fe1609929dc4605edaf1e0caeeeec1b Mon Sep 17 00:00:00 2001 From: "Philip P. Moltmann" Date: Fri, 15 Apr 2016 10:25:47 -0700 Subject: DeletePackageAsUser in PackageManager uses different ordering of flags than IPackageManager. Bug: 28207146 Change-Id: Idc75427005c7998de4edd30245fa00a68ba816ba --- src/com/android/packageinstaller/UninstallAppProgress.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/android/packageinstaller/UninstallAppProgress.java b/src/com/android/packageinstaller/UninstallAppProgress.java index e9c058f6..3a178273 100755 --- a/src/com/android/packageinstaller/UninstallAppProgress.java +++ b/src/com/android/packageinstaller/UninstallAppProgress.java @@ -262,7 +262,7 @@ public class UninstallAppProgress extends Activity implements OnClickListener { getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); getPackageManager().deletePackageAsUser(mAppInfo.packageName, observer, - mUser.getIdentifier(), mAllUsers ? PackageManager.DELETE_ALL_USERS : 0); + mAllUsers ? PackageManager.DELETE_ALL_USERS : 0, mUser.getIdentifier()); mHandler.sendMessageDelayed(mHandler.obtainMessage(UNINSTALL_IS_SLOW), QUICK_INSTALL_DELAY_MILLIS); -- cgit v1.2.3 From 3942ad1e78f775f33509fc56775376d1c9a77dc2 Mon Sep 17 00:00:00 2001 From: Svetoslav Ganov Date: Tue, 3 May 2016 17:46:42 +0000 Subject: Revert "Grant only the requested permissions" This reverts commit 294b6406798c59e9db5ffa99d042f9b8c6ca6f90. Change-Id: Ifb48eb1fbdb0499743f4ca88adbd5ed77cfa4cf8 --- .../permission/ui/GrantPermissionsActivity.java | 50 ++++------------------ .../permission/utils/ArrayUtils.java | 18 -------- 2 files changed, 9 insertions(+), 59 deletions(-) diff --git a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java index 807d3a3b..78d33d23 100644 --- a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java +++ b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java @@ -29,6 +29,7 @@ import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Typeface; import android.graphics.drawable.Icon; +import android.hardware.camera2.utils.ArrayUtils; import android.os.Build; import android.os.Bundle; import android.text.SpannableString; @@ -46,7 +47,6 @@ import com.android.packageinstaller.permission.model.AppPermissionGroup; import com.android.packageinstaller.permission.model.AppPermissions; import com.android.packageinstaller.permission.model.Permission; import com.android.packageinstaller.permission.ui.handheld.GrantPermissionsViewHandlerImpl; -import com.android.packageinstaller.permission.utils.ArrayUtils; import com.android.packageinstaller.permission.utils.SafetyNetLogger; import java.util.ArrayList; @@ -147,36 +147,24 @@ public class GrantPermissionsActivity extends OverlayTouchActivity switch (permissionPolicy) { case DevicePolicyManager.PERMISSION_POLICY_AUTO_GRANT: { if (!group.areRuntimePermissionsGranted()) { - group.grantRuntimePermissions(false, computeAffectedPermissions( - callingPackageInfo, requestedPermission)); + group.grantRuntimePermissions(false); } group.setPolicyFixed(); } break; case DevicePolicyManager.PERMISSION_POLICY_AUTO_DENY: { if (group.areRuntimePermissionsGranted()) { - group.revokeRuntimePermissions(false, computeAffectedPermissions( - callingPackageInfo, requestedPermission)); + group.revokeRuntimePermissions(false); } group.setPolicyFixed(); } break; default: { if (!group.areRuntimePermissionsGranted()) { - GroupState state = mRequestGrantPermissionGroups.get(group.getName()); - if (state == null) { - state = new GroupState(group); - mRequestGrantPermissionGroups.put(group.getName(), state); - } - String affectedPermission = computeAffectedPermission( - callingPackageInfo, requestedPermission); - if (affectedPermission != null) { - state.affectedPermissions = ArrayUtils.appendString( - state.affectedPermissions, affectedPermission); - } + mRequestGrantPermissionGroups.put(group.getName(), + new GroupState(group)); } else { - group.grantRuntimePermissions(false, computeAffectedPermissions( - callingPackageInfo, requestedPermission)); + group.grantRuntimePermissions(false); updateGrantResults(group); } } break; @@ -283,12 +271,10 @@ public class GrantPermissionsActivity extends OverlayTouchActivity GroupState groupState = mRequestGrantPermissionGroups.get(name); if (groupState.mGroup != null) { if (granted) { - groupState.mGroup.grantRuntimePermissions(doNotAskAgain, - groupState.affectedPermissions); + groupState.mGroup.grantRuntimePermissions(doNotAskAgain); groupState.mState = GroupState.STATE_ALLOWED; } else { - groupState.mGroup.revokeRuntimePermissions(doNotAskAgain, - groupState.affectedPermissions); + groupState.mGroup.revokeRuntimePermissions(doNotAskAgain); groupState.mState = GroupState.STATE_DENIED; } updateGrantResults(groupState.mGroup); @@ -300,7 +286,7 @@ public class GrantPermissionsActivity extends OverlayTouchActivity private void updateGrantResults(AppPermissionGroup group) { for (Permission permission : group.getPermissions()) { - final int index = ArrayUtils.indexOf( + final int index = ArrayUtils.getArrayIndex( mRequestedPermissions, permission.getName()); if (index >= 0) { mGrantResults[index] = permission.isGranted() ? PackageManager.PERMISSION_GRANTED @@ -416,23 +402,6 @@ public class GrantPermissionsActivity extends OverlayTouchActivity SafetyNetLogger.logPermissionsRequested(mAppPermissions.getPackageInfo(), groups); } - private static String[] computeAffectedPermissions(PackageInfo callingPackageInfo, - String permission) { - String affectedPermission = computeAffectedPermission(callingPackageInfo, permission); - if (affectedPermission != null) { - return new String[] {permission}; - } - return null; - } - - private static String computeAffectedPermission(PackageInfo callingPackageInfo, - String permission) { - if (callingPackageInfo.applicationInfo.targetSdkVersion > Build.VERSION_CODES.M) { - return permission; - } - return null; - } - private static final class GroupState { static final int STATE_UNKNOWN = 0; static final int STATE_ALLOWED = 1; @@ -440,7 +409,6 @@ public class GrantPermissionsActivity extends OverlayTouchActivity final AppPermissionGroup mGroup; int mState = STATE_UNKNOWN; - String[] affectedPermissions; GroupState(AppPermissionGroup group) { mGroup = group; diff --git a/src/com/android/packageinstaller/permission/utils/ArrayUtils.java b/src/com/android/packageinstaller/permission/utils/ArrayUtils.java index 2af641bc..4b7a3947 100644 --- a/src/com/android/packageinstaller/permission/utils/ArrayUtils.java +++ b/src/com/android/packageinstaller/permission/utils/ArrayUtils.java @@ -16,8 +16,6 @@ package com.android.packageinstaller.permission.utils; -import android.text.TextUtils; - import java.util.Objects; public final class ArrayUtils { @@ -44,20 +42,4 @@ public final class ArrayUtils { } return -1; } - - public static String[] appendString(String[] cur, String val) { - if (cur == null) { - return new String[] { val }; - } - final int N = cur.length; - for (int i = 0; i < N; i++) { - if (TextUtils.equals(cur[i], val)) { - return cur; - } - } - String[] ret = new String[N + 1]; - System.arraycopy(cur, 0, ret, 0, N); - ret[N] = val; - return ret; - } } -- cgit v1.2.3 From a84b4365732931570e44b373081e484ec26db637 Mon Sep 17 00:00:00 2001 From: "Philip P. Moltmann" Date: Mon, 23 May 2016 12:09:07 -0700 Subject: Format the template using HTML tags. Manual formatting is to complicated to do. Fixes: 28852429 Change-Id: Ibab723b82a2b14ad94a3038dffccc96f86ba8ee4 --- res/values/strings.xml | 2 +- .../permission/ui/GrantPermissionsActivity.java | 15 ++++----------- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index a58c5e59..12ad5f12 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -172,7 +172,7 @@ Allow - %1$s to + <b>%1$s</b> to %2$s? diff --git a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java index 787f1533..4ee76a18 100644 --- a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java +++ b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java @@ -27,13 +27,12 @@ import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.PermissionInfo; import android.content.res.Configuration; import android.content.res.Resources; -import android.graphics.Typeface; import android.graphics.drawable.Icon; import android.hardware.camera2.utils.ArrayUtils; import android.os.Build; import android.os.Bundle; -import android.text.SpannableString; -import android.text.style.StyleSpan; +import android.text.Html; +import android.text.Spanned; import android.util.Log; import android.view.KeyEvent; import android.view.MotionEvent; @@ -231,16 +230,10 @@ public class GrantPermissionsActivity extends OverlayTouchActivity for (GroupState groupState : mRequestGrantPermissionGroups.values()) { if (groupState.mState == GroupState.STATE_UNKNOWN) { CharSequence appLabel = mAppPermissions.getAppLabel(); - SpannableString message = new SpannableString(getString( - R.string.permission_warning_template, appLabel, - groupState.mGroup.getDescription())); + Spanned message = Html.fromHtml(getString(R.string.permission_warning_template, + appLabel, groupState.mGroup.getDescription()), 0); // Set the permission message as the title so it can be announced. setTitle(message); - // Color the app name. - int appLabelStart = message.toString().indexOf(" " + appLabel.toString() + " ", 0); - int appLabelLength = appLabel.length() + 1; - message.setSpan(new StyleSpan(Typeface.BOLD), appLabelStart, - appLabelStart + appLabelLength, 0); // Set the new grant view // TODO: Use a real message for the action. We need group action APIs -- cgit v1.2.3