diff options
author | Ruben Brunk <rubenbrunk@google.com> | 2013-06-03 14:56:07 -0700 |
---|---|---|
committer | Ruben Brunk <rubenbrunk@google.com> | 2013-06-03 15:45:34 -0700 |
commit | 2d06a167933509422076d4f8e90e4de212866905 (patch) | |
tree | eed2f3267eeb265bdc3f8b498844802c169b368a /src/com | |
parent | 4c400b2f79ff7b4b4f11f5b45326316ac7af075c (diff) | |
download | android_packages_apps_Snap-2d06a167933509422076d4f8e90e4de212866905.tar.gz android_packages_apps_Snap-2d06a167933509422076d4f8e90e4de212866905.tar.bz2 android_packages_apps_Snap-2d06a167933509422076d4f8e90e4de212866905.zip |
Fixes save filename for panos after edit.
Bug: 9258209
Change-Id: Ib7404242e5886a38b9e6f9fd6f28a52f1a703590
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/gallery3d/filtershow/tools/SaveCopyTask.java | 39 |
1 files changed, 36 insertions, 3 deletions
diff --git a/src/com/android/gallery3d/filtershow/tools/SaveCopyTask.java b/src/com/android/gallery3d/filtershow/tools/SaveCopyTask.java index 2862be286..9f7cba30b 100644 --- a/src/com/android/gallery3d/filtershow/tools/SaveCopyTask.java +++ b/src/com/android/gallery3d/filtershow/tools/SaveCopyTask.java @@ -65,7 +65,10 @@ public class SaveCopyTask extends AsyncTask<ImagePreset, Void, Uri> { void onCursorResult(Cursor cursor); } - private static final String TIME_STAMP_NAME = "'IMG'_yyyyMMdd_HHmmss"; + private static final String TIME_STAMP_NAME = "_yyyyMMdd_HHmmss"; + private static final String PREFIX_PANO = "PANO"; + private static final String PREFIX_IMG = "IMG"; + private static final String POSTFIX_JPG = ".jpg"; private final Context context; private final Uri sourceUri; @@ -84,7 +87,7 @@ public class SaveCopyTask extends AsyncTask<ImagePreset, Void, Uri> { this.destinationFile = destination; } - saveFileName = new SimpleDateFormat(TIME_STAMP_NAME).format(new Date( + saveFileName = PREFIX_IMG + new SimpleDateFormat(TIME_STAMP_NAME).format(new Date( System.currentTimeMillis())); } @@ -104,7 +107,10 @@ public class SaveCopyTask extends AsyncTask<ImagePreset, Void, Uri> { File saveDirectory = getFinalSaveDirectory(context, sourceUri); String filename = new SimpleDateFormat(TIME_STAMP_NAME).format(new Date( System.currentTimeMillis())); - return new File(saveDirectory, filename + ".JPG"); + if (hasPanoPrefix(context, sourceUri)) { + return new File(saveDirectory, PREFIX_PANO + filename + POSTFIX_JPG); + } + return new File(saveDirectory, PREFIX_IMG + filename + POSTFIX_JPG); } public Object getPanoramaXMPData(Uri source, ImagePreset preset) { @@ -264,6 +270,33 @@ public class SaveCopyTask extends AsyncTask<ImagePreset, Void, Uri> { } /** + * Gets the actual filename for a Uri from Gallery's ContentProvider. + */ + private static String getTrueFilename(Context context, Uri src) { + if (context == null || src == null) { + return null; + } + final String[] trueName = new String[1]; + querySource(context, src, new String[] { + ImageColumns.DATA + }, new ContentResolverQueryCallback() { + @Override + public void onCursorResult(Cursor cursor) { + trueName[0] = new File(cursor.getString(0)).getName(); + } + }); + return trueName[0]; + } + + /** + * Checks whether the true filename has the panorama image prefix. + */ + private static boolean hasPanoPrefix(Context context, Uri src) { + String name = getTrueFilename(context, src); + return name != null && name.startsWith(PREFIX_PANO); + } + + /** * Insert the content (saved file) with proper source photo properties. */ public static Uri insertContent(Context context, Uri sourceUri, File file, String saveFileName, |