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) { + } + }); } }