summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkaiyiz <kaiyiz@codeaurora.org>2013-08-17 16:24:33 +0800
committerSteve Kondik <shade@chemlab.org>2013-12-10 03:35:03 -0800
commit243cd5e66374d49e25ddfcb12c841d81922017d6 (patch)
tree7dd731dd3452082ad20054ba27390cfb330bc8f0
parentdfdede5c440ea72d67be31ad317387d7f57d78ca (diff)
downloadandroid_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.java30
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);