diff options
author | Sam Blitzstein <sblitz@google.com> | 2013-04-26 19:12:06 -0700 |
---|---|---|
committer | Sam Blitzstein <sblitz@google.com> | 2013-04-26 20:00:35 -0700 |
commit | adbe2ac08b1456d2ed2e4adc2afa9c078a3e028e (patch) | |
tree | 07b9a7f1901dd0179e1efeb6f2e7866457fae50b /src/com/android | |
parent | 96e8dde991e426d0cd44f5b4eb76118fd7374ac0 (diff) | |
download | android_frameworks_opt_timezonepicker-adbe2ac08b1456d2ed2e4adc2afa9c078a3e028e.tar.gz android_frameworks_opt_timezonepicker-adbe2ac08b1456d2ed2e4adc2afa9c078a3e028e.tar.bz2 android_frameworks_opt_timezonepicker-adbe2ac08b1456d2ed2e4adc2afa9c078a3e028e.zip |
Reformat timezone display name to de-emphasize GMT and sun.
Remove parentheses from around the GMT offset, and make both the sun and
the offset a lighter gray than the time.
Change-Id: I8d2ab13df2d278dc558d2b819af5fbcf2a6d2b68
Diffstat (limited to 'src/com/android')
-rw-r--r-- | src/com/android/timezonepicker/TimeZoneInfo.java | 27 | ||||
-rw-r--r-- | src/com/android/timezonepicker/TimeZonePickerUtils.java | 42 |
2 files changed, 51 insertions, 18 deletions
diff --git a/src/com/android/timezonepicker/TimeZoneInfo.java b/src/com/android/timezonepicker/TimeZoneInfo.java index d11bd2b..5a019a6 100644 --- a/src/com/android/timezonepicker/TimeZoneInfo.java +++ b/src/com/android/timezonepicker/TimeZoneInfo.java @@ -34,7 +34,8 @@ import java.util.Locale; import java.util.TimeZone; public class TimeZoneInfo implements Comparable<TimeZoneInfo> { - private static final int DST_SYMBOL_COLOR = 0xFF606060; + private static final int GMT_TEXT_COLOR = TimeZonePickerUtils.GMT_TEXT_COLOR; + private static final int DST_SYMBOL_COLOR = TimeZonePickerUtils.DST_SYMBOL_COLOR; private static final char SEPARATOR = ','; private static final String TAG = null; public static int NUM_OF_TRANSITIONS = 6; @@ -165,21 +166,29 @@ public class TimeZoneInfo implements Comparable<TimeZoneInfo> { // mFormatter writes to mSB DateUtils.formatDateRange(context, mFormatter, now, now, flags, mTzId); mSB.append(' '); + int gmtStart = mSB.length(); TimeZonePickerUtils.appendGmtOffset(mSB, gmtOffset); + int gmtEnd = mSB.length(); + int symbolStart = 0; + int symbolEnd = 0; if (hasFutureDST) { mSB.append(' '); + symbolStart = mSB.length(); mSB.append(TimeZonePickerUtils.getDstSymbol()); // Sun symbol + symbolEnd = mSB.length(); + } + + // Set the gray colors. + Spannable spannableText = mSpannableFactory.newSpannable(mSB); + spannableText.setSpan(new ForegroundColorSpan(GMT_TEXT_COLOR), + gmtStart, gmtEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); - final int end = mSB.length(); - final int start = end - 1; - Spannable spannableText = mSpannableFactory.newSpannable(mSB); - spannableText.setSpan(new ForegroundColorSpan(DST_SYMBOL_COLOR), start, end, - Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); - displayName = spannableText; - } else { - displayName = mSB.toString(); + if (hasFutureDST) { + spannableText.setSpan(new ForegroundColorSpan(DST_SYMBOL_COLOR), + symbolStart, symbolEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } + displayName = spannableText; mGmtDisplayNameCache.put(cacheKey, displayName); } return displayName; diff --git a/src/com/android/timezonepicker/TimeZonePickerUtils.java b/src/com/android/timezonepicker/TimeZonePickerUtils.java index 783fcb9..9dae7aa 100644 --- a/src/com/android/timezonepicker/TimeZonePickerUtils.java +++ b/src/com/android/timezonepicker/TimeZonePickerUtils.java @@ -19,8 +19,11 @@ package com.android.timezonepicker; import android.content.Context; import android.content.res.Resources; import android.os.Build; +import android.text.Spannable; +import android.text.Spannable.Factory; import android.text.format.DateUtils; import android.text.format.Time; +import android.text.style.ForegroundColorSpan; import android.util.Log; import java.util.Locale; @@ -29,6 +32,10 @@ import java.util.TimeZone; public class TimeZonePickerUtils { private static final String TAG = "TimeZonePickerUtils"; + public static final int GMT_TEXT_COLOR = 0xFFAAAAAA; + public static final int DST_SYMBOL_COLOR = 0xFFBFBFBF; + private static final Factory mSpannableFactory = Spannable.Factory.getInstance(); + private Locale mDefaultLocale; private String[] mOverrideIds; private String[] mOverrideLabels; @@ -47,14 +54,14 @@ public class TimeZonePickerUtils { /** * Given a timezone id (e.g. America/Los_Angeles), returns the corresponding timezone - * display name (e.g. (GMT-7.00) Pacific Time). + * display name (e.g. Pacific Time GMT-7). * * @param context Context in case the override labels need to be re-cached. * @param id The timezone id * @param millis The time (daylight savings or not) * @return The display name of the timezone. */ - public String getGmtDisplayName(Context context, String id, long millis) { + public CharSequence getGmtDisplayName(Context context, String id, long millis) { TimeZone timezone = TimeZone.getTimeZone(id); if (timezone == null) { return null; @@ -70,27 +77,45 @@ public class TimeZonePickerUtils { return buildGmtDisplayName(timezone, millis); } - private String buildGmtDisplayName(TimeZone tz, long timeMillis) { + private CharSequence buildGmtDisplayName(TimeZone tz, long timeMillis) { Time time = new Time(tz.getID()); time.set(timeMillis); StringBuilder sb = new StringBuilder(); - final int gmtOffset = tz.getOffset(timeMillis); - appendGmtOffset(sb, gmtOffset); String displayName = getDisplayName(tz, time.isDst != 0); - sb.append(" "); sb.append(displayName); + sb.append(" "); + final int gmtOffset = tz.getOffset(timeMillis); + int gmtStart = sb.length(); + appendGmtOffset(sb, gmtOffset); + int gmtEnd = sb.length(); + + int symbolStart = 0; + int symbolEnd = 0; if (tz.useDaylightTime()) { sb.append(" "); + symbolStart = sb.length(); sb.append(getDstSymbol()); // Sun symbol + symbolEnd = sb.length(); + } + + // Set the gray colors. + Spannable spannableText = mSpannableFactory.newSpannable(sb); + spannableText.setSpan(new ForegroundColorSpan(GMT_TEXT_COLOR), + gmtStart, gmtEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + if (tz.useDaylightTime()) { + spannableText.setSpan(new ForegroundColorSpan(DST_SYMBOL_COLOR), + symbolStart, symbolEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } - return sb.toString(); + + CharSequence gmtDisplayName = spannableText; + return gmtDisplayName; } public static void appendGmtOffset(StringBuilder sb, final int gmtOffset) { - sb.append("(GMT"); + sb.append("GMT"); if (gmtOffset < 0) { sb.append('-'); @@ -109,7 +134,6 @@ public class TimeZonePickerUtils { } sb.append(min); } - sb.append(')'); } public static char getDstSymbol() { |