diff options
author | Sascha Haeberling <haeberling@google.com> | 2013-08-26 14:56:40 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2013-08-26 14:56:40 -0700 |
commit | d9114beb2829c17f43c006bf368438834e71ce7a (patch) | |
tree | 184c4a1ebadb5dbea4c1a5bb2ae88d9af61621c5 | |
parent | 919284cf30980d0f2a01c2ca37046039e0b7d713 (diff) | |
parent | 3be7f94c1029728a8e236cfcde9c8bce68244095 (diff) | |
download | android_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.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); |