mirror of
https://github.com/iSoron/uhabits.git
synced 2025-12-15 05:28:51 -06:00
add increment to Edit UI and Habit
This commit is contained in:
@@ -85,6 +85,7 @@ class EditHabitActivity : AppCompatActivity() {
|
|||||||
var reminderMin = -1
|
var reminderMin = -1
|
||||||
var reminderDays: WeekdayList = WeekdayList.EVERY_DAY
|
var reminderDays: WeekdayList = WeekdayList.EVERY_DAY
|
||||||
var targetType = NumericalHabitType.AT_LEAST
|
var targetType = NumericalHabitType.AT_LEAST
|
||||||
|
var increment = 0.0
|
||||||
|
|
||||||
override fun onCreate(state: Bundle?) {
|
override fun onCreate(state: Bundle?) {
|
||||||
super.onCreate(state)
|
super.onCreate(state)
|
||||||
@@ -105,6 +106,7 @@ class EditHabitActivity : AppCompatActivity() {
|
|||||||
freqNum = habit.frequency.numerator
|
freqNum = habit.frequency.numerator
|
||||||
freqDen = habit.frequency.denominator
|
freqDen = habit.frequency.denominator
|
||||||
targetType = habit.targetType
|
targetType = habit.targetType
|
||||||
|
increment = habit.increment
|
||||||
habit.reminder?.let {
|
habit.reminder?.let {
|
||||||
reminderHour = it.hour
|
reminderHour = it.hour
|
||||||
reminderMin = it.minute
|
reminderMin = it.minute
|
||||||
@@ -115,6 +117,7 @@ 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())
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
habitType = HabitType.fromInt(intent.getIntExtra("habitType", HabitType.YES_NO.value))
|
habitType = HabitType.fromInt(intent.getIntExtra("habitType", HabitType.YES_NO.value))
|
||||||
}
|
}
|
||||||
@@ -128,6 +131,7 @@ class EditHabitActivity : AppCompatActivity() {
|
|||||||
reminderHour = state.getInt("reminderHour")
|
reminderHour = state.getInt("reminderHour")
|
||||||
reminderMin = state.getInt("reminderMin")
|
reminderMin = state.getInt("reminderMin")
|
||||||
reminderDays = WeekdayList(state.getInt("reminderDays"))
|
reminderDays = WeekdayList(state.getInt("reminderDays"))
|
||||||
|
increment = state.getDouble("increment")
|
||||||
}
|
}
|
||||||
|
|
||||||
updateColors()
|
updateColors()
|
||||||
@@ -254,6 +258,23 @@ class EditHabitActivity : AppCompatActivity() {
|
|||||||
for (fragment in supportFragmentManager.fragments) {
|
for (fragment in supportFragmentManager.fragments) {
|
||||||
(fragment as DialogFragment).dismiss()
|
(fragment as DialogFragment).dismiss()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
populateWidgetAction()
|
||||||
|
binding.widgetActionPicker.setOnClickListener {
|
||||||
|
val builder = AlertDialog.Builder(this)
|
||||||
|
val arrayAdapter = ArrayAdapter<String>(this, android.R.layout.select_dialog_item)
|
||||||
|
arrayAdapter.add(getString(R.string.widget_action_dialog))
|
||||||
|
arrayAdapter.add(getString(R.string.widget_action_increment))
|
||||||
|
builder.setAdapter(arrayAdapter) { dialog, which ->
|
||||||
|
increment = when (which) {
|
||||||
|
1 -> 1.0
|
||||||
|
else -> 0.0
|
||||||
|
}
|
||||||
|
populateWidgetAction()
|
||||||
|
dialog.dismiss()
|
||||||
|
}
|
||||||
|
builder.show()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun save() {
|
private fun save() {
|
||||||
@@ -281,6 +302,7 @@ class EditHabitActivity : AppCompatActivity() {
|
|||||||
habit.targetValue = binding.targetInput.text.toString().toDouble()
|
habit.targetValue = binding.targetInput.text.toString().toDouble()
|
||||||
habit.targetType = targetType
|
habit.targetType = targetType
|
||||||
habit.unit = binding.unitInput.text.trim().toString()
|
habit.unit = binding.unitInput.text.trim().toString()
|
||||||
|
habit.increment = binding.incrementInput.text.toString().toDouble()
|
||||||
}
|
}
|
||||||
habit.type = habitType
|
habit.type = habitType
|
||||||
|
|
||||||
@@ -341,6 +363,19 @@ class EditHabitActivity : AppCompatActivity() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("StringFormatMatches")
|
||||||
|
private fun populateWidgetAction() {
|
||||||
|
binding.widgetActionPicker.text = when (increment){
|
||||||
|
0.0 -> getString(R.string.widget_action_dialog)
|
||||||
|
else -> getString(R.string.widget_action_increment)
|
||||||
|
}
|
||||||
|
binding.incrementInput.setText(increment.toString())
|
||||||
|
if (increment != 0.0)
|
||||||
|
binding.incrementRightBox.visibility = View.VISIBLE
|
||||||
|
else
|
||||||
|
binding.incrementRightBox.visibility = View.GONE
|
||||||
|
}
|
||||||
|
|
||||||
private fun populateTargetType() {
|
private fun populateTargetType() {
|
||||||
binding.targetTypePicker.text = when (targetType) {
|
binding.targetTypePicker.text = when (targetType) {
|
||||||
NumericalHabitType.AT_MOST -> getString(R.string.target_type_at_most)
|
NumericalHabitType.AT_MOST -> getString(R.string.target_type_at_most)
|
||||||
@@ -375,6 +410,7 @@ class EditHabitActivity : AppCompatActivity() {
|
|||||||
putInt("reminderHour", reminderHour)
|
putInt("reminderHour", reminderHour)
|
||||||
putInt("reminderMin", reminderMin)
|
putInt("reminderMin", reminderMin)
|
||||||
putInt("reminderDays", reminderDays.toInteger())
|
putInt("reminderDays", reminderDays.toInteger())
|
||||||
|
putDouble("increment",increment)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -208,6 +208,47 @@
|
|||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/incrementOuterBox"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:baselineAligned="false">
|
||||||
|
<FrameLayout
|
||||||
|
style="@style/FormOuterBox"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_weight="1">
|
||||||
|
<LinearLayout style="@style/FormInnerBox">
|
||||||
|
<TextView
|
||||||
|
style="@style/FormLabel"
|
||||||
|
android:text="@string/widget_action" />
|
||||||
|
<TextView
|
||||||
|
style="@style/FormDropdown"
|
||||||
|
android:id="@+id/widgetActionPicker"
|
||||||
|
android:text="@string/widget_action_dialog"
|
||||||
|
android:textColor="?attr/contrast100"
|
||||||
|
/>
|
||||||
|
</LinearLayout>
|
||||||
|
</FrameLayout>
|
||||||
|
<FrameLayout
|
||||||
|
style="@style/FormOuterBox"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:id="@+id/incrementRightBox">
|
||||||
|
<LinearLayout style="@style/FormInnerBox">
|
||||||
|
<TextView
|
||||||
|
style="@style/FormLabel"
|
||||||
|
android:text="@string/increment" />
|
||||||
|
<EditText
|
||||||
|
style="@style/FormInput"
|
||||||
|
android:id="@+id/incrementInput"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:inputType="numberDecimal"
|
||||||
|
android:hint="@string/example_increment"/>
|
||||||
|
</LinearLayout>
|
||||||
|
</FrameLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
android:id="@+id/targetTypeOuterBox"
|
android:id="@+id/targetTypeOuterBox"
|
||||||
style="@style/FormOuterBox">
|
style="@style/FormOuterBox">
|
||||||
|
|||||||
@@ -118,6 +118,9 @@
|
|||||||
<string name="developers">Developers</string>
|
<string name="developers">Developers</string>
|
||||||
<string name="version_n">Version %s</string>
|
<string name="version_n">Version %s</string>
|
||||||
<string name="frequency">Frequency</string>
|
<string name="frequency">Frequency</string>
|
||||||
|
<string name="widget_action">Widget Click Action</string>
|
||||||
|
<string name="widget_action_dialog">Open Dialog</string>
|
||||||
|
<string name="widget_action_increment">Increment</string>
|
||||||
<string name="checkmark">Checkmark</string>
|
<string name="checkmark">Checkmark</string>
|
||||||
<string name="checkmark_stack_widget" formatted="false">Checkmark Stack Widget</string>
|
<string name="checkmark_stack_widget" formatted="false">Checkmark Stack Widget</string>
|
||||||
<string name="frequency_stack_widget" formatted="false">Frequency Stack Widget</string>
|
<string name="frequency_stack_widget" formatted="false">Frequency Stack Widget</string>
|
||||||
@@ -212,6 +215,7 @@
|
|||||||
<string name="yes_or_no_short_example">e.g. Exercise</string>
|
<string name="yes_or_no_short_example">e.g. Exercise</string>
|
||||||
<string name="color">Color</string>
|
<string name="color">Color</string>
|
||||||
<string name="example_target">e.g. 15</string>
|
<string name="example_target">e.g. 15</string>
|
||||||
|
<string name="example_increment">e.g. 2.0</string>
|
||||||
<string name="measurable_short_example">e.g. Run</string>
|
<string name="measurable_short_example">e.g. Run</string>
|
||||||
<string name="measurable_question_example">e.g. How many miles did you run today?</string>
|
<string name="measurable_question_example">e.g. How many miles did you run today?</string>
|
||||||
<string name="measurable_units_example">e.g. miles</string>
|
<string name="measurable_units_example">e.g. miles</string>
|
||||||
|
|||||||
@@ -39,7 +39,8 @@ data class Habit(
|
|||||||
val computedEntries: EntryList,
|
val computedEntries: EntryList,
|
||||||
val originalEntries: EntryList,
|
val originalEntries: EntryList,
|
||||||
val scores: ScoreList,
|
val scores: ScoreList,
|
||||||
val streaks: StreakList
|
val streaks: StreakList,
|
||||||
|
var increment: Double = 0.0
|
||||||
) {
|
) {
|
||||||
init {
|
init {
|
||||||
if (uuid == null) this.uuid = UUID.randomUUID().toString().replace("-", "")
|
if (uuid == null) this.uuid = UUID.randomUUID().toString().replace("-", "")
|
||||||
@@ -119,6 +120,7 @@ data class Habit(
|
|||||||
this.type = other.type
|
this.type = other.type
|
||||||
this.unit = other.unit
|
this.unit = other.unit
|
||||||
this.uuid = other.uuid
|
this.uuid = other.uuid
|
||||||
|
this.increment = other.increment
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun equals(other: Any?): Boolean {
|
override fun equals(other: Any?): Boolean {
|
||||||
|
|||||||
Reference in New Issue
Block a user