- package org.ntlab.irisclient;
-
- import android.content.ClipData;
- import android.content.ClipDescription;
- import android.content.ClipboardManager;
- import android.content.Intent;
- import android.graphics.Color;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.ArrayAdapter;
- import android.widget.BaseAdapter;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.ImageButton;
- import android.widget.ListView;
- import android.widget.TextView;
-
- import com.google.android.material.snackbar.Snackbar;
-
- 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 {
-
- //フィールド
- ArrayList<String> viewMembers = new ArrayList<>();
- ArrayList<String> oldMembers = new ArrayList<>();
- List<Member> gMembers = new ArrayList<>();
- String roomId = "null";
- String myName = "null";
- //String nickname;
- String belongs;
- Boolean isMaster;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_owner_room);
-
- myName = ((Iris) getApplication()).getNickname();
- roomId = ((Iris) getApplication()).getRid();
-
- //自分のなまえ
- //Intent intentMain = getIntent();
- //myName = intentMain.getStringExtra("nickname");
-
- //--------------------------------------------------------------------------
- //メンバー表示
- Member mn = new Member(myName);
- mn.setBelongs("g");
- mn.setMaster(false);
-
- viewMembers.add(mn.getNickname());
-
- //RoomViewModelへのアクセス
- RoomViewModel roomViewModel = new ViewModelProvider(this).get(RoomViewModel.class);
-
- roomViewModel.setRid(roomId);
-
- ListView membersList = (ListView) findViewById(R.id.MembersList);
-
- BaseAdapter adapter = new MemberListAdapter(this.getApplicationContext(), R.layout.member_list_layout, viewMembers, gMembers);
- membersList.setAdapter(adapter);
-
- //LiveData(List<Member>)への購読
- roomViewModel.getMembersLiveData().observe(this, new Observer<List<Member>>() {
- private List<Member> members;
- @Override
- public void onChanged(List<Member> irisMembers) {
-
- viewMembers.clear();
- irisMembers.forEach(m -> viewMembers.add(m.getNickname()));
- gMembers = irisMembers;
-
- BaseAdapter adapter = new MemberListAdapter(getApplicationContext(), R.layout.member_list_layout, viewMembers, gMembers);
- membersList.setAdapter(adapter);
-
- }
- });
-
-
- //各ボタン処理
- 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);
- ImageButton copyButton = (ImageButton) findViewById(R.id.copyButton);
-
- //OwnerRoom専用ボタン
- Button randomButton = (Button) findViewById(R.id.random);
- Button startButton = (Button) findViewById(R.id.start);
-
-
-
- //チームと役職の変更
- //赤チーム・スパイマスター
- redMasterButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- roomViewModel.changeBelongsAndMaster(roomId, myName,"r",true);
- }
- });
-
- //赤チーム・諜報員
- redSpyButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- roomViewModel.changeBelongsAndMaster(roomId, myName,"r",false);
- }
- });
-
- //青チーム・スパイマスター
- blueMasterButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- roomViewModel.changeBelongsAndMaster(roomId, myName,"b",true);
- }
- });
-
- //青チーム・諜報員
- blueSpyButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- roomViewModel.changeBelongsAndMaster(roomId, myName,"b",false);
- }
- });
-
- //コピーボタン
- copyButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Snackbar.make(v, "コピーしました", Snackbar.LENGTH_LONG).show();
- CopyClipBoard();
- CreateCommonIntent();
- }
- });
-
- //ランダムボタン
- randomButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- roomViewModel.randomTeam(roomId,myName);
- }
- });
-
- //スタートボタン
- startButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- roomViewModel.startDrawing(roomId, myName);
-
- Intent intent = new Intent(OwnerRoomActivity.this,DrawingActivity.class);
- startActivity(intent);
-
- }
- });
-
- //---------------------------------------------------------------
- //settings情報
- String s = "設定\\nお絵描き";
- TextView settingsText = findViewById(R.id.settings);
- settingsText.setText(s);
-
- //---------------------------------------------------------------
- //部屋ID情報
- TextView RoomIdText = findViewById(R.id.roomID);
- RoomIdText.setText(roomId);
-
-
-
-
- roomViewModel.start(500,(Iris)getApplication());
- }
-
- public void CopyClipBoard() {
- String copyText = roomId; // 作成したレース結果を取得
-
- // クリップボードへの格納成功時は成功メッセージをトーストで表示
- boolean result = SetClipData(copyText);
- if(result) {
-
- } else {
-
- }
- }
-
- private boolean SetClipData(String copyText) {
- try {
- //クリップボードに格納するItemを作成
- ClipData.Item item = new ClipData.Item(copyText);
-
- //MIMETYPEの作成
- String[] mimeType = new String[1];
- mimeType[0] = ClipDescription.MIMETYPE_TEXT_URILIST;
-
- //クリップボードに格納するClipDataオブジェクトの作成
- ClipData cd = new ClipData(new ClipDescription("text_data", mimeType), item);
-
- //クリップボードにデータを格納
- ClipboardManager cm = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
- cm.setPrimaryClip(cd);
- return true;
- } catch (Exception e) {
- return false;
- }
- }
-
- private void CreateCommonIntent() {
- //システムのクリップボードを取得
- ClipboardManager cm = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
-
- //クリップボードからClipDataを取得
- ClipData cd = cm.getPrimaryClip();
-
- if(cd != null) { // クリップボードにコピーがある場合
- ClipData.Item item = cd.getItemAt(0);
- Intent sendIntent =new Intent();
- sendIntent.setAction(Intent.ACTION_SEND);
- sendIntent.setType("text/plain");
- sendIntent.putExtra(sendIntent.EXTRA_TEXT, item.getText()); // メモ帳のテキスト欄、メールアプリの本文にテキストをセット
- startActivity(sendIntent); // 共有メニューを開く
- }
- }
-
- }