OSDN Git Service

Settings: Ensure zen day-of-week formats use current locale.
authorJohn Spurlock <jspurlock@google.com>
Fri, 24 Apr 2015 00:28:58 +0000 (20:28 -0400)
committerJohn Spurlock <jspurlock@google.com>
Fri, 24 Apr 2015 00:32:56 +0000 (20:32 -0400)
Don't share SimpleDateFormat instances per-process, convert to
per-instance to ensure we're always using the current locale.

Updated version of:
  https://android-review.googlesource.com/#/c/147246/

Change-Id: Id464c35035c1de0a7894e5e19b57934f77df9769

src/com/android/settings/notification/ZenModeAutomationSettings.java
src/com/android/settings/notification/ZenModeScheduleDaysSelection.java
src/com/android/settings/notification/ZenModeScheduleRuleSettings.java

index 6636b33..dab0a0d 100644 (file)
@@ -48,10 +48,11 @@ import java.util.List;
 import java.util.TreeSet;
 
 public class ZenModeAutomationSettings extends ZenModeSettingsBase {
-    private static final SimpleDateFormat DAY_FORMAT = new SimpleDateFormat("EEE");
 
     static final Config CONFIG = getConditionProviderConfig();
 
+    // per-instance to ensure we're always using the current locale
+    private final SimpleDateFormat mDayFormat = new SimpleDateFormat("EEE");
     private final Calendar mCalendar = Calendar.getInstance();
 
     private ServiceListing mServiceListing;
@@ -218,7 +219,7 @@ public class ZenModeAutomationSettings extends ZenModeSettingsBase {
 
     private String dayString(int day) {
         mCalendar.set(Calendar.DAY_OF_WEEK, day);
-        return DAY_FORMAT.format(mCalendar.getTime());
+        return mDayFormat.format(mCalendar.getTime());
     }
 
     private static Config getConditionProviderConfig() {
index 6d11ffb..3e88046 100644 (file)
@@ -41,8 +41,9 @@ public class ZenModeScheduleDaysSelection extends ScrollView {
         Calendar.FRIDAY,
         Calendar.SATURDAY,
     };
-    private static final SimpleDateFormat DAY_FORMAT = new SimpleDateFormat("EEEE");
 
+    // per-instance to ensure we're always using the current locale
+    private final SimpleDateFormat mDayFormat = new SimpleDateFormat("EEEE");
     private final SparseBooleanArray mDays = new SparseBooleanArray();
     private final LinearLayout mLayout;
 
@@ -66,7 +67,7 @@ public class ZenModeScheduleDaysSelection extends ScrollView {
             final CheckBox checkBox = (CheckBox) inflater.inflate(R.layout.zen_schedule_rule_day,
                     this, false);
             c.set(Calendar.DAY_OF_WEEK, day);
-            checkBox.setText(DAY_FORMAT.format(c.getTime()));
+            checkBox.setText(mDayFormat.format(c.getTime()));
             checkBox.setChecked(mDays.get(day));
             checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
                 @Override
index f7015d3..fef3175 100644 (file)
@@ -50,10 +50,11 @@ public class ZenModeScheduleRuleSettings extends ZenModeRuleSettingsBase {
     private static final String KEY_START_TIME = "start_time";
     private static final String KEY_END_TIME = "end_time";
 
-    private static final SimpleDateFormat DAY_FORMAT = new SimpleDateFormat("EEE");
-
     public static final String ACTION = Settings.ACTION_ZEN_MODE_SCHEDULE_RULE_SETTINGS;
 
+    // per-instance to ensure we're always using the current locale
+    private final SimpleDateFormat mDayFormat = new SimpleDateFormat("EEE");
+
     private Preference mDays;
     private TimePickerPreference mStart;
     private TimePickerPreference mEnd;
@@ -147,7 +148,7 @@ public class ZenModeScheduleRuleSettings extends ZenModeRuleSettingsBase {
                         if (sb.length() > 0) {
                             sb.append(mContext.getString(R.string.summary_divider_text));
                         }
-                        sb.append(DAY_FORMAT.format(c.getTime()));
+                        sb.append(mDayFormat.format(c.getTime()));
                         break;
                     }
                 }