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 9d99469..abcae65 100644 --- a/app/src/main/java/org/ntlab/irisclient/resources/GameRest.java +++ b/app/src/main/java/org/ntlab/irisclient/resources/GameRest.java @@ -9,6 +9,7 @@ import java.util.List; +import okhttp3.ResponseBody; import retrofit2.Call; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; @@ -57,7 +58,7 @@ //----------------------------------------------- // 現在のターンがどちらのチームであるかを取得するメソッド @GET("rooms/{rid}/game/turn") - Call getTeam( + Call getTeam( @Path("rid") String rid ); 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 b64ecc2..edfbb91 100644 --- a/app/src/main/java/org/ntlab/irisclient/viewmodels/GameViewModel.java +++ b/app/src/main/java/org/ntlab/irisclient/viewmodels/GameViewModel.java @@ -8,8 +8,10 @@ import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; +import java.io.IOException; import java.util.List; +import okhttp3.ResponseBody; import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; @@ -79,6 +81,7 @@ public void setRid(String rid) { this.rid = rid; //初期値呼び出し + updateTurnNumber(); testGame(); // 通信をして game に値をセットさせる関数 startColor(); startMap(); @@ -290,30 +293,39 @@ //r,bの取得(今どちらのチームかの判別) public void updateTurns() { final GameRest gameRest = retrofit.create(GameRest.class); - Call call = gameRest.getTeam(rid); + Call call = gameRest.getTeam(rid); - call.enqueue(new Callback() { + call.enqueue(new Callback() { @Override - public void onResponse(Call call, Response response) { + public void onResponse(Call call, Response response) { if (response.isSuccessful()){ if(turnsPreData == null){ //初回代入 - turnsMutableLiveData.setValue(response.body()); - turnsPreData = response.body(); + try { + turnsMutableLiveData.setValue(response.body().string()); + turnsPreData = response.body().string(); + } catch (IOException e) { + e.printStackTrace(); + } System.out.println("現在のチームは" + turnsPreData + "です"); }else if(response.body().equals(turnsPreData)){ //値が一緒なら書き換えない }else{ //値が異なるときのみライブデータを上書き - turnsMutableLiveData.setValue(response.body()); - turnsPreData = response.body(); + try { + turnsMutableLiveData.setValue(response.body().string()); + turnsPreData = response.body().string(); + } catch (IOException e) { + e.printStackTrace(); + } + System.out.println("現在のチームは" + turnsPreData + "です"); } } } @Override - public void onFailure(Call call, Throwable t) { + public void onFailure(Call call, Throwable t) { System.out.println("通信失敗:updateTurns " + turnsPreData + "です"); System.out.println(t); }