diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 1248bb2..106a988 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -15,7 +15,6 @@ - diff --git a/app/src/main/java/org/ntlab/irisclient/models/Member.java b/app/src/main/java/org/ntlab/irisclient/models/Member.java new file mode 100644 index 0000000..00cd2a1 --- /dev/null +++ b/app/src/main/java/org/ntlab/irisclient/models/Member.java @@ -0,0 +1,34 @@ +package org.ntlab.irisclient.models; + +public class Member { + + private String nickname; + // belongs) r:赤チーム b:青チーム n:無所属 + private String belongs; + private boolean master; + + //----------------------------------------------------------------- + //コンストラクト + public Member(String nickname) { + this.nickname = nickname; + this.belongs = "n"; + this.master = false; + } + + //----------------------------------------------------------------- + // setter + public void setNickname(String nickname) {this.nickname = nickname;} + + public void setBelongs(String belongs) {this.belongs = belongs;} + + public void setMaster(boolean master) {this.master = master;} + + //----------------------------------------------------------------- + // getter + public String getNickname() {return this.nickname;} + + public String getBelongs() {return this.belongs;} + + public boolean isMaster() {return this.master;} + +} diff --git a/app/src/main/java/org/ntlab/irisclient/models/Room.java b/app/src/main/java/org/ntlab/irisclient/models/Room.java index 929b75b..ccd7b4a 100644 --- a/app/src/main/java/org/ntlab/irisclient/models/Room.java +++ b/app/src/main/java/org/ntlab/irisclient/models/Room.java @@ -1,4 +1,82 @@ package org.ntlab.irisclient.models; -public class Room { + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class Room { + + //フィールド + private String rid; + private String ownerName; + private Member redMaster; + private Member blueMaster; + private Map members= new HashMap<>(); + private Settings settings = new Settings(); + + //-------------------------------------------------------------- + /* public Room(String rid, String owner) { + this.rid = rid; + ownerName = owner; + }*/ + + //-------------------------------------------------------------- + //getter + public String getRid(){ + return rid; + } + + public String getOwnerName() { + return ownerName; + } + + public Member getRedMaster() { + return redMaster; + } + + public Member getBlueMaster() { + return blueMaster; + } + + public Member getMember(String nick) { + Member m = members.get(nick); + return m; + } + + public List getMembers() { + List memberslist = new ArrayList(members.values()) ; + return memberslist; + } + + public Settings getSettings() { + return settings; + } + + //-------------------------------------------------------------- + //setter + public void setOwnerName(String ownerName) { + this.ownerName = ownerName; + } + + public Member setMember(String nick) { + Member m = members.get(nick); + return m; + } + + public void setRedMaster(Member redMaster) { + this.redMaster = redMaster; + } + + public void setBlueMaster(Member blueMaster) { + this.blueMaster = blueMaster; + } + + public Settings setSettings() { + return settings; + } + + //-------------------------------------------------------------- + } diff --git a/app/src/main/java/org/ntlab/irisclient/models/Settings.java b/app/src/main/java/org/ntlab/irisclient/models/Settings.java new file mode 100644 index 0000000..407d419 --- /dev/null +++ b/app/src/main/java/org/ntlab/irisclient/models/Settings.java @@ -0,0 +1,64 @@ +package org.ntlab.irisclient.models; + +public class Settings { + + private boolean drawingTimer; + private int drawingTimerTimes; + private boolean gameTimer; + private int gameTimerTimes; + private int gameTimerFirstThinkingTimes; + + //-------------------------------------------------------------------- + //コンストラクタで初期値設定 + public Settings(){ + drawingTimer = false; + drawingTimerTimes = 50; + gameTimer = true; + gameTimerTimes = 30; + gameTimerFirstThinkingTimes = 10; + } + + //-------------------------------------------------------------------- + //setter & getter + public boolean isDrawingTimer() { + return drawingTimer; + } + + public void setDrawingTimer(boolean drawingTimer) { + this.drawingTimer = drawingTimer; + } + + public int getDrawingTimerTimes() { + return drawingTimerTimes; + } + + public void setDrawingTimerTimes(int drawingTimerTimes) { + this.drawingTimerTimes = drawingTimerTimes; + } + + public boolean isGameTimer() { + return gameTimer; + } + + public void setGameTimer(boolean gameTimer) { + this.gameTimer = gameTimer; + } + + public int getGameTimerTimes() { + return gameTimerTimes; + } + + public void setGameTimerTimes(int gameTimerTimes) { + this.gameTimerTimes = gameTimerTimes; + } + + public int getGameTimerFirstThinkingTimes() { + return gameTimerFirstThinkingTimes; + } + + public void setGameTimerFirstThinkingTimes(int gameTimerFirstThinkingTimes) { + this.gameTimerFirstThinkingTimes = gameTimerFirstThinkingTimes; + } + + +} diff --git a/app/src/main/java/org/ntlab/irisclient/viewmodels/RoomViewModel.java b/app/src/main/java/org/ntlab/irisclient/viewmodels/RoomViewModel.java index 5fd027f..7b924f7 100644 --- a/app/src/main/java/org/ntlab/irisclient/viewmodels/RoomViewModel.java +++ b/app/src/main/java/org/ntlab/irisclient/viewmodels/RoomViewModel.java @@ -1,8 +1,7 @@ package org.ntlab.irisclient.viewmodels; -import org.ntlab.irisclient.models.Room; - -import java.net.URI; +import org.ntlab.irisclient.entities.RoomJson; +import org.ntlab.irisclient.resources.RoomsRest; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; @@ -12,15 +11,15 @@ import retrofit2.Callback; import retrofit2.Response; import retrofit2.Retrofit; -import retrofit2.converter.moshi.MoshiConverterFactory; import retrofit2.converter.jackson.JacksonConverterFactory; public class RoomViewModel extends ViewModel { - private MutableLiveData roomMutableLiveData; + private MutableLiveData roomMutableLiveData; private Retrofit retrofit; //------------------------------------------------ + //コンストラクタ public RoomViewModel() { this.roomMutableLiveData = new MutableLiveData<>(); this.retrofit = new Retrofit.Builder() @@ -31,7 +30,50 @@ //----------------------------------------------------------------- // getter - public LiveData getLiveData() { + public LiveData getLiveData() { return this.roomMutableLiveData; } + + //----------------------------------------------------------------- + // updates + //メンバーの更新、設定情報の更新 + public void updateMembers(String rid) { + final RoomsRest roomsRest = retrofit.create(RoomsRest.class); + + Call call = roomsRest.getRoomMember(rid); + + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()){ + roomMutableLiveData.setValue(response.body()); + } + } + + @Override + public void onFailure(Call call, Throwable t) { + + } + }); + } + + public void updateSettings(String rid) { + final RoomsRest roomsRest = retrofit.create(RoomsRest.class); + + Call call = roomsRest.getSettings(rid); + + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()){ + roomMutableLiveData.setValue(response.body()); + } + } + + @Override + public void onFailure(Call call, Throwable t) { + + } + }); + } }