diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
deleted file mode 100644
index cf0c740..0000000
--- a/.idea/deploymentTargetDropDown.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/java/org/ntlab/irisclient/GameMasterActivity.java b/app/src/main/java/org/ntlab/irisclient/GameMasterActivity.java
index e0b32ce..bb20a9b 100644
--- a/app/src/main/java/org/ntlab/irisclient/GameMasterActivity.java
+++ b/app/src/main/java/org/ntlab/irisclient/GameMasterActivity.java
@@ -58,8 +58,6 @@
gameViewModel= new ViewModelProvider(this).get(GameViewModel.class);
gameViewModel.setRid(rid);
- //ここでカードとかメンバーを表示する
-
//ボタンの情報を入力
buttonProcesses();
@@ -73,6 +71,10 @@
//タイマースタート呼び出し
gameViewModel.start(500,iris);
+
+
+
+ //hint,openList,max,turnstate,の更新を反映。(gamestate・ゲームの勝敗結果はカードフラグメントが作る)
gameViewModel.getTurnLiveData().observe(this, new Observer() {
@Override
public void onChanged(TurnJson turnJson) {
@@ -83,21 +85,28 @@
//時間があれば何をしてほしいのかのアナウンスを入れる
//時間があれば背景の色を変える
+ //ヒントが変更されているか、ターンが切り替わったときに
+
+ //UpdateHint();
+
}
});
}
- public void buttonProcesses(){
+ private void buttonProcesses(){
Button SendHintButton = (Button) findViewById(R.id.SendHint);
SendHintButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
+ if(!IsActive){return;}//アクティブのときだけボタンを押せる
+
EditText Hint = findViewById(R.id.GameHint);
EditText HintMax = findViewById(R.id.GameHintMax);
+
//テキストを適した変数に変更
String hint = Hint.getText().toString();
Integer hintMax;
@@ -107,25 +116,24 @@
hintMax = null;
}
-
//ニックネームまたは部屋番号が入力されていない場合エラーメッセージを表示する
if (hint.isEmpty()) {
Hint.setError("ヒントが入力されていません");
} else if (hintMax == null) {
HintMax.setError("数字が入力されていません");
} else {
- //ビューモデルにhintとhintMaxを送信する。まとめて送信できるようになるかも知れないので、いったん放置
- gameViewModel.putHint(hint,hintMax); //マスターブランチに修正が入ったらコメントアウトを外す
+ gameViewModel.sendHint(hint,hintMax);
}
}
});
+
}
//操作可能かどうかを調べる関数。masterとかturnをオブザーブしておいて、変更があれば反映する。
- public boolean CheckActivity(TurnJson turnjson){
+ private boolean CheckActivity(TurnJson turnjson){
- IsActive = false;
+ boolean isActive = false;
//最新のゲームの状況を取得
String CurrentTeam = turnjson.getTeam();
@@ -133,10 +141,20 @@
//自分のチームのターンで、かつ「ヒント入力」時間の場合は行動可能
if(CurrentTeam.equals(myTeam) && turnState == 0){
- IsActive = true;
+ isActive = true;
}
- return IsActive;
+ return isActive;
+ }
+
+ private void UpdateHint(String hint,Integer hintMax){
+
+ EditText Hint = findViewById(R.id.GameHint);
+ EditText HintMax = findViewById(R.id.GameHintMax);
+
+ Hint.setText(hint);
+ HintMax.setText(hintMax);
+
}
}
\ No newline at end of file
diff --git a/app/src/main/java/org/ntlab/irisclient/GameMemberActivity.java b/app/src/main/java/org/ntlab/irisclient/GameMemberActivity.java
index ca89165..395a428 100644
--- a/app/src/main/java/org/ntlab/irisclient/GameMemberActivity.java
+++ b/app/src/main/java/org/ntlab/irisclient/GameMemberActivity.java
@@ -3,11 +3,29 @@
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);
@@ -15,15 +33,92 @@
// 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);
+
+ //hint,openList,max,turnstate,の更新を反映。(gamestate・ゲームの勝敗結果はカードフラグメントが作る)
+ gameViewModel.getTurnLiveData().observe(this, new Observer() {
+ @Override
+ public void onChanged(TurnJson turnJson) {
+
+ //turnJsonから情報を貰ってきて、操作できるのかどうかとかを判断する。
+ IsActive = CheckActivity(turnJson);
+
+ //時間があれば何をしてほしいのかのアナウンスを入れる
+ //時間があれば背景の色を変える
+
+ }
+ });
+
+
+ }
+
+ 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;
}
}
diff --git a/app/src/main/java/org/ntlab/irisclient/GamePlayerListFragment.java b/app/src/main/java/org/ntlab/irisclient/GamePlayerListFragment.java
index ff520a8..3ceea5a 100644
--- a/app/src/main/java/org/ntlab/irisclient/GamePlayerListFragment.java
+++ b/app/src/main/java/org/ntlab/irisclient/GamePlayerListFragment.java
@@ -32,7 +32,6 @@
super.onCreateView(inflater, container, savedInstanceState);
View view = inflater.inflate(R.layout.fragment_game_player_list, container, false);
- Checkteam(view);
//irisからプレイヤーの一覧を取得
Iris iris = (Iris)this.getActivity().getApplication();
@@ -67,15 +66,4 @@
return view;
}
- //赤チームのプレイヤー全員を表示
- //青チームのプレイヤー全員を表示
- private String Checkteam(View view){
- if(myTeam.equals("r")){
-
- return "赤チーム";
- }else{
-
- return "青チーム";
- }
- }
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_game_master.xml b/app/src/main/res/layout/activity_game_master.xml
index aa827e8..fd440a5 100644
--- a/app/src/main/res/layout/activity_game_master.xml
+++ b/app/src/main/res/layout/activity_game_master.xml
@@ -110,7 +110,7 @@
android:layout_marginBottom="9dp"
app:layout_constraintBottom_toTopOf="@+id/finishGuessButton"
app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintHorizontal_bias="0.0"
+ app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toEndOf="@+id/container"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0" />
diff --git a/app/src/main/res/layout/activity_member_game.xml b/app/src/main/res/layout/activity_member_game.xml
index f533e49..92e343d 100644
--- a/app/src/main/res/layout/activity_member_game.xml
+++ b/app/src/main/res/layout/activity_member_game.xml
@@ -7,6 +7,35 @@
android:layout_height="match_parent"
tools:context=".GameMemberActivity">
+
+
+
+
-
-
-
-
-
-