package org.ntlab.irisclient;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
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 GameMemberActivity extends AppCompatActivity {
private GameViewModel gameViewModel;
//操作可能かどうかを記録。これがfalseの時は何のボタンを押すこともできない。
//時間があればオフラインの動作はできるようにしたい。
private boolean IsActive = false;
private String myTeam;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_member_game);
// Fragmentを作成します
DrawingCardFragment fragment = new DrawingCardFragment();
GamePlayerListFragment RedPlayerList = new GamePlayerListFragment("r");
GamePlayerListFragment BluePlayerList = new GamePlayerListFragment("b");
// Fragmentの追加や削除といった変更を行う際は、Transactionを利用します
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
// 新しく追加を行うのでaddを使用します
// 他にも、よく使う操作で、replace removeといったメソッドがあります
// メソッドの1つ目の引数は対象のViewGroupのID、2つ目の引数は追加するfragment
transaction.add(R.id.container, fragment);
transaction.add(R.id.redPlayerListContainer, RedPlayerList);
transaction.add(R.id.bluePlayerListContainer,BluePlayerList);
// 最後にcommitを使用することで変更を反映します
transaction.commit();
//Irisから必要な情報を取得
Iris iris = (Iris) this.getApplication();
String rid = iris.getRid();
String nickName = iris.getNickname();
myTeam = iris.getTeam();
//viewModelに必用な情報をセット
gameViewModel= new ViewModelProvider(this).get(GameViewModel.class);
gameViewModel.setRid(rid);
//ボタンの情報を入力
buttonProcesses();
//自分が赤チームマスターの場合はヒントが入力可能
if(myTeam == null) {
System.out.println(("myteamがnullです"));
}else if(myTeam.equals("r")){
IsActive = true;
}
//タイマースタート呼び出し
gameViewModel.start(500,iris);
}
public void buttonProcesses() {
Button FinishGuessButton = (Button) findViewById(R.id.finishGuessButton);
//推測終了を押した時に、ターン終了を通知
FinishGuessButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (!IsActive) {return;}//アクティブのときだけボタンを押せる}
//TODO:次のターンに行くようにする
}
});
}
/* //操作可能かどうかを調べる関数。masterとかturnをオブザーブしておいて、変更があれば反映する。
public boolean CheckActivity(TurnJson turnjson){
boolean isActive = false;
//最新のゲームの状況を取得
String CurrentTeam = turnjson.getTeam();
int turnState = turnjson.getTurnstate();
//自分のチームのターンで、かつ「カード選択」時間の場合は行動可能
if(CurrentTeam.equals(myTeam) && turnState == 1){
isActive = true;
}
return isActive;
}*/
}