Fix default hide until setting

Did not work when date was not automatically set
pull/1100/head
Alex Baker 4 years ago
parent 21fa8679fe
commit 9535abb4f8

@ -10,7 +10,7 @@ import com.google.ical.values.RRule
import com.todoroo.andlib.data.Table
import com.todoroo.andlib.sql.Field
import com.todoroo.andlib.utility.DateUtilities
import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.ui.HideUntilControlSet
import org.tasks.Strings
import org.tasks.backup.XmlReader
import org.tasks.data.Tag
@ -196,6 +196,9 @@ class Task : Parcelable {
/** Checks whether task is done. Requires DUE_DATE */
fun hasDueDate() = dueDate > 0
fun createHideUntil(value: HideUntilControlSet.HideUntilValue) =
createHideUntil(value.setting, value.date)
/**
* Create hide until for this task.
*

@ -23,7 +23,6 @@ import org.tasks.date.DateTimeUtils
import org.tasks.dialogs.MyTimePickerDialog
import org.tasks.locale.Locale
import org.tasks.preferences.Preferences
import org.tasks.themes.ThemeBase
import org.tasks.ui.HiddenTopArrayAdapter
import org.tasks.ui.TaskEditControlFragment
import java.util.*
@ -39,7 +38,6 @@ class HideUntilControlSet : TaskEditControlFragment(), OnItemSelectedListener {
private val spinnerItems: MutableList<HideUntilValue> = ArrayList()
@Inject lateinit var activity: Activity
@Inject lateinit var themeBase: ThemeBase
@Inject lateinit var preferences: Preferences
@Inject lateinit var locale: Locale
@ -52,8 +50,7 @@ class HideUntilControlSet : TaskEditControlFragment(), OnItemSelectedListener {
private lateinit var adapter: ArrayAdapter<HideUntilValue>
private var previousSetting = Task.HIDE_UNTIL_NONE
private var selection = 0
private var existingDate = EXISTING_TIME_UNSET.toLong()
private var selectedValue: HideUntilValue? = null
private var existingDate = EXISTING_TIME_UNSET
@OnClick(R.id.clear)
fun clearHideUntil() {
@ -183,7 +180,7 @@ class HideUntilControlSet : TaskEditControlFragment(), OnItemSelectedListener {
} else {
spinnerItems.add(
0, HideUntilValue(getString(R.string.TEA_hideUntil_label), Task.HIDE_UNTIL_NONE))
EXISTING_TIME_UNSET.toLong()
EXISTING_TIME_UNSET
}
adapter.notifyDataSetChanged()
}
@ -208,7 +205,7 @@ class HideUntilControlSet : TaskEditControlFragment(), OnItemSelectedListener {
// ... at conclusion of dialog, update our list
val item = adapter.getItem(position)
if (item!!.date == SPECIFIC_DATE.toLong()) {
val customDate = DateTimeUtils.newDateTime(if (existingDate == EXISTING_TIME_UNSET.toLong()) DateUtilities.now() else existingDate)
val customDate = DateTimeUtils.newDateTime(if (existingDate == EXISTING_TIME_UNSET) DateUtilities.now() else existingDate)
.withSecondOfMinute(0)
val intent = Intent(activity, DateAndTimePickerActivity::class.java)
intent.putExtra(DateAndTimePickerActivity.EXTRA_TIMESTAMP, customDate.millis)
@ -233,21 +230,21 @@ class HideUntilControlSet : TaskEditControlFragment(), OnItemSelectedListener {
}
private fun refreshDisplayView() {
selectedValue = adapter.getItem(selection)
viewModel.hideUntil = viewModel.task
?.createHideUntil(selectedValue!!.setting, selectedValue!!.date)
clearButton.visibility = if (selectedValue!!.setting == Task.HIDE_UNTIL_NONE) View.GONE else View.VISIBLE
viewModel.hideUntilValue = adapter.getItem(selection)
clearButton.visibility = if (viewModel.hideUntilValue!!.setting == Task.HIDE_UNTIL_NONE) View.GONE else View.VISIBLE
}
private class HideUntilValue @JvmOverloads internal constructor(val labelSpinner: String, val labelDisplay: String, val setting: Int, val date: Long = 0) {
class HideUntilValue internal constructor(
private val labelSpinner: String,
val labelDisplay: String,
val setting: Int,
val date: Long = 0
) {
internal constructor(label: String, setting: Int) : this(label, label, setting, 0)
internal constructor(label: String, setting: Int, date: Long) : this(label, label, setting, date)
override fun toString(): String {
return labelSpinner
}
override fun toString() = labelSpinner
}
companion object {
@ -255,7 +252,7 @@ class HideUntilControlSet : TaskEditControlFragment(), OnItemSelectedListener {
private const val EXTRA_CUSTOM = "extra_custom"
private const val EXTRA_SELECTION = "extra_selection"
private const val SPECIFIC_DATE = -1
private const val EXISTING_TIME_UNSET = -2
private const val EXISTING_TIME_UNSET = -2L
private const val REQUEST_HIDE_UNTIL = 11011
}
}

@ -23,6 +23,7 @@ import com.todoroo.astrid.service.TaskCompleter
import com.todoroo.astrid.service.TaskDeleter
import com.todoroo.astrid.service.TaskMover
import com.todoroo.astrid.timers.TimerPlugin
import com.todoroo.astrid.ui.HideUntilControlSet
import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.ImmutableSet
@ -96,11 +97,6 @@ class TaskEditViewModel @ViewModelInject constructor(
hasDueTime(value) -> createDueDate(Task.URGENCY_SPECIFIC_DAY_TIME, value)
else -> createDueDate(Task.URGENCY_SPECIFIC_DAY, value)
}
if (oldDueDate > 0) {
if (hideUntil!! > 0) {
hideUntil = if (field!! > 0) hideUntil!! + field!! - oldDueDate else 0
}
}
}
var priority: Int? = null
@ -109,8 +105,10 @@ class TaskEditViewModel @ViewModelInject constructor(
var description: String? = null
get() = field ?: task?.notes.stripCarriageReturns()
var hideUntil: Long? = null
get() = field ?: task?.hideUntil ?: 0
val hideUntil: Long
get() = task?.hideUntil ?: 0
var hideUntilValue: HideUntilControlSet.HideUntilValue? = null
var recurrence: String? = null
get() = field ?: task?.recurrence
@ -257,7 +255,7 @@ class TaskEditViewModel @ViewModelInject constructor(
it.dueDate != dueDate ||
it.priority != priority ||
it.notes != description ||
it.hideUntil != hideUntil ||
it.hideUntil != it.createHideUntil(hideUntilValue!!) ||
if (it.recurrence.isNullOrBlank()) {
!recurrence.isNullOrBlank()
} else {
@ -294,7 +292,7 @@ class TaskEditViewModel @ViewModelInject constructor(
it.dueDate = dueDate!!
it.priority = priority!!
it.notes = description
it.hideUntil = hideUntil!!
it.hideUntil = it.createHideUntil(hideUntilValue!!)
it.recurrence = recurrence
it.repeatUntil = repeatUntil!!
it.elapsedSeconds = elapsedSeconds!!

Loading…
Cancel
Save