summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/tools/SaveCopyTask.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/gallery3d/filtershow/tools/SaveCopyTask.java')
-rw-r--r--src/com/android/gallery3d/filtershow/tools/SaveCopyTask.java39
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,