Merge branch 'master' of http://nitta-lab-www.is.konan-u.ac.jp/gitbucket/git/nitta-lab-2022/IrisClient into GameMemberActivity
commit 3485f6d81d65f5376ad46912f8a6550b975185fb
2 parents c89547f + 8375f4a
g-akagi authored on 18 Oct 2022
Showing 11 changed files
View
15
.idea/misc.xml
<option name="filePathToZoomLevelMap">
<map>
<entry key="..\:/Users/Nitta/AndroidStudioProjects/IrisClient/app/src/main/res/layout/activity_main.xml" value="0.20969202898550723" />
<entry key="..\:/Users/Nitta/StudioProjects/IrisClient/app/src/main/res/layout/activity_main.xml" value="0.266304347826087" />
<entry key="..\:/Users/Student/StudioProjects/IrisClient/app/src/main/res/layout/activity_create_room.xml" value="0.5067708333333333" />
<entry key="..\:/Users/Student/StudioProjects/IrisClient/app/src/main/res/layout/activity_enter_room.xml" value="0.24645390070921985" />
<entry key="..\:/Users/Student/StudioProjects/IrisClient/app/src/main/res/layout/activity_game_master.xml" value="0.3171875" />
<entry key="..\:/Users/Student/StudioProjects/IrisClient/app/src/main/res/layout/activity_game_player_list_fragment.xml" value="0.37395833333333334" />
<entry key="..\:/Users/Student/StudioProjects/IrisClient/app/src/main/res/layout/activity_master_game.xml" value="0.3171875" />
<entry key="..\:/Users/Student/StudioProjects/IrisClient/app/src/main/res/layout/activity_member_game.xml" value="0.4015625" />
<entry key="..\:/Users/Student/StudioProjects/IrisClient/app/src/main/res/layout/fragment_card_drawing.xml" value="0.4015625" />
<entry key="..\:/Users/Student/StudioProjects/IrisClient/app/src/main/res/layout/fragment_game_player_list.xml" value="0.4015625" />
<entry key="..\:/Users/student/Desktop/IrisClient/app/src/main/res/layout-land/activity_main.xml" value="0.1574074074074074" />
<entry key="..\:/Users/student/Desktop/IrisClient/app/src/main/res/layout/activity_create_room.xml" value="0.17571611799914494" />
<entry key="..\:/Users/student/Desktop/IrisClient/app/src/main/res/layout/activity_enter_room.xml" value="0.17571611799914494" />
<entry key="..\:/Users/student/Desktop/IrisClient/app/src/main/res/layout/activity_main.xml" value="0.1859375" />
<entry key="..\:/Users/student/Desktop/IrisClient/app/src/main/res/layout/activity_member_room.xml" value="0.25" />
<entry key="..\:/Users/student/Desktop/IrisClient/app/src/main/res/layout/activity_owner_room.xml" value="0.17571611799914494" />
<entry key="..\:/Users/student/Desktop/IrisClient/app/src/main/res/layout/fragment_first.xml" value="0.15433946130825138" />
<entry key="..\:/Users/student/Desktop/IrisClient/app/src/main/res/layout/recycler_view_item.xml" value="0.17571611799914494" />
<entry key="..\:/Users/student/StudioProjects/IrisClient/app/src/main/res/drawable/border.xml" value="0.275" />
<entry key="..\:/Users/student/StudioProjects/IrisClient/app/src/main/res/drawable/frame_style.xml" value="0.285" />
<entry key="..\:/Users/student/StudioProjects/IrisClient/app/src/main/res/layout-land/activity_main.xml" value="0.31040564373897706" />
<entry key="..\:/Users/student/StudioProjects/IrisClient/app/src/main/res/layout-sw600dp/activity_main.xml" value="0.2189207650273224" />
<entry key="..\:/Users/student/StudioProjects/IrisClient/app/src/main/res/layout/activity_create_room.xml" value="0.29030797101449274" />
<entry key="..\:/Users/student/StudioProjects/IrisClient/app/src/main/res/layout/activity_drawing.xml" value="0.36614583333333334" />
<entry key="..\:/Users/student/StudioProjects/IrisClient/app/src/main/res/layout/activity_drawing.xml" value="0.5" />
<entry key="..\:/Users/student/StudioProjects/IrisClient/app/src/main/res/layout/activity_enter_room.xml" value="0.2791666666666667" />
<entry key="..\:/Users/student/StudioProjects/IrisClient/app/src/main/res/layout/activity_game.xml" value="0.36614583333333334" />
<entry key="..\:/Users/student/StudioProjects/IrisClient/app/src/main/res/layout/activity_main.xml" value="0.29030797101449274" />
<entry key="..\:/Users/student/StudioProjects/IrisClient/app/src/main/res/layout/activity_member_room.xml" value="0.36614583333333334" />
<entry key="..\:/Users/student/StudioProjects/IrisClient/app/src/main/res/layout/activity_owner_room.xml" value="0.36614583333333334" />
<entry key="..\:/Users/student/StudioProjects/IrisClient/app/src/main/res/layout/fragment_card_drawing.xml" value="0.4981481481481482" />
<entry key="..\:/Users/student/StudioProjects/IrisClient/app/src/main/res/layout/frame_style.xml" value="0.2796875" />
<entry key="..\:/Users/student/StudioProjects/IrisClient/app/src/main/res/layout/recycler_view_item.xml" value="0.28072916666666664" />
<entry key="..\:/Users/totos/StudioProjects/IrisClient/app/src/main/res/layout/activity_drawing.xml" value="0.25" />
<entry key="..\:/Users/totos/StudioProjects/IrisClient/app/src/main/res/layout/activity_member_room.xml" value="0.33" />
</map>
</option>
View
1
■■■■
app/build.gradle
}
 
