diff options
author | Dianne Hackborn <hackbod@google.com> | 2010-12-21 13:33:06 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2010-12-21 13:33:06 -0800 |
commit | 20c915d80356859d8716f014a7d4950f06c38cfc (patch) | |
tree | aafcfc70c4bdc0c0586c68f907939e4a8bfd0224 | |
parent | b3177c135bb7a3db3318893335a9ac0bc39d9cf8 (diff) | |
parent | 5261cea2e0cd61801e102114039a19ab449b53fe (diff) | |
download | frameworks_base-20c915d80356859d8716f014a7d4950f06c38cfc.zip frameworks_base-20c915d80356859d8716f014a7d4950f06c38cfc.tar.gz frameworks_base-20c915d80356859d8716f014a7d4950f06c38cfc.tar.bz2 |
am 5261cea2: Merge "Fix issue #3224616: TimeUtils.formatDuration() can drop 0s." into gingerbread
* commit '5261cea2e0cd61801e102114039a19ab449b53fe':
Fix issue #3224616: TimeUtils.formatDuration() can drop 0s.
-rw-r--r-- | core/java/android/util/TimeUtils.java | 5 | ||||
-rw-r--r-- | core/tests/coretests/src/android/util/TimeUtilsTest.java | 18 |
2 files changed, 20 insertions, 3 deletions
diff --git a/core/java/android/util/TimeUtils.java b/core/java/android/util/TimeUtils.java index 60ca384..85ce5e1 100644 --- a/core/java/android/util/TimeUtils.java +++ b/core/java/android/util/TimeUtils.java @@ -158,18 +158,17 @@ public class TimeUtils { static private int printField(char[] formatStr, int amt, char suffix, int pos, boolean always, int zeropad) { if (always || amt > 0) { + final int startPos = pos; if ((always && zeropad >= 3) || amt > 99) { int dig = amt/100; formatStr[pos] = (char)(dig + '0'); pos++; - always = true; amt -= (dig*100); } - if ((always && zeropad >= 2) || amt > 9) { + if ((always && zeropad >= 2) || amt > 9 || startPos != pos) { int dig = amt/10; formatStr[pos] = (char)(dig + '0'); pos++; - always = true; amt -= (dig*10); } formatStr[pos] = (char)(amt + '0'); diff --git a/core/tests/coretests/src/android/util/TimeUtilsTest.java b/core/tests/coretests/src/android/util/TimeUtilsTest.java index 65a6078..8d9f8e5 100644 --- a/core/tests/coretests/src/android/util/TimeUtilsTest.java +++ b/core/tests/coretests/src/android/util/TimeUtilsTest.java @@ -429,4 +429,22 @@ public class TimeUtilsTest extends TestCase { c.getTimeInMillis(), country); } + + public void testFormatDuration() { + assertFormatDuration("0", 0); + assertFormatDuration("-1ms", -1); + assertFormatDuration("+1ms", 1); + assertFormatDuration("+10ms", 10); + assertFormatDuration("+100ms", 100); + assertFormatDuration("+101ms", 101); + assertFormatDuration("+330ms", 330); + assertFormatDuration("+1s330ms", 1330); + assertFormatDuration("+10s24ms", 10024); + } + + private void assertFormatDuration(String expected, long duration) { + StringBuilder sb = new StringBuilder(); + TimeUtils.formatDuration(duration, sb); + assertEquals("formatDuration(" + duration + ")", expected, sb.toString()); + } } |