diff --git a/app/src/main/java/org/ntlab/acanthus_client/entities/Position.java b/app/src/main/java/org/ntlab/acanthus_client/entities/Position.java index 7d254be..d30a3c1 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/entities/Position.java +++ b/app/src/main/java/org/ntlab/acanthus_client/entities/Position.java @@ -3,11 +3,13 @@ //----------------------------------------------------------------- // ペン座標 public class Position { + int i; private Float x; private Float y; //----------------------------------------------------------------- // getter + public int getI(){return this.i;}; public Float getX() { return this.x; } @@ -18,7 +20,8 @@ //----------------------------------------------------------------- // setter - public void setPosition(float x, float y) { + public void setPosition(int i, float x, float y) { + this.i = i; this.x = x; this.y = y; } diff --git a/app/src/main/java/org/ntlab/acanthus_client/resources/gallery/StrokesRest.java b/app/src/main/java/org/ntlab/acanthus_client/resources/gallery/StrokesRest.java index 41d2e3f..11f7b1a 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/resources/gallery/StrokesRest.java +++ b/app/src/main/java/org/ntlab/acanthus_client/resources/gallery/StrokesRest.java @@ -44,7 +44,7 @@ // @FormUrlEncoded @POST("gallery/{aid}/pageMap/0/layers/0/strokes/{strokeNo}/positions") - Call addPositions(@Path("aid") Integer aid, @Path("strokeNo") Integer strokeNo, + Call addPositions(@Field("positionNo") int i,@Path("aid") Integer aid, @Path("strokeNo") Integer strokeNo, @Field("x") double x, @Field("y") double y); //----------------------------------------------------------------- diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintCanvas.java b/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintCanvas.java index f93b07a..5195ce0 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintCanvas.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintCanvas.java @@ -42,6 +42,7 @@ private Paint paint2; private PaintViewModel paintViewModel; private ScheduledThreadPoolExecutor thread = new ScheduledThreadPoolExecutor(1); + private int localstrokeNo=0; //----------------------------------------------------------------- //----------------------------------------------------------------- public PaintCanvas(Context context, @Nullable AttributeSet attrs) { @@ -91,16 +92,18 @@ Log.d("motion", "+++++++++++++++++++++++++++++++++++++++down======================================================"); onTouched(x, y); paintViewModel.addLocalStrokeRequest(); + //paintViewModel.addPositionLocal(x, y); break; case MotionEvent.ACTION_MOVE: Log.d("motion", "move"); onTouchedMove(x, y); - paintViewModel.addPositionRequest(x, y); + paintViewModel.addPositionLocal(x, y); break; case MotionEvent.ACTION_UP: Log.d("motion", "=====================================up======================================================"); + paintViewModel.addPositionRequest(); break; } @@ -150,13 +153,13 @@ //描写するための取得 public void getCanvas() { - int cnt = 0; + int cnt = 1; path2.reset();//ここで一旦クリア for (Stroke s : paintViewModel.getStroke().getValue()) { for (Position p : s.getPositions()) { - if (cnt == 0) { + if (cnt == 1) { onTouched2(p.getX(), p.getY()); - } else { + } else if(cnt==p.getI()){ onTouchedMove2(p.getX(), p.getY()); } cnt++; diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintViewModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintViewModel.java index a279ac3..fd055b3 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintViewModel.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintViewModel.java @@ -1,5 +1,6 @@ package org.ntlab.acanthus_client.views.paint; +import android.util.Log; import android.view.MotionEvent; import androidx.lifecycle.LiveData; @@ -27,7 +28,12 @@ private MutableLiveData> mStrokes = new MutableLiveData<>(); private ScheduledThreadPoolExecutor thread = new ScheduledThreadPoolExecutor(1); - + private ArrayListpositionLocalx = new ArrayList<>(); + private ArrayListpositionLocaly = new ArrayList<>(); + private ArrayListlocalstrokeNo = new ArrayList<>(); + private ArrayListpositionLocalx2 = new ArrayList<>(); + private ArrayListpositionLocaly2 = new ArrayList<>(); + private ArrayListlocalstrokeNo2 = new ArrayList<>(); //----------------------------------------------------------------- // getter public MutableLiveData> getStroke() { @@ -70,8 +76,34 @@ paintModelContainer.getPaintConnectionModel().addLocalStroke(mStrokeNo); } - public void addPositionRequest(float x, float y) { - paintModelContainer.getPaintConnectionModel().addPosition(x, y, mStrokeNo); + public void addPositionLocal(float x , float y) { +// if(positionLocalx.size()==0) { + positionLocalx.add((double) x); + positionLocaly.add((double) y); + localstrokeNo.add(mStrokeNo.getValue()); + //}else{ +// positionLocalx2.add((double) x); +// positionLocaly2.add((double) y); +// localstrokeNo2.add(mStrokeNo.getValue()); + //} + } + public void addPositionRequest() { + // if(positionLocalx.size()!=0) { + for (int i = 0; i < positionLocalx.size(); i++) { + paintModelContainer.getPaintConnectionModel().addPosition(i, positionLocalx.get(i), positionLocaly.get(i),mStrokeNo.getValue()); + } + positionLocalx.clear(); + positionLocaly.clear(); + localstrokeNo.clear(); +// } +// if(positionLocalx2.size()!=0) { +// for (int i = 0; i < positionLocalx2.size(); i++) { +// paintModelContainer.getPaintConnectionModel().addPosition(i, positionLocalx2.get(i), positionLocaly2.get(i), localstrokeNo2.get(i)); +// } +// positionLocalx2.clear(); +// positionLocaly2.clear(); +// localstrokeNo2.clear(); +// } } //----------------------------------------------------------------- diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/paint/models/PaintConnectionModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/paint/models/PaintConnectionModel.java index 6d2efd9..61c754c 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/paint/models/PaintConnectionModel.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/paint/models/PaintConnectionModel.java @@ -89,14 +89,14 @@ //----------------------------------------------------------------- // ローカルでの筆跡追加(POST) - public void addPosition(float x, float y, LiveData currentStrokeNo) { + public void addPosition(int i ,double x, double y, int currentStrokeNo) { final StrokesRest strokesRest = retrofit.create(StrokesRest.class); - Log.d("strokeNo:", currentStrokeNo.getValue().toString()); + //Log.d("strokeNo:", currentStrokeNo); //----------------------------------------------------------------- // 座標追加 - Call call = strokesRest.addPositions(acanthus.getAid(), currentStrokeNo.getValue(), x, y); + Call call = strokesRest.addPositions(i,acanthus.getAid(), currentStrokeNo, x, y); call.enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { @@ -130,7 +130,7 @@ @Override public void onFailure(Call> call, Throwable t) { - + Log.d("a", "onFailure: "); } });