From 4bf641816b64e75521520ed8ee37ecbca89c6c20 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Mon, 3 Oct 2016 22:03:30 +0200 Subject: [PATCH] fix daily editing --- Habitica/res/values/strings.constants.xml | 4 +- .../ui/activities/TaskFormActivity.java | 48 ++++++++++--------- 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/Habitica/res/values/strings.constants.xml b/Habitica/res/values/strings.constants.xml index 8396b200a..db5e26a5d 100644 --- a/Habitica/res/values/strings.constants.xml +++ b/Habitica/res/values/strings.constants.xml @@ -16,6 +16,6 @@ ACCEPT_QUEST_INVITE REJECT_QUEST_INVITE - habitica - habitrpg-qr-code.jpg + habitica + habitrpg-qr-code.jpg \ No newline at end of file diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.java index f5fb7ff5f..d4ab73cef 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.java @@ -212,6 +212,7 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem private RemindersManager remindersManager; private TaskAlarmManager taskAlarmManager; + private FirstDayOfTheWeekHelper firstDayOfTheWeekHelper; @Override protected int getLayoutResId() { @@ -570,7 +571,7 @@ 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 = + firstDayOfTheWeekHelper = FirstDayOfTheWeekHelper.newInstance(Integer.parseInt(dayOfTheWeek)); ArrayList weekdaysTemp = new ArrayList<>(Arrays.asList(weekdays)); Collections.rotate(weekdaysTemp, firstDayOfTheWeekHelper.getDailyTaskFormOffset()); @@ -597,13 +598,14 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem if (this.task != null) { if (this.dailyFrequencySpinner.getSelectedItemPosition() == 0) { - this.weekdayCheckboxes.get(0).setChecked(this.task.getRepeat().getM()); - this.weekdayCheckboxes.get(1).setChecked(this.task.getRepeat().getT()); - this.weekdayCheckboxes.get(2).setChecked(this.task.getRepeat().getW()); - this.weekdayCheckboxes.get(3).setChecked(this.task.getRepeat().getTh()); - this.weekdayCheckboxes.get(4).setChecked(this.task.getRepeat().getF()); - this.weekdayCheckboxes.get(5).setChecked(this.task.getRepeat().getS()); - this.weekdayCheckboxes.get(6).setChecked(this.task.getRepeat().getSu()); + int offset = firstDayOfTheWeekHelper.getDailyTaskFormOffset(); + this.weekdayCheckboxes.get(offset).setChecked(this.task.getRepeat().getM()); + this.weekdayCheckboxes.get((offset+1) % 7).setChecked(this.task.getRepeat().getT()); + this.weekdayCheckboxes.get((offset+2) % 7).setChecked(this.task.getRepeat().getW()); + this.weekdayCheckboxes.get((offset+3) % 7).setChecked(this.task.getRepeat().getTh()); + this.weekdayCheckboxes.get((offset+4) % 7).setChecked(this.task.getRepeat().getF()); + this.weekdayCheckboxes.get((offset+5) % 7).setChecked(this.task.getRepeat().getS()); + this.weekdayCheckboxes.get((offset+6) % 7).setChecked(this.task.getRepeat().getSu()); } else { this.frequencyPicker.setValue(this.task.getEveryX()); } @@ -690,13 +692,14 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem if (task.getFrequency().equals("weekly")) { this.dailyFrequencySpinner.setSelection(0); if (weekdayCheckboxes.size() == 7) { - this.weekdayCheckboxes.get(0).setChecked(task.getRepeat().getM()); - this.weekdayCheckboxes.get(1).setChecked(task.getRepeat().getT()); - this.weekdayCheckboxes.get(2).setChecked(task.getRepeat().getW()); - this.weekdayCheckboxes.get(3).setChecked(task.getRepeat().getTh()); - this.weekdayCheckboxes.get(4).setChecked(task.getRepeat().getF()); - this.weekdayCheckboxes.get(5).setChecked(task.getRepeat().getS()); - this.weekdayCheckboxes.get(6).setChecked(task.getRepeat().getSu()); + int offset = firstDayOfTheWeekHelper.getDailyTaskFormOffset(); + this.weekdayCheckboxes.get(offset).setChecked(this.task.getRepeat().getM()); + this.weekdayCheckboxes.get((offset+1) % 7).setChecked(this.task.getRepeat().getT()); + this.weekdayCheckboxes.get((offset+2) % 7).setChecked(this.task.getRepeat().getW()); + this.weekdayCheckboxes.get((offset+3) % 7).setChecked(this.task.getRepeat().getTh()); + this.weekdayCheckboxes.get((offset+4) % 7).setChecked(this.task.getRepeat().getF()); + this.weekdayCheckboxes.get((offset+5) % 7).setChecked(this.task.getRepeat().getS()); + this.weekdayCheckboxes.get((offset+6) % 7).setChecked(this.task.getRepeat().getSu()); } } else { this.dailyFrequencySpinner.setSelection(1); @@ -792,13 +795,14 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem task.setRepeat(repeat); } - repeat.setM(this.weekdayCheckboxes.get(0).isChecked()); - repeat.setT(this.weekdayCheckboxes.get(1).isChecked()); - repeat.setW(this.weekdayCheckboxes.get(2).isChecked()); - repeat.setTh(this.weekdayCheckboxes.get(3).isChecked()); - repeat.setF(this.weekdayCheckboxes.get(4).isChecked()); - repeat.setS(this.weekdayCheckboxes.get(5).isChecked()); - repeat.setSu(this.weekdayCheckboxes.get(6).isChecked()); + int offset = firstDayOfTheWeekHelper.getDailyTaskFormOffset(); + repeat.setM(this.weekdayCheckboxes.get(offset).isChecked()); + repeat.setT(this.weekdayCheckboxes.get((offset+1) % 7).isChecked()); + repeat.setW(this.weekdayCheckboxes.get((offset+2) % 7).isChecked()); + repeat.setTh(this.weekdayCheckboxes.get((offset+3) % 7).isChecked()); + repeat.setF(this.weekdayCheckboxes.get((offset+4) % 7).isChecked()); + repeat.setS(this.weekdayCheckboxes.get((offset+5) % 7).isChecked()); + repeat.setSu(this.weekdayCheckboxes.get((offset+6) % 7).isChecked()); } else { task.setFrequency("daily"); task.setEveryX(this.frequencyPicker.getValue());