| |
---|
| | //フィールド |
---|
| | private String rid; |
---|
| | final private MutableLiveData<List<Member>> membersLiveData; |
---|
| | final private MutableLiveData<Settings> settingsMutableLiveData; |
---|
| | final private MutableLiveData<Integer> stateLiveData; |
---|
| | final private Retrofit retrofit; |
---|
| | |
---|
| | //更新比較用フィールド |
---|
| | private List<Member> membersPreData; |
---|
| |
---|
| | //コンストラクタ |
---|
| | 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()) |
---|
| | .build(); |
---|
| |
---|
| | } |
---|
| | public LiveData<Settings> getSettingsLiveData() { |
---|
| | return this.settingsMutableLiveData; |
---|
| | } |
---|
| | public LiveData<Integer> getStateLiveData() { |
---|
| | return this.stateLiveData; |
---|
| | } |
---|
| | |
---|
| | //----------------------------------------------------------------------------- |
---|
| | // updates |
---|
| | @Override |
---|
| | public void update(){ |
---|
| | updateMembers(rid); |
---|
| | updateSettings(rid); |
---|
| | updateState(rid); |
---|
| | } |
---|
| | |
---|
| | //部屋の情報の更新(RoomJson) |
---|
| | //部屋の情報の更新(List<Members>) |
---|
| | public void updateMembers(String rid) { |
---|
| | |
---|
| | final RoomsRest roomsRest = retrofit.create(RoomsRest.class); |
---|
| | Call<List<Member>> call = roomsRest.getRoomMember(rid); |
---|
| |
---|
| | public void onFailure(Call<Settings> call, Throwable t) { |
---|
| | } |
---|
| | }); |
---|
| | } |
---|
| | |
---|
| | //部屋の状態情報の更新(Integer) |
---|
| | public void updateState(String rid) { |
---|
| | final RoomsRest roomsRest = retrofit.create(RoomsRest.class); |
---|
| | Call<Integer> call = roomsRest.getState(rid); |
---|
| | |
---|
| | call.enqueue(new Callback<Integer>() { |
---|
| | @Override |
---|
| | public void onResponse(Call<Integer> call, Response<Integer> 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<Integer> call, Throwable t) { |
---|
| | } |
---|
| | }); |
---|
| | } |
---|
| | } |
---|
| | |
---|
| | |