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 f311050..fc77782 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 @@ -2,7 +2,7 @@ //----------------------------------------------------------------- // ペン座標 -public class Position implements Comparable { +public class Position { private int i; private Float x; private Float y; @@ -31,15 +31,4 @@ //----------------------------------------------------------------- // - @Override - public int compareTo(Object o) { - if (o instanceof Position) { - if (i < ((Position) o).i) { - return -1; - } else if (i > ((Position) o).i) { - return 1; - } - } - return 0; - } } diff --git a/app/src/main/java/org/ntlab/acanthus_client/entities/Stroke.java b/app/src/main/java/org/ntlab/acanthus_client/entities/Stroke.java index da661cb..1d97c24 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/entities/Stroke.java +++ b/app/src/main/java/org/ntlab/acanthus_client/entities/Stroke.java @@ -1,6 +1,7 @@ package org.ntlab.acanthus_client.entities; import java.util.ArrayList; +import java.util.List; import java.util.SortedSet; import java.util.TreeSet; @@ -12,7 +13,7 @@ private int pen; private int color; private int thickness; - private SortedSet positions = new TreeSet<>(); + private List positions = new ArrayList<>(); public int getStrokeNo() { return this.strokeNo; @@ -26,7 +27,7 @@ public int getThickness() { return this.thickness; } - public SortedSet getPositions() { + public List getPositions() { return this.positions; } } 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 2fb1662..21252da 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 @@ -45,7 +45,7 @@ // @FormUrlEncoded @POST("gallery/{aid}/pageMap/{pid}/layers/0/strokes/{strokeNo}/positions") - Call addPositions(@Field("positionNo") int i, @Path("aid") Integer aid, + Call addPositions(@Field("positionNo") int i, @Path("aid") Integer aid, @Path("pid") int pid, @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 49cd83a..333bb02 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 @@ -17,6 +17,7 @@ import org.ntlab.acanthus_client.entities.Stroke; import java.io.ByteArrayOutputStream; +import java.util.ArrayList; import java.util.Base64; import java.util.Collection; import java.util.concurrent.ScheduledThreadPoolExecutor; @@ -35,6 +36,10 @@ private Paint paint; private Paint clonepaint; private Paint latestpaint; + private ArrayList paints= new ArrayList<>(); + private ArrayList paths= new ArrayList<>(); + private ArrayList clonepaints= new ArrayList<>(); + private ArrayList clonepaths= new ArrayList<>(); private PaintViewModel paintViewModel; private ScheduledThreadPoolExecutor thread = new ScheduledThreadPoolExecutor(1); private Canvas curCanvas; @@ -54,9 +59,13 @@ pen = new Pen(255,0,0,0,20); //pen =new Pen(Color.BLACK,20);//新しくPenクラスを作り色と幅の値を設定 path = new Path(); // 図形描画 + paths.add(path); + /// clonepath = new Path(); // 図形描画 latestpath = new Path(); // 図形描画 paint = new Paint();//筆の種類 + paints.add(paint); + /// clonepaint = new Paint();//筆の種類 latestpaint = new Paint();//筆の種類 paint.setColor(Color.argb(pen.getAlpha(),pen.getRed(),pen.getGreen(),pen.getBlue()));//色の指定 @@ -95,18 +104,21 @@ @Override protected void onDraw(Canvas canvas) { super.onDraw(curCanvas); - //canvas.setBitmap(image); - //curCanvas = canvas; -// paint.setColor(pen.getColor()); -// paint.setStrokeWidth(pen.getThickness()); + canvas.drawColor(0xFFFFFFFF); paint.setColor(Color.argb(pen.getAlpha(),pen.getRed(),pen.getGreen(),pen.getBlue())); paint.setStrokeWidth(pen.getThickness()); - canvas.drawPath(path, paint); - canvas.drawPath(clonepath, clonepaint); - canvas.drawPath(latestpath,latestpaint); - curCanvas.drawPath(path, paint); - curCanvas.drawPath(clonepath, clonepaint); - curCanvas.drawPath(latestpath,latestpaint); + for(int i=0; i< paths.toArray().length ; i++){ + if(paths.toArray().length positions){ 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 f9c4e99..52124ec 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 @@ -88,8 +88,8 @@ //----------------------------------------------------------------- // 描画APIの通信リクエスト - public void addLocalStrokeRequest(float x, float y) { - paintModelContainer.getPaintConnectionModel().addLocalStroke(strokeNo); + public void addLocalStrokeRequest(float x, float y , int color,int shick) { + paintModelContainer.getPaintConnectionModel().addLocalStroke(strokeNo,color,shick); fsx = x; fsy = y; cnt = 1; 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 3e06146..cd68e96 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 @@ -1,5 +1,6 @@ package org.ntlab.acanthus_client.views.paint.models; +import android.graphics.Color; import android.util.Log; import android.view.VelocityTracker; @@ -61,7 +62,7 @@ //----------------------------------------------------------------- // ローカルでのストロークの追加(POST) - public void addLocalStroke(int mStrokeNo) { + public void addLocalStroke(int mStrokeNo,int color,int shick) { final StrokesRest strokesRest = retrofit.create(StrokesRest.class); Log.d("strokeNo:", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^add----------------------"); @@ -69,7 +70,7 @@ // ストローク追加API Call call = strokesRest.addStroke( acanthus.getAid(), acanthus.getEditingPageId(), 0, acanthus.getPreferenceUid(),mStrokeNo, acanthus.getPreferenceToken(), - 0, 0, 10); + 0, color, shick); // strokeNoを更新 call.enqueue(new Callback() { @@ -96,15 +97,15 @@ //----------------------------------------------------------------- // 座標追加 - Call call = strokesRest.addPositions(i, acanthus.getAid(), acanthus.getEditingPageId(), currentStrokeNo, x, y); - call.enqueue(new Callback() { + Call call = strokesRest.addPositions(i, acanthus.getAid(), acanthus.getEditingPageId(), currentStrokeNo, x, y); + call.enqueue(new Callback() { @Override - public void onResponse(Call call, Response response) { - + public void onResponse(Call call, Response response) { + Log.d("POSTsuccess: ", "i:" + i + ",x:" + x + ",y:" + y); } @Override - public void onFailure(Call call, Throwable t) { + public void onFailure(Call call, Throwable t) { Log.d("POSTonFailure: ", "i:" + i + ",x:" + x + ",y:" + y); } });