summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Haeberling <haeberling@google.com>2013-08-26 14:56:40 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2013-08-26 14:56:40 -0700
commitd9114beb2829c17f43c006bf368438834e71ce7a (patch)
tree184c4a1ebadb5dbea4c1a5bb2ae88d9af61621c5
parent919284cf30980d0f2a01c2ca37046039e0b7d713 (diff)
parent3be7f94c1029728a8e236cfcde9c8bce68244095 (diff)
downloadandroid_packages_apps_Snap-d9114beb2829c17f43c006bf368438834e71ce7a.tar.gz
android_packages_apps_Snap-d9114beb2829c17f43c006bf368438834e71ce7a.tar.bz2
android_packages_apps_Snap-d9114beb2829c17f43c006bf368438834e71ce7a.zip
am 3be7f94c: Make parsing integers for details dialog more robust.
* commit '3be7f94c1029728a8e236cfcde9c8bce68244095': Make parsing integers for details dialog more robust.
-rw-r--r--src/com/android/camera/ui/DetailsDialog.java29
1 files changed, 25 insertions, 4 deletions
diff --git a/src/com/android/camera/ui/DetailsDialog.java b/src/com/android/camera/ui/DetailsDialog.java
index bd4efea64..d61a03e90 100644
--- a/src/com/android/camera/ui/DetailsDialog.java
+++ b/src/com/android/camera/ui/DetailsDialog.java
@@ -135,18 +135,20 @@ public class DetailsDialog {
}
case MediaDetails.INDEX_WIDTH:
mWidthIndex = mItems.size();
- value = toLocalNumber((Integer) detail.getValue());
- if (value.equalsIgnoreCase("0")) {
+ if (detail.getValue().toString().equalsIgnoreCase("0")) {
value = context.getString(R.string.unknown);
resolutionIsValid = false;
+ } else {
+ value = toLocalInteger(detail.getValue());
}
break;
case MediaDetails.INDEX_HEIGHT: {
mHeightIndex = mItems.size();
- value = toLocalNumber((Integer) detail.getValue());
- if (value.equalsIgnoreCase("0")) {
+ if (detail.getValue().toString().equalsIgnoreCase("0")) {
value = context.getString(R.string.unknown);
resolutionIsValid = false;
+ } else {
+ value = toLocalInteger(detail.getValue());
}
break;
}
@@ -253,6 +255,25 @@ public class DetailsDialog {
notifyDataSetChanged();
}
+ /**
+ * Converts the given integer (given as String or Integer object) to a
+ * localized String version.
+ */
+ private String toLocalInteger(Object valueObj) {
+ if (valueObj instanceof Integer) {
+ return toLocalNumber((Integer) valueObj);
+ } else {
+ String value = valueObj.toString();
+ try {
+ value = toLocalNumber(Integer.parseInt(value));
+ } catch (NumberFormatException ex) {
+ // Just keep the current "value" if we cannot
+ // parse it as a fallback.
+ }
+ return value;
+ }
+ }
+
/** Converts the given integer to a localized String version. */
private String toLocalNumber(int n) {
return String.format(mDefaultLocale, "%d", n);