public static SpannableStringBuilder formatTimeRemaining(double routeDuration) {
long seconds = (long) routeDuration;
if (seconds < 0) {
throw new IllegalArgumentException("Duration must be greater than zero.");
}
long days = TimeUnit.SECONDS.toDays(seconds);
seconds -= TimeUnit.DAYS.toSeconds(days);
long hours = TimeUnit.SECONDS.toHours(seconds);
seconds -= TimeUnit.HOURS.toSeconds(hours);
long minutes = TimeUnit.SECONDS.toMinutes(seconds);
seconds -= TimeUnit.MINUTES.toSeconds(minutes);
if (seconds >= 30) {
minutes = minutes + 1;
}
List<SpanItem> spanItems = new ArrayList<>();
if (days != 0) {
String dayFormat = days > 1 ? DAYS : DAY;
spanItems.add(new SpanItem(new StyleSpan(Typeface.BOLD), String.valueOf(days)));
spanItems.add(new SpanItem(new RelativeSizeSpan(1f), dayFormat));
}
if (hours != 0) {
spanItems.add(new SpanItem(new StyleSpan(Typeface.BOLD), String.valueOf(hours)));
spanItems.add(new SpanItem(new RelativeSizeSpan(1f), HOUR));
}
if (minutes != 0) {
spanItems.add(new SpanItem(new StyleSpan(Typeface.BOLD), String.valueOf(minutes)));
spanItems.add(new SpanItem(new RelativeSizeSpan(1f), MINUTE));
}
if (days == 0 && hours == 0 && minutes == 0) {
spanItems.add(new SpanItem(new StyleSpan(Typeface.BOLD), String.valueOf(1)));
spanItems.add(new SpanItem(new RelativeSizeSpan(1f), MINUTE));
}
return SpanUtils.combineSpans(spanItems);
}
TimeUtils.java 文件源码
java
阅读 23
收藏 0
点赞 0
评论 0
项目:mapbox-navigation-android
作者:
评论列表
文章目录