diff --git a/app/src/main/java/org/ntlab/irisclient/GameMasterActivity.java b/app/src/main/java/org/ntlab/irisclient/GameMasterActivity.java index 29d5278..898f6cf 100644 --- a/app/src/main/java/org/ntlab/irisclient/GameMasterActivity.java +++ b/app/src/main/java/org/ntlab/irisclient/GameMasterActivity.java @@ -19,6 +19,13 @@ public class GameMasterActivity extends AppCompatActivity{ private GameViewModel gameViewModel; + //操作可能かどうかを記録。これがfalseの時は何のボタンを押すこともできない。 + //時間があればゲームに干渉できないだけで、オフラインの動作はできるようにしたい。 + private boolean IsActive = false; + + //Irisから必要な情報を取得 + Iris iris = (Iris) this.getApplication(); + private String myTeam = iris.getTeam(); @Override protected void onCreate(Bundle savedInstanceState) { @@ -48,9 +55,11 @@ @Override public void onChanged(TurnJson turnJson) { - //turnlivedataが変更されたら、ここが呼び出される //turnJsonから情報を貰ってきて、操作できるのかどうかとかを判断する。 + IsActive = CheckActivity(turnJson); + //時間があれば何をしてほしいのかのアナウンスを入れる + //時間があれば背景の色を変える } }); @@ -76,24 +85,27 @@ HintMax.setError("数字が入力されていません"); } else { //ビューモデルにhintとhintMaxを送信する。まとめて送信できるようになるかも知れないので、いったん放置 - //gameViewModel.putHint(hint,hintMax); //マスターブランチに修正が入ったらコメントアウトを外す + gameViewModel.putHint(hint,hintMax); //マスターブランチに修正が入ったらコメントアウトを外す } } }); }; - //操作可能かどうかを調べる関数(いらない?) クリックされる度にチェックするのではなく、masterとかturnをオブザーブしておいて、変更があれば反映する。 - public boolean CheckActivity(){ + //操作可能かどうかを調べる関数。masterとかturnをオブザーブしておいて、変更があれば反映する。 + public boolean CheckActivity(TurnJson turnjson){ - boolean MasterActivity = false; + IsActive = false; - //今は自分のチームのターンかどうかを確認 - //今はヒント入力時間かどうかを確認 - //ライブデータを監視する - GameViewModel gameViewModel = new ViewModelProvider(this).get(GameViewModel.class); - //String team = gameViewModel.getTurnLiveData(). + //最新のゲームの状況を取得 + String CurrentTeam = turnjson.getTeam(); + int turnState = turnjson.getTurnstate(); - return MasterActivity; + //自分のチームのターンで、かつ「ヒント入力」時間の場合は行動可能 + if(CurrentTeam == myTeam && turnState == 0){ + IsActive = true; + } + + return IsActive; } } \ No newline at end of file