Perform search query on main thread

pull/820/head
Alex Baker 7 years ago
parent 752f0a6661
commit 23f4741425

@ -322,6 +322,7 @@ public final class TaskListFragment extends InjectingFragment
searchDisposable = searchDisposable =
searchSubject searchSubject
.debounce(SEARCH_DEBOUNCE_TIMEOUT, TimeUnit.MILLISECONDS) .debounce(SEARCH_DEBOUNCE_TIMEOUT, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(q -> searchByQuery(q)); .subscribe(q -> searchByQuery(q));
searchByQuery(""); searchByQuery("");
for (int i = 0; i < menu.size(); i++) { for (int i = 0; i < menu.size(); i++) {

@ -1,6 +1,7 @@
package org.tasks.ui; package org.tasks.ui;
import static com.todoroo.andlib.sql.Field.field; import static com.todoroo.andlib.sql.Field.field;
import static com.todoroo.andlib.utility.AndroidUtilities.assertMainThread;
import static com.todoroo.astrid.activity.TaskListFragment.CALDAV_METADATA_JOIN; import static com.todoroo.astrid.activity.TaskListFragment.CALDAV_METADATA_JOIN;
import static com.todoroo.astrid.activity.TaskListFragment.GTASK_METADATA_JOIN; import static com.todoroo.astrid.activity.TaskListFragment.GTASK_METADATA_JOIN;
import static com.todoroo.astrid.activity.TaskListFragment.TAGS_METADATA_JOIN; import static com.todoroo.astrid.activity.TaskListFragment.TAGS_METADATA_JOIN;
@ -141,10 +142,17 @@ public class TaskListViewModel extends ViewModel implements Observer<PagedList<T
invalidate(); invalidate();
} }
public void invalidate() { private void removeObserver() {
if (internal != null) { if (internal != null) {
internal.removeObserver(this); internal.removeObserver(this);
} }
}
public void invalidate() {
assertMainThread();
removeObserver();
SimpleSQLiteQuery query = new SimpleSQLiteQuery(getQuery(filter)); SimpleSQLiteQuery query = new SimpleSQLiteQuery(getQuery(filter));
Timber.v(query.getSql()); Timber.v(query.getSql());
if (manualSort) { if (manualSort) {
@ -173,9 +181,7 @@ public class TaskListViewModel extends ViewModel implements Observer<PagedList<T
protected void onCleared() { protected void onCleared() {
disposable.dispose(); disposable.dispose();
if (internal != null) { removeObserver();
internal.removeObserver(this);
}
} }
public List<TaskContainer> getValue() { public List<TaskContainer> getValue() {

Loading…
Cancel
Save