summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorOwen Lin <owenlin@google.com>2012-07-31 00:36:10 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-07-31 00:36:12 -0700
commit30d70764999fa00b335502d269e5a170a0f2843e (patch)
treeba5da08e03fde82729b570fa6fd388f509484d49 /src
parent9bea81c2ae6d2d5be8643511ea7e644a26231868 (diff)
parenta51e351e6972845ce37eff2b90571cd9ce73ac62 (diff)
downloadandroid_packages_apps_Snap-30d70764999fa00b335502d269e5a170a0f2843e.tar.gz
android_packages_apps_Snap-30d70764999fa00b335502d269e5a170a0f2843e.tar.bz2
android_packages_apps_Snap-30d70764999fa00b335502d269e5a170a0f2843e.zip
Merge "Fix some lint warnings in Gallery." into gb-ub-photos-arches
Diffstat (limited to 'src')
-rw-r--r--src/com/android/gallery3d/provider/GalleryProvider.java38
-rw-r--r--src/com/android/gallery3d/ui/TileImageViewAdapter.java2
2 files changed, 35 insertions, 5 deletions
diff --git a/src/com/android/gallery3d/provider/GalleryProvider.java b/src/com/android/gallery3d/provider/GalleryProvider.java
index 79ec66be8..45f47a42c 100644
--- a/src/com/android/gallery3d/provider/GalleryProvider.java
+++ b/src/com/android/gallery3d/provider/GalleryProvider.java
@@ -22,13 +22,14 @@ import android.content.Context;
import android.database.Cursor;
import android.database.MatrixCursor;
import android.net.Uri;
+import android.os.AsyncTask;
import android.os.Binder;
-import android.os.Bundle;
import android.os.ParcelFileDescriptor;
import android.provider.MediaStore.Images.ImageColumns;
import android.util.Log;
import com.android.gallery3d.app.GalleryApp;
+import com.android.gallery3d.common.AsyncTaskUtil;
import com.android.gallery3d.common.Utils;
import com.android.gallery3d.data.DataManager;
import com.android.gallery3d.data.MediaItem;
@@ -211,7 +212,7 @@ public class GalleryProvider extends ContentProvider {
if (PicasaSource.isPicasaImage(object)) {
return PicasaSource.openFile(getContext(), object, mode);
} else if (object instanceof MtpImage) {
- return openPipeHelper(uri, null, null, null,
+ return openPipeHelper(null,
new MtpPipeDataWriter((MtpImage) object));
} else {
throw new FileNotFoundException("unspported type: " + object);
@@ -226,6 +227,34 @@ public class GalleryProvider extends ContentProvider {
throw new UnsupportedOperationException();
}
+ private static interface PipeDataWriter<T> {
+ void writeDataToPipe(ParcelFileDescriptor output, T args);
+ }
+
+ // Modified from ContentProvider.openPipeHelper. We are target at API LEVEL 10.
+ // But openPipeHelper is available in API LEVEL 11.
+ private static <T> ParcelFileDescriptor openPipeHelper(
+ final T args, final PipeDataWriter<T> func) throws FileNotFoundException {
+ try {
+ final ParcelFileDescriptor[] pipe = ParcelFileDescriptor.createPipe();
+ AsyncTask<Object, Object, Object> task = new AsyncTask<Object, Object, Object>() {
+ @Override
+ protected Object doInBackground(Object... params) {
+ try {
+ func.writeDataToPipe(pipe[1], args);
+ return null;
+ } finally {
+ Utils.closeSilently(pipe[1]);
+ }
+ }
+ };
+ AsyncTaskUtil.executeInParallel(task, (Object[]) null);
+ return pipe[0];
+ } catch (IOException e) {
+ throw new FileNotFoundException("failure making pipe");
+ }
+ }
+
private final class MtpPipeDataWriter implements PipeDataWriter<Object> {
private final MtpImage mImage;
@@ -234,14 +263,13 @@ public class GalleryProvider extends ContentProvider {
}
@Override
- public void writeDataToPipe(ParcelFileDescriptor output,
- Uri uri, String mimeType, Bundle opts, Object args) {
+ public void writeDataToPipe(ParcelFileDescriptor output, Object args) {
OutputStream os = null;
try {
os = new ParcelFileDescriptor.AutoCloseOutputStream(output);
os.write(mImage.getImageData());
} catch (IOException e) {
- Log.w(TAG, "fail to download: " + uri, e);
+ Log.w(TAG, "fail to download: " + mImage.toString(), e);
} finally {
Utils.closeSilently(os);
}
diff --git a/src/com/android/gallery3d/ui/TileImageViewAdapter.java b/src/com/android/gallery3d/ui/TileImageViewAdapter.java
index 4865e5c67..a14df754a 100644
--- a/src/com/android/gallery3d/ui/TileImageViewAdapter.java
+++ b/src/com/android/gallery3d/ui/TileImageViewAdapter.java
@@ -16,6 +16,7 @@
package com.android.gallery3d.ui;
+import android.annotation.TargetApi;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
@@ -107,6 +108,7 @@ public class TileImageViewAdapter implements TileImageView.Model {
//
// As a result, we should decode region (50-6, 50-6, 250+6, 250+6) or
// (44, 44, 256, 256) from the original photo and down sample it to 106.
+ @TargetApi(ApiHelper.VERSION_CODES.HONEYCOMB)
@Override
public Bitmap getTile(int level, int x, int y, int tileSize,
int borderSize, BitmapPool pool) {