- 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;
- import org.ntlab.irisclient.entities.RoomJson;
- import org.ntlab.irisclient.resources.RoomsRest;
- import retrofit2.Call;
- import retrofit2.Callback;
- import retrofit2.Response;
- import retrofit2.Retrofit;
- import retrofit2.converter.jackson.JacksonConverterFactory;
- public class CreateRoomActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_create_room);
- //----------------------------------------------------------------------------------------------------------------------------------
- //サーバーとの通信の初期化
- Retrofit retrofit = new Retrofit.Builder()
- .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/iris/")
- .addConverterFactory(JacksonConverterFactory.create())
- .build();
- final RoomsRest roomRest = retrofit.create(RoomsRest.class);
- //----------------------------------------------------------------------------------------------------------------------------------
- //アクションバーの非表示
- 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);
- nextButton.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- EditText text = (EditText) findViewById(R.id.nicknameEditText);
- String nickname = text.getText().toString();
- //ニックネームが入力されていない場合エラーメッセージを表示する
- if (text.getText().toString().isEmpty()) {
- text.setError("ニックネームを入力されていません");
- //ニックネームが入力されていれば次の画面へ
- } else {
- //サーバーとの通信のために呼び出す
- Call<RoomJson> call = roomRest.makeRooms(nickname);
- call.enqueue(new Callback<RoomJson>() {
- //onResponseで成功
- public void onResponse(Call<RoomJson> call, Response<RoomJson> response) {
- if (response.isSuccessful()) {
- //ridとnicknameをIrisへ
- String rid = response.body().getRid();
- ((Iris) getApplication()).setRid(rid);
- ((Iris) getApplication()).setNickname(nickname);
- //次の画面へ遷移
- Intent intent = new Intent(CreateRoomActivity.this,OwnerRoomActivity.class);
- intent.putExtra("nickname", nickname);
- startActivity(intent);
- }
- }
- //onFailureで失敗
- public void onFailure(Call<RoomJson> call, Throwable t) {
- }
- });
- }
- }
- });
- }
- }