Fix SecurityException when exiting wallpaper picker early

issue 16155967

Change-Id: Iba1add737089b73e6e5bbfb143dce4204fa9dc7c
This commit is contained in:
Adam Cohen 2014-07-24 10:39:57 -07:00
parent 260065cac2
commit 8dc6e1bfa2
1 changed files with 18 additions and 4 deletions

View File

@ -840,12 +840,26 @@ public class WallpaperPickerActivity extends WallpaperCropActivity {
final Context context = this;
new AsyncTask<Void, Bitmap, Bitmap>() {
protected Bitmap doInBackground(Void...args) {
try {
int rotation = WallpaperCropActivity.getRotationFromExif(context, uri);
return createThumbnail(defaultSize, context, uri, null, null, 0, rotation, false);
} catch (SecurityException securityException) {
if (isDestroyed()) {
// Temporarily granted permissions are revoked when the activity
// finishes, potentially resulting in a SecurityException here.
// Even though {@link #isDestroyed} might also return true in different
// situations where the configuration changes, we are fine with
// catching these cases here as well.
cancel(false);
} else {
// otherwise it had a different cause and we throw it further
throw securityException;
}
return null;
}
}
protected void onPostExecute(Bitmap thumb) {
if (thumb != null) {
if (!isCancelled() && thumb != null) {
image.setImageBitmap(thumb);
Drawable thumbDrawable = image.getDrawable();
thumbDrawable.setDither(true);