Newer
Older
IrisClient / app / src / main / java / org / ntlab / irisclient / OwnerRoomActivity.java
長尾武紀 on 4 Oct 2022 9 KB Merge pull request #80 from nitta-lab-2022/OwnerRoomActivity
package org.ntlab.irisclient;

import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;

import org.ntlab.irisclient.entities.RoomJson;
import org.ntlab.irisclient.models.Member;
import org.ntlab.irisclient.resources.RoomsRest;
import org.ntlab.irisclient.viewmodels.RoomViewModel;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.jackson.JacksonConverterFactory;

public class OwnerRoomActivity extends AppCompatActivity {

    //フィールド
    String r = "部屋ID " + "123456";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_owner_room);

        String nickname = ((Iris) getApplication()).getNickname();
        String rid = ((Iris) getApplication()).getRid();

        //RoomViewModelへのアクセス
        RoomViewModel roomViewModel = new ViewModelProvider(this).get(RoomViewModel.class);

        //LiveData(List<Member>)への購読
        roomViewModel.getMembersLiveData().observe(this, new Observer<List<Member>>() {
            private List<Member> members;
            @Override
            public void onChanged(List<Member> members) {

            }
        });

        //--------------------------------------------------------------------------
        //各ボタン処理
        ArrayList<String> members = new ArrayList<>();
        Button redMasterButton = (Button) findViewById(R.id.beRedMaster);
        Button redSpyButton = (Button) findViewById(R.id.beRedSpy);
        Button blueMasterButton = (Button) findViewById(R.id.beBlueMaster);
        Button blueSpyButton = (Button) findViewById(R.id.beBlueSpy);
        Button randomButton = (Button) findViewById(R.id.random);
        Button startButton = (Button) findViewById(R.id.start);
        ImageButton copyButton = (ImageButton) findViewById(R.id.copyButton);

        //---------------------------------------------------------------------------
        //メンバーリスト
        ArrayAdapter adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, members);
        ListView listView = (ListView)findViewById(R.id.MembersList);
        listView.setAdapter(adapter);


        redMasterButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                r = "部屋ID " + "red";
                TextView RoomIdText = findViewById(R.id.roomID);
                RoomIdText.setText(r);

                members.clear();
                members.add("マスターのRedさん");
                ListView listView = (ListView)findViewById(R.id.MembersList);

                listView.setAdapter(adapter);
            }
        });

        redSpyButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                r = "部屋ID " + "red";
                TextView RoomIdText = findViewById(R.id.roomID);
                RoomIdText.setText(r);

                members.add("スパイのRedさん");
                ListView listView = (ListView)findViewById(R.id.MembersList);
                listView.setAdapter(adapter);
            }
        });

        blueMasterButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                r = "部屋ID " + "blue";
                TextView RoomIdText = findViewById(R.id.roomID);
                RoomIdText.setText(r);

                members.add("マスターのBlueさん");
                listView.setBackgroundColor(Color.parseColor("#e83a48"));
                ListView listView = (ListView)findViewById(R.id.MembersList);
                listView.setAdapter(adapter);

            }
        });

        blueSpyButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                r = "部屋ID " + "red";
                TextView RoomIdText = findViewById(R.id.roomID);
                RoomIdText.setText(r);

                members.add("スパイのBlueさん");
                ListView listView = (ListView)findViewById(R.id.MembersList);
                listView.setBackgroundColor(Color.parseColor("#3a5fe8"));
                listView.setAdapter(adapter);
            }
        });

        randomButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                r = "部屋ID " + "random";
                TextView RoomIdText = findViewById(R.id.roomID);
                RoomIdText.setText(r);

                members.add("ランダムさん");
                ListView listView = (ListView)findViewById(R.id.MembersList);
                listView.setAdapter(adapter);

                Retrofit retrofit = new Retrofit.Builder()
                        .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/iris/")
                        .addConverterFactory(JacksonConverterFactory.create())
                        .build();
                final RoomsRest roomsRest = retrofit.create(RoomsRest.class);

            }
        });

        startButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                r = "部屋ID " + "start";
                TextView RoomIdText = findViewById(R.id.roomID);
                RoomIdText.setText(r);

                members.add("スタートさん");
                ListView listView = (ListView)findViewById(R.id.MembersList);
                listView.setAdapter(adapter);
            }
        });

        copyButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                r = "部屋ID " + "copy";
                TextView RoomIdText = findViewById(R.id.roomID);
                RoomIdText.setText(r);

                members.add("コピーしました");
                ListView listView = (ListView)findViewById(R.id.MembersList);
                listView.setAdapter(adapter);
            }
        });

        //--------------------------------------------------------------------------
        //メンバー表示

        //members.add("1さん");

        //---------------------------------------------------------------
        //settings情報
        String s = "設定\\nお絵描き";
        TextView settingsText = findViewById(R.id.settings);
        settingsText.setText(s);

        //---------------------------------------------------------------
        //部屋ID情報
        TextView RoomIdText = findViewById(R.id.roomID);
        RoomIdText.setText(r);

        //スタートボタンをクリックすると、(絵を描く?)次の画面に遷移
        Button nextButton = (Button)findViewById(R.id.start);
        nextButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
/*
                //ニックネームが入力されていない場合エラーメッセージを表示する
                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(OwnerRoomActivity.this,DrawingActivity.class);
                                startActivity(intent);
                            }

 /*                       }
                        //onFailureで失敗
                        public void onFailure(Call<RoomJson> call, Throwable t) {
                        }
                    });

                //}
            }
 */
        });



        roomViewModel.start(500);
    }

    /*private getMemberInformation(){

    }*/

    /*private void addMemberToMemberList(String m){
        members.add(m);
    }*/
}