summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2010-12-21 13:33:06 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2010-12-21 13:33:06 -0800
commit20c915d80356859d8716f014a7d4950f06c38cfc (patch)
treeaafcfc70c4bdc0c0586c68f907939e4a8bfd0224
parentb3177c135bb7a3db3318893335a9ac0bc39d9cf8 (diff)
parent5261cea2e0cd61801e102114039a19ab449b53fe (diff)
downloadframeworks_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.java5
-rw-r--r--core/tests/coretests/src/android/util/TimeUtilsTest.java18
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());
+ }
}