diff --git a/app/src/main/java/org/ntlab/irisclient/MemberRoomActivity.java b/app/src/main/java/org/ntlab/irisclient/MemberRoomActivity.java index 76ef2a2..21a59d0 100644 --- a/app/src/main/java/org/ntlab/irisclient/MemberRoomActivity.java +++ b/app/src/main/java/org/ntlab/irisclient/MemberRoomActivity.java @@ -52,7 +52,17 @@ //myName = intentMain.getStringExtra("nickname"); //-------------------------------------------------------------------------- + //RoomViewModelへのアクセス + RoomViewModel roomViewModel = new ViewModelProvider(this).get(RoomViewModel.class); + //LiveData(List)への購読 + roomViewModel.getMembersLiveData().observe(this, new Observer>() { + private List members; + @Override + public void onChanged(List members) { + + } + }); //-------------------------------------------------------------------------- @@ -111,15 +121,7 @@ TextView RoomIdText = findViewById(R.id.roomID); RoomIdText.setText(roomId); - /*roomViewModel.getMembersLiveData().observe(this, new Observer>() { - private List members; - @Override - public void onChanged(List members) { - - } - }); - - roomViewModel.start(500);*/ + roomViewModel.start(500); } @@ -130,17 +132,6 @@ startObserve(); } - //----------------------------------------------------------------- - // VMの監視開始 - private void startObserve() { - roomViewModel = new ViewModelProvider(this).get(RoomViewModel.class); - roomViewModel.getRoomLiveData().observe(this, new Observer() { - @Override - public void onChanged(RoomJson roomData) { - //新しいroomDataの処理 - } - }); - }*/ /*private getMemberInformation(){ 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 4a4b954..fd2b837 100644 --- a/app/src/main/java/org/ntlab/irisclient/viewmodels/DrawingStateViewModel.java +++ b/app/src/main/java/org/ntlab/irisclient/viewmodels/DrawingStateViewModel.java @@ -80,7 +80,7 @@ public void onResponse(Call call, Response response) { if (response.isSuccessful()){ - if(response.body().equals(drawingStatePreData)){ + if(response.body().equals(dnoPreData)){ //値が一緒なら書き換えない }else{ //値が異なるときのみライブデータを上書き 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 47ccf45..f2ba744 100644 --- a/app/src/main/java/org/ntlab/irisclient/viewmodels/RoomViewModel.java +++ b/app/src/main/java/org/ntlab/irisclient/viewmodels/RoomViewModel.java @@ -23,6 +23,7 @@ private String rid; final private MutableLiveData> membersLiveData; final private MutableLiveData settingsMutableLiveData; + final private MutableLiveData stateLiveData; final private Retrofit retrofit; //更新比較用フィールド @@ -34,6 +35,7 @@ public RoomViewModel() { this.membersLiveData = new MutableLiveData<>(); this.settingsMutableLiveData = new MutableLiveData<>(); + this.stateLiveData = new MutableLiveData<>(); this.retrofit = new Retrofit.Builder() .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/iris/") .addConverterFactory(JacksonConverterFactory.create()) @@ -52,6 +54,9 @@ public LiveData getSettingsLiveData() { return this.settingsMutableLiveData; } + public LiveData getStateLiveData() { + return this.stateLiveData; + } //----------------------------------------------------------------------------- // updates @@ -59,9 +64,10 @@ public void update(){ updateMembers(rid); updateSettings(rid); + updateState(rid); } - //部屋の情報の更新(RoomJson) + //部屋の情報の更新(List) public void updateMembers(String rid) { final RoomsRest roomsRest = retrofit.create(RoomsRest.class); @@ -124,4 +130,34 @@ } }); } + + //部屋の状態情報の更新(Integer) + public void updateState(String rid) { + final RoomsRest roomsRest = retrofit.create(RoomsRest.class); + Call call = roomsRest.getState(rid); + + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()){ + + stateLiveData.setValue(response.body()); + + /* + if(response.body().equals(settingsPreData)){ + //値が一緒なら書き換えない + }else{ + //値が異なるときのみライブデータを上書き + settingsMutableLiveData.setValue(response.body()); + settingsPreData = response.body(); + }*/ + + } + } + + @Override + public void onFailure(Call call, Throwable t) { + } + }); + } }