summaryrefslogtreecommitdiffstats
path: root/java/com/android/dialer/calllogutils/CallEntryFormatter.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/calllogutils/CallEntryFormatter.java')
-rw-r--r--java/com/android/dialer/calllogutils/CallEntryFormatter.java24
1 files changed, 22 insertions, 2 deletions
diff --git a/java/com/android/dialer/calllogutils/CallEntryFormatter.java b/java/com/android/dialer/calllogutils/CallEntryFormatter.java
index 6aa93af52..c5ec15748 100644
--- a/java/com/android/dialer/calllogutils/CallEntryFormatter.java
+++ b/java/com/android/dialer/calllogutils/CallEntryFormatter.java
@@ -95,9 +95,29 @@ public class CallEntryFormatter {
// example output: "1s"
formatPattern =
context.getString(R.string.call_duration_short_format_pattern, "s", secondsString);
+
+ // Temporary work around for a broken Hebrew(iw) translation.
+ if (formatPattern.endsWith("\'\'")) {
+ formatPattern = formatPattern.substring(0, formatPattern.length() - 1);
+ }
+ }
+
+ // If new translation issues arise, we should catch them here to prevent crashes.
+ try {
+ Date date = new Date(TimeUnit.SECONDS.toMillis(elapsedSeconds));
+ SimpleDateFormat format = new SimpleDateFormat(formatPattern);
+ String duration = format.format(date);
+
+ // SimpleDateFormat cannot display more than 59 minutes, instead it displays MINUTES % 60.
+ // Here we check for that value and replace it with the correct value.
+ if (elapsedSeconds >= TimeUnit.MINUTES.toSeconds(60)) {
+ int minutes = (int) (elapsedSeconds / 60);
+ duration = duration.replaceFirst(Integer.toString(minutes % 60), Integer.toString(minutes));
+ }
+ return duration;
+ } catch (Exception e) {
+ return "";
}
- SimpleDateFormat format = new SimpleDateFormat(formatPattern);
- return format.format(new Date(TimeUnit.SECONDS.toMillis(elapsedSeconds)));
}
private static CharSequence formatDurationA11y(Context context, long elapsedSeconds) {