diff --git a/app/src/main/java/org/ntlab/irisclient/GameMasterActivity.java b/app/src/main/java/org/ntlab/irisclient/GameMasterActivity.java index 47b1621..93a222c 100644 --- a/app/src/main/java/org/ntlab/irisclient/GameMasterActivity.java +++ b/app/src/main/java/org/ntlab/irisclient/GameMasterActivity.java @@ -84,7 +84,7 @@ } }); - gameViewModel.getmaxLiveData().observe(this, new Observer() { + gameViewModel.getMaxLiveData().observe(this, new Observer() { @Override public void onChanged(Integer new_HintMax) { hintMax = new_HintMax; diff --git a/app/src/main/java/org/ntlab/irisclient/resources/GameRest.java b/app/src/main/java/org/ntlab/irisclient/resources/GameRest.java index 6c22ade..0b72284 100644 --- a/app/src/main/java/org/ntlab/irisclient/resources/GameRest.java +++ b/app/src/main/java/org/ntlab/irisclient/resources/GameRest.java @@ -107,7 +107,7 @@ //----------------------------------------------- @GET("rooms/{rid}/game/turns/{tno}/Endstate") - Call getEndstate( + Call getEndState( @Path("rid") String rid, @Path("tno") Integer tno ); diff --git a/app/src/main/java/org/ntlab/irisclient/viewmodels/GameViewModel.java b/app/src/main/java/org/ntlab/irisclient/viewmodels/GameViewModel.java index edfbb91..873a44c 100644 --- a/app/src/main/java/org/ntlab/irisclient/viewmodels/GameViewModel.java +++ b/app/src/main/java/org/ntlab/irisclient/viewmodels/GameViewModel.java @@ -32,6 +32,7 @@ final private MutableLiveData maxMutableLiveData; final private MutableLiveData turnNumberMutableLiveData; final private MutableLiveData turnStateMutableLiveData; + final private MutableLiveData endStateMutableLiveData; final private MutableLiveData> colorMutableLiveData; final private MutableLiveData> opensMutableLiveData; final private MutableLiveData> mapMutableLiveData; @@ -49,6 +50,7 @@ private Integer maxPreData = null; private Integer turnNumberPreData = null; private Integer turnStatePreData = null; + private Integer endStatePreData = null; private List opensPreData = null; private Boolean[] QPreData = null; @@ -62,6 +64,7 @@ this.maxMutableLiveData = new MutableLiveData<>(); this.turnNumberMutableLiveData = new MutableLiveData<>(); this.turnStateMutableLiveData = new MutableLiveData<>(); + this.endStateMutableLiveData = new MutableLiveData<>(); this.mapMutableLiveData = new MutableLiveData<>(); this.colorMutableLiveData = new MutableLiveData<>(); this.opensMutableLiveData = new MutableLiveData<>(); @@ -81,7 +84,6 @@ public void setRid(String rid) { this.rid = rid; //初期値呼び出し - updateTurnNumber(); testGame(); // 通信をして game に値をセットさせる関数 startColor(); startMap(); @@ -96,13 +98,16 @@ public LiveData getTurnStateLiveData() { return this.turnStateMutableLiveData; } + public LiveData getEndStateLiveData() { + return this.endStateMutableLiveData; + } public LiveData getHintLiveData() { return this.hintMutableLiveData; } public LiveData> getOpenListLiveData() { return this.openListMutableLiveData; } - public LiveData getmaxLiveData() { + public LiveData getMaxLiveData() { return this.maxMutableLiveData; } public LiveData> getOpenLiveData() { @@ -292,7 +297,6 @@ //r,bの取得(今どちらのチームかの判別) public void updateTurns() { - final GameRest gameRest = retrofit.create(GameRest.class); Call call = gameRest.getTeam(rid); call.enqueue(new Callback() { @@ -303,18 +307,20 @@ //初回代入 try { turnsMutableLiveData.setValue(response.body().string()); - turnsPreData = response.body().string(); + + turnsPreData = turnsMutableLiveData.getValue(); + System.out.println("現在のチームは" + turnsPreData + "です"); } catch (IOException e) { e.printStackTrace(); } - System.out.println("現在のチームは" + turnsPreData + "です"); - }else if(response.body().equals(turnsPreData)){ + + }else if(turnsMutableLiveData.getValue().equals(turnsPreData)){ //値が一緒なら書き換えない }else{ //値が異なるときのみライブデータを上書き try { turnsMutableLiveData.setValue(response.body().string()); - turnsPreData = response.body().string(); + turnsPreData = turnsMutableLiveData.getValue(); } catch (IOException e) { e.printStackTrace(); } @@ -327,7 +333,6 @@ @Override public void onFailure(Call call, Throwable t) { System.out.println("通信失敗:updateTurns " + turnsPreData + "です"); - System.out.println(t); } }); } @@ -521,6 +526,35 @@ }); } + //EndStateの更新 + public void updateEndState() { + Call call = gameRest.getEndState(rid, tno); + + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()){ + if(endStatePreData == null){ + //初回代入 + endStateMutableLiveData.setValue(response.body()); + endStatePreData = response.body(); + }else if(response.body().equals(endStatePreData)){ + //値が一緒なら書き換えない + }else{ + //値が異なるときのみライブデータを上書き + endStateMutableLiveData.setValue(response.body()); + endStatePreData = response.body(); + } + } + } + + @Override + public void onFailure(Call call, Throwable t) { + System.out.println("通信失敗:updateEndState"); + } + }); + } + //現在開いているすべてのカードを取得([tffftffffftttff]みたいなリストを逐一更新する、マスが開くたびに更新) public void updateOpens() {