diff options
Diffstat (limited to 'src/com/android/gallery3d/ui/DialogDetailsView.java')
-rw-r--r-- | src/com/android/gallery3d/ui/DialogDetailsView.java | 34 |
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); + } } } |