Newer
Older
IrisClientWebSocket / app / src / main / java / org / ntlab / irisclient / CreateRoomActivity.java
Kota on 24 Dec 2022 4 KB 計測部分以外完成
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-websocket/")
                .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) {
                        }
                    });

               }
            }
        });

    }
}