Rename fetch to fetchBlocking, add suspend fetch

pull/1043/head
Alex Baker 4 years ago
parent 2ec60748d3
commit de3e23d9d7

@ -141,7 +141,7 @@ class CaldavTaskAdapterTest : InjectingTestCase() {
adapter.moved(1, 1, 1)
assertEquals(tasks[0].id, taskDao.fetch(tasks[1].id)!!.parent)
assertEquals(tasks[0].id, taskDao.fetchBlocking(tasks[1].id)!!.parent)
}
@Test
@ -165,7 +165,7 @@ class CaldavTaskAdapterTest : InjectingTestCase() {
adapter.moved(1, 1, 0)
assertTrue(caldavDao.getTask(tasks[1].id)!!.remoteParent.isNullOrBlank())
assertEquals(0, taskDao.fetch(tasks[1].id)!!.parent)
assertEquals(0, taskDao.fetchBlocking(tasks[1].id)!!.parent)
}
@Test
@ -176,7 +176,7 @@ class CaldavTaskAdapterTest : InjectingTestCase() {
adapter.moved(2, 2, 1)
assertEquals(tasks[0].id, taskDao.fetch(tasks[2].id)!!.parent)
assertEquals(tasks[0].id, taskDao.fetchBlocking(tasks[2].id)!!.parent)
}
@Test
@ -188,7 +188,7 @@ class CaldavTaskAdapterTest : InjectingTestCase() {
adapter.moved(3, 3, 1)
assertEquals(tasks[0].id, taskDao.fetch(tasks[3].id)!!.parent)
assertEquals(tasks[0].id, taskDao.fetchBlocking(tasks[3].id)!!.parent)
}
private fun addTask(vararg properties: PropertyValue<in TaskContainer?, *>) {

@ -39,7 +39,7 @@ class TaskDaoTests : InjectingTestCase() {
assertEquals(1, taskDao.getAll().size)
val happyId = task.id
assertNotSame(Task.NO_ID, happyId)
task = taskDao.fetch(happyId)!!
task = taskDao.fetchBlocking(happyId)!!
assertEquals("happy", task.title)
// create task "sad"
@ -56,9 +56,9 @@ class TaskDaoTests : InjectingTestCase() {
assertEquals(2, taskDao.getAll().size)
// check state
task = taskDao.fetch(happyId)!!
task = taskDao.fetchBlocking(happyId)!!
assertEquals("happy", task.title)
task = taskDao.fetch(sadId)!!
task = taskDao.fetchBlocking(sadId)!!
assertEquals("melancholy", task.title)
}
@ -135,7 +135,7 @@ class TaskDaoTests : InjectingTestCase() {
@Test
fun testInvalidIndex() {
assertEquals(0, taskDao.getAll().size)
assertNull(taskDao.fetch(1))
assertNull(taskDao.fetchBlocking(1))
taskDeleter.delete(listOf(1L))
// make sure db still works

@ -30,7 +30,7 @@ class TaskTest : InjectingTestCase() {
fun testReadTaskFromDb() {
val task = Task()
taskDao.createNew(task)
val fromDb = taskDao.fetch(task.id)
val fromDb = taskDao.fetchBlocking(task.id)
assertEquals(task, fromDb)
}
}

@ -122,7 +122,7 @@ class TaskMoverTest : InjectingTestCase() {
assertEquals(3, deleted.size.toLong())
val task = caldavDao.getTask(3)
assertEquals("2", task!!.calendar)
assertEquals(2, taskDao.fetch(3)!!.parent)
assertEquals(2, taskDao.fetchBlocking(3)!!.parent)
}
@Test
@ -133,7 +133,7 @@ class TaskMoverTest : InjectingTestCase() {
moveToCaldavList("1", 1)
val task = caldavDao.getTask(2)
assertEquals("1", task!!.calendar)
assertEquals(1, taskDao.fetch(2)!!.parent)
assertEquals(1, taskDao.fetchBlocking(2)!!.parent)
}
@Test
@ -143,7 +143,7 @@ class TaskMoverTest : InjectingTestCase() {
createSubtask(3, 2)
moveToGoogleTasks("1", 1)
assertEquals(1, googleTaskDao.getByTaskId(3)!!.parent)
assertEquals(0, taskDao.fetch(3)!!.parent)
assertEquals(0, taskDao.fetchBlocking(3)!!.parent)
}
@Test
@ -151,7 +151,7 @@ class TaskMoverTest : InjectingTestCase() {
createTasks(1)
createSubtask(2, 1)
moveToGoogleTasks("1", 2)
assertEquals(0, taskDao.fetch(2)!!.parent)
assertEquals(0, taskDao.fetchBlocking(2)!!.parent)
}
@Test
@ -159,7 +159,7 @@ class TaskMoverTest : InjectingTestCase() {
createTasks(1)
createSubtask(2, 1)
moveToCaldavList("1", 2)
assertEquals(0, taskDao.fetch(2)!!.parent)
assertEquals(0, taskDao.fetchBlocking(2)!!.parent)
}
@Test
@ -210,7 +210,7 @@ class TaskMoverTest : InjectingTestCase() {
with(REMOTE_PARENT, "a"))))
moveToCaldavList("2", 2)
assertEquals("2", caldavDao.getTask(2)!!.calendar)
assertEquals(0, taskDao.fetch(2)!!.parent)
assertEquals(0, taskDao.fetchBlocking(2)!!.parent)
}
@Test
@ -236,7 +236,7 @@ class TaskMoverTest : InjectingTestCase() {
createSubtask(3, 2)
moveToCaldavList("1", 1)
assertEquals("1", caldavDao.getTask(3)!!.calendar)
assertEquals(2, taskDao.fetch(3)!!.parent)
assertEquals(2, taskDao.fetchBlocking(3)!!.parent)
}
@Test

@ -112,7 +112,7 @@ class CaldavDaoShiftTests : InjectingTestCase() {
fun ignoreDeletedTasksWhenShiftingDown() {
val created = DateTime(2020, 5, 17, 9, 53, 17)
addTask(with(CREATED, created))
taskDao.update(taskDao.fetch(tasks[0].id).apply { this?.deletionDate = now() }!!)
taskDao.update(taskDao.fetchBlocking(tasks[0].id).apply { this?.deletionDate = now() }!!)
caldavDao.shiftDown("calendar", 0, created.toAppleEpoch())
@ -129,8 +129,8 @@ class CaldavDaoShiftTests : InjectingTestCase() {
caldavDao.shiftDown("calendar", 0, created.toAppleEpoch())
}
assertEquals(created.plusMinutes(1).millis, taskDao.fetch(tasks[0].id)!!.modificationDate)
assertEquals(created.plusMinutes(1).millis, taskDao.fetch(tasks[1].id)!!.modificationDate)
assertEquals(created.plusMinutes(1).millis, taskDao.fetchBlocking(tasks[0].id)!!.modificationDate)
assertEquals(created.plusMinutes(1).millis, taskDao.fetchBlocking(tasks[1].id)!!.modificationDate)
}
private fun checkOrder(dateTime: DateTime?, task: TaskContainer) {

@ -40,7 +40,7 @@ class DeletionDaoTests : InjectingTestCase() {
var task = newTask(with(CREATION_TIME, DateTime().minusMinutes(1)))
taskDao.createNew(task)
deletionDao.markDeleted(listOf(task.id))
task = taskDao.fetch(task.id)!!
task = taskDao.fetchBlocking(task.id)!!
assertTrue(task.modificationDate > task.creationDate)
assertTrue(task.modificationDate < DateTimeUtils.currentTimeMillis())
}
@ -50,7 +50,7 @@ class DeletionDaoTests : InjectingTestCase() {
var task = newTask(with(CREATION_TIME, DateTime().minusMinutes(1)))
taskDao.createNew(task)
deletionDao.markDeleted(listOf(task.id))
task = taskDao.fetch(task.id)!!
task = taskDao.fetchBlocking(task.id)!!
assertTrue(task.deletionDate > task.creationDate)
assertTrue(task.deletionDate < DateTimeUtils.currentTimeMillis())
}
@ -64,7 +64,7 @@ class DeletionDaoTests : InjectingTestCase() {
deletionDao.purgeDeleted()
assertNull(taskDao.fetch(task.id))
assertNull(taskDao.fetchBlocking(task.id))
}
@Test
@ -76,7 +76,7 @@ class DeletionDaoTests : InjectingTestCase() {
deletionDao.purgeDeleted()
assertNotNull(taskDao.fetch(task.id))
assertNotNull(taskDao.fetchBlocking(task.id))
}
@Test
@ -88,6 +88,6 @@ class DeletionDaoTests : InjectingTestCase() {
deletionDao.purgeDeleted()
assertNotNull(taskDao.fetch(task.id))
assertNotNull(taskDao.fetchBlocking(task.id))
}
}

@ -317,7 +317,7 @@ class MainActivity : InjectingAppCompatActivity(), TaskListFragmentCallbackHandl
openTask(task)
} else {
disposables!!.add(
Single.fromCallable { taskDao.fetch(task.id) }
Single.fromCallable { taskDao.fetchBlocking(task.id) }
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe { t: Task? -> this.openTask(t) })

@ -33,7 +33,7 @@ public class TaskEditActivity extends InjectingAppCompatActivity {
finish();
} else {
disposables.add(
Single.fromCallable(() -> taskDao.fetch(taskId))
Single.fromCallable(() -> taskDao.fetchBlocking(taskId))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(

@ -46,8 +46,12 @@ abstract class TaskDao(private val database: Database) {
@Query("SELECT * FROM tasks WHERE completed = 0 AND deleted = 0 AND (hideUntil > :now OR dueDate > :now)")
abstract fun needsRefresh(now: Long): List<Task>
fun fetchBlocking(id: Long) = runBlocking {
fetch(id)
}
@Query("SELECT * FROM tasks WHERE _id = :id LIMIT 1")
abstract fun fetch(id: Long): Task?
abstract suspend fun fetch(id: Long): Task?
fun fetch(ids: List<Long>): List<Task> = ids.chunkedMap(this::fetchInternal)
@ -226,7 +230,7 @@ SELECT EXISTS(SELECT 1 FROM tasks WHERE parent > 0 AND deleted = 0) AS hasSubtas
* success.
*/
@JvmOverloads
fun save(task: Task, original: Task? = fetch(task.id)) {
fun save(task: Task, original: Task? = fetchBlocking(task.id)) {
if (!task.insignificantChange(original)) {
task.modificationDate = DateUtilities.now()
}

@ -57,7 +57,7 @@ public class GCalHelper {
if (!isNullOrEmpty(task.getCalendarURI())) {
uri = task.getCalendarURI();
} else {
task = taskDao.fetch(task.getId());
task = taskDao.fetchBlocking(task.getId());
if (task == null) {
return null;
}

@ -12,7 +12,7 @@ class TaskCompleter @Inject internal constructor(
private val googleTaskDao: GoogleTaskDao) {
fun setComplete(taskId: Long) =
taskDao.fetch(taskId)?.let { setComplete(it, true) }
taskDao.fetchBlocking(taskId)?.let { setComplete(it, true) }
?: Timber.e("Could not find task $taskId")
fun setComplete(item: Task, completed: Boolean) {

@ -74,7 +74,7 @@ class Notifier @Inject constructor(
var ringFiveTimes = false
var ringNonstop = false
for (entry in entries.takeLast(NotificationManager.MAX_NOTIFICATIONS)) {
val task = taskDao.fetch(entry.taskId) ?: continue
val task = taskDao.fetchBlocking(entry.taskId) ?: continue
if (entry.type != ReminderService.TYPE_RANDOM) {
ringFiveTimes = ringFiveTimes or task.isNotifyModeFive
ringNonstop = ringNonstop or task.isNotifyModeNonstop

@ -27,7 +27,7 @@ class UriHandler : AppCompatActivity() {
URI_OPEN_TASK -> {
val id = intent.data?.lastPathSegment?.toLongOrNull() ?: 0
if (id > 0) {
Single.fromCallable { Optional.ofNullable(taskDao.fetch(id))}
Single.fromCallable { Optional.ofNullable(taskDao.fetchBlocking(id))}
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(this::finish)

@ -174,7 +174,7 @@ class iCalendar @Inject constructor(
taskDao.createNew(task)
caldavTask = CaldavTask(task.id, calendar.uuid, remote.uid, obj)
} else {
task = taskDao.fetch(existing.task)!!
task = taskDao.fetchBlocking(existing.task)!!
caldavTask = existing
}
CaldavConverter.apply(task, remote)

@ -239,7 +239,7 @@ class DateTimePicker : BottomSheetDialogFragment() {
val dueDate = selected?.millis ?: 0
if (dueDate != arguments?.getLong(EXTRA_TIMESTAMP)) {
if (taskId > 0) {
val task: Task = taskDao.fetch(taskId)!!
val task: Task = taskDao.fetchBlocking(taskId)!!
if (newDateTime(dueDate).isAfterNow) {
notificationManager.cancel(task.id)
}

@ -414,7 +414,7 @@ public class GoogleTaskSynchronizer {
if (googleTask == null) {
googleTask = new GoogleTask(0, "");
} else if (googleTask.getTask() > 0) {
task = taskDao.fetch(googleTask.getTask());
task = taskDao.fetchBlocking(googleTask.getTask());
}
com.google.api.client.util.DateTime updated = gtask.getUpdated();
if (updated != null) {

@ -45,7 +45,7 @@ class AfterSaveWork @WorkerInject constructor(
override fun run(): Result {
val data = inputData
val taskId = data.getLong(EXTRA_ID, -1)
val task = taskDao.fetch(taskId)
val task = taskDao.fetchBlocking(taskId)
if (task == null) {
Timber.e("Missing saved task")
return Result.failure()

@ -319,7 +319,7 @@ public class NotificationManager {
long id = notification.getTaskId();
int type = notification.getType();
long when = notification.getTimestamp();
Task task = taskDao.fetch(id);
Task task = taskDao.fetchBlocking(id);
if (task == null) {
Timber.e("Could not find %s", id);
return null;

@ -50,7 +50,7 @@ public class RepeatConfirmationReceiver extends BroadcastReceiver {
if (taskId > 0) {
long oldDueDate = intent.getLongExtra(AstridApiConstants.EXTRAS_OLD_DUE_DATE, 0);
long newDueDate = intent.getLongExtra(AstridApiConstants.EXTRAS_NEW_DUE_DATE, 0);
Task task = taskDao.fetch(taskId);
Task task = taskDao.fetchBlocking(taskId);
try {
showSnackbar(taskListFragment, task, oldDueDate, newDueDate);

@ -86,7 +86,7 @@ public class NotificationActivity extends InjectingAppCompatActivity
public void edit() {
notificationManager.cancel(taskId);
disposables.add(
Single.fromCallable(() -> taskDao.fetch(taskId))
Single.fromCallable(() -> taskDao.fetchBlocking(taskId))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(

Loading…
Cancel
Save