From 9ccb2b2737f05d3a526c1cbb9e0dcc46859d8843 Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Thu, 18 Jun 2020 22:19:59 -0500 Subject: [PATCH] Implement reminder day picker --- .../habits/edit/EditHabitActivity.kt | 22 +++ .../main/res/layout/activity_edit_habit.xml | 182 ++++-------------- .../src/main/res/values/strings.xml | 3 +- .../src/main/res/values/styles.xml | 47 +++++ 4 files changed, 111 insertions(+), 143 deletions(-) diff --git a/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/edit/EditHabitActivity.kt b/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/edit/EditHabitActivity.kt index 2a11f7c63..e9dc33e4c 100644 --- a/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/edit/EditHabitActivity.kt +++ b/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/edit/EditHabitActivity.kt @@ -23,12 +23,14 @@ import android.content.res.* import android.graphics.* import android.os.* import android.text.format.* +import android.view.* import androidx.appcompat.app.* import com.android.datetimepicker.time.* import org.isoron.androidbase.utils.* import org.isoron.uhabits.* import org.isoron.uhabits.activities.* import org.isoron.uhabits.activities.common.dialogs.* +import org.isoron.uhabits.core.models.* import org.isoron.uhabits.core.preferences.* import org.isoron.uhabits.databinding.* import org.isoron.uhabits.preferences.* @@ -47,6 +49,7 @@ class EditHabitActivity : AppCompatActivity() { var freqDen = 1 var reminderHour = -1 var reminderMin = -1 + var reminderDays = WeekdayList.EVERY_DAY override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -84,6 +87,7 @@ class EditHabitActivity : AppCompatActivity() { dialog.show(supportFragmentManager, "frequencyPicker") } + populateReminder() binding.reminderTimePicker.setOnClickListener { val currentHour = if (reminderHour >= 0) reminderHour else 8 val currentMin = if (reminderMin >= 0) reminderMin else 0 @@ -97,12 +101,24 @@ class EditHabitActivity : AppCompatActivity() { override fun onTimeCleared(view: RadialPickerLayout?) { reminderHour = -1 reminderMin = -1 + reminderDays = WeekdayList.EVERY_DAY populateReminder() } }, currentHour, currentMin, is24HourMode, androidColor) dialog.show(supportFragmentManager, "timePicker") } + binding.reminderDatePicker.setOnClickListener { + val dialog = WeekdayPickerDialog() + dialog.setListener { days -> + reminderDays = days + if (reminderDays.isEmpty) reminderDays = WeekdayList.EVERY_DAY + populateReminder() + } + dialog.setSelectedDays(reminderDays) + dialog.show(supportFragmentManager, "dayPicker") + } + binding.buttonSave.setOnClickListener { finish() } @@ -111,9 +127,15 @@ class EditHabitActivity : AppCompatActivity() { private fun populateReminder() { if (reminderHour < 0) { binding.reminderTimePicker.text = getString(R.string.reminder_off) + binding.reminderDatePicker.visibility = View.GONE + binding.reminderDivider.visibility = View.GONE } else { val time = AndroidDateUtils.formatTime(this, reminderHour, reminderMin) + val daysArray = reminderDays.toArray() binding.reminderTimePicker.text = time + binding.reminderDatePicker.visibility = View.VISIBLE + binding.reminderDivider.visibility = View.VISIBLE + binding.reminderDatePicker.text = AndroidDateUtils.formatWeekdayList(this, daysArray) } } diff --git a/android/uhabits-android/src/main/res/layout/activity_edit_habit.xml b/android/uhabits-android/src/main/res/layout/activity_edit_habit.xml index fcfa2fcc8..f81c28aeb 100644 --- a/android/uhabits-android/src/main/res/layout/activity_edit_habit.xml +++ b/android/uhabits-android/src/main/res/layout/activity_edit_habit.xml @@ -68,38 +68,20 @@ android:orientation="vertical" android:padding="8dp"> - - + + style="@style/FormLabel" + android:text="@string/name" /> + style="@style/FormInput" + android:hint="@string/exercise_habit_name" + /> - - - + + style="@style/FormLabel" + android:text="Color" /> - + @@ -155,34 +122,15 @@ android:padding="8dp" android:paddingTop="4dp"> - - + + style="@style/FormLabel" + android:text="@string/question" /> + /> @@ -196,35 +144,16 @@ android:padding="8dp" android:paddingTop="4dp"> - - + + style="@style/FormLabel" + android:text="@string/frequency" /> + /> @@ -237,35 +166,24 @@ android:orientation="vertical" android:padding="8dp"> - - + + style="@style/FormLabel" + android:text="@string/reminder" /> + android:text="@string/reminder_off" /> + + + + @@ -279,34 +197,14 @@ android:orientation="vertical" android:padding="8dp"> - - + + style="@style/FormLabel" + android:text="@string/notes" /> + style="@style/FormInput" + android:hint="@string/example_notes" /> diff --git a/android/uhabits-android/src/main/res/values/strings.xml b/android/uhabits-android/src/main/res/values/strings.xml index 4a4f44a0a..cb6d448e5 100644 --- a/android/uhabits-android/src/main/res/values/strings.xml +++ b/android/uhabits-android/src/main/res/values/strings.xml @@ -245,7 +245,7 @@ First day of the week Have you completed this habit today? Notes - You can put whatever you want here! + (Optional) e.g. Did you wake up early today? Did you exercise? Did you play chess? Measurable @@ -254,5 +254,6 @@ e.g. Are you felling happy today? Definitely, somewhat, not at all? How frequently did you snack? Very often, sometimes, never? %d times per week %d times per month + e.g. Exercise \ No newline at end of file diff --git a/android/uhabits-android/src/main/res/values/styles.xml b/android/uhabits-android/src/main/res/values/styles.xml index 0d4c9e22e..14332f134 100644 --- a/android/uhabits-android/src/main/res/values/styles.xml +++ b/android/uhabits-android/src/main/res/values/styles.xml @@ -292,4 +292,51 @@ true true + + + + + + + + + +