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 c997275..dda7303 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 @@ -40,7 +40,6 @@ } }; - registrationRepository.getAccountObservable().addObserver(observer); } @Override @@ -53,8 +52,14 @@ } @Override - public void onDestroy() { - super.onDestroy(); + public void onResume() { + super.onResume(); + registrationRepository.getAccountObservable().addObserver(observer); + } + + @Override + public void onPause() { + super.onPause(); registrationRepository.getAccountObservable().removeObserver(observer); } diff --git a/app/src/main/java/com/example/sprout/refactor/viewmodel/RoomCreateViewModel.java b/app/src/main/java/com/example/sprout/refactor/viewmodel/RoomCreateViewModel.java index 8c08de5..e697a7c 100644 --- a/app/src/main/java/com/example/sprout/refactor/viewmodel/RoomCreateViewModel.java +++ b/app/src/main/java/com/example/sprout/refactor/viewmodel/RoomCreateViewModel.java @@ -43,13 +43,18 @@ viewContract.showShortToast("ルーム作成に失敗しました"); } }; - this.roomRepository.getCreateRoomObservable().addObserver(observer); } @Override - public void onDestroy() { - super.onDestroy(); - this.roomRepository.getCreateRoomObservable().removeObserver(observer); + public void onResume() { + super.onResume(); + roomRepository.getCreateRoomObservable().addObserver(observer); + } + + @Override + public void onPause() { + super.onPause(); + roomRepository.getCreateRoomObservable().removeObserver(observer); } public void onClickCreate(String userName, String pass) { 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 9d4acff..8b67b42 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 @@ -78,24 +78,23 @@ viewContract.showShortToast("入室に失敗しました"); } }; - - this.roomRepository.getRoomListObservable().addObserver(roomListObserver); - this.roomRepository.getEnterRoomObservable().addObserver(enterRoomObserver); } @Override public void onResume() { super.onResume(); - this.roomRepository.getRooms(); + roomRepository.getRoomListObservable().addObserver(roomListObserver); + roomRepository.getEnterRoomObservable().addObserver(enterRoomObserver); + roomRepository.getRooms(); } @Override - public void onDestroy() { - super.onDestroy(); + public void onPause() { + super.onPause(); roomRepository.getRoomListObservable().removeObserver(roomListObserver); + roomRepository.getEnterRoomObservable().removeObserver(enterRoomObserver); } - public void onClickRefresh() { roomRepository.getRooms(); } diff --git a/app/src/main/java/com/example/sprout/refactor/viewmodel/RoomMainViewModel.java b/app/src/main/java/com/example/sprout/refactor/viewmodel/RoomMainViewModel.java index bcf5163..13e7089 100644 --- a/app/src/main/java/com/example/sprout/refactor/viewmodel/RoomMainViewModel.java +++ b/app/src/main/java/com/example/sprout/refactor/viewmodel/RoomMainViewModel.java @@ -36,12 +36,13 @@ public RoomMainViewModel(RoomRepository roomRepository, RoomMainAdapter adapter, ViewContract viewContract) { this.roomRepository = roomRepository; this.viewContract = viewContract; + this.adapter = adapter; roomObserver = new Observer() { @Override public void notify(Room room) { ArrayList items = new ArrayList<>(room.getMemberList().values()); - adapter.setDataAndRefresh(items); + RoomMainViewModel.this.adapter.setDataAndRefresh(items); } @Override @@ -73,16 +74,19 @@ throwable.printStackTrace(); } }; - - this.adapter = adapter; - this.roomRepository.getRoomObservable().addObserver(roomObserver); - this.roomRepository.getRoomUpdateStateObservable().addObserver(updateRoomStateObserver); - this.roomRepository.getExitRoomObservable().addObserver(exitRoomObserver); } @Override - public void onDestroy() { - super.onDestroy(); + public void onResume() { + super.onResume(); + roomRepository.getRoomObservable().addObserver(roomObserver); + roomRepository.getRoomUpdateStateObservable().addObserver(updateRoomStateObserver); + roomRepository.getExitRoomObservable().addObserver(exitRoomObserver); + } + + @Override + public void onPause() { + super.onPause(); roomRepository.getRoomObservable().removeObserver(roomObserver); roomRepository.getRoomUpdateStateObservable().removeObserver(updateRoomStateObserver); roomRepository.getExitRoomObservable().removeObserver(exitRoomObserver);