package org.ntlab.irisclient;
import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import org.ntlab.irisclient.entities.TurnJson;
import org.ntlab.irisclient.models.Game;
import org.ntlab.irisclient.viewmodels.DrawingStateViewModel;
import org.ntlab.irisclient.viewmodels.GameViewModel;
public class GameMasterActivity extends AppCompatActivity{
private GameViewModel gameViewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game_master);
//Irisから必要な情報を取得
Iris iris = (Iris) this.getApplication();
String rid = iris.getRid();
String nickName = iris.getNickname();
gameViewModel= new ViewModelProvider(this).get(GameViewModel.class);
//viewModelに必用な情報をセット
gameViewModel.setRid(rid);
//ここでカードとかメンバーを表示する
//↓自分のチームかつ、ヒント入力画面の場合のみボタンプロセスを読み込む。それ以外の時は何もできないようにする。if文を描きたいけどまだ確認ができない
buttonProcesses();
//タイマースタート呼び出し
gameViewModel.start(500);
gameViewModel.getTurnLiveData().observe(this, new Observer<TurnJson>() {
@Override
public void onChanged(TurnJson turnJson) {
//turnlivedataが変更されたら、ここが呼び出される
//turnJsonから情報を貰ってきて、操作できるのかどうかとかを判断する。
//時間があれば何をしてほしいのかのアナウンスを入れる
}
});
}
public void buttonProcesses(){
Button SendHintButton = (Button) findViewById(R.id.SendHint);
SendHintButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
EditText Hint = findViewById(R.id.GameHint);
EditText HintMax = findViewById(R.id.GameHintMax);
//テキストを適した変数に変更
String hint = Hint.getText().toString();
Integer hintMax = Integer.parseInt(HintMax.getText().toString());
//ニックネームまたは部屋番号が入力されていない場合エラーメッセージを表示する
if (hint.isEmpty()) {
Hint.setError("ヒントが入力されていません");
} else if (hintMax == null) {
HintMax.setError("数字が入力されていません");
} else {
//ビューモデルにhintとhintMaxを送信する。まとめて送信できるようになるかも知れないので、いったん放置
//gameViewModel.putHint(hint,hintMax); //マスターブランチに修正が入ったらコメントアウトを外す
}
}
});
};
//操作可能かどうかを調べる関数(いらない?) クリックされる度にチェックするのではなく、masterとかturnをオブザーブしておいて、変更があれば反映する。
public boolean CheckActivity(){
boolean MasterActivity = false;
//今は自分のチームのターンかどうかを確認
//今はヒント入力時間かどうかを確認
//ライブデータを監視する
GameViewModel gameViewModel = new ViewModelProvider(this).get(GameViewModel.class);
//String team = gameViewModel.getTurnLiveData().
return MasterActivity;
}
}