From 7d912500bbe28aea0295fe05e69bf9c079a22d5a Mon Sep 17 00:00:00 2001 From: Yuli Huang Date: Tue, 21 Aug 2012 16:39:50 +0800 Subject: [PATCH] Dismiss dialog in onPause() where we still have the window. bug:6561957 Change-Id: I652c4ec1dd64c650c29f3e4e36ae1200da691694 --- src/com/android/gallery3d/app/CropImage.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/com/android/gallery3d/app/CropImage.java b/src/com/android/gallery3d/app/CropImage.java index 50e7938d4..f27e181d7 100644 --- a/src/com/android/gallery3d/app/CropImage.java +++ b/src/com/android/gallery3d/app/CropImage.java @@ -178,17 +178,17 @@ public class CropImage extends AbstractGalleryActivity { public void handleMessage(Message message) { switch (message.what) { case MSG_LARGE_BITMAP: { - mProgressDialog.dismiss(); + dismissProgressDialogIfShown(); onBitmapRegionDecoderAvailable((BitmapRegionDecoder) message.obj); break; } case MSG_BITMAP: { - mProgressDialog.dismiss(); + dismissProgressDialogIfShown(); onBitmapAvailable((Bitmap) message.obj); break; } case MSG_SHOW_SAVE_ERROR: { - mProgressDialog.dismiss(); + dismissProgressDialogIfShown(); setResult(RESULT_CANCELED); Toast.makeText(CropImage.this, CropImage.this.getString(R.string.save_error), @@ -196,7 +196,7 @@ public class CropImage extends AbstractGalleryActivity { finish(); } case MSG_SAVE_COMPLETE: { - mProgressDialog.dismiss(); + dismissProgressDialogIfShown(); setResult(RESULT_OK, (Intent) message.obj); finish(); break; @@ -882,13 +882,13 @@ public class CropImage extends AbstractGalleryActivity { @Override protected void onPause() { super.onPause(); + dismissProgressDialogIfShown(); Future loadTask = mLoadTask; if (loadTask != null && !loadTask.isDone()) { // load in progress, try to cancel it loadTask.cancel(); loadTask.waitDone(); - mProgressDialog.dismiss(); } Future loadBitmapTask = mLoadBitmapTask; @@ -896,7 +896,6 @@ public class CropImage extends AbstractGalleryActivity { // load in progress, try to cancel it loadBitmapTask.cancel(); loadBitmapTask.waitDone(); - mProgressDialog.dismiss(); } Future saveTask = mSaveTask; @@ -904,7 +903,6 @@ public class CropImage extends AbstractGalleryActivity { // save in progress, try to cancel it saveTask.cancel(); saveTask.waitDone(); - mProgressDialog.dismiss(); } GLRoot root = getGLRoot(); root.lockRenderThread(); @@ -915,6 +913,13 @@ public class CropImage extends AbstractGalleryActivity { } } + private void dismissProgressDialogIfShown() { + if (mProgressDialog != null) { + mProgressDialog.dismiss(); + mProgressDialog = null; + } + } + private MediaItem getMediaItemFromIntentData() { Uri uri = getIntent().getData(); DataManager manager = getDataManager(); -- 2.11.0