diff --git a/app/src/main/java/com/example/sprout/refactor/viewmodel/BaseViewModel.java b/app/src/main/java/com/example/sprout/refactor/viewmodel/BaseViewModel.java index c2b107c..b2c0c75 100644 --- a/app/src/main/java/com/example/sprout/refactor/viewmodel/BaseViewModel.java +++ b/app/src/main/java/com/example/sprout/refactor/viewmodel/BaseViewModel.java @@ -4,6 +4,13 @@ import android.arch.lifecycle.LifecycleObserver; import android.arch.lifecycle.OnLifecycleEvent; +import com.example.sprout.refactor.messengers.NavigationMessage; +import com.example.sprout.refactor.messengers.NavigationMessenger; +import com.example.sprout.refactor.messengers.ToastMessage; +import com.example.sprout.refactor.messengers.ToastMessenger; + +import io.reactivex.Observable; + /** * Base ViewModel * @@ -11,6 +18,9 @@ */ public abstract class BaseViewModel implements LifecycleObserver { + protected ToastMessenger toastMessanger = new ToastMessenger(); + protected NavigationMessenger navigationMessenger = new NavigationMessenger(); + @OnLifecycleEvent(Lifecycle.Event.ON_CREATE) public void onCreate() { } @@ -34,4 +44,13 @@ @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY) public void onDestroy() { } + + + public Observable getToastMessanger() { + return toastMessanger.getObservable(); + } + + public Observable getNavigationMessenger() { + return navigationMessenger.getObservable(); + } } diff --git a/app/src/main/java/com/example/sprout/refactor/viewmodel/RegistrationViewModel.java b/app/src/main/java/com/example/sprout/refactor/viewmodel/RegistrationViewModel.java index 2d94e8f..9520708 100644 --- a/app/src/main/java/com/example/sprout/refactor/viewmodel/RegistrationViewModel.java +++ b/app/src/main/java/com/example/sprout/refactor/viewmodel/RegistrationViewModel.java @@ -6,14 +6,11 @@ import com.example.sprout.Sprout; import com.example.sprout.refactor.activity.RoomListActivity; import com.example.sprout.refactor.messengers.NavigationMessage; -import com.example.sprout.refactor.messengers.NavigationMessenger; import com.example.sprout.refactor.messengers.ToastMessage; -import com.example.sprout.refactor.messengers.ToastMessenger; import com.example.sprout.refactor.model.ModelLocator; import com.example.sprout.refactor.model.RegistrationModel; import com.example.sprout.refactor.util.PreferenceUtil; -import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.CompositeDisposable; @@ -26,22 +23,30 @@ private ObservableField editUserName = new ObservableField<>(""); private RegistrationModel registrationModel = ModelLocator.get().getRegistrationModel(); - private ToastMessenger toastMessanger = new ToastMessenger(); - private NavigationMessenger navigationMessenger = new NavigationMessenger(); private PreferenceUtil preferenceUtil = PreferenceUtil.getInstance(); private CompositeDisposable subscriptions = new CompositeDisposable(); public RegistrationViewModel() { - // 既にアカウント登録されていたらされていたらルーム一覧に画面遷移する - if (preferenceUtil.getBoolean(PreferenceUtil.Key.REGISTERED, false)) { - navigationMessenger.navigateTo(new NavigationMessage(NavigationMessage.Type.Start, RoomListActivity.class)); - navigationMessenger.navigateTo(new NavigationMessage(NavigationMessage.Type.Finsih)); - } } @Override public void onResume() { super.onResume(); + // 既にアカウント登録されていたらされていたらルーム一覧に画面遷移する + if (preferenceUtil.getBoolean(PreferenceUtil.Key.REGISTERED, false)) { + navigationMessenger.navigateTo(new NavigationMessage(NavigationMessage.Type.Start, RoomListActivity.class)); + navigationMessenger.navigateTo(new NavigationMessage(NavigationMessage.Type.Finsih)); + } + subscribe(); + } + + @Override + public void onPause() { + super.onPause(); + dispose(); + } + + private void subscribe() { subscriptions.add( registrationModel.getAccountObservable() .observeOn(AndroidSchedulers.mainThread()) @@ -63,9 +68,7 @@ ); } - @Override - public void onPause() { - super.onPause(); + private void dispose() { subscriptions.dispose(); } @@ -86,12 +89,4 @@ public ObservableField getEditUserName() { return editUserName; } - - public Observable getToastMessanger() { - return toastMessanger.getObservable(); - } - - public Observable getNavigationMessenger() { - return navigationMessenger.getObservable(); - } }