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 5304a29..dc28457 100644 --- a/app/src/main/java/org/ntlab/irisclient/resources/GameRest.java +++ b/app/src/main/java/org/ntlab/irisclient/resources/GameRest.java @@ -84,7 +84,7 @@ //----------------------------------------------- // マスターのヒントを送信するメソッド + 最大回答数も送信 @PUT("/{rid}/game/turns/{tno}/hint") - Call putHint( + Call putHint( @Path("rid") String rid, @Path("tno") int tno, @Field("hint") String hint, 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 ac7e9df..a28aed9 100644 --- a/app/src/main/java/org/ntlab/irisclient/viewmodels/GameViewModel.java +++ b/app/src/main/java/org/ntlab/irisclient/viewmodels/GameViewModel.java @@ -1,20 +1,9 @@ package org.ntlab.irisclient.viewmodels; -import org.ntlab.irisclient.entities.RoomJson; import org.ntlab.irisclient.entities.TurnJson; -import org.ntlab.irisclient.models.Member; -import org.ntlab.irisclient.models.Settings; import org.ntlab.irisclient.resources.GameRest; -import org.ntlab.irisclient.resources.RoomsRest; - import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; -import androidx.lifecycle.ViewModel; - -import com.squareup.moshi.Json; - -import java.util.List; - import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; @@ -26,10 +15,10 @@ //フィールド private String rid; - private Integer tno; + private int tno; private String team; private String hint; - private Integer max; + private int max; private Integer openlist; final private MutableLiveData turnsMutableLiveData; @@ -38,8 +27,8 @@ final private Retrofit retrofit; //更新比較用フィールド - private String turnsPreData; - private TurnJson turnPreData; + private String turnsPreData = null; + private TurnJson turnPreData = null; //------------------------------------------------------------------ //コンストラクタ @@ -58,18 +47,12 @@ this.rid = rid; } - public void putHint(String hint) { + public void putHint(String rid, int tno, String hint, int max) { this.hint = hint; - } - - public void putTeam(String team) { - this.team = team; - } - - public void putMax(Integer max) { this.max = max; } + //-------------------------------------------------------------- // getter public LiveData getTurnsLiveData() { @@ -78,22 +61,32 @@ public LiveData getTurnLiveData() { return this.turnMutableLiveData; } +// public Integer getTurnNumber(String rid) { +// return tno; +// } - public Integer getTurnNumber(Integer rid) { - return tno; + //----------------------------------------------------------------------------- + // updates + @Override + public void update() { + updateTurns(rid); + updateTurn(rid); } //ターン数の取得(赤か青のターンの判別) - public void updateTurns() { + public void updateTurns(String rid) { final GameRest gameRest = retrofit.create(GameRest.class); - Call call = gameRest.getTeam(team); + Call call = gameRest.getTeam(rid); call.enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { if (response.isSuccessful()){ - - if(response.body().equals(turnsPreData)){ + if(turnsPreData == null){ + //初回代入 + turnsMutableLiveData.setValue(response.body()); + turnsPreData = response.body(); + }else if(response.body().equals(turnsPreData)){ //値が一緒なら書き換えない }else{ //値が異なるときのみライブデータを上書き @@ -105,21 +98,26 @@ @Override public void onFailure(Call call, Throwable t) { + System.out.println("通信失敗:changeBelongsAndMaster"); + System.out.println(t); } }); } //hint,openlist,maxの取得 - public void updateTurn() { + public void updateTurn(String rid) { final GameRest gameRest = retrofit.create(GameRest.class); - Call call = gameRest.getTurns(rid, tno); + Call call = gameRest.putHint(rid, tno, hint, max); call.enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { if (response.isSuccessful()){ - - if(response.body().equals(turnPreData)){ + if(turnsPreData == null){ + //初回代入 + turnMutableLiveData.setValue(response.body()); + turnPreData = response.body(); + }if(response.body().equals(turnPreData)){ //値が一緒なら書き換えない }else{ //値が異なるときのみライブデータを上書き @@ -131,18 +129,13 @@ @Override public void onFailure(Call call, Throwable t) { + System.out.println("通信失敗:changeBelongsAndMaster"); + System.out.println(t); } }); } - //----------------------------------------------------------------------------- - // updates - @Override - public void update() { - updateTurns(); - updateTurn(); - } }