diff --git a/app/src/main/java/org/ntlab/irisclient/resources/RoomsRest.java b/app/src/main/java/org/ntlab/irisclient/resources/RoomsRest.java index 18ee92e..aaa7c08 100644 --- a/app/src/main/java/org/ntlab/irisclient/resources/RoomsRest.java +++ b/app/src/main/java/org/ntlab/irisclient/resources/RoomsRest.java @@ -71,7 +71,7 @@ //-------------------------------------------------- //退出するメソッド @DELETE("rooms/{rid}/members/{nickname}") - Call deleteMember( + Call deleteMember( @Path("rid") String rid, @Path("nickname") String nickname ); 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 0290baa..2f1b834 100644 --- a/app/src/main/java/org/ntlab/irisclient/viewmodels/RoomViewModel.java +++ b/app/src/main/java/org/ntlab/irisclient/viewmodels/RoomViewModel.java @@ -23,10 +23,12 @@ //フィールド private String rid; + private boolean roomExist; + final private Retrofit retrofit; + final private RoomsRest roomsRest; final private MutableLiveData> membersLiveData; final private MutableLiveData settingsMutableLiveData; final private MutableLiveData stateLiveData; - final private Retrofit retrofit; //更新比較用フィールド private List sortedMembersList; @@ -43,6 +45,8 @@ .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/iris/") .addConverterFactory(JacksonConverterFactory.create()) .build(); + this.roomsRest = retrofit.create(RoomsRest.class); + setRoomExist(true); } //----------------------------------------------------------------- @@ -50,6 +54,10 @@ public void setRid(String rid){ this.rid = rid; } + private void setRoomExist(boolean bool) { + this.roomExist = bool; + } + // getter public LiveData> getMembersLiveData() { return this.membersLiveData; @@ -60,7 +68,9 @@ public LiveData getStateLiveData() { return this.stateLiveData; } - + public boolean getRoomExist(){ + return this.roomExist; + } private boolean compareMembers(List a, List b) { int i; @@ -83,7 +93,6 @@ //全ての要素が一緒ならtrueを返す return true; } - private List sortMembersList(List oldMembers) { List sortedMembers = new ArrayList<>(); List> priorityInteger = new ArrayList<>(5); @@ -140,8 +149,6 @@ priorityInteger.get(i).forEach(num -> sortedMembers.add(oldMembers.get(num))); } - //System.out.println(sortedMembers); - //sortedMembers.forEach(k -> System.out.println(k.getNickname() + " " + k.getBelongs() + " " + k.isMaster())); return sortedMembers; } @@ -149,7 +156,7 @@ //各Activityでのボタン処理 //チーム&マスター変更 public void changeBelongsAndMaster(String rid, String nickname, String belongs, Boolean isMaster) { - final RoomsRest roomsRest = retrofit.create(RoomsRest.class); + //final RoomsRest roomsRest = retrofit.create(RoomsRest.class); Call call = roomsRest.putMember(rid, nickname, belongs, isMaster); call.enqueue(new Callback() { @@ -167,15 +174,48 @@ }); } - //メンバー削除 + //メンバー削除(MemberActivityのみ) public void deleteMember(String rid, String nickname) { - final RoomsRest roomsRest = retrofit.create(RoomsRest.class); - Call call = roomsRest.deleteMember(rid, nickname); + //final RoomsRest roomsRest = retrofit.create(RoomsRest.class); + Call call = roomsRest.deleteMember(rid, nickname); + + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()){ + System.out.println("通信成功:退出しました"); + } + } + @Override + public void onFailure(Call call, Throwable t) { + System.out.println("通信失敗:"); + System.out.println(t); + } + }); + + } + + //部屋の削除(OwnerActivityのみ) + 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); + } + }); } //スタートボタンの処理(OwnerActivityのみ) public void startDrawing(String rid, String nickname) { - final RoomsRest roomsRest = retrofit.create(RoomsRest.class); + //final RoomsRest roomsRest = retrofit.create(RoomsRest.class); Call call = roomsRest.putState(rid,nickname,2); call.enqueue(new Callback() { @@ -193,9 +233,26 @@ }); } + //ランダムボタンの処理(OwnerActivityのみ) + public void randomTeam(String rid, String nickname) { + Call call = roomsRest.putMembers(rid, nickname); + + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + System.out.println("ランダムにチーム変更へ"); + } + + @Override + public void onFailure(Call call, Throwable t) { + System.out.println("通信失敗:randomTeam"); + System.out.println(t); + } + }); + } + //設定情報の変更処理(OwnerActivityのみ) public void changeSettings(String rid, boolean dTimer, int dTimerTimes, boolean gTimer, int gTimerTimes, int gTimerFTTimes) { - final RoomsRest roomsRest = retrofit.create(RoomsRest.class); Call call = roomsRest.putSettings(rid, dTimer, dTimerTimes, gTimer, gTimerTimes, gTimerFTTimes); call.enqueue(new Callback() { @@ -223,8 +280,6 @@ //部屋の情報の更新(List) public void updateMembers(String rid) { - - final RoomsRest roomsRest = retrofit.create(RoomsRest.class); Call> call = roomsRest.getRoomMember(rid); call.enqueue(new Callback>() { @@ -274,27 +329,16 @@ //設定情報の更新(Settings) public void updateSettings(String rid) { - - final RoomsRest roomsRest = retrofit.create(RoomsRest.class); Call call = roomsRest.getSettings(rid); call.enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { if (response.isSuccessful()){ - + settingsMutableLiveData.setValue(response.body()); settingsPreData = response.body(); - /* - if(response.body().equals(settingsPreData)){ - //値が一緒なら書き換えない - }else{ - //値が異なるときのみライブデータを上書き - settingsMutableLiveData.setValue(response.body()); - settingsPreData = response.body(); - }*/ - } } @@ -306,7 +350,6 @@ //部屋の状態情報の更新(Integer) public void updateState(String rid) { - final RoomsRest roomsRest = retrofit.create(RoomsRest.class); Call call = roomsRest.getState(rid); call.enqueue(new Callback() {