diff --git a/app/src/main/java/com/example/sprout/refactor/activity/RoomListActivity.java b/app/src/main/java/com/example/sprout/refactor/activity/RoomListActivity.java index 00c00eb..a53406d 100644 --- a/app/src/main/java/com/example/sprout/refactor/activity/RoomListActivity.java +++ b/app/src/main/java/com/example/sprout/refactor/activity/RoomListActivity.java @@ -9,53 +9,77 @@ import com.example.sprout.R; import com.example.sprout.databinding.RfActivityRoomListBinding; import com.example.sprout.refactor.adapter.RoomListAdapter; -import com.example.sprout.refactor.common.ActivityEvent; import com.example.sprout.refactor.contract.ViewContract; import com.example.sprout.refactor.viewmodel.RoomListViewModel; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.schedulers.Schedulers; + /** * ルーム一覧のActivity * * @author matsumoto_k */ -public class RoomListActivity extends AppCompatActivity implements ViewContract { +public class RoomListActivity extends AppCompatActivity { + + private RfActivityRoomListBinding binding = null; + private RoomListViewModel roomListViewModel = null; + private CompositeDisposable subscriptions = new CompositeDisposable(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - RfActivityRoomListBinding binding = DataBindingUtil.setContentView(this, R.layout.rf_activity_room_list); - RoomListViewModel roomMainViewModel = new RoomListViewModel(new RoomListAdapter(this), (ViewContract) this); - binding.setViewModel(roomMainViewModel); - getLifecycle().addObserver(roomMainViewModel); + binding = DataBindingUtil.setContentView(this, R.layout.rf_activity_room_list); + roomListViewModel = new RoomListViewModel(new RoomListAdapter(this)); + binding.setViewModel(roomListViewModel); + getLifecycle().addObserver(roomListViewModel); } @Override - public void startActivity(ActivityEvent event) { - switch (event) { - case CREATE_ROOM: - startActivity(new Intent(RoomListActivity.this, RoomCreateActivity.class)); - break; - case ROOM_MAIN: - startActivity(new Intent(RoomListActivity.this, RoomMainActivity.class)); - break; - case INPUT_KEY: - startActivity(new Intent(RoomListActivity.this, RoomInputKeyActivity.class)); - break; - } + protected void onResume() { + super.onResume(); + subscribe(); } @Override - public void finishActivity() { - + protected void onPause() { + super.onPause(); + dispose(); } - @Override - public void showShortToast(String message) { - Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); + private void subscribe() { + subscriptions.add( + roomListViewModel.getToastMessanger() + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(toastMessage -> { + switch (toastMessage.getLength()) { + case SHORT: + Toast.makeText(this, toastMessage.getMessage(), Toast.LENGTH_SHORT).show(); + break; + case LONG: + Toast.makeText(this, toastMessage.getMessage(), Toast.LENGTH_LONG).show(); + break; + } + }) + ); + // 画面遷移の購読 + subscriptions.add( + roomListViewModel.getNavigationMessenger() + .observeOn(Schedulers.computation()) + .subscribe(navigationMessage -> { + switch (navigationMessage.getType()) { + case Start: + startActivity(new Intent(RoomListActivity.this, navigationMessage.getClazz())); + break; + case Finsih: + finish(); + } + }) + ); } - @Override - public void showLongToast(String message) { - Toast.makeText(this, message, Toast.LENGTH_LONG).show(); + private void dispose() { + subscriptions.dispose(); } } diff --git a/app/src/main/java/com/example/sprout/refactor/adapter/RoomListAdapter.java b/app/src/main/java/com/example/sprout/refactor/adapter/RoomListAdapter.java index 9318aa0..a9393e8 100644 --- a/app/src/main/java/com/example/sprout/refactor/adapter/RoomListAdapter.java +++ b/app/src/main/java/com/example/sprout/refactor/adapter/RoomListAdapter.java @@ -2,7 +2,6 @@ import android.content.Context; import android.databinding.DataBindingUtil; -import android.support.v7.util.DiffUtil; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.ViewGroup; @@ -12,7 +11,6 @@ import com.example.sprout.refactor.model.entity.Room; import java.util.ArrayList; -import java.util.List; /** * ルーム一覧のアダプター @@ -50,10 +48,9 @@ } public void setDataAndRefresh(ArrayList items) { - List oldItems = this.items; - DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(new RoomDiffCallBack(oldItems, items)); + this.items.clear(); this.items = items; - diffResult.dispatchUpdatesTo(this); + notifyDataSetChanged(); } @Override diff --git a/app/src/main/java/com/example/sprout/refactor/api/RoomService.java b/app/src/main/java/com/example/sprout/refactor/api/RoomService.java index 8b07db1..60eb8f6 100644 --- a/app/src/main/java/com/example/sprout/refactor/api/RoomService.java +++ b/app/src/main/java/com/example/sprout/refactor/api/RoomService.java @@ -4,7 +4,8 @@ import com.example.sprout.refactor.model.entity.RoomResponse; import com.example.sprout.refactor.model.entity.Rooms; -import retrofit2.Call; +import io.reactivex.Observable; +import retrofit2.Response; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; @@ -21,28 +22,28 @@ public interface RoomService { @GET("rooms") - Call getRooms(); + Observable getRooms(); @FormUrlEncoded @PUT("rooms/{roomId}") - Call enterRoom(@Path("roomId") int roomId, @Field("userId") int userId); + Observable enterRoom(@Path("roomId") int roomId, @Field("userId") int userId); @FormUrlEncoded @PUT("rooms/{roomId}") - Call enterRoomWithKey(@Path("roomId") int roomId, @Field("userId") int userId, @Field("key") String key); + Observable enterRoomWithKey(@Path("roomId") int roomId, @Field("userId") int userId, @Field("key") String key); @FormUrlEncoded @POST("rooms") - Call createRoom(@Field("userId") int userId, @Field("roomName") String roomName, @Field("key") String key); + Observable createRoom(@Field("userId") int userId, @Field("roomName") String roomName, @Field("key") String key); @GET("rooms/{roomId}") - Call getRoom(@Path("roomId") int roomId); + Observable getRoom(@Path("roomId") int roomId); @FormUrlEncoded @PUT("rooms/{roomId}/{memberId}") - Call updateRoomState(@Path("roomId") int roomId, @Path("memberId") int memberId, @Field("role") int role); + Observable updateRoomState(@Path("roomId") int roomId, @Path("memberId") int memberId, @Field("role") int role); @FormUrlEncoded @HTTP(method = "DELETE", path = "rooms/{roomId}/{memberId}", hasBody = true) - Call exitRoom(@Path("roomId") int roomId, @Path("memberId") int memberId, @Field("userId") int userId); + Observable> exitRoom(@Path("roomId") int roomId, @Path("memberId") int memberId, @Field("userId") int userId); } diff --git a/app/src/main/java/com/example/sprout/refactor/model/BaseModel.java b/app/src/main/java/com/example/sprout/refactor/model/BaseModel.java index 435c1ce..508ca47 100644 --- a/app/src/main/java/com/example/sprout/refactor/model/BaseModel.java +++ b/app/src/main/java/com/example/sprout/refactor/model/BaseModel.java @@ -2,7 +2,7 @@ import io.reactivex.Observable; import io.reactivex.subjects.BehaviorSubject; -import io.reactivex.subjects.Subject; +import io.reactivex.subjects.PublishSubject; /** * Entityを管理するクラスの基底クラス @@ -11,8 +11,8 @@ * Created by matsumoto_k on 2017/12/19. */ public abstract class BaseModel { - protected final Subject entitySubject = BehaviorSubject.create().toSerialized(); - protected final Subject errorSubject = BehaviorSubject.create().toSerialized(); + protected final BehaviorSubject entitySubject = BehaviorSubject.create(); + protected final PublishSubject errorSubject = PublishSubject.create(); public abstract void create(Params params); diff --git a/app/src/main/java/com/example/sprout/refactor/model/ModelLocator.java b/app/src/main/java/com/example/sprout/refactor/model/ModelLocator.java index 157f11d..1ce7a9a 100644 --- a/app/src/main/java/com/example/sprout/refactor/model/ModelLocator.java +++ b/app/src/main/java/com/example/sprout/refactor/model/ModelLocator.java @@ -25,6 +25,8 @@ // Model一覧 private Account account = new Account(); private RegistrationModel registrationModel = new RegistrationModel(this.registrationRepository); + private RoomsModel roomsModel = new RoomsModel(this.roomRepository); + private RoomResponseModel roomResponseModel = new RoomResponseModel(this.roomRepository); private ModelLocator() { } @@ -67,4 +69,12 @@ public RegistrationModel getRegistrationModel() { return registrationModel; } + + public RoomsModel getRoomsModel() { + return roomsModel; + } + + public RoomResponseModel getRoomResponseModel() { + return roomResponseModel; + } } diff --git a/app/src/main/java/com/example/sprout/refactor/model/RoomResponseModel.java b/app/src/main/java/com/example/sprout/refactor/model/RoomResponseModel.java new file mode 100644 index 0000000..8d90b99 --- /dev/null +++ b/app/src/main/java/com/example/sprout/refactor/model/RoomResponseModel.java @@ -0,0 +1,46 @@ +package com.example.sprout.refactor.model; + +import com.example.sprout.refactor.model.entity.RoomResponse; +import com.example.sprout.refactor.repository.RoomRepository; + +import io.reactivex.Observable; +import io.reactivex.schedulers.Schedulers; +import io.reactivex.subjects.PublishSubject; + +/** + * Created by matsumoto_k on 2017/12/19. + */ +public class RoomResponseModel { + private PublishSubject roomResopnseSubject = PublishSubject.create(); + private PublishSubject errorSubject = PublishSubject.create(); + private RoomRepository roomRepository = null; + + public RoomResponseModel(RoomRepository roomRepository) { + this.roomRepository = roomRepository; + } + + public void enterRoom(int roomId, int userId) { + roomRepository.enterRoom(roomId, userId) + .subscribeOn(Schedulers.computation()) + .subscribe( + roomResponse -> { + if (roomResponse.canEnter()) { + roomResopnseSubject.onNext(roomResponse); + } else { + errorSubject.onNext(new Throwable("capacityOver")); + } + }, + error -> { + errorSubject.onNext(error); + } + ); + } + + public Observable getRoomResopnseObservable() { + return roomResopnseSubject.hide(); + } + + public Observable getErrorObservable() { + return errorSubject.hide(); + } +} diff --git a/app/src/main/java/com/example/sprout/refactor/model/RoomsModel.java b/app/src/main/java/com/example/sprout/refactor/model/RoomsModel.java new file mode 100644 index 0000000..21155a2 --- /dev/null +++ b/app/src/main/java/com/example/sprout/refactor/model/RoomsModel.java @@ -0,0 +1,46 @@ +package com.example.sprout.refactor.model; + +import com.example.sprout.refactor.model.entity.Rooms; +import com.example.sprout.refactor.repository.RoomRepository; + +import io.reactivex.Observable; +import io.reactivex.schedulers.Schedulers; +import io.reactivex.subjects.BehaviorSubject; +import io.reactivex.subjects.PublishSubject; + +/** + * Created by matsumoto_k on 2017/12/19. + */ + +public class RoomsModel { + private BehaviorSubject roomsSubject = BehaviorSubject.create(); + private PublishSubject errorSubject = PublishSubject.create(); + private RoomRepository roomRepository = null; + + public RoomsModel(RoomRepository roomRepository) { + this.roomRepository = roomRepository; + } + + public void get() { + roomRepository.getRooms() + .subscribeOn(Schedulers.computation()) + .subscribe( + rooms -> { + roomsSubject.onNext(rooms); + }, + error -> { + if (roomsSubject.getValue() != null) { + roomsSubject.onNext(roomsSubject.getValue()); + } + errorSubject.onNext(error); + }); + } + + public Observable getRoomsObservable() { + return roomsSubject.hide(); + } + + public Observable getErrorSubject() { + return errorSubject.hide(); + } +} diff --git a/app/src/main/java/com/example/sprout/refactor/repository/RoomRepository.java b/app/src/main/java/com/example/sprout/refactor/repository/RoomRepository.java index 2398603..aafd064 100644 --- a/app/src/main/java/com/example/sprout/refactor/repository/RoomRepository.java +++ b/app/src/main/java/com/example/sprout/refactor/repository/RoomRepository.java @@ -1,13 +1,12 @@ package com.example.sprout.refactor.repository; import com.example.sprout.refactor.api.RoomService; -import com.example.sprout.refactor.notification.Observable; import com.example.sprout.refactor.model.entity.Room; import com.example.sprout.refactor.model.entity.RoomResponse; import com.example.sprout.refactor.model.entity.Rooms; +import com.jakewharton.retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; -import retrofit2.Call; -import retrofit2.Callback; +import io.reactivex.Observable; import retrofit2.Response; import retrofit2.Retrofit; import retrofit2.converter.gson.GsonConverterFactory; @@ -20,10 +19,10 @@ public class RoomRepository extends Repository { private RoomService roomService = null; - private Observable roomObservable = new Observable<>(); - private Observable roomsObservable = new Observable<>(); - private Observable roomResponseObservable = new Observable<>(); - private Observable voidObservable = new Observable<>(); + private com.example.sprout.refactor.notification.Observable roomObservable = new com.example.sprout.refactor.notification.Observable<>(); + private com.example.sprout.refactor.notification.Observable roomsObservable = new com.example.sprout.refactor.notification.Observable<>(); + private com.example.sprout.refactor.notification.Observable roomResponseObservable = new com.example.sprout.refactor.notification.Observable<>(); + private com.example.sprout.refactor.notification.Observable voidObservable = new com.example.sprout.refactor.notification.Observable<>(); public RoomRepository() { this.roomService = new Retrofit @@ -31,158 +30,52 @@ .baseUrl("http://nitta-lab-www2.is.konan-u.ac.jp:8080/SproutServer/") .client(okHttpClient) .addConverterFactory(GsonConverterFactory.create()) + .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .build() .create(RoomService.class); } - public void getRooms() { - Call task = roomService.getRooms(); - task.enqueue(new Callback() { - @Override - public void onResponse(Call call, Response response) { - if (response.isSuccessful()) { - roomsObservable.notifyObservers(response.body()); - } else { - roomsObservable.notifyError(new Throwable("error")); - } - } - - @Override - public void onFailure(Call call, Throwable t) { - roomsObservable.notifyError(t); - } - }); + public Observable getRooms() { + return roomService.getRooms(); } - public void enterRoom(int roomId, int userId) { - Call task = roomService.enterRoom(roomId, userId); - task.enqueue(new Callback() { - @Override - public void onResponse(Call call, Response response) { - if (response.isSuccessful()) { - roomResponseObservable.notifyObservers(response.body()); - } else { - roomResponseObservable.notifyError(new Throwable("error")); - } - } - - @Override - public void onFailure(Call call, Throwable t) { - roomResponseObservable.notifyError(t); - } - }); + public Observable enterRoom(int roomId, int userId) { + return roomService.enterRoom(roomId, userId); } - public void createRoom(int userId, String roomName, String key) { - Call task = roomService.createRoom(userId, roomName, key); - task.enqueue(new Callback() { - @Override - public void onResponse(Call call, Response response) { - if (response.isSuccessful()) { - roomResponseObservable.notifyObservers(response.body()); - } else { - roomResponseObservable.notifyError(new Throwable("error")); - } - } - - @Override - public void onFailure(Call call, Throwable t) { - roomResponseObservable.notifyError(t); - } - }); + public Observable createRoom(int userId, String roomName, String key) { + return roomService.createRoom(userId, roomName, key); } - public void getRoom(int roomId) { - Call task = roomService.getRoom(roomId); - task.enqueue(new Callback() { - @Override - public void onResponse(Call call, Response response) { - if (response.isSuccessful()) { - roomObservable.notifyObservers(response.body()); - } else { - roomObservable.notifyError(new Throwable("error")); - } - } - - @Override - public void onFailure(Call call, Throwable t) { - roomObservable.notifyError(t); - } - }); + public Observable getRoom(int roomId) { + return roomService.getRoom(roomId); } - public void updateRoomState(int roomId, int memberId, int role) { - Call task = roomService.updateRoomState(roomId, memberId, role); - task.enqueue(new Callback() { - @Override - public void onResponse(Call call, Response response) { - if (response.isSuccessful()) { - roomResponseObservable.notifyObservers(response.body()); - } else { - roomResponseObservable.notifyError(new Throwable("error")); - } - } - - @Override - public void onFailure(Call call, Throwable t) { - roomResponseObservable.notifyError(t); - } - }); + public Observable updateRoomState(int roomId, int memberId, int role) { + return roomService.updateRoomState(roomId, memberId, role); } - public void exitRoom(int roomId, int memberId, int userId) { - Call task = roomService.exitRoom(roomId, memberId, userId); - task.enqueue(new Callback() { - @Override - public void onResponse(Call call, Response response) { - if (response.isSuccessful()) { - voidObservable.notifyObservers(response.body()); - } else { - voidObservable.notifyError(new Throwable("error")); - } - } - - @Override - public void onFailure(Call call, Throwable t) { - voidObservable.notifyError(t); - } - }); + public Observable> exitRoom(int roomId, int memberId, int userId) { + return roomService.exitRoom(roomId, memberId, userId); } - public void enterRoomWithKey(int roomId, int userId, String key) { - Call task = roomService.enterRoomWithKey(roomId, userId, key); - task.enqueue(new Callback() { - @Override - public void onResponse(Call call, Response response) { - if (response.isSuccessful()) { - roomResponseObservable.notifyObservers(response.body()); - } else { - roomResponseObservable.notifyError(new Throwable("error")); - } - } - - @Override - public void onFailure(Call call, Throwable t) { - roomResponseObservable.notifyError(t); - } - }); + public Observable enterRoomWithKey(int roomId, int userId, String key) { + return roomService.enterRoomWithKey(roomId, userId, key); } - public Observable getRoomObservable() { + public com.example.sprout.refactor.notification.Observable getRoomObservable() { return roomObservable; } - public Observable getRoomsObservable() { + public com.example.sprout.refactor.notification.Observable getRoomsObservable() { return roomsObservable; } - public Observable getRoomResponseObservable() { + public com.example.sprout.refactor.notification.Observable getRoomResponseObservable() { return roomResponseObservable; } - public Observable getVoidObservable() { + public com.example.sprout.refactor.notification.Observable getVoidObservable() { return voidObservable; } - - } diff --git a/app/src/main/java/com/example/sprout/refactor/viewmodel/RoomListViewModel.java b/app/src/main/java/com/example/sprout/refactor/viewmodel/RoomListViewModel.java index 6788372..0416a38 100644 --- a/app/src/main/java/com/example/sprout/refactor/viewmodel/RoomListViewModel.java +++ b/app/src/main/java/com/example/sprout/refactor/viewmodel/RoomListViewModel.java @@ -6,20 +6,23 @@ import android.support.v7.widget.RecyclerView; import android.widget.LinearLayout; +import com.example.sprout.refactor.activity.RoomCreateActivity; +import com.example.sprout.refactor.activity.RoomInputKeyActivity; +import com.example.sprout.refactor.activity.RoomMainActivity; import com.example.sprout.refactor.adapter.RoomListAdapter; -import com.example.sprout.refactor.common.ActivityEvent; -import com.example.sprout.refactor.contract.ViewContract; +import com.example.sprout.refactor.messengers.NavigationMessage; import com.example.sprout.refactor.model.ModelLocator; +import com.example.sprout.refactor.model.RoomResponseModel; +import com.example.sprout.refactor.model.RoomsModel; import com.example.sprout.refactor.model.entity.Room; -import com.example.sprout.refactor.model.entity.RoomResponse; -import com.example.sprout.refactor.model.entity.Rooms; -import com.example.sprout.refactor.notification.Observer; -import com.example.sprout.refactor.repository.RoomRepository; import com.example.sprout.refactor.util.PreferenceUtil; import java.util.ArrayList; import java.util.Collections; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.disposables.CompositeDisposable; + /** * ルーム一覧のViewModel * @@ -27,84 +30,71 @@ */ public class RoomListViewModel extends BaseViewModel { - private RoomRepository roomRepository = null; + private RoomsModel roomsModel = ModelLocator.get().getRoomsModel(); + private RoomResponseModel roomResponseModel = ModelLocator.get().getRoomResponseModel(); private RoomListAdapter adapter = null; - private ViewContract viewContract = null; private RoomListAdapter.OnItemClickedListener listener = null; - private Observer roomListObserver = null; - private Observer enterRoomObserver = null; + private CompositeDisposable subscriptions = new CompositeDisposable(); - public RoomListViewModel(RoomListAdapter adapter, ViewContract viewContract) { - this.roomRepository = ModelLocator.getModel(ModelLocator.Tag.ROOM_REPOSITORY, RoomRepository.class); - this.viewContract = viewContract; + public RoomListViewModel(RoomListAdapter adapter) { this.listener = room -> { if (room.hasKey()) { PreferenceUtil.getInstance().saveInt(PreferenceUtil.Key.ROOM_ID, room.getRoomId()); - viewContract.startActivity(ActivityEvent.INPUT_KEY); + navigationMessenger.navigateTo(new NavigationMessage(NavigationMessage.Type.Start, RoomInputKeyActivity.class)); } else { - roomRepository.enterRoom(room.getRoomId(), PreferenceUtil.getInstance().getInt(PreferenceUtil.Key.USER_ID)); + roomResponseModel.enterRoom(room.getRoomId(), PreferenceUtil.getInstance().getInt(PreferenceUtil.Key.USER_ID)); } }; adapter.setListener(listener); this.adapter = adapter; - - roomListObserver = new Observer() { - @Override - public void notify(Rooms rooms) { - ModelLocator.setModel(ModelLocator.Tag.Rooms, rooms); - ArrayList items = new ArrayList<>(rooms.getRoomList().values()); - Collections.reverse(items); - RoomListViewModel.this.adapter.setDataAndRefresh(items); - } - - @Override - public void error(Throwable throwable) { - throwable.printStackTrace(); - } - }; - - enterRoomObserver = new Observer() { - @Override - public void notify(RoomResponse roomResponse) { - if (roomResponse.canEnter()) { - ModelLocator.setModel(ModelLocator.Tag.RoomResponse, roomResponse); - PreferenceUtil.getInstance().saveInt(PreferenceUtil.Key.ROOM_ID, roomResponse.getRoom().getRoomId()); - PreferenceUtil.getInstance().saveInt(PreferenceUtil.Key.MEMBER_ID, roomResponse.getMemberId()); - viewContract.startActivity(ActivityEvent.ROOM_MAIN); - } else { - viewContract.showShortToast("入室に失敗しました"); - } - } - - @Override - public void error(Throwable throwable) { - viewContract.showShortToast("入室に失敗しました"); - } - }; } @Override public void onResume() { super.onResume(); - roomRepository.getRoomsObservable().addObserver(roomListObserver); - roomRepository.getRoomResponseObservable().addObserver(enterRoomObserver); - roomRepository.getRooms(); + subscriptions.add( + roomsModel.getRoomsObservable() + .observeOn(AndroidSchedulers.mainThread()) + .subscribe( + rooms -> { + ArrayList items = new ArrayList<>(rooms.getRoomList().values()); + Collections.reverse(items); + adapter.setDataAndRefresh(items); + } + ) + ); + subscriptions.add( + roomResponseModel.getRoomResopnseObservable() + .subscribe( + roomResponse -> { + PreferenceUtil.getInstance().saveInt(PreferenceUtil.Key.ROOM_ID, roomResponse.getRoom().getRoomId()); + PreferenceUtil.getInstance().saveInt(PreferenceUtil.Key.MEMBER_ID, roomResponse.getMemberId()); + navigationMessenger.navigateTo(new NavigationMessage(NavigationMessage.Type.Start, RoomMainActivity.class)); + } + ) + ); + roomsModel.get(); } @Override public void onPause() { super.onPause(); - roomRepository.getRoomsObservable().removeObserver(roomListObserver); - roomRepository.getRoomResponseObservable().removeObserver(enterRoomObserver); + subscriptions.dispose(); } + /** + * 更新クリック + */ public void onClickRefresh() { - roomRepository.getRooms(); + roomsModel.get(); } + /** + * ルーム作成クリック + */ public void onClickCreateRoom() { - viewContract.startActivity(ActivityEvent.CREATE_ROOM); + navigationMessenger.navigateTo(new NavigationMessage(NavigationMessage.Type.Start, RoomCreateActivity.class)); } @BindingAdapter("setRoomListAdapter")