diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/views/HistoryChart.java b/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/views/HistoryChart.java index e8e3308fd..30e6b1731 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/views/HistoryChart.java +++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/views/HistoryChart.java @@ -29,6 +29,7 @@ import android.view.*; import org.isoron.androidbase.utils.*; import org.isoron.uhabits.*; import org.isoron.uhabits.core.models.*; +import org.isoron.uhabits.core.preferences.Preferences; import org.isoron.uhabits.core.utils.*; import org.isoron.uhabits.utils.*; @@ -96,6 +97,8 @@ public class HistoryChart extends ScrollableChart @NonNull private Controller controller; + private int weekFirstDay; + public HistoryChart(Context context) { super(context); @@ -392,6 +395,14 @@ public class HistoryChart extends ScrollableChart initPaints(); initDateFormats(); initRects(); + initWeekFirstDay(); + + } + + private void initWeekFirstDay() { + HabitsApplication app = (HabitsApplication) getContext().getApplicationContext(); + Preferences prefs = app.getComponent().getPreferences(); + weekFirstDay = prefs.getWeekFirstDay(); } private void initColors() @@ -458,8 +469,10 @@ public class HistoryChart extends ScrollableChart private void updateDate() { + + baseDate = DateUtils.getStartOfTodayCalendar(); - baseDate.setFirstDayOfWeek(Calendar.SATURDAY); + baseDate.setFirstDayOfWeek(weekFirstDay); baseDate.add(Calendar.DAY_OF_YEAR, -(getDataOffset() - 1) * 7); nDays = (nColumns - 1) * 7; diff --git a/uhabits-android/src/main/res/values/constants.xml b/uhabits-android/src/main/res/values/constants.xml index 94ae54340..df6db38c2 100644 --- a/uhabits-android/src/main/res/values/constants.xml +++ b/uhabits-android/src/main/res/values/constants.xml @@ -47,6 +47,26 @@ 1440 + + Sunday + Monday + Tuesday + Wednesday + Thursday + Friday + Saturday + + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + + @string/every_day @string/every_week @@ -94,5 +114,6 @@ 15 + 7 100 \ No newline at end of file diff --git a/uhabits-android/src/main/res/values/strings.xml b/uhabits-android/src/main/res/values/strings.xml index 3ea1d2f76..28aa53ff9 100644 --- a/uhabits-android/src/main/res/values/strings.xml +++ b/uhabits-android/src/main/res/values/strings.xml @@ -86,6 +86,7 @@ Toggle with short press Put checkmarks with a single tap instead of press-and-hold. More convenient, but might cause accidental toggles. Snooze interval on reminders + First day of week Rate this app on Google Play Send feedback to developer View source code at GitHub @@ -95,6 +96,7 @@ Name Settings Snooze interval + First day of week Did you know? To rearrange the entries, press-and-hold on the name of the habit, then drag it to the correct place. diff --git a/uhabits-android/src/main/res/xml/preferences.xml b/uhabits-android/src/main/res/xml/preferences.xml index 344da2801..05bb9a6a1 100644 --- a/uhabits-android/src/main/res/xml/preferences.xml +++ b/uhabits-android/src/main/res/xml/preferences.xml @@ -100,6 +100,20 @@ + + + + + + diff --git a/uhabits-core/src/main/java/org/isoron/uhabits/core/preferences/Preferences.java b/uhabits-core/src/main/java/org/isoron/uhabits/core/preferences/Preferences.java index c1768c786..7c182dc36 100644 --- a/uhabits-core/src/main/java/org/isoron/uhabits/core/preferences/Preferences.java +++ b/uhabits-core/src/main/java/org/isoron/uhabits/core/preferences/Preferences.java @@ -145,6 +145,11 @@ public class Preferences return Long.parseLong(storage.getString("pref_snooze_interval", "15")); } + public int getWeekFirstDay() + { + return Integer.parseInt(storage.getString("pref_week_start", "7")); + } + public String getSyncAddress() { return storage.getString("pref_sync_address", DEFAULT_SYNC_SERVER);