diff options
| author | kaiyiz <kaiyiz@codeaurora.org> | 2013-08-17 16:24:33 +0800 |
|---|---|---|
| committer | Steve Kondik <shade@chemlab.org> | 2013-12-10 03:35:03 -0800 |
| commit | 243cd5e66374d49e25ddfcb12c841d81922017d6 (patch) | |
| tree | 7dd731dd3452082ad20054ba27390cfb330bc8f0 | |
| parent | dfdede5c440ea72d67be31ad317387d7f57d78ca (diff) | |
| download | android_packages_apps_Gallery2-243cd5e66374d49e25ddfcb12c841d81922017d6.tar.gz android_packages_apps_Gallery2-243cd5e66374d49e25ddfcb12c841d81922017d6.tar.bz2 android_packages_apps_Gallery2-243cd5e66374d49e25ddfcb12c841d81922017d6.zip | |
Gallery2: fix NPE when tap home key in FilterShowActivity
If tap home key when it just enter filtershow activity,
renderscript context will be destoryed when pause
activity, then loadBitmap task call onPostExecute to
handle the load result, a NPE will happen.
If activity is paused, do not set FilteringPipeline,
it will be set when resume.
CRs-Fixed: 527277
Change-Id: Ib97f328acccfa35cab36a2bb7c8efea4d359844a
| -rw-r--r-- | src/com/android/gallery3d/filtershow/FilterShowActivity.java | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/src/com/android/gallery3d/filtershow/FilterShowActivity.java b/src/com/android/gallery3d/filtershow/FilterShowActivity.java index d482d16ed..fe1ad6295 100644 --- a/src/com/android/gallery3d/filtershow/FilterShowActivity.java +++ b/src/com/android/gallery3d/filtershow/FilterShowActivity.java @@ -118,6 +118,7 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL private LoadBitmapTask mLoadBitmapTask; private boolean mLoading = true; + private boolean mPaused = true; private CategoryAdapter mCategoryLooksAdapter = null; private CategoryAdapter mCategoryBordersAdapter = null; @@ -129,6 +130,7 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + mPaused = true; boolean onlyUsePortrait = getResources().getBoolean(R.bool.only_use_portrait); if (onlyUsePortrait) { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); @@ -499,21 +501,25 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL final View imageShow = findViewById(R.id.imageShow); imageShow.setVisibility(View.VISIBLE); - Bitmap largeBitmap = mImageLoader.getOriginalBitmapLarge(); - FilteringPipeline pipeline = FilteringPipeline.getPipeline(); - pipeline.setOriginal(largeBitmap); - float previewScale = (float) largeBitmap.getWidth() / (float) mImageLoader.getOriginalBounds().width(); - pipeline.setPreviewScaleFactor(previewScale); - Bitmap highresBitmap = mImageLoader.getOriginalBitmapHighres(); - if (highresBitmap != null) { - float highResPreviewScale = (float) highresBitmap.getWidth() / (float) mImageLoader.getOriginalBounds().width(); - pipeline.setHighResPreviewScaleFactor(highResPreviewScale); + if (!mPaused) { + Bitmap largeBitmap = mImageLoader.getOriginalBitmapLarge(); + FilteringPipeline pipeline = FilteringPipeline.getPipeline(); + pipeline.setOriginal(largeBitmap); + float previewScale = (float) largeBitmap.getWidth() / + (float) mImageLoader.getOriginalBounds().width(); + pipeline.setPreviewScaleFactor(previewScale); + Bitmap highresBitmap = mImageLoader.getOriginalBitmapHighres(); + if (highresBitmap != null) { + float highResPreviewScale = (float) highresBitmap.getWidth() / + (float) mImageLoader.getOriginalBounds().width(); + pipeline.setHighResPreviewScaleFactor(highResPreviewScale); + } + pipeline.turnOnPipeline(true); + MasterImage.getImage().setOriginalGeometry(largeBitmap); } if (!mShowingTinyPlanet) { mCategoryFiltersAdapter.removeTinyPlanet(); } - pipeline.turnOnPipeline(true); - MasterImage.getImage().setOriginalGeometry(largeBitmap); mCategoryLooksAdapter.imageLoaded(); mCategoryBordersAdapter.imageLoaded(); mCategoryGeometryAdapter.imageLoaded(); @@ -663,6 +669,7 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL @Override public void onPause() { super.onPause(); + mPaused = true; rsPause(); if (mShareActionProvider != null) { mShareActionProvider.setOnShareTargetSelectedListener(null); @@ -672,6 +679,7 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL @Override public void onResume() { super.onResume(); + mPaused = false; rsResume(); if (mShareActionProvider != null) { mShareActionProvider.setOnShareTargetSelectedListener(this); |
