Feature: Add sensible default for first day of the using locale

This commits adds a default for the first day of the week setting.
This is better than arbitrarily choosing a first day of the week.
In addition, it reorders the days in the dailies screen with the
first day in the list being the day the user chose in the setting.

Issue: #546, Pull Request: #620
This commit is contained in:
Daniel Kaparunakis 2016-09-18 23:46:28 -05:00
parent 3634980116
commit f1db752ca2
3 changed files with 21 additions and 26 deletions

View file

@ -10,36 +10,29 @@ public class FirstDayOfTheWeekHelper {
private int firstDayOfTheWeek;
private int dailyTaskFormOffset;
public FirstDayOfTheWeekHelper(String firstDayOfTheWeekSharedPref) {
private FirstDayOfTheWeekHelper(int dailyTaskFormOffset, int firstDayOfTheWeek) {
this.dailyTaskFormOffset = dailyTaskFormOffset;
this.firstDayOfTheWeek = firstDayOfTheWeek;
}
public static FirstDayOfTheWeekHelper newInstance(String firstDayOfTheWeekSharedPref) {
switch (firstDayOfTheWeekSharedPref){
case "1":
firstDayOfTheWeek = Calendar.SUNDAY;
dailyTaskFormOffset = 1;
break;
return new FirstDayOfTheWeekHelper(1, Calendar.SUNDAY);
case "2":
firstDayOfTheWeek = Calendar.MONDAY;
dailyTaskFormOffset = 0;
break;
return new FirstDayOfTheWeekHelper(0, Calendar.MONDAY);
case "3":
firstDayOfTheWeek = Calendar.TUESDAY;
dailyTaskFormOffset = 6;
break;
return new FirstDayOfTheWeekHelper(6, Calendar.TUESDAY);
case "4":
firstDayOfTheWeek = Calendar.WEDNESDAY;
dailyTaskFormOffset = 5;
break;
return new FirstDayOfTheWeekHelper(5, Calendar.WEDNESDAY);
case "5":
firstDayOfTheWeek = Calendar.THURSDAY;
dailyTaskFormOffset = 4;
break;
return new FirstDayOfTheWeekHelper(4, Calendar.THURSDAY);
case "6":
firstDayOfTheWeek = Calendar.FRIDAY;
dailyTaskFormOffset = 3;
break;
return new FirstDayOfTheWeekHelper(3, Calendar.FRIDAY);
case "7":
firstDayOfTheWeek = Calendar.SATURDAY;
dailyTaskFormOffset = 2;
break;
return new FirstDayOfTheWeekHelper(2, Calendar.SATURDAY);
default:
return new FirstDayOfTheWeekHelper(1, Calendar.SUNDAY);
}
}

View file

@ -73,7 +73,8 @@ public class RemindersManager {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
String dayOfTheWeek = sharedPreferences.getString("FirstDayOfTheWeek",
Integer.toString(Calendar.getInstance().getFirstDayOfWeek()));
FirstDayOfTheWeekHelper firstDayOfTheWeekHelper = new FirstDayOfTheWeekHelper(dayOfTheWeek);
FirstDayOfTheWeekHelper firstDayOfTheWeekHelper =
FirstDayOfTheWeekHelper.newInstance(dayOfTheWeek);
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT_WATCH) {
dialogDatePicker.getCalendarView().setFirstDayOfWeek(
firstDayOfTheWeekHelper.getFirstDayOfTheWeek());

View file

@ -574,8 +574,8 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
String dayOfTheWeek = sharedPreferences.getString("FirstDayOfTheWeek",
Integer.toString(Calendar.getInstance().getFirstDayOfWeek()));
FirstDayOfTheWeekHelper firstDayOfTheWeekHelper = new FirstDayOfTheWeekHelper(dayOfTheWeek);
FirstDayOfTheWeekHelper firstDayOfTheWeekHelper =
FirstDayOfTheWeekHelper.newInstance(dayOfTheWeek);
ArrayList<String> weekdaysTemp = new ArrayList<>(Arrays.asList(weekdays));
Collections.rotate(weekdaysTemp, firstDayOfTheWeekHelper.getDailyTaskFormOffset());
weekdays = weekdaysTemp.toArray(new String[1]);
@ -923,7 +923,8 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
String dayOfTheWeek = sharedPreferences.getString("FirstDayOfTheWeek",
Integer.toString(Calendar.getInstance().getFirstDayOfWeek()));
FirstDayOfTheWeekHelper firstDayOfTheWeekHelper = new FirstDayOfTheWeekHelper(dayOfTheWeek);
FirstDayOfTheWeekHelper firstDayOfTheWeekHelper =
FirstDayOfTheWeekHelper.newInstance(dayOfTheWeek);
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT_WATCH) {
datePickerDialog.getDatePicker().getCalendarView().setFirstDayOfWeek(
firstDayOfTheWeekHelper.getFirstDayOfTheWeek());