Fix ring flag migration issue

pull/1790/head
Alex Baker 3 years ago
parent 42e44eafdc
commit 488836f848

@ -246,10 +246,10 @@ class Task : Parcelable {
} }
val isNotifyModeNonstop: Boolean val isNotifyModeNonstop: Boolean
get() = isRingSet(NOTIFY_MODE_NONSTOP) get() = ringFlags == NOTIFY_MODE_NONSTOP
val isNotifyModeFive: Boolean val isNotifyModeFive: Boolean
get() = isRingSet(NOTIFY_MODE_FIVE) get() = ringFlags == NOTIFY_MODE_FIVE
val isNotifyAfterDeadline: Boolean val isNotifyAfterDeadline: Boolean
get() = isReminderSet(NOTIFY_AFTER_DEADLINE) get() = isReminderSet(NOTIFY_AFTER_DEADLINE)
@ -264,10 +264,6 @@ class Task : Parcelable {
return ((transitoryData?.get(TRANS_REMINDERS) as? Int) ?: 0) and flag > 0 return ((transitoryData?.get(TRANS_REMINDERS) as? Int) ?: 0) and flag > 0
} }
private fun isRingSet(flag: Int): Boolean {
return ringFlags and flag > 0
}
val isNew: Boolean val isNew: Boolean
get() = id == NO_ID get() = id == NO_ID

@ -7,6 +7,8 @@ import com.todoroo.astrid.api.FilterListItem.NO_ORDER
import com.todoroo.astrid.data.Task.Companion.NOTIFY_AFTER_DEADLINE import com.todoroo.astrid.data.Task.Companion.NOTIFY_AFTER_DEADLINE
import com.todoroo.astrid.data.Task.Companion.NOTIFY_AT_DEADLINE import com.todoroo.astrid.data.Task.Companion.NOTIFY_AT_DEADLINE
import com.todoroo.astrid.data.Task.Companion.NOTIFY_AT_START import com.todoroo.astrid.data.Task.Companion.NOTIFY_AT_START
import com.todoroo.astrid.data.Task.Companion.NOTIFY_MODE_FIVE
import com.todoroo.astrid.data.Task.Companion.NOTIFY_MODE_NONSTOP
import org.tasks.data.Alarm.Companion.TYPE_RANDOM import org.tasks.data.Alarm.Companion.TYPE_RANDOM
import org.tasks.data.Alarm.Companion.TYPE_REL_END import org.tasks.data.Alarm.Companion.TYPE_REL_END
import org.tasks.data.Alarm.Companion.TYPE_REL_START import org.tasks.data.Alarm.Companion.TYPE_REL_START
@ -433,7 +435,10 @@ object Migrations {
"INSERT INTO `alarms` (`task`, `time`, `type`) SELECT `_id`, `snoozeTime`, $TYPE_SNOOZE FROM `tasks` WHERE `snoozeTime` > 0" "INSERT INTO `alarms` (`task`, `time`, `type`) SELECT `_id`, `snoozeTime`, $TYPE_SNOOZE FROM `tasks` WHERE `snoozeTime` > 0"
) )
database.execSQL( database.execSQL(
"UPDATE `tasks` SET `notificationFlags` = `notificationFlags` & ~$NOTIFY_AT_START & ~$NOTIFY_AT_DEADLINE & ~$NOTIFY_AFTER_DEADLINE" "UPDATE `tasks` SET `notificationFlags` = $NOTIFY_MODE_FIVE WHERE `notificationFlags` & $NOTIFY_MODE_FIVE = $NOTIFY_MODE_FIVE"
)
database.execSQL(
"UPDATE `tasks` SET `notificationFlags` = $NOTIFY_MODE_NONSTOP WHERE `notificationFlags` & $NOTIFY_MODE_NONSTOP = $NOTIFY_MODE_NONSTOP"
) )
} }
} }

@ -12,6 +12,8 @@ import com.todoroo.astrid.api.GtasksFilter
import com.todoroo.astrid.dao.TaskDao import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.data.SyncFlags import com.todoroo.astrid.data.SyncFlags
import com.todoroo.astrid.data.Task import com.todoroo.astrid.data.Task
import com.todoroo.astrid.data.Task.Companion.NOTIFY_MODE_FIVE
import com.todoroo.astrid.data.Task.Companion.NOTIFY_MODE_NONSTOP
import com.todoroo.astrid.data.Task.Companion.createDueDate import com.todoroo.astrid.data.Task.Companion.createDueDate
import com.todoroo.astrid.data.Task.Companion.hasDueTime import com.todoroo.astrid.data.Task.Companion.hasDueTime
import com.todoroo.astrid.data.Task.Companion.isRepeatAfterCompletion import com.todoroo.astrid.data.Task.Companion.isRepeatAfterCompletion
@ -453,15 +455,10 @@ class TaskEditViewModel @Inject constructor(
} }
} }
private fun getRingFlags(): Int { private fun getRingFlags() = when {
var value = 0 ringNonstop == true -> NOTIFY_MODE_NONSTOP
value = value and (Task.NOTIFY_MODE_FIVE or Task.NOTIFY_MODE_NONSTOP).inv() ringFiveTimes == true -> NOTIFY_MODE_FIVE
if (ringNonstop == true) { else -> 0
value = value or Task.NOTIFY_MODE_NONSTOP
} else if (ringFiveTimes == true) {
value = value or Task.NOTIFY_MODE_FIVE
}
return value
} }
suspend fun delete() { suspend fun delete() {

Loading…
Cancel
Save