From 4588b65ebb1aacef2a991d5da6659d69f791e571 Mon Sep 17 00:00:00 2001 From: George Mount Date: Tue, 23 Oct 2012 14:28:58 -0700 Subject: Fix NPE in detecting panoramas. Bug 7398022 Change-Id: Iae646c424ffbe552d014f563c8f4e5e4385b4724 --- src/com/android/gallery3d/app/PanoramaMetadataSupport.java | 10 +++++++--- src_pd/com/android/gallery3d/util/LightCycleHelper.java | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/com/android/gallery3d/app/PanoramaMetadataSupport.java b/src/com/android/gallery3d/app/PanoramaMetadataSupport.java index d40422582..ba0c9e71a 100644 --- a/src/com/android/gallery3d/app/PanoramaMetadataSupport.java +++ b/src/com/android/gallery3d/app/PanoramaMetadataSupport.java @@ -20,6 +20,7 @@ import com.android.gallery3d.data.MediaObject.PanoramaSupportCallback; import com.android.gallery3d.data.PanoramaMetadataJob; import com.android.gallery3d.util.Future; import com.android.gallery3d.util.FutureListener; +import com.android.gallery3d.util.LightCycleHelper; import com.android.gallery3d.util.LightCycleHelper.PanoramaMetadata; import java.util.ArrayList; @@ -77,13 +78,16 @@ public class PanoramaMetadataSupport implements FutureListener public void onFutureDone(Future future) { synchronized (mLock) { mPanoramaMetadata = future.get(); + if (mPanoramaMetadata == null) { + // Error getting panorama data from file. Treat as not panorama. + mPanoramaMetadata = LightCycleHelper.NOT_PANORAMA; + } for (PanoramaSupportCallback cb : mCallbacksWaiting) { - cb.panoramaInfoAvailable(mMediaObject, - mPanoramaMetadata.mUsePanoramaViewer, + cb.panoramaInfoAvailable(mMediaObject, mPanoramaMetadata.mUsePanoramaViewer, mPanoramaMetadata.mIsPanorama360); } mGetPanoMetadataTask = null; mCallbacksWaiting = null; } - } + } } diff --git a/src_pd/com/android/gallery3d/util/LightCycleHelper.java b/src_pd/com/android/gallery3d/util/LightCycleHelper.java index 68c019567..bceeea6b4 100644 --- a/src_pd/com/android/gallery3d/util/LightCycleHelper.java +++ b/src_pd/com/android/gallery3d/util/LightCycleHelper.java @@ -61,7 +61,7 @@ public class LightCycleHelper { } } - private static final PanoramaMetadata NOT_PANORAMA = new PanoramaMetadata(false, false); + public static final PanoramaMetadata NOT_PANORAMA = new PanoramaMetadata(false, false); public static void setupCaptureIntent(Context context, Intent it, String outputDir) { /* Do nothing */ -- cgit v1.2.3