diff --git a/app/src/main/java/org/ntlab/irisclient/GameMasterActivity.java b/app/src/main/java/org/ntlab/irisclient/GameMasterActivity.java index 9bbf1cc..a785d92 100644 --- a/app/src/main/java/org/ntlab/irisclient/GameMasterActivity.java +++ b/app/src/main/java/org/ntlab/irisclient/GameMasterActivity.java @@ -1,6 +1,8 @@ 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; @@ -18,20 +20,40 @@ 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 + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_game_master); + // Fragmentを作成します + DrawingCardFragment fragment = new DrawingCardFragment(); + GamePlayerListFragment RedPlayerListFragment = new GamePlayerListFragment(); + GamePlayerListFragment BluePlayerListFragment = new GamePlayerListFragment(); + + // 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, RedPlayerListFragment); + transaction.add(R.id.BluePlayerListContainer, BluePlayerListFragment); + // 最後にcommitを使用することで変更を反映します + transaction.commit(); + //Irisから必要な情報を取得 Iris iris = (Iris) this.getApplication(); String rid = iris.getRid(); @@ -80,7 +102,13 @@ //テキストを適した変数に変更 String hint = Hint.getText().toString(); - Integer hintMax = Integer.parseInt(HintMax.getText().toString()); + Integer hintMax; + if(HintMax != null){ + hintMax = Integer.parseInt(HintMax.getText().toString()); + }else{ + hintMax = null; + } + //ニックネームまたは部屋番号が入力されていない場合エラーメッセージを表示する if (hint.isEmpty()) { diff --git a/app/src/main/java/org/ntlab/irisclient/GamePlayerListFragment.java b/app/src/main/java/org/ntlab/irisclient/GamePlayerListFragment.java index 72cd93e..b459eb5 100644 --- a/app/src/main/java/org/ntlab/irisclient/GamePlayerListFragment.java +++ b/app/src/main/java/org/ntlab/irisclient/GamePlayerListFragment.java @@ -1,15 +1,31 @@ package org.ntlab.irisclient; import androidx.appcompat.app.AppCompatActivity; +import androidx.fragment.app.Fragment; +import android.content.res.Resources; import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; -public class GamePlayerListFragment extends AppCompatActivity { +public class GamePlayerListFragment extends Fragment { + + public static GamePlayerListFragment newInstance(String str){ + // インスタンス生成 + GamePlayerListFragment fragment = new GamePlayerListFragment(); + return fragment; + } @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.fragment_game_player_list); + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + super.onCreateView(inflater, container, savedInstanceState); + + Resources resources = getResources(); + View view = inflater.inflate(R.layout.fragment_card_drawing, container, false); + + return view; } //赤チームのプレイヤー全員を表示 diff --git a/app/src/main/java/org/ntlab/irisclient/viewmodels/TimerViewModel.java b/app/src/main/java/org/ntlab/irisclient/viewmodels/TimerViewModel.java index 9254669..ad31daf 100644 --- a/app/src/main/java/org/ntlab/irisclient/viewmodels/TimerViewModel.java +++ b/app/src/main/java/org/ntlab/irisclient/viewmodels/TimerViewModel.java @@ -8,7 +8,9 @@ import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModel; - import java.util.ArrayList; +import org.ntlab.irisclient.Iris; + +import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Random; @@ -21,6 +23,7 @@ abstract class TimerViewModel extends ViewModel implements Runnable { private ScheduledThreadPoolExecutor thread = null; + protected Iris iris; //----------------------------------------------------------------- @@ -34,7 +37,8 @@ //----------------------------------------------------------------- //何ミリ秒ごとにrun()を実行するかを決める - public void start(int interval) { + public void start(int interval,Iris iris) { + this.iris = iris; thread = new ScheduledThreadPoolExecutor(1); thread.scheduleWithFixedDelay(this, interval, 1000L, TimeUnit.MILLISECONDS); } diff --git a/app/src/main/res/layout/activity_game_master.xml b/app/src/main/res/layout/activity_game_master.xml index 80c0dcb..1db4629 100644 --- a/app/src/main/res/layout/activity_game_master.xml +++ b/app/src/main/res/layout/activity_game_master.xml @@ -15,30 +15,6 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@+id/timeTextView" /> - - - - - - - + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_game_player_list.xml b/app/src/main/res/layout/fragment_game_player_list.xml index 10311e2..0e535d3 100644 --- a/app/src/main/res/layout/fragment_game_player_list.xml +++ b/app/src/main/res/layout/fragment_game_player_list.xml @@ -1,9 +1,26 @@ - + \ No newline at end of file