summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/ui/DialogDetailsView.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/gallery3d/ui/DialogDetailsView.java')
-rw-r--r--src/com/android/gallery3d/ui/DialogDetailsView.java34
1 files changed, 29 insertions, 5 deletions
diff --git a/src/com/android/gallery3d/ui/DialogDetailsView.java b/src/com/android/gallery3d/ui/DialogDetailsView.java
index 30fd1e18f..3e2af0d40 100644
--- a/src/com/android/gallery3d/ui/DialogDetailsView.java
+++ b/src/com/android/gallery3d/ui/DialogDetailsView.java
@@ -21,6 +21,7 @@ import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnDismissListener;
+import android.text.TextUtils;
import android.text.format.Formatter;
import android.view.LayoutInflater;
import android.view.View;
@@ -33,14 +34,18 @@ import com.android.gallery3d.R;
import com.android.gallery3d.app.AbstractGalleryActivity;
import com.android.gallery3d.common.Utils;
import com.android.gallery3d.data.MediaDetails;
+import com.android.gallery3d.exif.ExifInterface;
import com.android.gallery3d.ui.DetailsAddressResolver.AddressResolvingListener;
import com.android.gallery3d.ui.DetailsHelper.CloseListener;
import com.android.gallery3d.ui.DetailsHelper.DetailsSource;
import com.android.gallery3d.ui.DetailsHelper.DetailsViewContainer;
import com.android.gallery3d.ui.DetailsHelper.ResolutionResolvingListener;
+import java.text.DateFormat;
import java.text.DecimalFormat;
+import java.text.ParseException;
import java.util.ArrayList;
+import java.util.Date;
import java.util.Locale;
import java.util.Map.Entry;
@@ -131,6 +136,15 @@ public class DialogDetailsView implements DetailsViewContainer {
setDetails(context, details);
}
+ private String exifDateToFormatedDate(String exifDt) {
+ try {
+ Date date = ExifInterface.DATETIME_FORMAT.parse(exifDt);
+ return DateFormat.getDateTimeInstance().format(date);
+ } catch (ParseException e) {
+ return exifDt;
+ }
+ }
+
private void setDetails(Context context, MediaDetails details) {
boolean resolutionIsValid = true;
String path = null;
@@ -221,6 +235,9 @@ public class DialogDetailsView implements DetailsViewContainer {
case MediaDetails.INDEX_ORIENTATION:
value = toLocalInteger(detail.getValue());
break;
+ case MediaDetails.INDEX_DATETIME_ORIGINAL:
+ value = exifDateToFormatedDate(detail.getValue().toString());
+ break;
default: {
Object valueObj = detail.getValue();
// This shouldn't happen, log its key to help us diagnose the problem.
@@ -236,13 +253,20 @@ public class DialogDetailsView implements DetailsViewContainer {
value = String.format("%s: %s %s", DetailsHelper.getDetailsName(
context, key), value, context.getString(details.getUnit(key)));
} else {
- value = String.format("%s: %s", DetailsHelper.getDetailsName(
- context, key), value);
+ if (View.LAYOUT_DIRECTION_RTL == TextUtils
+ .getLayoutDirectionFromLocale(Locale.getDefault())
+ && (key == MediaDetails.INDEX_PATH)) {
+ value = String.format("%s : \n%s",
+ DetailsHelper.getDetailsName(context, key), value);
+ } else {
+ value = String.format("%s: %s", DetailsHelper.getDetailsName(context, key),
+ value);
+ }
}
mItems.add(value);
- }
- if (!resolutionIsValid) {
- DetailsHelper.resolveResolution(path, this);
+ if (!resolutionIsValid) {
+ DetailsHelper.resolveResolution(path, this);
+ }
}
}