コードの見やすさを改善しました。 #221

Merged n-hirase merged 1 commit into nitta-lab-2022:master from nitta-lab-2022:impro1027 on 27 Oct 2022
Showing 3 changed files
View
27
app/src/main/java/org/ntlab/irisclient/MemberListAdapter.java
}
private LayoutInflater inflater;
private final int itemLayoutId;
private final List<String> memberList;
private final List<Member> dcList;
private final List<Member> allList;
private List<Integer> redTeam = new ArrayList<>();
private List<Integer> blueTeam = new ArrayList<>();
private List<Integer> grayTeam = new ArrayList<>();
private List<Integer> masterTeam = new ArrayList<>();
final int blueColor = Color.rgb(70, 70, 255);
final int grayColor = Color.rgb(172, 172, 172);
 
public MemberListAdapter(Context context, int itemLayoutId,
List<String> members, List<Member> mn) {
List<String> members, List<Member> mm) {
super(context, 0);
this.inflater = (LayoutInflater) context.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
this.inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.itemLayoutId = itemLayoutId;
this.memberList = members;
this.dcList = mn;
this.allList = mm;
 
}
 
@Override
blueTeam.clear();
grayTeam.clear();
masterTeam.clear();
spyTeam.clear();
for(int i = 0 ; i < dcList.size();i++){
if(dcList.get(i).getBelongs().equals("r")) {
for(int i = 0 ; i < allList.size();i++){
if(allList.get(i).getBelongs().equals("r")) {
redTeam.add(i);
}else if(dcList.get(i).getBelongs().equals("b")) {
}else if(allList.get(i).getBelongs().equals("b")) {
blueTeam.add(i);
}else{
grayTeam.add(i);
}
}
 
 
holder.imageView.setVisibility(View.GONE);
for(int i = 0 ; i < dcList.size();i++){
if(dcList.get(i).getMaster()) {
for(int i = 0 ; i < allList.size();i++){
if(allList.get(i).getMaster()) {
masterTeam.add(i);
}else{
spyTeam.add(i);
}
// 現在の position にあるファイル名リストを holder の textView にセット
holder.textView.setText(memberList.get(position));
 
return convertView;
/*
View root = mLayoutInflater.inflate(R.layout.activity_member_room, null);
 
String item = getItem(position);
 
root.setBackgroundColor(redColor);
*/
 
}
 
@Override
View
36
app/src/main/java/org/ntlab/irisclient/MemberRoomActivity.java
 
 
public class MemberRoomActivity extends AppCompatActivity {
 
//RoomViewModel roomViewModel = new ViewModelProvider(this).get(RoomViewModel.class);
 
//フィールド
ArrayList<String> viewMembers = new ArrayList<>();
ArrayList<String> oldMembers = new ArrayList<>();
List<Member> gMembers = new ArrayList<>();
List<Member> allMembers = new ArrayList<>();
String roomId = "null";
String myName = "null";
 
 
roomViewModel.setRid(roomId);
 
ListView membersList = (ListView) findViewById(R.id.MembersList);
 
BaseAdapter adapter = new MemberListAdapter(this.getApplicationContext(), R.layout.member_list_layout, viewMembers, gMembers);
BaseAdapter adapter = new MemberListAdapter(this.getApplicationContext(), R.layout.member_list_layout, viewMembers, allMembers);
membersList.setAdapter(adapter);
 
//LiveData(List<Member>)への購読
roomViewModel.getMembersLiveData().observe(this, new Observer<List<Member>>() {
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);
allMembers = irisMembers;
 
BaseAdapter adapter = new MemberListAdapter(getApplicationContext(), R.layout.member_list_layout, viewMembers, allMembers);
membersList.setAdapter(adapter);
 
}
 
roomViewModel.changeBelongsAndMaster(roomId, myName,"b",false);
}
});
 
//roomIDをクリップボードにコピー、他アプリに共有
copyButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CopyClipBoard();
Snackbar.make(v, "コピーしました", Snackbar.LENGTH_LONG).show();
}
});
 
//部屋の退出、最初の画面(ホーム)に戻る
homeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
 
roomViewModel.start(500,(Iris)getApplication());
 
}
 
//---------------------------------------------------------------
//roomIDのテキストをコピーする処理
public void CopyClipBoard() {
String copyText = roomId; // 作成したレース結果を取得
 
// クリップボードへの格納成功時は成功メッセージをトーストで表示
String copyText = roomId; // 生成されたroomIDを取得
 
boolean result = SetClipData(copyText);
if(result) {
 
} else {
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()); // メモ帳のテキスト欄、メールアプリの本文にテキストをセット
sendIntent.putExtra(sendIntent.EXTRA_TEXT, item.getText()); // 他アプリのテキストをセット
startActivity(sendIntent); // 共有メニューを開く
}
}
 
//---------------------------------------------------------------
 
//---------------------------------------------------------------
//ホームボタンを押したときの処理
private void homeButton(RoomViewModel roomViewModel){
String strTitle = "ホーム画面に戻ってよろしいですか?";
String strMessage = "退出することになりますよ";
 
AlertDialog.Builder builder;
builder = new AlertDialog.Builder(this);
builder.setMessage(strMessage);
builder.setTitle(strTitle);
builder.setPositiveButton("ok", new DialogInterface.OnClickListener() {
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
roomViewModel.deleteMember(roomId , myName);
Intent intent = new Intent(MemberRoomActivity.this,MainActivity.class);
builder.create();
builder.show();
}
 
//---------------------------------------------------------------
//オーナーが部屋を退出し、強制的に部屋が削除される処理
private void roomDeleted(RoomViewModel roomViewModel){
String strTitle = "オーナーが退出しました";
String strMessage = "強制的に部屋を削除します";
 
View
16
app/src/main/java/org/ntlab/irisclient/OwnerRoomActivity.java
 
//フィールド
ArrayList<String> viewMembers = new ArrayList<>();
ArrayList<String> oldMembers = new ArrayList<>();
List<Member> gMembers = new ArrayList<>();
List<Member> allMembers = new ArrayList<>();
String roomId = "null";
String myName = "null";
//String nickname;
String belongs;
roomViewModel.setRid(roomId);
 
ListView membersList = (ListView) findViewById(R.id.MembersList);
 
BaseAdapter adapter = new MemberListAdapter(this.getApplicationContext(), R.layout.member_list_layout, viewMembers, gMembers);
BaseAdapter adapter = new MemberListAdapter(this.getApplicationContext(), R.layout.member_list_layout, viewMembers, allMembers);
membersList.setAdapter(adapter);
 
//LiveData(List<Member>)への購読
roomViewModel.getMembersLiveData().observe(this, new Observer<List<Member>>() {
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);
allMembers = irisMembers;
 
BaseAdapter adapter = new MemberListAdapter(getApplicationContext(), R.layout.member_list_layout, viewMembers, allMembers);
membersList.setAdapter(adapter);
 
}
});
});
 
//---------------------------------------------------------------
//settings情報
String s = "設定\\nお絵描き";
String s = "設定";
TextView settingsText = findViewById(R.id.settings);
settingsText.setText(s);
 
//---------------------------------------------------------------
 
//クリップボードからClipDataを取得
ClipData cd = cm.getPrimaryClip();
 
if(cd != null) { // クリップボードにコピーがある場合
if(cd != null) {
// クリップボードにコピーがある場合
ClipData.Item item = cd.getItemAt(0);
Intent sendIntent =new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.setType("text/plain");