diff --git a/app/src/main/java/com/todoroo/astrid/activity/MainActivity.java b/app/src/main/java/com/todoroo/astrid/activity/MainActivity.java index 86cf08f3f..8d9837f01 100644 --- a/app/src/main/java/com/todoroo/astrid/activity/MainActivity.java +++ b/app/src/main/java/com/todoroo/astrid/activity/MainActivity.java @@ -366,15 +366,23 @@ public class MainActivity extends InjectingAppCompatActivity clearUi(); - getSupportFragmentManager() - .beginTransaction() - .replace(R.id.detail, newTaskEditFragment(task), TaskEditFragment.TAG_TASKEDIT_FRAGMENT) - .addToBackStack(TaskEditFragment.TAG_TASKEDIT_FRAGMENT) - .commitAllowingStateLoss(); - - getSupportFragmentManager().executePendingTransactions(); - - showDetailFragment(); + disposables.add( + Single.fromCallable(() -> task.isNew() ? task : taskDao.fetch(task.getId())) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe( + t -> { + getSupportFragmentManager() + .beginTransaction() + .replace( + R.id.detail, + newTaskEditFragment(t), + TaskEditFragment.TAG_TASKEDIT_FRAGMENT) + .addToBackStack(TaskEditFragment.TAG_TASKEDIT_FRAGMENT) + .commit(); + + showDetailFragment(); + })); } @Override