From b4445260a8923d72593aafe5540dfb16ff674221 Mon Sep 17 00:00:00 2001 From: kaiyiz Date: Wed, 11 Feb 2015 15:55:31 +0800 Subject: Gallery2: request thumb if fail to get region decoder When fail to get region decoder in SinglePhotoDataAdapter,there is no change to loading state which cause the "no thumbnail" not to be displayed. When fail to get region decoder, try to request thumb image. Change-Id: Ia0a89936097bff6feb58e85c95253e5cc5549859 CRs-Fixed: 793496 --- src/com/android/gallery3d/app/SinglePhotoDataAdapter.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/com/android/gallery3d/app/SinglePhotoDataAdapter.java b/src/com/android/gallery3d/app/SinglePhotoDataAdapter.java index fe39e4e3d..8134756f8 100755 --- a/src/com/android/gallery3d/app/SinglePhotoDataAdapter.java +++ b/src/com/android/gallery3d/app/SinglePhotoDataAdapter.java @@ -89,7 +89,16 @@ public class SinglePhotoDataAdapter extends TileImageViewAdapter @Override public void onFutureDone(Future future) { BitmapRegionDecoder decoder = future.get(); - if (decoder == null) return; + // cannot get large bitmap, then try to get thumb bitmap + if (decoder == null) { + if (mTask != null && !mTask.isCancelled()) { + Log.w(TAG, "fail to get region decoder, try to request thumb image"); + mHasFullImage = false; + pause(); + resume(); + } + return; + } int width = decoder.getWidth(); int height = decoder.getHeight(); BitmapFactory.Options options = new BitmapFactory.Options(); @@ -136,7 +145,6 @@ public class SinglePhotoDataAdapter extends TileImageViewAdapter Bitmap backup = future.get(); if (backup == null) { mLoadingState = LOADING_FAIL; - return; } else { mLoadingState = LOADING_COMPLETE; } -- cgit v1.2.3