Load new list without calling startActivity

pull/795/head
Alex Baker 5 years ago
parent dc0eb2b2e3
commit cb89bbf6e4

@ -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));
}
}

@ -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);

@ -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 {

Loading…
Cancel
Save