Add observe method to view models

pull/795/head
Alex Baker 7 years ago
parent 507a4a1486
commit 7abea7ff9e

@ -144,20 +144,9 @@ public class GoogleTaskListSettingsActivity extends ThemedInjectingAppCompatActi
|| deleteListViewModel.inProgress()) { || deleteListViewModel.inProgress()) {
showProgressIndicator(); showProgressIndicator();
} }
createListViewModel.getData().observe(this, this::onListCreated); createListViewModel.observe(this, this::onListCreated, this::requestFailed);
renameListViewModel.getData().observe(this, this::onListRenamed); renameListViewModel.observe(this, this::onListRenamed, this::requestFailed);
deleteListViewModel deleteListViewModel.observe(this, this::onListDeleted, this::requestFailed);
.getData()
.observe(
this,
deleted -> {
if (deleted) {
onListDeleted();
}
});
createListViewModel.getError().observe(this, this::requestFailed);
renameListViewModel.getError().observe(this, this::requestFailed);
deleteListViewModel.getError().observe(this, this::requestFailed);
} }
private void showProgressIndicator() { private void showProgressIndicator() {
@ -256,7 +245,8 @@ public class GoogleTaskListSettingsActivity extends ThemedInjectingAppCompatActi
dialogBuilder dialogBuilder
.newMessageDialog(R.string.delete_tag_confirmation, gtasksList.getTitle()) .newMessageDialog(R.string.delete_tag_confirmation, gtasksList.getTitle())
.setPositiveButton( .setPositiveButton(
R.string.delete, (dialog, which) -> { R.string.delete,
(dialog, which) -> {
showProgressIndicator(); showProgressIndicator();
deleteListViewModel.deleteList(context, gtasksList); deleteListViewModel.deleteList(context, gtasksList);
}) })
@ -320,12 +310,14 @@ public class GoogleTaskListSettingsActivity extends ThemedInjectingAppCompatActi
finish(); finish();
} }
private void onListDeleted() { private void onListDeleted(boolean deleted) {
if (deleted) {
tracker.reportEvent(Tracking.Events.GTASK_DELETE_LIST); tracker.reportEvent(Tracking.Events.GTASK_DELETE_LIST);
taskDeleter.delete(gtasksList); taskDeleter.delete(gtasksList);
setResult(RESULT_OK, new Intent(TaskListFragment.ACTION_DELETED)); setResult(RESULT_OK, new Intent(TaskListFragment.ACTION_DELETED));
finish(); finish();
} }
}
private void onListRenamed(TaskList taskList) { private void onListRenamed(TaskList taskList) {
tracker.reportEvent(Tracking.Events.GTASK_RENAME_LIST); tracker.reportEvent(Tracking.Events.GTASK_RENAME_LIST);

@ -150,10 +150,8 @@ public class CaldavAccountSettingsActivity extends ThemedInjectingAppCompatActiv
imm.showSoftInput(name, InputMethodManager.SHOW_IMPLICIT); imm.showSoftInput(name, InputMethodManager.SHOW_IMPLICIT);
} }
addCaldavAccountViewModel.getData().observe(this, this::addAccount); addCaldavAccountViewModel.observe(this, this::addAccount, this::requestFailed);
updateCaldavAccountViewModel.getData().observe(this, this::updateAccount); updateCaldavAccountViewModel.observe(this, this::updateAccount, this::requestFailed);
addCaldavAccountViewModel.getError().observe(this, this::requestFailed);
updateCaldavAccountViewModel.getError().observe(this, this::requestFailed);
} }
private void showProgressIndicator() { private void showProgressIndicator() {

@ -159,10 +159,8 @@ public class CaldavCalendarSettingsActivity extends ThemedInjectingAppCompatActi
imm.showSoftInput(name, InputMethodManager.SHOW_IMPLICIT); imm.showSoftInput(name, InputMethodManager.SHOW_IMPLICIT);
} }
createCalendarViewModel.getData().observe(this, this::createSuccessful); createCalendarViewModel.observe(this, this::createSuccessful, this::requestFailed);
deleteCalendarViewModel.getData().observe(this, this::onDeleted); deleteCalendarViewModel.observe(this, this::onDeleted, this::requestFailed);
createCalendarViewModel.getError().observe(this, this::requestFailed);
deleteCalendarViewModel.getError().observe(this, this::requestFailed);
} }
@Override @Override

@ -2,8 +2,9 @@ package org.tasks.ui;
import static com.todoroo.andlib.utility.AndroidUtilities.assertMainThread; import static com.todoroo.andlib.utility.AndroidUtilities.assertMainThread;
import androidx.lifecycle.LiveData; import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModel; import androidx.lifecycle.ViewModel;
import io.reactivex.Completable; import io.reactivex.Completable;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
@ -17,12 +18,12 @@ public class ActionViewModel extends ViewModel {
private final CompositeDisposable disposables = new CompositeDisposable(); private final CompositeDisposable disposables = new CompositeDisposable();
private boolean inProgress; private boolean inProgress;
public LiveData<Boolean> getData() { public void observe(
return completed; LifecycleOwner lifecycleOwner,
} Observer<Boolean> completeObserver,
Observer<Throwable> errorObserver) {
public LiveData<Throwable> getError() { completed.observe(lifecycleOwner, completeObserver);
return error; error.observe(lifecycleOwner, errorObserver);
} }
public boolean inProgress() { public boolean inProgress() {

@ -2,8 +2,9 @@ package org.tasks.ui;
import static com.todoroo.andlib.utility.AndroidUtilities.assertMainThread; import static com.todoroo.andlib.utility.AndroidUtilities.assertMainThread;
import androidx.lifecycle.LiveData; import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModel; import androidx.lifecycle.ViewModel;
import io.reactivex.Single; import io.reactivex.Single;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
@ -17,12 +18,10 @@ public abstract class CompletableViewModel<T> extends ViewModel {
private final CompositeDisposable disposables = new CompositeDisposable(); private final CompositeDisposable disposables = new CompositeDisposable();
private boolean inProgress; private boolean inProgress;
public LiveData<T> getData() { public void observe(
return data; LifecycleOwner lifecycleOwner, Observer<T> dataObserver, Observer<Throwable> errorObserver) {
} data.observe(lifecycleOwner, dataObserver);
error.observe(lifecycleOwner, errorObserver);
public LiveData<Throwable> getError() {
return error;
} }
public boolean inProgress() { public boolean inProgress() {

Loading…
Cancel
Save