diff --git a/.idea/misc.xml b/.idea/misc.xml index 6b9c2b8..049e2a8 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -10,6 +10,10 @@ + + + + diff --git a/app/build.gradle b/app/build.gradle index 84750db..750e517 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -32,6 +32,22 @@ dependencies { + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' + + + // 各 2021/11/23 時点の最新版 + // Retrofit + implementation "com.squareup.retrofit2:retrofit:2.9.0" + implementation "com.squareup.retrofit2:converter-moshi:2.9.0" + + implementation 'com.squareup.retrofit2:converter-jackson:2.5.0' + implementation 'com.squareup.retrofit2:converter-scalars:2.1.0' + + + // Moshi + implementation "com.squareup.moshi:moshi:1.12.0" + implementation "com.squareup.moshi:moshi-kotlin:1.12.0" + implementation 'androidx.appcompat:appcompat:1.3.1' implementation 'com.google.android.material:material:1.4.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.1' @@ -43,17 +59,12 @@ implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0' - implementation 'junit:junit:4.12' - testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' - - implementation "com.squareup.retrofit2:retrofit:2.5.0" - implementation 'com.squareup.retrofit2:converter-jackson:2.5.0' - implementation 'com.squareup.retrofit2:converter-scalars:2.1.0' implementation 'com.github.bumptech.glide:glide:4.10.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.10.0' implementation 'com.google.android.material:material:1.1.0-alpha08' implementation 'androidx.viewpager2:viewpager2:1.0.0-beta02' + } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b16f89b..0a5abc1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,7 +1,6 @@ + package="org.ntlab.irisclient"> + android:theme="@style/Theme.IrisClient"> - + 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 new file mode 100644 index 0000000..f47a29f --- /dev/null +++ b/app/src/main/java/org/ntlab/irisclient/CreateRoomActivity.java @@ -0,0 +1,65 @@ +package org.ntlab.irisclient; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.app.AppCompatActivity; + +import android.content.DialogInterface; +import android.content.Intent; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.ImageButton; +import android.app.AlertDialog; +import android.widget.EditText; + +public class CreateRoomActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_create_room); + +//------------------------------------------------------------------------------------------------------------------------------------------ + //アクションバーの非表示 + ActionBar actionBar = getSupportActionBar(); + if (actionBar != null) { + actionBar.hide(); + } +//------------------------------------------------------------------------------------------------------------------------------------------ + //バックボタンを押した場合、前の画面に遷移 + + 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.CreateRoomButton); + EditText text = (EditText) findViewById(R.id.nicknameEditText); + nextButton.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + + //ニックネームが入力されていない場合エラーメッセージを表示する + if (text.getText().toString().isEmpty()) { + text.setError("ニックネームを入力されていません"); + + //ニックネームが入力されていれば次の画面へ + } else { + 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 new file mode 100644 index 0000000..374ef0c --- /dev/null +++ b/app/src/main/java/org/ntlab/irisclient/EnterRoomActivity.java @@ -0,0 +1,56 @@ +package org.ntlab.irisclient; + +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ImageButton; + + +public class EnterRoomActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_enter_room); + + ActionBar actionBar = getSupportActionBar(); + if(actionBar != null) { + actionBar.hide(); + } + + 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 { + Intent intent = new Intent(EnterRoomActivity.this,MemberRoomActivity.class); + startActivity(intent); + } + } + }); + + } +} \ 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 9a29cff..0bb3ca4 100644 --- a/app/src/main/java/org/ntlab/irisclient/MainActivity.java +++ b/app/src/main/java/org/ntlab/irisclient/MainActivity.java @@ -3,7 +3,10 @@ import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AppCompatActivity; +import android.content.Intent; import android.os.Bundle; +import android.view.View; +import android.widget.Button; public class MainActivity extends AppCompatActivity { @@ -12,6 +15,27 @@ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); - + ActionBar actionBar = getSupportActionBar(); + if(actionBar != null) { + 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){ + Intent intent = new Intent(MainActivity.this,EnterRoomActivity.class); + startActivity(intent); + } + }); + + } } \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/irisclient/models/Room.java b/app/src/main/java/org/ntlab/irisclient/models/Room.java new file mode 100644 index 0000000..929b75b --- /dev/null +++ b/app/src/main/java/org/ntlab/irisclient/models/Room.java @@ -0,0 +1,4 @@ +package org.ntlab.irisclient.models; + +public class Room { +} diff --git a/app/src/main/java/org/ntlab/irisclient/viewmodels/RoomViewModel.java b/app/src/main/java/org/ntlab/irisclient/viewmodels/RoomViewModel.java new file mode 100644 index 0000000..5fd027f --- /dev/null +++ b/app/src/main/java/org/ntlab/irisclient/viewmodels/RoomViewModel.java @@ -0,0 +1,37 @@ +package org.ntlab.irisclient.viewmodels; + +import org.ntlab.irisclient.models.Room; + +import java.net.URI; + +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; +import retrofit2.Retrofit; +import retrofit2.converter.moshi.MoshiConverterFactory; +import retrofit2.converter.jackson.JacksonConverterFactory; + +public class RoomViewModel extends ViewModel { + + private MutableLiveData roomMutableLiveData; + private Retrofit retrofit; + + //------------------------------------------------ + public RoomViewModel() { + this.roomMutableLiveData = new MutableLiveData<>(); + this.retrofit = new Retrofit.Builder() + .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/iris/") + .addConverterFactory(JacksonConverterFactory.create()) + .build(); + } + + //----------------------------------------------------------------- + // getter + public LiveData getLiveData() { + return this.roomMutableLiveData; + } +} diff --git a/app/src/main/res/drawable-v24/backbottom.jpeg b/app/src/main/res/drawable-v24/backbottom.jpeg new file mode 100644 index 0000000..cc28209 --- /dev/null +++ b/app/src/main/res/drawable-v24/backbottom.jpeg Binary files differ diff --git a/app/src/main/res/layout/activity_create_room.xml b/app/src/main/res/layout/activity_create_room.xml new file mode 100644 index 0000000..0f87525 --- /dev/null +++ b/app/src/main/res/layout/activity_create_room.xml @@ -0,0 +1,59 @@ + + + +