mirror of
https://github.com/iSoron/uhabits.git
synced 2025-12-06 09:08:52 -06:00
Target type: use dropdown instead of radio button
This commit is contained in:
@@ -88,6 +88,7 @@ class EditHabitActivity : AppCompatActivity() {
|
|||||||
var reminderHour = -1
|
var reminderHour = -1
|
||||||
var reminderMin = -1
|
var reminderMin = -1
|
||||||
var reminderDays: WeekdayList = WeekdayList.EVERY_DAY
|
var reminderDays: WeekdayList = WeekdayList.EVERY_DAY
|
||||||
|
var targetType = NumericalHabitType.AT_LEAST
|
||||||
|
|
||||||
override fun onCreate(state: Bundle?) {
|
override fun onCreate(state: Bundle?) {
|
||||||
super.onCreate(state)
|
super.onCreate(state)
|
||||||
@@ -107,6 +108,7 @@ class EditHabitActivity : AppCompatActivity() {
|
|||||||
color = habit.color
|
color = habit.color
|
||||||
freqNum = habit.frequency.numerator
|
freqNum = habit.frequency.numerator
|
||||||
freqDen = habit.frequency.denominator
|
freqDen = habit.frequency.denominator
|
||||||
|
targetType = habit.targetType
|
||||||
habit.reminder?.let {
|
habit.reminder?.let {
|
||||||
reminderHour = it.hour
|
reminderHour = it.hour
|
||||||
reminderMin = it.minute
|
reminderMin = it.minute
|
||||||
@@ -117,10 +119,6 @@ class EditHabitActivity : AppCompatActivity() {
|
|||||||
binding.notesInput.setText(habit.description)
|
binding.notesInput.setText(habit.description)
|
||||||
binding.unitInput.setText(habit.unit)
|
binding.unitInput.setText(habit.unit)
|
||||||
binding.targetInput.setText(habit.targetValue.toString())
|
binding.targetInput.setText(habit.targetValue.toString())
|
||||||
if (habit.targetType == NumericalHabitType.AT_MOST) {
|
|
||||||
binding.targetTypeAtMost.isChecked = true
|
|
||||||
binding.targetTypeAtLeast.isChecked = false
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
habitType = HabitType.fromInt(intent.getIntExtra("habitType", HabitType.YES_NO.value))
|
habitType = HabitType.fromInt(intent.getIntExtra("habitType", HabitType.YES_NO.value))
|
||||||
}
|
}
|
||||||
@@ -177,6 +175,23 @@ class EditHabitActivity : AppCompatActivity() {
|
|||||||
dialog.show(supportFragmentManager, "frequencyPicker")
|
dialog.show(supportFragmentManager, "frequencyPicker")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
populateTargetType()
|
||||||
|
binding.targetTypePicker.setOnClickListener {
|
||||||
|
val builder = AlertDialog.Builder(this)
|
||||||
|
val arrayAdapter = ArrayAdapter<String>(this, android.R.layout.select_dialog_item)
|
||||||
|
arrayAdapter.add(getString(R.string.target_type_at_least))
|
||||||
|
arrayAdapter.add(getString(R.string.target_type_at_most))
|
||||||
|
builder.setAdapter(arrayAdapter) { dialog, which ->
|
||||||
|
targetType = when (which) {
|
||||||
|
0 -> NumericalHabitType.AT_LEAST
|
||||||
|
else -> NumericalHabitType.AT_MOST
|
||||||
|
}
|
||||||
|
populateTargetType()
|
||||||
|
dialog.dismiss()
|
||||||
|
}
|
||||||
|
builder.show()
|
||||||
|
}
|
||||||
|
|
||||||
binding.numericalFrequencyPicker.setOnClickListener {
|
binding.numericalFrequencyPicker.setOnClickListener {
|
||||||
val builder = AlertDialog.Builder(this)
|
val builder = AlertDialog.Builder(this)
|
||||||
val arrayAdapter = ArrayAdapter<String>(this, android.R.layout.select_dialog_item)
|
val arrayAdapter = ArrayAdapter<String>(this, android.R.layout.select_dialog_item)
|
||||||
@@ -267,10 +282,7 @@ class EditHabitActivity : AppCompatActivity() {
|
|||||||
habit.frequency = Frequency(freqNum, freqDen)
|
habit.frequency = Frequency(freqNum, freqDen)
|
||||||
if (habitType == HabitType.NUMERICAL) {
|
if (habitType == HabitType.NUMERICAL) {
|
||||||
habit.targetValue = targetInput.text.toString().toDouble()
|
habit.targetValue = targetInput.text.toString().toDouble()
|
||||||
if (binding.targetTypeAtLeast.isChecked)
|
habit.targetType = targetType
|
||||||
habit.targetType = NumericalHabitType.AT_LEAST
|
|
||||||
else
|
|
||||||
habit.targetType = NumericalHabitType.AT_MOST
|
|
||||||
habit.unit = unitInput.text.trim().toString()
|
habit.unit = unitInput.text.trim().toString()
|
||||||
}
|
}
|
||||||
habit.type = habitType
|
habit.type = habitType
|
||||||
@@ -332,6 +344,13 @@ class EditHabitActivity : AppCompatActivity() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun populateTargetType() {
|
||||||
|
binding.targetTypePicker.text = when (targetType) {
|
||||||
|
NumericalHabitType.AT_MOST -> getString(R.string.target_type_at_most)
|
||||||
|
else -> getString(R.string.target_type_at_least)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun updateColors() {
|
private fun updateColors() {
|
||||||
androidColor = themeSwitcher.currentTheme.color(color).toInt()
|
androidColor = themeSwitcher.currentTheme.color(color).toInt()
|
||||||
binding.colorButton.backgroundTintList = ColorStateList.valueOf(androidColor)
|
binding.colorButton.backgroundTintList = ColorStateList.valueOf(androidColor)
|
||||||
|
|||||||
@@ -167,29 +167,7 @@
|
|||||||
android:hint="@string/measurable_units_example"/>
|
android:hint="@string/measurable_units_example"/>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
<FrameLayout
|
|
||||||
android:id="@+id/targetTypeOuterBox"
|
|
||||||
style="@style/FormOuterBox">
|
|
||||||
<LinearLayout style="@style/FormInnerBox">
|
|
||||||
<TextView
|
|
||||||
style="@style/FormLabel"
|
|
||||||
android:text="@string/target_type" />
|
|
||||||
<RadioGroup
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
<RadioButton android:id="@+id/targetTypeAtLeast"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/target_type_at_least"
|
|
||||||
android:checked="true"/>
|
|
||||||
<RadioButton android:id="@+id/targetTypeAtMost"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/target_type_at_most"/>
|
|
||||||
</RadioGroup>
|
|
||||||
</LinearLayout>
|
|
||||||
</FrameLayout>
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/targetOuterBox"
|
android:id="@+id/targetOuterBox"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
@@ -230,6 +208,22 @@
|
|||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:id="@+id/targetTypeOuterBox"
|
||||||
|
style="@style/FormOuterBox">
|
||||||
|
<LinearLayout style="@style/FormInnerBox">
|
||||||
|
<TextView
|
||||||
|
style="@style/FormLabel"
|
||||||
|
android:text="@string/target_type" />
|
||||||
|
<TextView
|
||||||
|
style="@style/FormDropdown"
|
||||||
|
android:id="@+id/targetTypePicker"
|
||||||
|
android:textColor="?attr/contrast100"
|
||||||
|
/>
|
||||||
|
</LinearLayout>
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
|
|
||||||
<!-- Reminder -->
|
<!-- Reminder -->
|
||||||
<FrameLayout style="@style/FormOuterBox">
|
<FrameLayout style="@style/FormOuterBox">
|
||||||
<LinearLayout style="@style/FormInnerBox">
|
<LinearLayout style="@style/FormInnerBox">
|
||||||
|
|||||||
@@ -185,8 +185,8 @@
|
|||||||
<string name="calendar">Calendar</string>
|
<string name="calendar">Calendar</string>
|
||||||
<string name="unit">Unit</string>
|
<string name="unit">Unit</string>
|
||||||
<string name="target_type">Target Type</string>
|
<string name="target_type">Target Type</string>
|
||||||
<string name="target_type_at_least">At Least</string>
|
<string name="target_type_at_least">At least</string>
|
||||||
<string name="target_type_at_most">At Most</string>
|
<string name="target_type_at_most">At most</string>
|
||||||
<string name="example_question_boolean">e.g. Did you exercise today?</string>
|
<string name="example_question_boolean">e.g. Did you exercise today?</string>
|
||||||
<string name="question">Question</string>
|
<string name="question">Question</string>
|
||||||
<string name="target">Target</string>
|
<string name="target">Target</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user