diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 56c3abd..0a5abc1 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -34,6 +34,11 @@
android:screenOrientation="landscape"
android:exported="true" >
+
+
\ No newline at end of file
diff --git a/app/src/main/java/org/ntlab/irisclient/CreateRoomActivity.java b/app/src/main/java/org/ntlab/irisclient/CreateRoomActivity.java
index 8354a6f..f47a29f 100644
--- a/app/src/main/java/org/ntlab/irisclient/CreateRoomActivity.java
+++ b/app/src/main/java/org/ntlab/irisclient/CreateRoomActivity.java
@@ -31,7 +31,6 @@
}
//------------------------------------------------------------------------------------------------------------------------------------------
//バックボタンを押した場合、前の画面に遷移
- Intent intent = getIntent();
ImageButton imageButton = (ImageButton) findViewById(R.id.backButton); // view経由でimageButtonを探す
imageButton.setOnClickListener(new View.OnClickListener() {
@@ -55,10 +54,9 @@
//ニックネームが入力されていれば次の画面へ
} else {
- Intent i = new Intent(getApplication(), MainActivity/*OwnerRoomActivityに変更する*/.class);
- startActivity(i);
- }
-
+ Intent intent = new Intent(CreateRoomActivity.this,OwnerRoomActivity.class);
+ startActivity(intent);
+ }
}
});
diff --git a/app/src/main/java/org/ntlab/irisclient/EnterRoomActivity.java b/app/src/main/java/org/ntlab/irisclient/EnterRoomActivity.java
index 19d8314..6c9ef0b 100644
--- a/app/src/main/java/org/ntlab/irisclient/EnterRoomActivity.java
+++ b/app/src/main/java/org/ntlab/irisclient/EnterRoomActivity.java
@@ -2,8 +2,26 @@
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+import retrofit2.Retrofit;
+import retrofit2.converter.jackson.JacksonConverterFactory;
+import android.content.Intent;
import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ImageButton;
+
+import com.google.android.material.snackbar.Snackbar;
+
+import org.ntlab.irisclient.entities.MemberJson;
+import org.ntlab.irisclient.resources.RoomsRest;
+
+import java.util.List;
+
public class EnterRoomActivity extends AppCompatActivity {
@@ -11,11 +29,58 @@
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_enter_room);
-
ActionBar actionBar = getSupportActionBar();
if(actionBar != null) {
actionBar.hide();
}
+ Retrofit retrofit = new Retrofit.Builder()
+ .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/iris/")
+ .addConverterFactory(JacksonConverterFactory.create())
+ .build();
+ final RoomsRest roomsRest = retrofit.create(RoomsRest.class);
+
+ ImageButton imageButton = (ImageButton) findViewById(R.id.backButton); // view経由でimageButtonを探す
+ imageButton.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ Intent i = new Intent(v.getContext(), MainActivity.class);
+ startActivity(i);
+ }
+ });
+
+ Button nextButton = findViewById(R.id.EntryRoomButton);
+ nextButton.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ EditText nicknameForm = findViewById(R.id.nicknameEditText);
+ EditText roomIdForm = findViewById(R.id.roomIdEditText);
+
+ String name = nicknameForm.getText().toString();
+ String rid = roomIdForm.getText().toString();
+
+ //ニックネームまたは部屋番号が入力されていない場合エラーメッセージを表示する
+ if (name.isEmpty() || rid.isEmpty()) {
+ nicknameForm.setError("ニックネームを入力されていません");
+ roomIdForm.setError("部屋番号を入力されていません");
+ } else {
+ Call> call = roomsRest.postMembers(rid,name);
+ call.enqueue(new Callback>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ if(response.isSuccessful()){
+ Intent intent = new Intent(EnterRoomActivity.this,MemberRoomActivity.class);
+ startActivity(intent);
+ }
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+
+ }
+ });
+ }
+ }
+ });
+
}
+
}
\ No newline at end of file
diff --git a/app/src/main/java/org/ntlab/irisclient/MainActivity.java b/app/src/main/java/org/ntlab/irisclient/MainActivity.java
index fd1080f..0bb3ca4 100644
--- a/app/src/main/java/org/ntlab/irisclient/MainActivity.java
+++ b/app/src/main/java/org/ntlab/irisclient/MainActivity.java
@@ -20,6 +20,14 @@
actionBar.hide();
}
+ Button createButton =(Button)findViewById(R.id.create_room);
+ createButton.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v){
+ Intent intent = new Intent(MainActivity.this,CreateRoomActivity.class);
+ startActivity(intent);
+ }
+ });
+
Button entryButton =(Button)findViewById(R.id.entry_room);
entryButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v){
diff --git a/app/src/main/java/org/ntlab/irisclient/OwnerRoomActivity.java b/app/src/main/java/org/ntlab/irisclient/OwnerRoomActivity.java
index 7b0fb26..6ea2cb8 100644
--- a/app/src/main/java/org/ntlab/irisclient/OwnerRoomActivity.java
+++ b/app/src/main/java/org/ntlab/irisclient/OwnerRoomActivity.java
@@ -1,52 +1,180 @@
package org.ntlab.irisclient;
-import androidx.appcompat.app.ActionBar;
-import androidx.appcompat.app.AppCompatActivity;
-import androidx.recyclerview.widget.LinearLayoutManager;
-import androidx.recyclerview.widget.RecyclerView;
-
+import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
+import android.widget.ArrayAdapter;
import android.widget.Button;
+import android.widget.ImageButton;
+import android.widget.ListView;
+import android.widget.TextView;
-import java.util.Locale;
+import androidx.appcompat.app.AppCompatActivity;
+
+import org.ntlab.irisclient.resources.RoomsRest;
+
+import java.util.ArrayList;
+import java.util.Collections;
+
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+import retrofit2.Retrofit;
+import retrofit2.converter.jackson.JacksonConverterFactory;
public class OwnerRoomActivity extends AppCompatActivity {
-// private final String[] dataset = new String[20];
+ //フィールド
+ String r = "部屋ID " + "123456";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_owner_room);
- //上のバーを消す
- ActionBar actionBar = getSupportActionBar();
- if (actionBar != null) {
- actionBar.hide();
- }
+ //--------------------------------------------------------------------------
+ //各ボタン処理
+ ArrayList members = new ArrayList<>();
+ Button redMasterButton = (Button) findViewById(R.id.beRedMaster);
+ Button redSpyButton = (Button) findViewById(R.id.beRedSpy);
+ Button blueMasterButton = (Button) findViewById(R.id.beBlueMaster);
+ Button blueSpyButton = (Button) findViewById(R.id.beBlueSpy);
+ Button randomButton = (Button) findViewById(R.id.random);
+ Button startButton = (Button) findViewById(R.id.start);
+ ImageButton copyButton = (ImageButton) findViewById(R.id.copyButton);
-// RecyclerView recyclerView = findViewById(R.id.my_recycler_view);
-//
-// // use this setting to improve performance if you know that changes
-// // in content do not change the layout size of the RecyclerView
-// recyclerView.setHasFixedSize(true);
-//
-// // use a linear layout manager
-// RecyclerView.LayoutManager rLayoutManager = new LinearLayoutManager(this);
-//
-// recyclerView.setLayoutManager(rLayoutManager);
-//
-// int i = 0;
-// while (i < 10) {
-// dataset[i] = String.format(Locale.ENGLISH, "Data_0%d", i);
-// i++;
-// }
-//
-// MyAdapter adapter = new MyAdapter(dataset);
-// recyclerView.setAdapter(adapter);
+ //---------------------------------------------------------------------------
+ //メンバーリスト
+ ArrayAdapter adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, members);
+ ListView listView = (ListView)findViewById(R.id.MembersList);
+ listView.setAdapter(adapter);
+ redMasterButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ r = "部屋ID " + "red";
+ TextView RoomIdText = findViewById(R.id.roomID);
+ RoomIdText.setText(r);
+ members.clear();
+ members.add("マスターのRedさん");
+ ListView listView = (ListView)findViewById(R.id.MembersList);
+
+ listView.setAdapter(adapter);
+ }
+ });
+
+ redSpyButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ r = "部屋ID " + "red";
+ TextView RoomIdText = findViewById(R.id.roomID);
+ RoomIdText.setText(r);
+
+ members.add("スパイのRedさん");
+ ListView listView = (ListView)findViewById(R.id.MembersList);
+ listView.setAdapter(adapter);
+ }
+ });
+
+ blueMasterButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ r = "部屋ID " + "blue";
+ TextView RoomIdText = findViewById(R.id.roomID);
+ RoomIdText.setText(r);
+
+ members.add("マスターのBlueさん");
+ listView.setBackgroundColor(Color.parseColor("#e83a48"));
+ ListView listView = (ListView)findViewById(R.id.MembersList);
+ listView.setAdapter(adapter);
+
+ }
+ });
+
+ blueSpyButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ r = "部屋ID " + "red";
+ TextView RoomIdText = findViewById(R.id.roomID);
+ RoomIdText.setText(r);
+
+ members.add("スパイのBlueさん");
+ ListView listView = (ListView)findViewById(R.id.MembersList);
+ listView.setBackgroundColor(Color.parseColor("#3a5fe8"));
+ listView.setAdapter(adapter);
+ }
+ });
+
+ randomButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ r = "部屋ID " + "random";
+ TextView RoomIdText = findViewById(R.id.roomID);
+ RoomIdText.setText(r);
+
+ members.add("ランダムさん");
+ ListView listView = (ListView)findViewById(R.id.MembersList);
+ listView.setAdapter(adapter);
+
+ Retrofit retrofit = new Retrofit.Builder()
+ .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/iris/")
+ .addConverterFactory(JacksonConverterFactory.create())
+ .build();
+ final RoomsRest roomsRest = retrofit.create(RoomsRest.class);
+
+ }
+ });
+
+ startButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ r = "部屋ID " + "start";
+ TextView RoomIdText = findViewById(R.id.roomID);
+ RoomIdText.setText(r);
+
+ members.add("スタートさん");
+ ListView listView = (ListView)findViewById(R.id.MembersList);
+ listView.setAdapter(adapter);
+ }
+ });
+
+ copyButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ r = "部屋ID " + "copy";
+ TextView RoomIdText = findViewById(R.id.roomID);
+ RoomIdText.setText(r);
+
+ members.add("コピーしました");
+ ListView listView = (ListView)findViewById(R.id.MembersList);
+ listView.setAdapter(adapter);
+ }
+ });
+
+ //--------------------------------------------------------------------------
+ //メンバー表示
+
+ //members.add("1さん");
+
+ //---------------------------------------------------------------
+ //settings情報
+ String s = "設定\\nお絵描き";
+ TextView settingsText = findViewById(R.id.settings);
+ settingsText.setText(s);
+
+ //---------------------------------------------------------------
+ //部屋ID情報
+ TextView RoomIdText = findViewById(R.id.roomID);
+ RoomIdText.setText(r);
}
+
+ /*private getMemberInformation(){
+
+ }*/
+
+ /*private void addMemberToMemberList(String m){
+ members.add(m);
+ }*/
}
\ No newline at end of file
diff --git a/app/src/main/java/org/ntlab/irisclient/entities/MemberJson.java b/app/src/main/java/org/ntlab/irisclient/entities/MemberJson.java
new file mode 100644
index 0000000..67eeb76
--- /dev/null
+++ b/app/src/main/java/org/ntlab/irisclient/entities/MemberJson.java
@@ -0,0 +1,4 @@
+package org.ntlab.irisclient.entities;
+
+public class MemberJson {
+}
diff --git a/app/src/main/java/org/ntlab/irisclient/entities/RoomJson.java b/app/src/main/java/org/ntlab/irisclient/entities/RoomJson.java
new file mode 100644
index 0000000..427716b
--- /dev/null
+++ b/app/src/main/java/org/ntlab/irisclient/entities/RoomJson.java
@@ -0,0 +1,4 @@
+package org.ntlab.irisclient.entities;
+
+public class RoomJson {
+}
diff --git a/app/src/main/java/org/ntlab/irisclient/resources/RoomsRest.java b/app/src/main/java/org/ntlab/irisclient/resources/RoomsRest.java
new file mode 100644
index 0000000..cfc2bb0
--- /dev/null
+++ b/app/src/main/java/org/ntlab/irisclient/resources/RoomsRest.java
@@ -0,0 +1,114 @@
+package org.ntlab.irisclient.resources;
+
+import org.ntlab.irisclient.entities.MemberJson;
+import org.ntlab.irisclient.entities.RoomJson;
+
+import java.util.List;
+
+import retrofit2.Call;
+import retrofit2.http.DELETE;
+import retrofit2.http.Field;
+import retrofit2.http.FormUrlEncoded;
+import retrofit2.http.GET;
+import retrofit2.http.POST;
+import retrofit2.http.PUT;
+import retrofit2.http.Path;
+
+public interface RoomsRest {
+
+ //----------------------------------------------
+ // ルームの作成メソッド
+ @FormUrlEncoded
+ @POST("rooms")
+ Call makeRooms(
+ @Field("nickname") String nickname
+ );
+
+ //-----------------------------------------------
+ // メンバー情報を取得するメソッド
+ @GET("rooms/{rid}")
+ Call getRoomMember(
+ @Path("rid") String rid
+ );
+
+ //----------------------------------------------
+ //ルームを削除するメソッド
+ @DELETE("rooms/{rid}")
+ Call deleteRooms(
+ @Path("rid") String rid
+ );
+
+ //--------------------------------------------------
+ // ランダムなチーム編成を行うメソッド
+ @FormUrlEncoded
+ @PUT("rooms/{rid}/members")
+ Call> putMembers(
+ @Path("rid") String rid,
+ @Field("nickname") String nickname
+ );
+
+ //------------------------------------------------
+ //自分のニックネームを送り、部屋に参加するメソッド
+ @FormUrlEncoded
+ @POST("rooms/{rid}/members")
+ Call> postMembers(
+ @Path("rid") String rid,
+ @Field("nickname") String nickname
+ );
+
+ //----------------------------------------------------
+ //チーム変更、役職を変更するメソッド
+ @FormUrlEncoded
+ @PUT("rooms/{rid}/members/{nickname}")
+ Call putMember(
+ @Path("rid") String rid,
+ @Path("nickname") String nickname,
+ @Field("belongs") String belongs,
+ @Field("is-master") boolean isMaster
+ );
+
+ //--------------------------------------------------
+ //退出するメソッド
+ @DELETE("rooms/{rid}/members/{nickname}")
+ Call deleteMember(
+ @Path("rid") String rid,
+ @Path("nickname") String nickname
+ );
+
+ //----------------------------------------
+ //設定の情報を入手するメソッド
+ @GET("rooms/{rid}/settings")
+ Call getSettings(
+ @Path("rid") String rid
+ );
+
+ //-------------------------------------------------
+ //ゲームの設定を記録するメソッド
+ @FormUrlEncoded
+ @PUT("rooms/{rid}/settings")
+ Call putSettings(
+ @Path("rid") String rid,
+ @Field("drawingTimer") boolean dTimer,
+ @Field("drawingTimerTimes") int dTimerTimes,
+ @Field("gameTimer") boolean gTimer,
+ @Field("gameTimerTimes") int gTimerTimes,
+ @Field("gameTimerFirstThinkingTimes") int gTimerFTTimes
+ );
+
+ //-----------------------------------------------
+ //部屋の情報を入手するメソッド
+ @GET("rooms/{rid}/state")
+ Call getState(
+ @Path("rid") String rid
+ );
+
+ //-----------------------------------------------
+ //部屋の状態を記録するメソッド
+ @FormUrlEncoded
+ @PUT("rooms/{rid}/state")
+ Call putState(
+ @Path("rid") String rid,
+ @Field("nickname") String nickname,
+ @Field("state") Integer state
+ );
+}
diff --git a/app/src/main/res/layout/activity_enter_room.xml b/app/src/main/res/layout/activity_enter_room.xml
index cbbf45e..7b8ed06 100644
--- a/app/src/main/res/layout/activity_enter_room.xml
+++ b/app/src/main/res/layout/activity_enter_room.xml
@@ -47,7 +47,7 @@
app:layout_constraintVertical_bias="0.084" />
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_owner_room.xml b/app/src/main/res/layout/activity_owner_room.xml
index 3d8d964..78046f0 100644
--- a/app/src/main/res/layout/activity_owner_room.xml
+++ b/app/src/main/res/layout/activity_owner_room.xml
@@ -4,120 +4,136 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:backgroundTint="#804747"
tools:context=".OwnerRoomActivity">
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ app:layout_constraintVertical_bias="0.939" />
+ app:layout_constraintVertical_bias="0.939" />
-
-
-
+ app:layout_constraintTop_toBottomOf="@+id/settings"
+ app:layout_constraintVertical_bias="0.038" />
\ No newline at end of file