diff --git a/app/src/main/java/org/ntlab/irisclient/viewmodels/RoomViewModel.java b/app/src/main/java/org/ntlab/irisclient/viewmodels/RoomViewModel.java index 2f1b834..4a451f8 100644 --- a/app/src/main/java/org/ntlab/irisclient/viewmodels/RoomViewModel.java +++ b/app/src/main/java/org/ntlab/irisclient/viewmodels/RoomViewModel.java @@ -34,6 +34,7 @@ private List sortedMembersList; private List membersPreData; private Settings settingsPreData; + private int preState = 0; //------------------------------------------------------------------ //コンストラクタ @@ -195,19 +196,21 @@ } - //部屋の削除(OwnerActivityのみ) - public void deleteRoom(String rid){ - Call call = roomsRest.deleteRooms(rid); + //オーナーが退出ボタンを押した時の通信(OwnerActivityのみ) + public void ownerLeaving(String rid, String nickname) { + Call call = roomsRest.putState(rid,nickname,-1); call.enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { - setRoomExist(false); + if (response.isSuccessful()){ + System.out.println("通信成功:ownerLeaving"); + deleteRoom(rid); + } } - @Override public void onFailure(Call call, Throwable t) { - System.out.println("通信失敗:deleteRoom"); + System.out.println("通信失敗:ownerLeaving"); System.out.println(t); } }); @@ -269,6 +272,25 @@ } }); } + + //部屋の削除 + public void deleteRoom(String rid){ + Call call = roomsRest.deleteRooms(rid); + + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + setRoomExist(false); + } + + @Override + public void onFailure(Call call, Throwable t) { + System.out.println("通信失敗:deleteRoom"); + System.out.println(t); + } + }); + } + //----------------------------------------------------------------------------- // updates @Override @@ -335,7 +357,7 @@ @Override public void onResponse(Call call, Response response) { if (response.isSuccessful()){ - + settingsMutableLiveData.setValue(response.body()); settingsPreData = response.body(); @@ -357,7 +379,10 @@ public void onResponse(Call call, Response response) { if (response.isSuccessful()){ - stateLiveData.setValue(response.body()); + if(preState != response.body()){ + preState = response.body(); + stateLiveData.setValue(response.body()); + } /* if(response.body().equals(settingsPreData)){