summaryrefslogtreecommitdiffstats
path: root/src/com/android
diff options
context:
space:
mode:
authorSam Blitzstein <sblitz@google.com>2013-04-26 19:12:06 -0700
committerSam Blitzstein <sblitz@google.com>2013-04-26 20:00:35 -0700
commitadbe2ac08b1456d2ed2e4adc2afa9c078a3e028e (patch)
tree07b9a7f1901dd0179e1efeb6f2e7866457fae50b /src/com/android
parent96e8dde991e426d0cd44f5b4eb76118fd7374ac0 (diff)
downloadandroid_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.java27
-rw-r--r--src/com/android/timezonepicker/TimeZonePickerUtils.java42
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() {