dependencies {
 
implementation 'androidx.compose.ui:ui-graphics:1.0.0-rc01'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
 
 
// 各 2021/11/23 時点の最新版
View
31
app/src/main/java/org/ntlab/irisclient/DrawingActivity.java
 
private DrawingCanvas drawingCanvas;
private DrawingStateViewModel drawingStateViewModel;
 
private List<String> keywordList;
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_drawing);
 
//drawingCanvas = (DrawingCanvas) findViewById(R.id.canvas);
 
//Irisから必要な情報を取得
Iris iris = (Iris) this.getApplication();
String rid = iris.getRid();
drawingStateViewModel.setRid(rid);
drawingStateViewModel.setNickName(nickName);
 
findViewById(R.id.okButtton).setOnClickListener(this);//お絵描き終了ボタン
findViewById(R.id.clearButton).setOnClickListener(this);//画面クリアボタン
findViewById(R.id.eraserButton).setOnClickListener(this);//消しゴムボタン
 
TextView textKeyword =(TextView)findViewById(R.id.textKeyword);//keywordのTextView
drawingCanvas = (DrawingCanvas) findViewById(R.id.drawingCanvas);
 
//getKeywords
//List<String> keywords = drawingStateViewModel.getKeywords(rid);
 
drawingStateViewModel.getKeywords().observe(this, new Observer<List<String>>(){
@Override
public void onChanged(List<String> keywords) {
keywordList = keywords;
}
});
 
//getDno
drawingStateViewModel.getDno().observe(this, new Observer<Integer>() {
@Override
public void onChanged(Integer dno) {
//String keyword = keywords.get(dno);
textKeyword.setText(""+dno);
String keyword = keywordList.get(dno);
textKeyword.setText("Dno: " + dno + ", Keyword: " + keyword);
}
});
 
//getState
startActivity(intent);
}
}
});
 
//getKeywordの呼び出し
drawingStateViewModel.init();
//タイマースタート呼び出し
drawingStateViewModel.start(500);
}
 
Bitmap bitmap = null;
drawingStateViewModel.putDrawing(bitmap);
}else if(v.getId() == R.id.clearButton){//clearButtonが押されたときの処理
drawingCanvas.clearCanvas();
}else if(v.getId() == R.id.eraserButton){//eraserButtonが押されたときの処理
drawingCanvas.eraserPaint();
}
}
 
}
View
12
app/src/main/java/org/ntlab/irisclient/DrawingCanvas.java
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
 
//1)コンストラクタ(≒必需品)
path = new Path();//線を引いたり、図形を描いたり、要するにグラフィック
 
paint = new Paint();//筆の種類
paint.setColor(Color.RED);//色の指定
paint.setColor(Color.BLACK);//色の指定
paint.setStyle(Paint.Style.STROKE);//線をひく
paint.setStrokeWidth(20);//幅
}
 
path.reset();
invalidate();
}
 
//消しゴム
public void eraserPaint(){
//paint = new Paint();
// Paint paint = new Paint();
// paint.setColor(Color.TRANSPARENT);
// paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
}
 
}
View
9
app/src/main/java/org/ntlab/irisclient/Iris.java
 
