From 0b7db35699c5be82ca0dedd85ef619106db5ba23 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Tue, 27 Oct 2020 15:50:50 +0100 Subject: [PATCH] Better handling for first day of week setting. Fixes #1392 --- Habitica/build.gradle | 2 +- .../android/habitica/ui/activities/TaskFormActivity.kt | 5 +++++ .../habitica/ui/views/tasks/form/ReminderContainer.kt | 3 +++ .../habitica/ui/views/tasks/form/ReminderItemFormView.kt | 5 +++++ .../habitica/ui/views/tasks/form/TaskSchedulingControls.kt | 6 ++++++ build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 ++-- 7 files changed, 23 insertions(+), 4 deletions(-) diff --git a/Habitica/build.gradle b/Habitica/build.gradle index cbc79683e..7c494ed89 100644 --- a/Habitica/build.gradle +++ b/Habitica/build.gradle @@ -16,7 +16,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath 'com.android.tools.build:gradle:4.1.0' classpath('com.noveogroup.android:check:1.2.5') { exclude module: 'checkstyle' exclude module: 'pmd-java' diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.kt index 2856102c3..a72136b7b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.kt @@ -56,6 +56,8 @@ class TaskFormActivity : BaseActivity() { lateinit var taskAlarmManager: TaskAlarmManager @Inject lateinit var challengeRepository: ChallengeRepository + @Inject + lateinit var sharedPreferences: SharedPreferences private var challenge: Challenge? = null @@ -253,6 +255,7 @@ class TaskFormActivity : BaseActivity() { } private fun configureForm() { + val firstDayOfWeek = sharedPreferences.getInt("FirstDayOfTheWeek", -1) val habitViewsVisibility = if (taskType == Task.TYPE_HABIT) View.VISIBLE else View.GONE binding.habitScoringButtons.visibility = habitViewsVisibility binding.habitResetStreakTitleView.visibility = habitViewsVisibility @@ -280,10 +283,12 @@ class TaskFormActivity : BaseActivity() { binding.remindersTitleView.visibility = if (isChallengeTask) View.GONE else todoDailyViewsVisibility binding.remindersContainer.visibility = if (isChallengeTask) View.GONE else todoDailyViewsVisibility binding.remindersContainer.taskType = taskType + binding.remindersContainer.firstDayOfWeek = firstDayOfWeek binding.schedulingTitleView.visibility = todoDailyViewsVisibility binding.taskSchedulingControls.visibility = todoDailyViewsVisibility binding.taskSchedulingControls.taskType = taskType + binding.taskSchedulingControls.firstDayOfWeek = firstDayOfWeek val rewardHideViews = if (taskType == Task.TYPE_REWARD) View.GONE else View.VISIBLE binding.taskDifficultyTitleView.visibility = rewardHideViews diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderContainer.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderContainer.kt index 49a2e018f..c45607e6a 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderContainer.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderContainer.kt @@ -53,6 +53,8 @@ class ReminderContainer @JvmOverloads constructor( layoutTransition = animatedTransitions } + var firstDayOfWeek: Int? = null + init { orientation = VERTICAL @@ -61,6 +63,7 @@ class ReminderContainer @JvmOverloads constructor( private fun addReminderViewAt(index: Int, item: RemindersItem? = null) { val view = ReminderItemFormView(context) + view.firstDayOfWeek = firstDayOfWeek view.taskType = taskType item?.let { view.item = it diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderItemFormView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderItemFormView.kt index 950875010..e24f98ce7 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderItemFormView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderItemFormView.kt @@ -55,6 +55,8 @@ class ReminderItemFormView @JvmOverloads constructor( binding.textView.text = formattedTime } + var firstDayOfWeek: Int? = null + var tintColor: Int = context.getThemeColor(R.attr.taskFormTint) var valueChangedListener: ((Date) -> Unit)? = null var animDuration = 0L @@ -111,6 +113,9 @@ class ReminderItemFormView @JvmOverloads constructor( calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)) + if ((firstDayOfWeek ?: -1) >= 0) { + timePickerDialog.datePicker.firstDayOfWeek = firstDayOfWeek ?: 0 + } timePickerDialog.show() } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskSchedulingControls.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskSchedulingControls.kt index a93542e1a..f208eb473 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskSchedulingControls.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskSchedulingControls.kt @@ -98,6 +98,8 @@ class TaskSchedulingControls @JvmOverloads constructor( generateSummary() } + var firstDayOfWeek: Int? = null + private val weekdays: Array by lazy { DateFormatSymbols().weekdays } @@ -142,6 +144,10 @@ class TaskSchedulingControls @JvmOverloads constructor( startDate = Date() } } + + if ((firstDayOfWeek ?: -1) >= 0) { + datePickerDialog.datePicker.firstDayOfWeek = firstDayOfWeek ?: 0 + } if (taskType == Task.TYPE_TODO) { datePickerDialog.setButton(DialogInterface.BUTTON_NEUTRAL, resources.getString(R.string.clear)) { _, _ -> dueDate = null diff --git a/build.gradle b/build.gradle index bf6f9d384..a0784d9bc 100644 --- a/build.gradle +++ b/build.gradle @@ -11,7 +11,7 @@ buildscript { maven { url "https://plugins.gradle.org/m2/" } } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath 'com.android.tools.build:gradle:4.1.0' classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' classpath 'com.google.gms:google-services:4.3.4' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.3.0' diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index b0cd6c560..3b8ce5172 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed Jun 03 15:04:01 CEST 2020 +#Tue Oct 27 15:21:10 CET 2020 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.4.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip