diff --git a/.idea/misc.xml b/.idea/misc.xml index 2091d3e..6ceea08 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -26,7 +26,7 @@ - + diff --git a/app/src/main/java/org/ntlab/irisclient/viewmodels/DrawingStateViewModel.java b/app/src/main/java/org/ntlab/irisclient/viewmodels/DrawingStateViewModel.java new file mode 100644 index 0000000..1fd4811 --- /dev/null +++ b/app/src/main/java/org/ntlab/irisclient/viewmodels/DrawingStateViewModel.java @@ -0,0 +1,103 @@ +package org.ntlab.irisclient.viewmodels; + +import org.ntlab.irisclient.models.DrawingState; +import org.ntlab.irisclient.resources.DrawingRest; +import org.ntlab.irisclient.resources.RoomsRest; + +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + +import java.util.List; + +import retrofit2.Retrofit; +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; +import retrofit2.converter.jackson.JacksonConverterFactory; + +public class DrawingStateViewModel extends ViewModel { + + final private MutableLiveData stateMutableLiveData=new MutableLiveData<>(); + final private MutableLiveData dnoMutableLiveData=new MutableLiveData<>(); + final private Retrofit retrofit; + + private Integer drawingStatePreData; + private Integer dnoPreData; + + //フィールド + public DrawingStateViewModel(MutableLiveData drawingStateMutableLiveData) { + this.retrofit = new Retrofit.Builder() + .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/iris/") + .addConverterFactory(JacksonConverterFactory.create()) + .build(); + } + + //ゲッター + public LiveData getDrawingStateLiveData(){ + return this.stateMutableLiveData; + } + + public void updateState(String rid) { + + final RoomsRest roomsRest = retrofit.create(RoomsRest.class); + final DrawingRest drawingRest = retrofit.create(DrawingRest.class); + Call call = roomsRest.getState(rid); + + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()){ + + if(response.body().equals(drawingStatePreData)){ + //値が一緒なら書き換えない + }else{ + //値が異なるときのみライブデータを上書き + stateMutableLiveData.setValue(response.body()); + drawingStatePreData = response.body(); + } + } + } + + @Override + public void onFailure(Call call, Throwable t) { + } + }); + } +// public void updateDno(String rid) { +// +// final RoomsRest roomsRest = retrofit.create(RoomsRest.class); +// final DrawingRest drawingRest = retrofit.create(DrawingRest.class); +// Call call = drawingRest.getDno(rid,nickname); +// +// call.enqueue(new Callback() { +// @Override +// public void onResponse(Call call, Response response) { +// if (response.isSuccessful()){ +// +// if(response.body().equals(drawingStatePreData)){ +// //値が一緒なら書き換えない +// }else{ +// //値が異なるときのみライブデータを上書き +// dnoMutableLiveData.setValue(response.body()); +// dnoPreData = response.body(); +// } +// } +// } +// +// @Override +// public void onFailure(Call call, Throwable t) { +// } +// }); +// } +public List getKeywords(String rid){ + return null; + } +public LiveData getDno(){ + return this.dnoMutableLiveData; + } +public LiveData getCno(){ + return this.stateMutableLiveData; + } + +}