From 2820fd22d64f2a4afb490c32952326b68ae4ec86 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Tue, 5 Mar 2019 12:06:46 -0600 Subject: [PATCH] Complete tasks on background thread --- .../tasks/receivers/CompleteTaskReceiver.java | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/tasks/receivers/CompleteTaskReceiver.java b/app/src/main/java/org/tasks/receivers/CompleteTaskReceiver.java index e0480f538..608f0c975 100644 --- a/app/src/main/java/org/tasks/receivers/CompleteTaskReceiver.java +++ b/app/src/main/java/org/tasks/receivers/CompleteTaskReceiver.java @@ -4,6 +4,8 @@ import android.content.Context; import android.content.Intent; import com.todoroo.astrid.dao.TaskDao; import com.todoroo.astrid.data.Task; +import io.reactivex.Completable; +import io.reactivex.schedulers.Schedulers; import javax.inject.Inject; import org.tasks.injection.BroadcastComponent; import org.tasks.injection.InjectingBroadcastReceiver; @@ -23,12 +25,17 @@ public class CompleteTaskReceiver extends InjectingBroadcastReceiver { long taskId = intent.getLongExtra(TASK_ID, 0); boolean flipState = intent.getBooleanExtra(TOGGLE_STATE, false); Timber.i("Completing %s", taskId); - Task task = taskDao.fetch(taskId); - if (task != null) { - taskDao.setComplete(task, !flipState || !task.isCompleted()); - } else { - Timber.e("Could not find task with id %s", taskId); - } + Completable.fromAction( + () -> { + Task task = taskDao.fetch(taskId); + if (task != null) { + taskDao.setComplete(task, !flipState || !task.isCompleted()); + } else { + Timber.e("Could not find task with id %s", taskId); + } + }) + .subscribeOn(Schedulers.io()) + .subscribe(); } @Override