From feb70ef96da328285bf9d4e1a0c84fe7261976bc Mon Sep 17 00:00:00 2001
From: 0x8664b2 <0x8664b2@pm.me>
Date: Wed, 6 Oct 2021 02:29:03 -0700
Subject: [PATCH] Start the weekly view with the current date
---
.../calendar/pro/activities/MainActivity.kt | 25 ++++++++++++-------
.../pro/activities/SettingsActivity.kt | 8 ++++++
.../calendar/pro/helpers/Config.kt | 4 +++
.../calendar/pro/helpers/Constants.kt | 1 +
app/src/main/res/layout/activity_settings.xml | 22 ++++++++++++++++
5 files changed, 51 insertions(+), 9 deletions(-)
diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/MainActivity.kt
index c05a973bc..d41d392da 100644
--- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/MainActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/MainActivity.kt
@@ -81,6 +81,7 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener {
private var mStoredUse24HourFormat = false
private var mStoredDimPastEvents = true
private var mStoredHighlightWeekends = false
+ private var mStoredStartWeeklyViewWithCurrentDate = false
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -122,7 +123,7 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener {
}
if (!config.wasUpgradedFromFreeShown && isPackageInstalled("com.simplemobiletools.calendar")) {
- ConfirmationDialog(this, "", R.string.upgraded_from_free, R.string.ok, 0, false) {}
+ ConfirmationDialog(this, "", R.string.upgraded_from_free, R.string.ok, 0) {}
config.wasUpgradedFromFreeShown = true
}
}
@@ -143,7 +144,8 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener {
}
if (config.storedView == WEEKLY_VIEW) {
- if (mStoredIsSundayFirst != config.isSundayFirst || mStoredUse24HourFormat != config.use24HourFormat || mStoredMidnightSpan != config.showMidnightSpanningEventsAtTop) {
+ if (mStoredIsSundayFirst != config.isSundayFirst || mStoredUse24HourFormat != config.use24HourFormat
+ || mStoredMidnightSpan != config.showMidnightSpanningEventsAtTop || mStoredStartWeeklyViewWithCurrentDate != config.startWeeklyViewWithCurrentDate) {
updateViewPager()
}
}
@@ -258,6 +260,7 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener {
mStoredDimPastEvents = dimPastEvents
mStoredHighlightWeekends = highlightWeekends
mStoredMidnightSpan = showMidnightSpanningEventsAtTop
+ mStoredStartWeeklyViewWithCurrentDate = startWeeklyViewWithCurrentDate
}
mStoredAdjustedPrimaryColor = getAdjustedPrimaryColor()
mStoredDayCode = Formatter.getTodayCode()
@@ -816,15 +819,19 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener {
}
private fun getThisWeekDateTime(): String {
- val currentOffsetHours = TimeZone.getDefault().rawOffset / 1000 / 60 / 60
+ return if(! config.startWeeklyViewWithCurrentDate) {
+ val currentOffsetHours = TimeZone.getDefault().rawOffset / 1000 / 60 / 60
- // not great, not terrible
- val useHours = if (currentOffsetHours >= 10) 8 else 12
- var thisweek = DateTime().withZone(DateTimeZone.UTC).withDayOfWeek(1).withHourOfDay(useHours).minusDays(if (config.isSundayFirst) 1 else 0)
- if (DateTime().minusDays(7).seconds() > thisweek.seconds()) {
- thisweek = thisweek.plusDays(7)
+ // not great, not terrible
+ val useHours = if (currentOffsetHours >= 10) 8 else 12
+ var thisweek = DateTime().withZone(DateTimeZone.UTC).withDayOfWeek(1).withHourOfDay(useHours).minusDays(if (config.isSundayFirst) 1 else 0)
+ if (DateTime().minusDays(7).seconds() > thisweek.seconds()) {
+ thisweek = thisweek.plusDays(7)
+ }
+ thisweek.toString()
+ } else {
+ DateTime().withZone(DateTimeZone.UTC).toString()
}
- return thisweek.toString()
}
private fun getFragmentsHolder() = when (config.storedView) {
diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/SettingsActivity.kt
index 0d343cb8e..48adfb591 100644
--- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/SettingsActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/SettingsActivity.kt
@@ -58,6 +58,7 @@ class SettingsActivity : SimpleActivity() {
setupWeeklyStart()
setupMidnightSpanEvents()
setupAllowCustomiseDayCount()
+ setupStartWeeklyViewWithCurrentDate()
setupVibrate()
setupReminderSound()
setupReminderAudioStream()
@@ -358,6 +359,13 @@ class SettingsActivity : SimpleActivity() {
}
}
+ private fun setupStartWeeklyViewWithCurrentDate() {
+ settings_start_weekly_view_with_current_date.isChecked = config.startWeeklyViewWithCurrentDate
+ settings_start_weekly_view_with_current_date.setOnClickListener {
+ config.startWeeklyViewWithCurrentDate = settings_start_weekly_view_with_current_date.isChecked
+ }
+ }
+
private fun setupWeekNumbers() {
settings_week_numbers.isChecked = config.showWeekNumbers
settings_week_numbers_holder.setOnClickListener {
diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/Config.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/Config.kt
index 0f882145c..7633ed0ec 100644
--- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/Config.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/Config.kt
@@ -23,6 +23,10 @@ class Config(context: Context) : BaseConfig(context) {
get() = prefs.getInt(START_WEEKLY_AT, 7)
set(startWeeklyAt) = prefs.edit().putInt(START_WEEKLY_AT, startWeeklyAt).apply()
+ var startWeeklyViewWithCurrentDate: Boolean
+ get() = prefs.getBoolean(START_WEEKLY_VIEW_WITH_CURRENT_DATE, false)
+ set(startWeeklyViewWithCurrentDate) = prefs.edit().putBoolean(START_WEEKLY_VIEW_WITH_CURRENT_DATE, startWeeklyViewWithCurrentDate).apply()
+
var showMidnightSpanningEventsAtTop: Boolean
get() = prefs.getBoolean(SHOW_MIDNIGHT_SPANNING_EVENTS_AT_TOP, true)
set(midnightSpanning) = prefs.edit().putBoolean(SHOW_MIDNIGHT_SPANNING_EVENTS_AT_TOP, midnightSpanning).apply()
diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/Constants.kt
index 9e3d612be..b58e38bb0 100644
--- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/Constants.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/Constants.kt
@@ -45,6 +45,7 @@ const val YEAR = 31536000
// Shared Preferences
const val WEEK_NUMBERS = "week_numbers"
const val START_WEEKLY_AT = "start_weekly_at"
+const val START_WEEKLY_VIEW_WITH_CURRENT_DATE = "start_weekly_with_current_date"
const val SHOW_MIDNIGHT_SPANNING_EVENTS_AT_TOP = "show_midnight_spanning_events_at_top"
const val ALLOW_CUSTOMIZE_DAY_COUNT = "allow_customise_day_count"
const val VIBRATE = "vibrate"
diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml
index 6aa354db3..966f48f19 100644
--- a/app/src/main/res/layout/activity_settings.xml
+++ b/app/src/main/res/layout/activity_settings.xml
@@ -744,6 +744,28 @@
+
+
+
+
+
+