diff options
author | Sascha Haeberling <haeberling@google.com> | 2013-08-26 14:40:03 -0700 |
---|---|---|
committer | Sascha Häberling <haeberling@google.com> | 2013-08-26 21:42:05 +0000 |
commit | 3be7f94c1029728a8e236cfcde9c8bce68244095 (patch) | |
tree | 433fcebe6c553fc9b356deb32bcec16254d60ca2 /src/com/android/camera/ui/DetailsDialog.java | |
parent | 80af7dd871547d03ee9ff5023cbec00b1d8677ee (diff) | |
download | android_packages_apps_Snap-3be7f94c1029728a8e236cfcde9c8bce68244095.tar.gz android_packages_apps_Snap-3be7f94c1029728a8e236cfcde9c8bce68244095.tar.bz2 android_packages_apps_Snap-3be7f94c1029728a8e236cfcde9c8bce68244095.zip |
Make parsing integers for details dialog more robust.
Bug: 7141309
Change-Id: I031e2f062ea786acb94d41385c5913c47d719ccd
Diffstat (limited to 'src/com/android/camera/ui/DetailsDialog.java')
-rw-r--r-- | src/com/android/camera/ui/DetailsDialog.java | 29 |
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); |