Display days of week in locale order.

Change-Id: Id5d5920089a5da1fbdc7802431ca2909f72d7e12
Fixes: 21304061
diff --git a/src/com/android/settings/notification/ZenModeScheduleDaysSelection.java b/src/com/android/settings/notification/ZenModeScheduleDaysSelection.java
index 3e88046..fdf4707 100644
--- a/src/com/android/settings/notification/ZenModeScheduleDaysSelection.java
+++ b/src/com/android/settings/notification/ZenModeScheduleDaysSelection.java
@@ -32,16 +32,6 @@
 import java.util.Calendar;
 
 public class ZenModeScheduleDaysSelection extends ScrollView {
-    public static final int[] DAYS = {
-        Calendar.SUNDAY,
-        Calendar.MONDAY,
-        Calendar.TUESDAY,
-        Calendar.WEDNESDAY,
-        Calendar.THURSDAY,
-        Calendar.FRIDAY,
-        Calendar.SATURDAY,
-    };
-
     // per-instance to ensure we're always using the current locale
     private final SimpleDateFormat mDayFormat = new SimpleDateFormat("EEEE");
     private final SparseBooleanArray mDays = new SparseBooleanArray();
@@ -61,9 +51,10 @@
         }
         mLayout.setOrientation(LinearLayout.VERTICAL);
         final Calendar c = Calendar.getInstance();
+        int[] daysOfWeek = getDaysOfWeekForLocale(c);
         final LayoutInflater inflater = LayoutInflater.from(context);
-        for (int i = 0; i < DAYS.length; i++) {
-            final int day = DAYS[i];
+        for (int i = 0; i < daysOfWeek.length; i++) {
+            final int day = daysOfWeek[i];
             final CheckBox checkBox = (CheckBox) inflater.inflate(R.layout.zen_schedule_rule_day,
                     this, false);
             c.set(Calendar.DAY_OF_WEEK, day);
@@ -95,6 +86,17 @@
         return rta;
     }
 
+    protected static int[] getDaysOfWeekForLocale(Calendar c) {
+        int[] daysOfWeek = new int[7];
+        int currentDay = c.getFirstDayOfWeek();
+        for (int i = 0; i < daysOfWeek.length; i++) {
+            if (currentDay > 7) currentDay = 1;
+            daysOfWeek[i] = currentDay;
+            currentDay++;
+        }
+        return daysOfWeek;
+    }
+
     protected void onChanged(int[] days) {
         // event hook for subclasses
     }
diff --git a/src/com/android/settings/notification/ZenModeScheduleRuleSettings.java b/src/com/android/settings/notification/ZenModeScheduleRuleSettings.java
index 1c5027e..ad54689 100644
--- a/src/com/android/settings/notification/ZenModeScheduleRuleSettings.java
+++ b/src/com/android/settings/notification/ZenModeScheduleRuleSettings.java
@@ -44,8 +44,6 @@
 import java.util.Arrays;
 import java.util.Calendar;
 
-import static com.android.settings.notification.ZenModeScheduleDaysSelection.DAYS;
-
 public class ZenModeScheduleRuleSettings extends ZenModeRuleSettingsBase {
     private static final String KEY_DAYS = "days";
     private static final String KEY_START_TIME = "start_time";
@@ -158,8 +156,9 @@
         if (days != null && days.length > 0) {
             final StringBuilder sb = new StringBuilder();
             final Calendar c = Calendar.getInstance();
-            for (int i = 0; i < DAYS.length; i++) {
-                final int day = DAYS[i];
+            int[] daysOfWeek = ZenModeScheduleDaysSelection.getDaysOfWeekForLocale(c);
+            for (int i = 0; i < daysOfWeek.length; i++) {
+                final int day = daysOfWeek[i];
                 for (int j = 0; j < days.length; j++) {
                     if (day == days[j]) {
                         c.set(Calendar.DAY_OF_WEEK, day);