Merge "Handle READ_EXTERNAL enforced by default."
This commit is contained in:
@@ -17,8 +17,6 @@
|
|||||||
package com.android.settings.deviceinfo;
|
package com.android.settings.deviceinfo;
|
||||||
|
|
||||||
import static android.Manifest.permission.READ_EXTERNAL_STORAGE;
|
import static android.Manifest.permission.READ_EXTERNAL_STORAGE;
|
||||||
import static android.content.pm.PackageManager.ENFORCEMENT_DEFAULT;
|
|
||||||
import static android.content.pm.PackageManager.ENFORCEMENT_YES;
|
|
||||||
|
|
||||||
import android.app.ActivityThread;
|
import android.app.ActivityThread;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
@@ -180,15 +178,15 @@ public class Memory extends SettingsPreferenceFragment {
|
|||||||
final MenuItem usb = menu.findItem(R.id.storage_usb);
|
final MenuItem usb = menu.findItem(R.id.storage_usb);
|
||||||
usb.setVisible(!isMassStorageEnabled());
|
usb.setVisible(!isMassStorageEnabled());
|
||||||
|
|
||||||
final int enforcement;
|
final boolean enforced;
|
||||||
try {
|
try {
|
||||||
enforcement = mPackageService.getPermissionEnforcement(READ_EXTERNAL_STORAGE);
|
enforced = mPackageService.isPermissionEnforced(READ_EXTERNAL_STORAGE);
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
throw new RuntimeException("Problem talking with PackageManager", e);
|
throw new RuntimeException("Problem talking with PackageManager", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
final MenuItem enforceReadExternal = menu.findItem(R.id.storage_enforce_read_external);
|
final MenuItem enforceReadExternal = menu.findItem(R.id.storage_enforce_read_external);
|
||||||
enforceReadExternal.setChecked(enforcement == ENFORCEMENT_YES);
|
enforceReadExternal.setChecked(enforced);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -209,10 +207,9 @@ public class Memory extends SettingsPreferenceFragment {
|
|||||||
final boolean checked = !item.isChecked();
|
final boolean checked = !item.isChecked();
|
||||||
item.setChecked(checked);
|
item.setChecked(checked);
|
||||||
|
|
||||||
final int enforcement = checked ? ENFORCEMENT_YES : ENFORCEMENT_DEFAULT;
|
|
||||||
try {
|
try {
|
||||||
// TODO: offload to background thread
|
// TODO: offload to background thread
|
||||||
mPackageService.setPermissionEnforcement(READ_EXTERNAL_STORAGE, enforcement);
|
mPackageService.setPermissionEnforced(READ_EXTERNAL_STORAGE, checked);
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
throw new RuntimeException("Problem talking with PackageManager", e);
|
throw new RuntimeException("Problem talking with PackageManager", e);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user