Newer
Older
IrisClient / app / src / main / java / org / ntlab / irisclient / EnterRoomActivity.java
  1. package org.ntlab.irisclient;
  2.  
  3. import androidx.appcompat.app.ActionBar;
  4. import androidx.appcompat.app.AppCompatActivity;
  5. import retrofit2.Call;
  6. import retrofit2.Callback;
  7. import retrofit2.Response;
  8. import retrofit2.Retrofit;
  9. import retrofit2.converter.jackson.JacksonConverterFactory;
  10.  
  11. import android.content.Intent;
  12. import android.os.Bundle;
  13. import android.view.View;
  14. import android.widget.Button;
  15. import android.widget.EditText;
  16. import android.widget.ImageButton;
  17.  
  18. import com.google.android.material.snackbar.Snackbar;
  19.  
  20. import org.ntlab.irisclient.entities.MemberJson;
  21. import org.ntlab.irisclient.entities.RoomJson;
  22. import org.ntlab.irisclient.resources.RoomsRest;
  23.  
  24. import java.util.List;
  25.  
  26.  
  27. public class EnterRoomActivity extends AppCompatActivity {
  28.  
  29. @Override
  30. protected void onCreate(Bundle savedInstanceState) {
  31. super.onCreate(savedInstanceState);
  32. setContentView(R.layout.activity_enter_room);
  33. ActionBar actionBar = getSupportActionBar();
  34. if(actionBar != null) {
  35. actionBar.hide();
  36. }
  37.  
  38. Retrofit retrofit = new Retrofit.Builder()
  39. .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/iris/")
  40. .addConverterFactory(JacksonConverterFactory.create())
  41. .build();
  42. final RoomsRest roomsRest = retrofit.create(RoomsRest.class);
  43.  
  44. ImageButton imageButton = (ImageButton) findViewById(R.id.backButton); // view経由でimageButtonを探す
  45. imageButton.setOnClickListener(new View.OnClickListener() {
  46. public void onClick(View v) {
  47. Intent i = new Intent(v.getContext(), MainActivity.class);
  48. startActivity(i);
  49. }
  50. });
  51.  
  52. Button nextButton = findViewById(R.id.EntryRoomButton);
  53. nextButton.setOnClickListener(new View.OnClickListener() {
  54. public void onClick(View v) {
  55. EditText nicknameForm = findViewById(R.id.nicknameEditText);
  56. EditText roomIdForm = findViewById(R.id.roomIdEditText);
  57.  
  58. String name = nicknameForm.getText().toString();
  59. String rid = roomIdForm.getText().toString();
  60.  
  61. //ニックネームまたは部屋番号が入力されていない場合エラーメッセージを表示する
  62. if (name.isEmpty() || rid.isEmpty()) {
  63. nicknameForm.setError("ニックネームを入力されていません");
  64. roomIdForm.setError("部屋番号を入力されていません");
  65. } else {
  66. Call<RoomJson> call = roomsRest.postMembers(rid,name);
  67. call.enqueue(new Callback<RoomJson>() {
  68. @Override
  69. public void onResponse(Call<RoomJson> call, Response<RoomJson> response) {
  70. if(response.isSuccessful()){
  71.  
  72. String responseRid = response.body().getRid();
  73. ((Iris) getApplication()).setRid(responseRid);
  74. ((Iris) getApplication()).setNickname(name);
  75.  
  76. Intent intent = new Intent(EnterRoomActivity.this,MemberRoomActivity.class);
  77. intent.putExtra("nickname", name);
  78. startActivity(intent);
  79. }else {
  80. Snackbar.make(v, "部屋に同名のプレイヤーがいるか,満席です", Snackbar.LENGTH_LONG).show();
  81. }
  82.  
  83. }
  84.  
  85. @Override
  86. public void onFailure(Call<RoomJson> call, Throwable t){
  87.  
  88. }
  89. });
  90. }
  91. }
  92. });
  93.  
  94. }
  95.  
  96. }