package org.ntlab.irisclient; 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.entities.RoomJson; import org.ntlab.irisclient.resources.RoomsRest; import java.util.List; 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(); } Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/iris-websocket/") .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<RoomJson> call = roomsRest.postMembers(rid,name); call.enqueue(new Callback<RoomJson>() { @Override public void onResponse(Call<RoomJson> call, Response<RoomJson> response) { if(response.isSuccessful()){ String responseRid = response.body().getRid(); ((Iris) getApplication()).setRid(responseRid); ((Iris) getApplication()).setNickname(name); Intent intent = new Intent(EnterRoomActivity.this,MemberRoomActivity.class); intent.putExtra("nickname", name); startActivity(intent); }else { Snackbar.make(v, "部屋に同名のプレイヤーがいるか,満席です", Snackbar.LENGTH_LONG).show(); } } @Override public void onFailure(Call<RoomJson> call, Throwable t){ } }); } } }); } }