diff options
| author | 2017-11-14 19:20:07 -0800 | |
|---|---|---|
| committer | 2017-11-15 16:19:35 -0800 | |
| commit | 2e97386d9db1616134d9c76d19563028ffdcc66e (patch) | |
| tree | fee7579100699cb8423a9160163f917151185604 | |
| parent | fcd996cc36cd45ad45b0fb634308d776f9647c03 (diff) | |
Drop the second unit from elapsed time if zero
Previously, we could get formatted strings like "1h 0min" which is
unnecessarily complex for users. Replace such cases with "1 h" if
the second unit is zero.
Fixes: 65426298
Test: bit FrameworksCoreTests:android.text.format.FormatterTest
Change-Id: I1d9828ec97f2cbfb7ce27c266a04d4c02b090d6d
| -rw-r--r-- | core/java/android/text/format/Formatter.java | 6 | ||||
| -rw-r--r-- | core/tests/coretests/src/android/text/format/FormatterTest.java | 16 |
2 files changed, 11 insertions, 11 deletions
diff --git a/core/java/android/text/format/Formatter.java b/core/java/android/text/format/Formatter.java index 2c83fc4d9049..8c90156d159d 100644 --- a/core/java/android/text/format/Formatter.java +++ b/core/java/android/text/format/Formatter.java @@ -355,21 +355,21 @@ public final class Formatter { final Locale locale = localeFromContext(context); final MeasureFormat measureFormat = MeasureFormat.getInstance( locale, MeasureFormat.FormatWidth.SHORT); - if (days >= 2) { + if (days >= 2 || (days > 0 && hours == 0)) { days += (hours+12)/24; return measureFormat.format(new Measure(days, MeasureUnit.DAY)); } else if (days > 0) { return measureFormat.formatMeasures( new Measure(days, MeasureUnit.DAY), new Measure(hours, MeasureUnit.HOUR)); - } else if (hours >= 2) { + } else if (hours >= 2 || (hours > 0 && minutes == 0)) { hours += (minutes+30)/60; return measureFormat.format(new Measure(hours, MeasureUnit.HOUR)); } else if (hours > 0) { return measureFormat.formatMeasures( new Measure(hours, MeasureUnit.HOUR), new Measure(minutes, MeasureUnit.MINUTE)); - } else if (minutes >= 2) { + } else if (minutes >= 2 || (minutes > 0 && seconds == 0)) { minutes += (seconds+30)/60; return measureFormat.format(new Measure(minutes, MeasureUnit.MINUTE)); } else if (minutes > 0) { diff --git a/core/tests/coretests/src/android/text/format/FormatterTest.java b/core/tests/coretests/src/android/text/format/FormatterTest.java index 24e3646e02fc..dee51dcbc7ff 100644 --- a/core/tests/coretests/src/android/text/format/FormatterTest.java +++ b/core/tests/coretests/src/android/text/format/FormatterTest.java @@ -117,13 +117,13 @@ public class FormatterTest { assertEquals("2 days", Formatter.formatShortElapsedTime(mContext, 2 * DAY)); assertEquals("1 day, 23 hr", Formatter.formatShortElapsedTime(mContext, 1 * DAY + 23 * HOUR + 59 * MINUTE)); - assertEquals("1 day, 0 hr", + assertEquals("1 day", Formatter.formatShortElapsedTime(mContext, 1 * DAY + 59 * MINUTE)); - assertEquals("1 day, 0 hr", Formatter.formatShortElapsedTime(mContext, 1 * DAY)); + assertEquals("1 day", Formatter.formatShortElapsedTime(mContext, 1 * DAY)); assertEquals("24 hr", Formatter.formatShortElapsedTime(mContext, 23 * HOUR + 30 * MINUTE)); assertEquals("3 hr", Formatter.formatShortElapsedTime(mContext, 2 * HOUR + 30 * MINUTE)); assertEquals("2 hr", Formatter.formatShortElapsedTime(mContext, 2 * HOUR)); - assertEquals("1 hr, 0 min", Formatter.formatShortElapsedTime(mContext, 1 * HOUR)); + assertEquals("1 hr", Formatter.formatShortElapsedTime(mContext, 1 * HOUR)); assertEquals("60 min", Formatter.formatShortElapsedTime(mContext, 59 * MINUTE + 30 * SECOND)); assertEquals("59 min", @@ -132,7 +132,7 @@ public class FormatterTest { assertEquals("2 min", Formatter.formatShortElapsedTime(mContext, 2 * MINUTE)); assertEquals("1 min, 59 sec", Formatter.formatShortElapsedTime(mContext, 1 * MINUTE + 59 * SECOND + 999)); - assertEquals("1 min, 0 sec", Formatter.formatShortElapsedTime(mContext, 1 * MINUTE)); + assertEquals("1 min", Formatter.formatShortElapsedTime(mContext, 1 * MINUTE)); assertEquals("59 sec", Formatter.formatShortElapsedTime(mContext, 59 * SECOND + 999)); assertEquals("1 sec", Formatter.formatShortElapsedTime(mContext, 1 * SECOND)); assertEquals("0 sec", Formatter.formatShortElapsedTime(mContext, 1)); @@ -154,9 +154,9 @@ public class FormatterTest { mContext, 2 * DAY)); assertEquals("1 day, 23 hr", Formatter.formatShortElapsedTimeRoundingUpToMinutes( mContext, 1 * DAY + 23 * HOUR + 59 * MINUTE)); - assertEquals("1 day, 0 hr", Formatter.formatShortElapsedTimeRoundingUpToMinutes( + assertEquals("1 day", Formatter.formatShortElapsedTimeRoundingUpToMinutes( mContext, 1 * DAY + 59 * MINUTE)); - assertEquals("1 day, 0 hr", Formatter.formatShortElapsedTimeRoundingUpToMinutes( + assertEquals("1 day", Formatter.formatShortElapsedTimeRoundingUpToMinutes( mContext, 1 * DAY)); assertEquals("24 hr", Formatter.formatShortElapsedTimeRoundingUpToMinutes( mContext, 23 * HOUR + 30 * MINUTE)); @@ -164,9 +164,9 @@ public class FormatterTest { mContext, 2 * HOUR + 30 * MINUTE)); assertEquals("2 hr", Formatter.formatShortElapsedTimeRoundingUpToMinutes( mContext, 2 * HOUR)); - assertEquals("1 hr, 0 min", Formatter.formatShortElapsedTimeRoundingUpToMinutes( + assertEquals("1 hr", Formatter.formatShortElapsedTimeRoundingUpToMinutes( mContext, 1 * HOUR)); - assertEquals("1 hr, 0 min", Formatter.formatShortElapsedTimeRoundingUpToMinutes( + assertEquals("1 hr", Formatter.formatShortElapsedTimeRoundingUpToMinutes( mContext, 59 * MINUTE + 30 * SECOND)); assertEquals("59 min", Formatter.formatShortElapsedTimeRoundingUpToMinutes( mContext, 59 * MINUTE)); |