import android.app.Application;
import org.ntlab.irisclient.entities.RoomJson;
import org.ntlab.irisclient.models.Member;
 
import java.util.ArrayList;
import java.util.List;
 
 
public class Iris extends Application {
private String rid;
private String nickname;
private String team;
private boolean bMaster;
private List<Member> memberList = new ArrayList<>();
 
//----------------------------------------------------------
// getter
public String getRid() {
return this.rid;
 
public String getTeam() { return this.team; }
 
public boolean isMaster() { return this.bMaster; }
 
public List<Member> getMemberList() { return this.memberList; }
 
//----------------------------------------------------------
// setter
public void setRid(String rid) {
public void setTeam(String team) { this.team = team; }
 
public void setMaster(boolean master) { bMaster = master; }
 
public void setMemberList(List<Member> memberList) { this.memberList = memberList; }
 
}
View
6
app/src/main/java/org/ntlab/irisclient/entities/GameJson.java 100644 → 0
package org.ntlab.irisclient.entities;
 
public class GameJson {
 
}
View
97
app/src/main/java/org/ntlab/irisclient/viewmodels/DrawingStateViewModel.java
 
 
import android.graphics.Bitmap;
 
import org.ntlab.irisclient.models.DrawingState;
import org.ntlab.irisclient.models.Member;
import org.ntlab.irisclient.resources.DrawingRest;
import org.ntlab.irisclient.resources.RoomsRest;
 
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
 
import java.io.ByteArrayOutputStream;
 
import java.util.Base64;
import java.io.IOException;
import java.util.List;
 
import retrofit2.Retrofit;
import retrofit2.Call;
 
final private MutableLiveData<Integer> stateMutableLiveData=new MutableLiveData<>();
final private MutableLiveData<Integer> dnoMutableLiveData=new MutableLiveData<>();
final private MutableLiveData<String> drawingMutableLiveData = new MutableLiveData<>();
final private MutableLiveData<List<String>> keywordsMutableLiveData = new MutableLiveData<>();
 
final private Retrofit retrofit;
private Integer drawingStatePreData;
private Integer dnoPreData;
private Integer dnoPreData = null;
 
private String drawingPreData;
private String rid;
private String nickName;
private List<String> keywords;
 
//フィールド
public DrawingStateViewModel() {
this.retrofit = new Retrofit.Builder()
@Override
public void onResponse(Call<Integer> call, Response<Integer> response) {
if (response.isSuccessful()){
 
if(response.body().equals(dnoPreData)){
if(dnoPreData == null){
dnoMutableLiveData.setValue(response.body());
dnoPreData = response.body();
} else if(response.body().equals(dnoPreData)){
System.out.println("test");
//値が一緒なら書き換えない
}else{
} else {
//値が異なるときのみライブデータを上書き
dnoMutableLiveData.setValue(response.body());
dnoPreData = response.body();
}
}
});
}
 
public List<String> getKeywords(String rid){
return null;
 
 
public void updateKeywords(String rid){
final DrawingRest drawingRest = retrofit.create(DrawingRest.class);
Call<List<String>> keywordsCall = drawingRest.getKeywords(rid);
 
keywordsCall.enqueue(new Callback<List<String>>() {
@Override
public void onResponse(Call<List<String>> keywordsCall, Response<List<String>> response) {
if (response.isSuccessful()){
keywordsMutableLiveData.setValue(response.body());
}
}
 
@Override
public void onFailure(Call<List<String>> keywordsCall, Throwable t) {
}
});
 
}
 
 
// public LiveData<List<Member>> getMembers(String rid){
// RoomViewModel members = new RoomViewModel();
// return members.getMembersLiveData();
// }
 
public LiveData<List<String>> getKeywords(){
return this.keywordsMutableLiveData;
}
public LiveData<Integer> getDno(){
return this.dnoMutableLiveData;
}
 
public void setRid(String rid){
this.rid = rid;
}
 
public void setKeywords(List<String> keywords){
this.keywords = keywords;
}
public void setNickName(String nickName){
this.nickName = nickName;
}
 
public void init(){
updateKeywords(rid);
}
 
@Override
public void update() {
updateState(rid);
updateDno(rid, nickName);
//String encoded = encoder.encodeToString(string.getBytes());
//System.out.println(encoded);
 
final DrawingRest drawingRest = retrofit.create(DrawingRest.class);
int dno = dnoMutableLiveData.getValue();
Integer dno = dnoMutableLiveData.getValue();
Call<String> call = drawingRest.putDrawing(rid, dno, "iVBORw0KGgoAAAANSUhEUgAAAMgAAABkCAMAAAD0WI85AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3VpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDM1MiwgMjAyMC8wMS8zMC0xNTo1MDozOCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpiODViMDYzZC0yY2ZiLTRlMDUtYTA3YS04NTEzNDlkMDY5OTMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NkVDQTI3N0E3OTc4MTFFQUEyRkFCRDY5Q0FERDFGNzYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NkVDQTI3Nzk3OTc4MTFFQUEyRkFCRDY5Q0FERDFGNzYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjEgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NDQyNWVjOC04NzBjLTQzZTMtYmQ2MS1hMzI2MjJiNzlhNzgiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6Yjg1YjA2M2QtMmNmYi00ZTA1LWEwN2EtODUxMzQ5ZDA2OTkzIi8+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" );
 
call.enqueue(new Callback<String>() {
@Override
View
120
app/src/main/java/org/ntlab/irisclient/viewmodels/GameViewModel.java
package org.ntlab.irisclient.viewmodels;
 
import org.ntlab.irisclient.entities.TurnJson;
import org.ntlab.irisclient.models.Game;
import org.ntlab.irisclient.resources.GameRest;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
 
import java.util.List;
 
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
private String rid;
private int tno;
private String team;
private String hint;
private int max;
private Integer max;
private Integer openlist;
 
final private MutableLiveData<String> turnsMutableLiveData;
final private MutableLiveData<TurnJson> turnMutableLiveData;
//final private MutableLiveData GameState game;
final private MutableLiveData<List<String>> colorMutableLiveData;
final private MutableLiveData<List<Integer>> mapMutableLiveData;
final private Game game = new Game();
final private Retrofit retrofit;
 
//更新比較用フィールド
private String turnsPreData = null;
//コンストラクタ
public GameViewModel() {
this.turnsMutableLiveData = new MutableLiveData<>();
this.turnMutableLiveData = new MutableLiveData<>();
this.colorMutableLiveData = new MutableLiveData<>();
this.mapMutableLiveData = new MutableLiveData<>();
this.retrofit = new Retrofit.Builder()
.baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/iris/")
.addConverterFactory(JacksonConverterFactory.create())
.build();
}
public LiveData<TurnJson> getTurnLiveData() {
return this.turnMutableLiveData;
}
public Integer getTurnNumber(){
return tno;
}
// public Integer getTurnNumber(String rid) {
public LiveData<List<String>> getColorLiveData() {
return this.colorMutableLiveData;
}
public LiveData<List<Integer>> getMapLiveData() {
return this.mapMutableLiveData;
}
public void getGame() {
return;
}
// public Integer getTurnNumber(){
// return tno;
// }
 
//-----------------------------------------------------------------------------
// updates
public void init() {
updateColor(rid);
updateMap(rid);
}
@Override
public void update() {
updateTurns(rid);
updateTurn(rid);
}
});
}
 
 
 
//カードのカラー(r,b,g,d)の取得
public void updateColor(String rid) {
final GameRest gameRest = retrofit.create(GameRest.class);
Call<List<String>> call = gameRest.getColor(rid);
 
call.enqueue(new Callback<List<String>>() {
@Override
public void onResponse(Call<List<String>> call, Response<List<String>> response) {
if (response.isSuccessful()){
colorMutableLiveData.setValue(response.body());
}
}
 
@Override
public void onFailure(Call<List<String>> call, Throwable t) {
System.out.println("通信失敗:changeBelongsAndMaster");
System.out.println(t);
}
});
}
 
//カードの並び順の取得
public void updateMap(String rid) {
final GameRest gameRest = retrofit.create(GameRest.class);
Call<List<Integer>> call = gameRest.getMap(rid);
 
call.enqueue(new Callback<List<Integer>>() {
@Override
public void onResponse(Call<List<Integer>> call, Response<List<Integer>> response) {
if (response.isSuccessful()) {
mapMutableLiveData.setValue(response.body());
}
}
 
@Override
public void onFailure(Call<List<Integer>> call, Throwable t) {
System.out.println("通信失敗:changeBelongsAndMaster");
System.out.println(t);
}
});
}
 
}
View
app/src/main/java/org/ntlab/irisclient/viewmodels/RoomViewModel.java
View
app/src/main/res/drawable/border.xml 0 → 100644
View
app/src/main/res/layout/activity_drawing.xml