diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 70f4513..8a2cfbd 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -23,7 +23,8 @@ android:exported="false" /> + android:exported="false" + android:screenOrientation="landscape"/> call, Response response) { if (response.isSuccessful()) { //ridとnicknameをIrisへ - /*String rid = response.body().getRid(); + String rid = response.body().getRid(); ((Iris) getApplication()).setRid(rid); - ((Iris) getApplication()).setNickname(nickname);*/ + ((Iris) getApplication()).setNickname(nickname); //次の画面へ遷移 Intent intent = new Intent(CreateRoomActivity.this,OwnerRoomActivity.class); + intent.putExtra("nickname", nickname); startActivity(intent); } } diff --git a/app/src/main/java/org/ntlab/irisclient/DrawingActivity.java b/app/src/main/java/org/ntlab/irisclient/DrawingActivity.java index c1cf82d..faeaa29 100644 --- a/app/src/main/java/org/ntlab/irisclient/DrawingActivity.java +++ b/app/src/main/java/org/ntlab/irisclient/DrawingActivity.java @@ -17,17 +17,19 @@ private DrawingCanvas drawingCanvas; private DrawingStateViewModel drawingStateViewModel; + private String rid; + private Integer nowDno; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_drawing); - // drawingCanvas = (DrawingCanvas) findViewById(R.id.canvas); + //drawingCanvas = (DrawingCanvas) findViewById(R.id.canvas); //Irisから必要な情報を取得 Iris iris = (Iris) this.getApplication(); - String rid = iris.getRid(); + rid = iris.getRid(); String nickName = iris.getNickname(); drawingStateViewModel= new ViewModelProvider(this).get(DrawingStateViewModel.class); @@ -46,7 +48,8 @@ @Override public void onChanged(Integer dno) { //String keyword = keywords.get(dno); - //textKeyword.setText(keyword); + nowDno = dno; + textKeyword.setText(dno); } }); @@ -58,6 +61,7 @@ Intent intent = new Intent(DrawingActivity.this, GameMemberActivity.class); startActivity(intent); } + }); //タイマースタート呼び出し drawingStateViewModel.start(500); @@ -66,7 +70,8 @@ @Override public void onClick(View v){ if(v.getId() == R.id.okButtton) {//okButtonが押されたときの処理 - drawingStateViewModel.putDrawing(); + String drawingStr = "test"; + drawingStateViewModel.putDrawing(rid, nowDno, drawingStr); }else if(v.getId() == R.id.clearButton){//clearButtonが押されたときの処理 drawingCanvas.clearCanvas(); } diff --git a/app/src/main/java/org/ntlab/irisclient/MemberRoomActivity.java b/app/src/main/java/org/ntlab/irisclient/MemberRoomActivity.java index 90383d1..2ea9bba 100644 --- a/app/src/main/java/org/ntlab/irisclient/MemberRoomActivity.java +++ b/app/src/main/java/org/ntlab/irisclient/MemberRoomActivity.java @@ -57,6 +57,7 @@ roomViewModel.setRid(roomId); + //LiveData(List)への購読 roomViewModel.getMembersLiveData().observe(this, new Observer>() { private List members; diff --git a/app/src/main/java/org/ntlab/irisclient/OwnerRoomActivity.java b/app/src/main/java/org/ntlab/irisclient/OwnerRoomActivity.java index 46d8a8b..4f24299 100644 --- a/app/src/main/java/org/ntlab/irisclient/OwnerRoomActivity.java +++ b/app/src/main/java/org/ntlab/irisclient/OwnerRoomActivity.java @@ -5,6 +5,7 @@ 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; @@ -33,15 +34,36 @@ public class OwnerRoomActivity extends AppCompatActivity { //フィールド - String r = "部屋ID " + "123456"; + ArrayList members = new ArrayList<>(); + String r;// = "部屋ID " + "123456"; + String nickname; + String myName = "null"; @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(); + ((Iris) getApplication()).getNickname(); //nickname = "aaa"; + ((Iris) getApplication()).getRid(); //r ="276393b5-d835-4e4c-a35b-c00996c73a2b"; + + //--------------------------------------------------------------------------- + //メンバーリスト + ListView membersList = (ListView) findViewById(R.id.MembersList); + BaseAdapter adapter = new MemberListAdapter(this.getApplicationContext(), R.layout.member_list_layout, members); + membersList.setAdapter(adapter); + + //自分のなまえ + Intent intentMain = getIntent(); + myName = intentMain.getStringExtra("nickname"); + + Member mn = new Member(myName); + mn.setBelongs("g"); + mn.setMaster(false); + + members.add(mn.getNickname()); + + //RoomViewModelへのアクセス RoomViewModel roomViewModel = new ViewModelProvider(this).get(RoomViewModel.class); @@ -66,12 +88,6 @@ 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 @@ -108,11 +124,6 @@ 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); - } }); @@ -153,13 +164,11 @@ startButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - r = "部屋ID " + "start"; - TextView RoomIdText = findViewById(R.id.roomID); - RoomIdText.setText(r); + roomViewModel.startDrawing(r, nickname); - members.add("スタートさん"); - ListView listView = (ListView)findViewById(R.id.MembersList); - listView.setAdapter(adapter); + Intent intent = new Intent(OwnerRoomActivity.this,DrawingActivity.class); + startActivity(intent); + } }); @@ -192,46 +201,6 @@ 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 call = roomRest.makeRooms(nickname); - call.enqueue(new Callback() { - //onResponseで成功 - public void onResponse(Call call, Response 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 call, Throwable t) { - } - }); - - //} - } - */ - }); @@ -245,4 +214,4 @@ /*private void addMemberToMemberList(String m){ members.add(m); }*/ -} \ No newline at end of file + } \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/irisclient/entities/TurnJson.java b/app/src/main/java/org/ntlab/irisclient/entities/TurnJson.java index d96fc70..5d2d037 100644 --- a/app/src/main/java/org/ntlab/irisclient/entities/TurnJson.java +++ b/app/src/main/java/org/ntlab/irisclient/entities/TurnJson.java @@ -1,5 +1,7 @@ package org.ntlab.irisclient.entities; +import org.ntlab.irisclient.models.Cell; + import java.util.ArrayList; import java.util.List; @@ -8,7 +10,7 @@ private String hint; private String team; private int max; - //private List openlist = new ArrayList<>(); + private List openlist = new ArrayList<>(); //コンストラクタ public TurnJson() { @@ -29,7 +31,7 @@ return max; } - //public List getOpenListAll() {return openlist;} //リストそのものを返す。 + public List getOpenListAll() {return openlist;} //リストそのものを返す。 //--------------------------------------------------------- //セッター @@ -48,7 +50,7 @@ //--------------------------------------------------------- //openlist操作 -/* + public Cell getOpenListSolo(int num){return openlist.get(num);} public void addOpenList(Cell card){openlist.add(card);} @@ -56,5 +58,5 @@ public void delieteOpenList(int num){openlist.remove(num);} public int sizeOpenList(){return openlist.size();} -*/ + } diff --git a/app/src/main/java/org/ntlab/irisclient/models/Cell.java b/app/src/main/java/org/ntlab/irisclient/models/Cell.java new file mode 100644 index 0000000..418d6af --- /dev/null +++ b/app/src/main/java/org/ntlab/irisclient/models/Cell.java @@ -0,0 +1,34 @@ +package org.ntlab.irisclient.models; + + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class Cell { + + private boolean isOpen; + + public String color; + + public int dno; + + public int cno; + + //setter + public void setIsOpen(boolean isOpen) {this.isOpen = isOpen;} + + public void setColor(String color) {this.color = color;} + + public void setDno(int dno) {this.dno = dno;} + + public void setCno(int cno) {this.cno = cno;} + + //getter + public boolean getIsOpen() {return this.isOpen;} + + public String getColor() {return this.color;} + + public int getDno() {return this.dno;} + + public int getCno() {return this.cno;} + +} diff --git a/app/src/main/java/org/ntlab/irisclient/viewmodels/DrawingStateViewModel.java b/app/src/main/java/org/ntlab/irisclient/viewmodels/DrawingStateViewModel.java index 64d51ea..a9a6df6 100644 --- a/app/src/main/java/org/ntlab/irisclient/viewmodels/DrawingStateViewModel.java +++ b/app/src/main/java/org/ntlab/irisclient/viewmodels/DrawingStateViewModel.java @@ -25,9 +25,12 @@ final private MutableLiveData stateMutableLiveData=new MutableLiveData<>(); final private MutableLiveData dnoMutableLiveData=new MutableLiveData<>(); + final private MutableLiveData drawingMutableLiveData = new MutableLiveData<>(); + final private Retrofit retrofit; private Integer drawingStatePreData; private Integer dnoPreData; + private String drawingPreData; private String rid; private String nickName; @@ -118,13 +121,39 @@ updateState(rid); updateDno(rid, nickName); } - public String putDrawing(/*Bitmap image*/){ -// ByteArrayOutputStream stream = new ByteArrayOutputStream(); -// image.compress(Bitmap.CompressFormat.PNG, 100, stream); -// byte[] byteArray = stream.toByteArray(); - String string = "sample"; - Base64.Encoder encoder = Base64.getEncoder(); - String encoded = encoder.encodeToString(string.getBytes()); - return encoded; + + public void putDrawing(/*Bitmap image*/String rid , int dno, String drawingStr) { + + final DrawingRest drawingRest = retrofit.create(DrawingRest.class); +// LiveData dno = getDno(); + Call call = drawingRest.putDrawing(rid, dno, drawingStr ); + + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + //ByteArrayOutputStream stream = new ByteArrayOutputStream(); + //image.compress(Bitmap.CompressFormat.PNG, 100, stream); + //byte[] byteArray = stream.toByteArray(); + String string = "sample"; + Base64.Encoder encoder = Base64.getEncoder(); + String encoded = encoder.encodeToString(string.getBytes()); + drawingMutableLiveData.setValue(encoded); + System.out.println(encoded); + if (response.isSuccessful()){ + if(response.body().equals(drawingPreData)){ + //値が一緒なら書き換えない + }else{ + //値が異なるときのみライブデータを上書き +// keywordsMutableLiveData.setValue(encoded); +// System.out.println(encoded); + drawingPreData = response.body(); + } + } + } + + @Override + public void onFailure(Call call, Throwable t) { + } + }); } }