summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorOwen Lin <owenlin@google.com>2011-08-24 15:45:08 +0800
committerOwen Lin <owenlin@google.com>2011-08-24 15:47:18 +0800
commit476a89e18fc6b8a472b4e352d20be3a09a1776a4 (patch)
tree022ad630e058147e9d6964cd32d1d17f156e844c /src
parent666f131bda5fbb02a07d54cfb0282e1d224d8f19 (diff)
downloadandroid_packages_apps_Gallery2-476a89e18fc6b8a472b4e352d20be3a09a1776a4.tar.gz
android_packages_apps_Gallery2-476a89e18fc6b8a472b4e352d20be3a09a1776a4.tar.bz2
android_packages_apps_Gallery2-476a89e18fc6b8a472b4e352d20be3a09a1776a4.zip
Fix cannot edit picasa synced images.
Change-Id: Ic2df3f6a8a93711c8616b1532acef12d67341062 fix: 5202762
Diffstat (limited to 'src')
-rw-r--r--src/com/android/gallery3d/data/MtpImage.java7
-rw-r--r--src/com/android/gallery3d/provider/GalleryProvider.java18
2 files changed, 19 insertions, 6 deletions
diff --git a/src/com/android/gallery3d/data/MtpImage.java b/src/com/android/gallery3d/data/MtpImage.java
index 4766d88f8..e0e5481d9 100644
--- a/src/com/android/gallery3d/data/MtpImage.java
+++ b/src/com/android/gallery3d/data/MtpImage.java
@@ -22,6 +22,7 @@ import com.android.gallery3d.util.ThreadPool;
import com.android.gallery3d.util.ThreadPool.Job;
import com.android.gallery3d.util.ThreadPool.JobContext;
+import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapRegionDecoder;
import android.hardware.usb.UsbDevice;
@@ -45,10 +46,12 @@ public class MtpImage extends MediaItem {
private final MtpObjectInfo mObjInfo;
private final int mImageWidth;
private final int mImageHeight;
+ private final Context mContext;
MtpImage(Path path, GalleryApp application, int deviceId,
MtpObjectInfo objInfo, MtpContext mtpContext) {
super(path, nextVersionNumber());
+ mContext = application.getAndroidContext();
mDeviceId = deviceId;
mObjInfo = objInfo;
mObjectId = objInfo.getObjectHandle();
@@ -146,9 +149,7 @@ public class MtpImage extends MediaItem {
@Override
public Uri getContentUri() {
- return GalleryProvider.BASE_URI.buildUpon()
- .appendEncodedPath(mPath.toString().substring(1))
- .build();
+ return GalleryProvider.getUriFor(mContext, mPath);
}
@Override
diff --git a/src/com/android/gallery3d/provider/GalleryProvider.java b/src/com/android/gallery3d/provider/GalleryProvider.java
index f5f0f1b3c..d1dccc574 100644
--- a/src/com/android/gallery3d/provider/GalleryProvider.java
+++ b/src/com/android/gallery3d/provider/GalleryProvider.java
@@ -29,6 +29,7 @@ import com.android.gallery3d.util.GalleryUtils;
import android.content.ContentProvider;
import android.content.ContentValues;
+import android.content.Context;
import android.database.Cursor;
import android.database.MatrixCursor;
import android.net.Uri;
@@ -45,11 +46,22 @@ import java.io.OutputStream;
public class GalleryProvider extends ContentProvider {
private static final String TAG = "GalleryProvider";
- public static final String AUTHORITY = "com.android.gallery3d.provider";
- public static final Uri BASE_URI = Uri.parse("content://" + AUTHORITY);
-
private DataManager mDataManager;
private DownloadCache mDownloadCache;
+ private static Uri sBaseUri;
+
+ public static String getAuthority(Context context) {
+ return context.getPackageName() + ".provider";
+ }
+
+ public static Uri getUriFor(Context context, Path path) {
+ if (sBaseUri == null) {
+ sBaseUri = Uri.parse("content://" + context.getPackageName() + ".provider");
+ }
+ return sBaseUri.buildUpon()
+ .appendEncodedPath(path.toString().substring(1)) // ignore the leading '/'
+ .build();
+ }
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {