packages/apps/Gallery2
修订版 | 476a89e18fc6b8a472b4e352d20be3a09a1776a4 (tree) |
---|---|
时间 | 2011-08-24 16:47:18 |
作者 | Owen Lin <owenlin@goog...> |
Commiter | Owen Lin |
Fix cannot edit picasa synced images.
Change-Id: Ic2df3f6a8a93711c8616b1532acef12d67341062
fix: 5202762
@@ -22,6 +22,7 @@ import com.android.gallery3d.util.ThreadPool; | ||
22 | 22 | import com.android.gallery3d.util.ThreadPool.Job; |
23 | 23 | import com.android.gallery3d.util.ThreadPool.JobContext; |
24 | 24 | |
25 | +import android.content.Context; | |
25 | 26 | import android.graphics.Bitmap; |
26 | 27 | import android.graphics.BitmapRegionDecoder; |
27 | 28 | import android.hardware.usb.UsbDevice; |
@@ -45,10 +46,12 @@ public class MtpImage extends MediaItem { | ||
45 | 46 | private final MtpObjectInfo mObjInfo; |
46 | 47 | private final int mImageWidth; |
47 | 48 | private final int mImageHeight; |
49 | + private final Context mContext; | |
48 | 50 | |
49 | 51 | MtpImage(Path path, GalleryApp application, int deviceId, |
50 | 52 | MtpObjectInfo objInfo, MtpContext mtpContext) { |
51 | 53 | super(path, nextVersionNumber()); |
54 | + mContext = application.getAndroidContext(); | |
52 | 55 | mDeviceId = deviceId; |
53 | 56 | mObjInfo = objInfo; |
54 | 57 | mObjectId = objInfo.getObjectHandle(); |
@@ -146,9 +149,7 @@ public class MtpImage extends MediaItem { | ||
146 | 149 | |
147 | 150 | @Override |
148 | 151 | public Uri getContentUri() { |
149 | - return GalleryProvider.BASE_URI.buildUpon() | |
150 | - .appendEncodedPath(mPath.toString().substring(1)) | |
151 | - .build(); | |
152 | + return GalleryProvider.getUriFor(mContext, mPath); | |
152 | 153 | } |
153 | 154 | |
154 | 155 | @Override |
@@ -29,6 +29,7 @@ import com.android.gallery3d.util.GalleryUtils; | ||
29 | 29 | |
30 | 30 | import android.content.ContentProvider; |
31 | 31 | import android.content.ContentValues; |
32 | +import android.content.Context; | |
32 | 33 | import android.database.Cursor; |
33 | 34 | import android.database.MatrixCursor; |
34 | 35 | import android.net.Uri; |
@@ -45,11 +46,22 @@ import java.io.OutputStream; | ||
45 | 46 | public class GalleryProvider extends ContentProvider { |
46 | 47 | private static final String TAG = "GalleryProvider"; |
47 | 48 | |
48 | - public static final String AUTHORITY = "com.android.gallery3d.provider"; | |
49 | - public static final Uri BASE_URI = Uri.parse("content://" + AUTHORITY); | |
50 | - | |
51 | 49 | private DataManager mDataManager; |
52 | 50 | private DownloadCache mDownloadCache; |
51 | + private static Uri sBaseUri; | |
52 | + | |
53 | + public static String getAuthority(Context context) { | |
54 | + return context.getPackageName() + ".provider"; | |
55 | + } | |
56 | + | |
57 | + public static Uri getUriFor(Context context, Path path) { | |
58 | + if (sBaseUri == null) { | |
59 | + sBaseUri = Uri.parse("content://" + context.getPackageName() + ".provider"); | |
60 | + } | |
61 | + return sBaseUri.buildUpon() | |
62 | + .appendEncodedPath(path.toString().substring(1)) // ignore the leading '/' | |
63 | + .build(); | |
64 | + } | |
53 | 65 | |
54 | 66 | @Override |
55 | 67 | public int delete(Uri uri, String selection, String[] selectionArgs) { |