diff options
author | Gabriele M <moto.falcon.git@gmail.com> | 2017-03-23 22:52:54 +0100 |
---|---|---|
committer | Gabriele M <moto.falcon.git@gmail.com> | 2017-03-23 22:27:04 +0000 |
commit | 9b194dd68cf8f3085bec91d5a7939d2eb3815b8c (patch) | |
tree | 7781b7db7426099a6101db5cbf5fc49a0f0dd8fe /src/com/android/packageinstaller/permission/ui/handheld | |
parent | 6833a1108b7ebc6db4dfd5cfc98e9c05712fdefa (diff) | |
download | android_packages_apps_PackageInstaller-9b194dd68cf8f3085bec91d5a7939d2eb3815b8c.tar.gz android_packages_apps_PackageInstaller-9b194dd68cf8f3085bec91d5a7939d2eb3815b8c.tar.bz2 android_packages_apps_PackageInstaller-9b194dd68cf8f3085bec91d5a7939d2eb3815b8c.zip |
Revert all the changes introduced with cafrebase
There have been reports of issues with runtime permissions. Revert
all the changes introduced with cafrebase.
This reverts the following commits:
- 64d3812bca7c1121a767e8436b433e8b293e0110
- df27c8179ea9b6ed1c1a16049bdf541091c3126b
- e4d18337497cd53ab311fa95acf89951b2d0d478
- b787f076e6cb038717af62f1b6a7b55620dfd626
- 2d5c59ce6a0def14934662b6741cbef6c07c7e71
- be2a8bf78deff2b2db485cc6a247e9a6d49960f6
- c48dd8c1686dc0631dad5b90295e79a3f1ef63c8
BUGBASH-270
BUGBASH-285
Change-Id: I39029116f331835d23bcc1b089972be4cf610519
Diffstat (limited to 'src/com/android/packageinstaller/permission/ui/handheld')
2 files changed, 9 insertions, 120 deletions
diff --git a/src/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java index b5f57ad0..422fb124 100644 --- a/src/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java +++ b/src/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java @@ -27,10 +27,7 @@ import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; -import android.content.pm.PackageManager.NameNotFoundException; -import android.content.pm.PermissionInfo; import android.graphics.drawable.Drawable; -import android.Manifest; import android.net.Uri; import android.os.Bundle; import android.preference.Preference; @@ -51,7 +48,6 @@ import android.widget.Toast; import com.android.packageinstaller.R; 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.utils.LocationUtils; import com.android.packageinstaller.permission.utils.SafetyNetLogger; import com.android.packageinstaller.permission.utils.Utils; @@ -77,7 +73,6 @@ public final class AppPermissionsFragment extends SettingsWithHeader private PreferenceScreen mExtraScreen; private boolean mHasConfirmedRevoke; - String mPackageName; public static AppPermissionsFragment newInstance(String packageName) { return setPackageName(new AppPermissionsFragment(), packageName); @@ -100,9 +95,9 @@ public final class AppPermissionsFragment extends SettingsWithHeader ab.setDisplayHomeAsUpEnabled(true); } - mPackageName = getArguments().getString(Intent.EXTRA_PACKAGE_NAME); + String packageName = getArguments().getString(Intent.EXTRA_PACKAGE_NAME); Activity activity = getActivity(); - PackageInfo packageInfo = getPackageInfo(activity, mPackageName); + PackageInfo packageInfo = getPackageInfo(activity, packageName); if (packageInfo == null) { Toast.makeText(activity, R.string.app_not_found_dlg_title, Toast.LENGTH_LONG).show(); activity.finish(); @@ -242,33 +237,6 @@ public final class AppPermissionsFragment extends SettingsWithHeader } mExtraScreen.addPreference(preference); } - if (AppPermissionGroup.isStrictOpEnable() && isPlatform) { - try { - if (!group.getName().equals(Manifest.permission_group.STORAGE)) { - PackageManager pm = context.getPackageManager(); - for (Permission permission : group.getPermissions()) { - PermissionInfo perm = pm.getPermissionInfo(permission.getName(), 0); - final String[] filterPermissions = new String[]{permission.getName()}; - if (perm.protectionLevel == PermissionInfo.PROTECTION_DANGEROUS) { - SwitchPreference preference_permission = new SwitchPreference(context); - preference_permission.setOnPreferenceChangeListener(this); - preference_permission.setKey(permission.getName()); - preference_permission.setTitle(perm.loadLabel(pm)); - preference_permission.setPersistent(false); - preference_permission.setEnabled(true); - AppPermissionGroup permissionGroup = getPermisssionGroup(perm.group); - preference_permission.setChecked( - permissionGroup.areRuntimePermissionsGranted(filterPermissions)); - screen.addPreference(preference_permission); - } else if (perm.protectionLevel == PermissionInfo.PROTECTION_NORMAL) { - continue; - } - } - } - } catch (NameNotFoundException e) { - Log.e(LOG_TAG, "Problem getting package info for " + mPackageName, e); - } - } } if (mExtraScreen != null) { @@ -294,79 +262,12 @@ public final class AppPermissionsFragment extends SettingsWithHeader setLoading(false /* loading */, true /* animate */); } - private AppPermissionGroup getPermisssionGroup(String group) { - for (AppPermissionGroup mGroup : mAppPermissions.getPermissionGroups()) { - if (group.equals(mGroup.getName())) { - return mGroup; - } - } - return null; - } - - private void updateEveryPermissionPreference(AppPermissionGroup group) { - if (group.getName().equals(Manifest.permission_group.STORAGE)) return; - PackageManager pm = getContext().getPackageManager(); - PreferenceScreen screen = getPreferenceScreen(); - for (Permission permission : group.getPermissions()) { - Preference permission_preference - = screen.findPreference((CharSequence) permission.getName()); - try { - PermissionInfo permInfo = pm.getPermissionInfo(permission.getName(), 0); - AppPermissionGroup permissionGroup = getPermisssionGroup(permInfo.group); - final String[] filterPermissions = new String[]{permission.getName()}; - ((SwitchPreference) permission_preference).setChecked( - permissionGroup.areRuntimePermissionsGranted(filterPermissions)); - } catch (NameNotFoundException e) { - Log.e(LOG_TAG, "Failed to update permission_preference", e); - } - } - } - @Override public boolean onPreferenceChange(final Preference preference, Object newValue) { - String key = preference.getKey(); - final String[] filterPermissions = new String[]{key}; - final AppPermissionGroup group = mAppPermissions.getPermissionGroup(key); - PackageManager pm = getContext().getPackageManager(); + String groupName = preference.getKey(); + final AppPermissionGroup group = mAppPermissions.getPermissionGroup(groupName); if (group == null) { - if (AppPermissionGroup.isStrictOpEnable()) { - try { - PermissionInfo permInfo = pm.getPermissionInfo(key, 0); - final AppPermissionGroup title_group - = mAppPermissions.getPermissionGroup(permInfo.group); - final boolean grantedByDefault = title_group.hasGrantedByDefaultPermission(); - PreferenceScreen screen = getPreferenceScreen(); - Preference group_preference = screen.findPreference((CharSequence) permInfo.group); - AppPermissionGroup permissionGroup = getPermisssionGroup(permInfo.group); - if (newValue == Boolean.TRUE) { - ((SwitchPreference)preference).setChecked(true); - title_group.grantRuntimePermissions(false, filterPermissions); - ((SwitchPreference) group_preference).setChecked( - permissionGroup.areRuntimePermissionsGranted()); - } else { - //When the permission is off, the application maybe will crash, so need to - //add a warning dialog when the user revoke the permission. - new AlertDialog.Builder(getContext()) - .setMessage(grantedByDefault ? R.string.system_warning - : R.string.old_sdk_deny_warning) - .setNegativeButton(R.string.cancel, null) - .setPositiveButton(R.string.grant_dialog_button_deny_anyway, - new OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - ((SwitchPreference) preference).setChecked(false); - title_group.revokeRuntimePermissions(false, filterPermissions); - ((SwitchPreference) group_preference).setChecked( - permissionGroup.areRuntimePermissionsGranted()); - } - }) - .show(); - } - } catch (NameNotFoundException e) { - Log.e(LOG_TAG, "Problem getting package info for ", e); - } - } return false; } @@ -376,13 +277,8 @@ public final class AppPermissionsFragment extends SettingsWithHeader LocationUtils.showLocationDialog(getContext(), mAppPermissions.getAppLabel()); return false; } - - final boolean isPlatform = group.getDeclaringPackage().equals(Utils.OS_PKG); if (newValue == Boolean.TRUE) { group.grantRuntimePermissions(false); - if (AppPermissionGroup.isStrictOpEnable() && isPlatform) { - updateEveryPermissionPreference(group); - } } else { final boolean grantedByDefault = group.hasGrantedByDefaultPermission(); if (grantedByDefault || (!group.hasRuntimePermission() && !mHasConfirmedRevoke)) { @@ -396,9 +292,6 @@ public final class AppPermissionsFragment extends SettingsWithHeader public void onClick(DialogInterface dialog, int which) { ((SwitchPreference) preference).setChecked(false); group.revokeRuntimePermissions(false); - if (AppPermissionGroup.isStrictOpEnable() && isPlatform) { - updateEveryPermissionPreference(group); - } if (!grantedByDefault) { mHasConfirmedRevoke = true; } @@ -408,11 +301,9 @@ public final class AppPermissionsFragment extends SettingsWithHeader return false; } else { group.revokeRuntimePermissions(false); - if (AppPermissionGroup.isStrictOpEnable() && isPlatform) { - updateEveryPermissionPreference(group); - } } } + return true; } diff --git a/src/com/android/packageinstaller/permission/ui/handheld/GrantPermissionsViewHandlerImpl.java b/src/com/android/packageinstaller/permission/ui/handheld/GrantPermissionsViewHandlerImpl.java index 713b3e27..6342826f 100755..100644 --- a/src/com/android/packageinstaller/permission/ui/handheld/GrantPermissionsViewHandlerImpl.java +++ b/src/com/android/packageinstaller/permission/ui/handheld/GrantPermissionsViewHandlerImpl.java @@ -35,7 +35,6 @@ import com.android.packageinstaller.R; import com.android.packageinstaller.permission.ui.ButtonBarLayout; import com.android.packageinstaller.permission.ui.GrantPermissionsViewHandler; import com.android.packageinstaller.permission.ui.ManualLayoutFrame; -import com.android.packageinstaller.permission.model.AppPermissionGroup; public final class GrantPermissionsViewHandlerImpl implements GrantPermissionsViewHandler, OnClickListener { @@ -314,7 +313,7 @@ public final class GrantPermissionsViewHandlerImpl } private void updateDoNotAskCheckBox() { - if (!mShowDonNotAsk) { + if (mShowDonNotAsk) { mDoNotAskCheckbox.setVisibility(View.VISIBLE); mDoNotAskCheckbox.setOnClickListener(this); mDoNotAskCheckbox.setChecked(mDoNotAskChecked); @@ -330,8 +329,7 @@ public final class GrantPermissionsViewHandlerImpl case R.id.permission_allow_button: if (mResultListener != null) { view.clearAccessibilityFocus(); - mResultListener.onPermissionGrantResult( - mGroupName, true, AppPermissionGroup.isStrictOpEnable()? false: mDoNotAskCheckbox.isChecked()); + mResultListener.onPermissionGrantResult(mGroupName, true, false); } break; case R.id.permission_deny_button: @@ -339,11 +337,11 @@ public final class GrantPermissionsViewHandlerImpl if (mResultListener != null) { view.clearAccessibilityFocus(); mResultListener.onPermissionGrantResult(mGroupName, false, - AppPermissionGroup.isStrictOpEnable()? false: mShowDonNotAsk && mDoNotAskCheckbox.isChecked()); + mShowDonNotAsk && mDoNotAskCheckbox.isChecked()); } break; case R.id.do_not_ask_checkbox: - //mAllowButton.setEnabled(!mDoNotAskCheckbox.isChecked()); + mAllowButton.setEnabled(!mDoNotAskCheckbox.isChecked()); break; } } |