Update task list fragment loading

pull/795/head
Alex Baker 7 years ago
parent 8d2fa406c5
commit 55f6a75d8c

@ -48,6 +48,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.CompositeDisposable; import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
import javax.inject.Inject; import javax.inject.Inject;
import org.jetbrains.annotations.Nullable;
import org.tasks.LocalBroadcastManager; import org.tasks.LocalBroadcastManager;
import org.tasks.R; import org.tasks.R;
import org.tasks.activities.TagSettingsActivity; import org.tasks.activities.TagSettingsActivity;
@ -137,10 +138,6 @@ public class MainActivity extends InjectingAppCompatActivity
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
filter = savedInstanceState.getParcelable(EXTRA_FILTER);
}
TaskListViewModel viewModel = ViewModelProviders.of(this).get(TaskListViewModel.class); TaskListViewModel viewModel = ViewModelProviders.of(this).get(TaskListViewModel.class);
getComponent().inject(viewModel); getComponent().inject(viewModel);
@ -151,6 +148,11 @@ public class MainActivity extends InjectingAppCompatActivity
ButterKnife.bind(this); ButterKnife.bind(this);
if (savedInstanceState != null) {
filter = savedInstanceState.getParcelable(EXTRA_FILTER);
applyTheme();
}
navigationDrawer = getNavigationDrawerFragment(); navigationDrawer = getNavigationDrawerFragment();
navigationDrawer.setUp(drawerLayout); navigationDrawer.setUp(drawerLayout);
@ -181,27 +183,19 @@ public class MainActivity extends InjectingAppCompatActivity
if (intent.hasExtra(OPEN_FILTER)) { if (intent.hasExtra(OPEN_FILTER)) {
filter = intent.getParcelableExtra(OPEN_FILTER); filter = intent.getParcelableExtra(OPEN_FILTER);
intent.removeExtra(OPEN_FILTER); intent.removeExtra(OPEN_FILTER);
return Single.fromCallable(() -> newTaskListFragment(filter)) return Single.fromCallable(() -> newTaskListFragment(filter));
.observeOn(AndroidSchedulers.mainThread())
.doOnSuccess(this::openTaskListFragment);
} else if (intent.hasExtra(LOAD_FILTER)) { } else if (intent.hasExtra(LOAD_FILTER)) {
String filter = intent.getStringExtra(LOAD_FILTER); String filter = intent.getStringExtra(LOAD_FILTER);
intent.removeExtra(LOAD_FILTER); intent.removeExtra(LOAD_FILTER);
return Single.fromCallable( return Single.fromCallable(
() -> newTaskListFragment(defaultFilterProvider.getFilterFromPreference(filter))) () -> newTaskListFragment(defaultFilterProvider.getFilterFromPreference(filter)));
.observeOn(AndroidSchedulers.mainThread())
.doOnSuccess(this::openTaskListFragment);
} }
TaskListFragment taskListFragment = getTaskListFragment(); TaskListFragment taskListFragment = getTaskListFragment();
if (taskListFragment == null || taskListFragment.filter != filter) { if (taskListFragment == null || taskListFragment.filter != filter) {
return Single.fromCallable(() -> newTaskListFragment(filter)) return Single.fromCallable(() -> newTaskListFragment(filter));
.observeOn(AndroidSchedulers.mainThread())
.doOnSuccess(this::openTaskListFragment);
} else { } else {
return Single.just(taskListFragment) return Single.just(taskListFragment);
.observeOn(AndroidSchedulers.mainThread())
.doOnSuccess(this::openTaskListFragment);
} }
} }
@ -224,7 +218,11 @@ public class MainActivity extends InjectingAppCompatActivity
finishActionMode(); finishActionMode();
navigationDrawer.closeDrawer(); navigationDrawer.closeDrawer();
Single<TaskListFragment> single = taskListFragmentSingle(intent).subscribeOn(Schedulers.io()); Single<TaskListFragment> single =
taskListFragmentSingle(intent)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doAfterSuccess(this::openTaskListFragment);
if (intent.hasExtra(OPEN_TASK)) { if (intent.hasExtra(OPEN_TASK)) {
long taskId = intent.getLongExtra(OPEN_TASK, 0); long taskId = intent.getLongExtra(OPEN_TASK, 0);
@ -293,6 +291,7 @@ public class MainActivity extends InjectingAppCompatActivity
.beginTransaction() .beginTransaction()
.replace(R.id.master, taskListFragment, FRAG_TAG_TASK_LIST) .replace(R.id.master, taskListFragment, FRAG_TAG_TASK_LIST)
.commit(); .commit();
fragmentManager.executePendingTransactions();
} }
} }
@ -387,7 +386,7 @@ public class MainActivity extends InjectingAppCompatActivity
} }
} }
private TaskListFragment newTaskListFragment(Filter filter) { private TaskListFragment newTaskListFragment(@Nullable Filter filter) {
assertNotMainThread(); assertNotMainThread();
if (filter == null) { if (filter == null) {

@ -89,7 +89,7 @@ public class DefaultFilterProvider {
return getFilterFromPreference(R.string.p_default_list); return getFilterFromPreference(R.string.p_default_list);
} }
public void setDefaultFilter(Filter filter) { void setDefaultFilter(Filter filter) {
tracker.reportEvent(Tracking.Events.SET_DEFAULT_LIST); tracker.reportEvent(Tracking.Events.SET_DEFAULT_LIST);
setFilterPreference(filter, R.string.p_default_list); setFilterPreference(filter, R.string.p_default_list);
} }

Loading…
Cancel
Save