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 b4d17a4b6..c4abb9bbf 100644 --- a/app/src/main/java/com/todoroo/astrid/activity/MainActivity.java +++ b/app/src/main/java/com/todoroo/astrid/activity/MainActivity.java @@ -65,7 +65,6 @@ import org.tasks.fragments.CommentBarFragment; import org.tasks.gtasks.PlayServices; import org.tasks.injection.ActivityComponent; import org.tasks.injection.InjectingAppCompatActivity; -import org.tasks.intents.TaskIntents; import org.tasks.preferences.DefaultFilterProvider; import org.tasks.preferences.Preferences; import org.tasks.receivers.RepeatConfirmationReceiver; @@ -378,17 +377,18 @@ public class MainActivity extends InjectingAppCompatActivity } @Override - public void onFilterItemClicked(FilterListItem item) { - if (item == null) { - item = defaultFilterProvider.getDefaultFilter(); - } + public void onFilterItemClicked(@Nullable FilterListItem item) { TaskEditFragment tef = getTaskEditFragment(); if (tef != null) { getTaskEditFragment().save(); } - if (item instanceof Filter) { - startActivity(TaskIntents.getTaskListIntent(this, (Filter) item)); + if (item == null || item instanceof Filter) { + disposables.add( + Single.fromCallable(() -> newTaskListFragment((Filter) item)) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(this::openTaskListFragment)); } } diff --git a/app/src/main/java/org/tasks/intents/TaskIntents.java b/app/src/main/java/org/tasks/intents/TaskIntents.java index c4d5b40b9..d060813f9 100644 --- a/app/src/main/java/org/tasks/intents/TaskIntents.java +++ b/app/src/main/java/org/tasks/intents/TaskIntents.java @@ -7,6 +7,7 @@ import androidx.core.app.TaskStackBuilder; import com.google.common.base.Strings; import com.todoroo.astrid.activity.MainActivity; import com.todoroo.astrid.api.Filter; +import org.jetbrains.annotations.Nullable; public class TaskIntents { @@ -27,7 +28,7 @@ public class TaskIntents { return taskListIntent; } - public static Intent getTaskListIntent(Context context, final Filter filter) { + public static Intent getTaskListIntent(Context context, @Nullable Filter filter) { Intent intent = new Intent(context, MainActivity.class); if (filter != null) { intent.putExtra(MainActivity.OPEN_FILTER, filter); diff --git a/app/src/main/java/org/tasks/ui/NavigationDrawerFragment.java b/app/src/main/java/org/tasks/ui/NavigationDrawerFragment.java index f4c77337b..c6eb5755e 100644 --- a/app/src/main/java/org/tasks/ui/NavigationDrawerFragment.java +++ b/app/src/main/java/org/tasks/ui/NavigationDrawerFragment.java @@ -30,6 +30,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import javax.inject.Inject; +import org.jetbrains.annotations.Nullable; import org.tasks.LocalBroadcastManager; import org.tasks.R; import org.tasks.filters.FilterProvider; @@ -262,7 +263,7 @@ public class NavigationDrawerFragment extends InjectingFragment { } public interface OnFilterItemClickedListener { - void onFilterItemClicked(FilterListItem item); + void onFilterItemClicked(@Nullable FilterListItem item); } private class RefreshReceiver extends BroadcastReceiver {