summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Roozbeh Pournader <roozbeh@google.com> 2017-11-14 19:20:07 -0800
committer Roozbeh Pournader <roozbeh@google.com> 2017-11-15 16:19:35 -0800
commit2e97386d9db1616134d9c76d19563028ffdcc66e (patch)
treefee7579100699cb8423a9160163f917151185604
parentfcd996cc36cd45ad45b0fb634308d776f9647c03 (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.java6
-rw-r--r--core/tests/coretests/src/android/text/format/FormatterTest.java16
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));