diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f34e315..3adb7d5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -21,7 +21,8 @@ - + + addPositions(@Path("aid") Integer aid, @Path("strokeNo") Integer strokeNo, - @Field("x") Float x, @Field("y") Float y); + @Field("x") double x, @Field("y") double y); //----------------------------------------------------------------- } diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/login/LoginScreenViewModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/login/LoginScreenViewModel.java index 9ddd41d..9e78106 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/login/LoginScreenViewModel.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/login/LoginScreenViewModel.java @@ -49,7 +49,7 @@ String password = passwordForm.getText().toString(); // ログイン - Call call = loginRest.issueLoginToken(emailAddress, password); + Call call = loginRest.issueLoginToken(emailAddress,password); call.enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/paint/MyPaint.java b/app/src/main/java/org/ntlab/acanthus_client/views/paint/MyPaint.java index 193a253..7811213 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/paint/MyPaint.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/paint/MyPaint.java @@ -9,10 +9,23 @@ import android.view.MotionEvent; import android.view.View; +import org.ntlab.acanthus_client.Acanthus; +import org.ntlab.acanthus_client.resources.HelloWorldRest; +import org.ntlab.acanthus_client.resources.gallery.StrokesRest; + import java.util.ArrayList; import java.util.List; import androidx.annotation.Nullable; +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; + +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; +import retrofit2.Retrofit; +import retrofit2.converter.jackson.JacksonConverterFactory; +import retrofit2.converter.scalars.ScalarsConverterFactory; public class MyPaint extends View { @@ -20,6 +33,8 @@ private Paint paint; private ArrayList xlen = new ArrayList(); private ArrayList ylen = new ArrayList(); + private Acanthus acanthus; + private MutableLiveData strokeNo; public MyPaint(Context context, @Nullable AttributeSet attrs) { super(context, attrs); @@ -31,7 +46,8 @@ paint.setColor(Color.RED);//色の指定 paint.setStyle(Paint.Style.STROKE);//線をひく paint.setStrokeWidth(20);//幅 - + this.acanthus = new Acanthus(); + this.strokeNo = new MutableLiveData(); } //2)onDraw(描画の準備/プロペラが回りだした状態) @@ -39,7 +55,7 @@ @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); - canvas.drawPath(path,paint); + canvas.drawPath(path, paint); } @@ -54,13 +70,15 @@ ylen.add(y); //(3-2)タッチの処理 - switch (event.getAction()){ + switch (event.getAction()) { case MotionEvent.ACTION_DOWN: - path.moveTo(x,y); + path.moveTo(x, y); + addStrokes(getAcanthus()); invalidate(); break; case MotionEvent.ACTION_MOVE: - path.lineTo(x,y); + path.lineTo(x, y); + AddPositions(x, y, getStrokeNo()); invalidate(); break; case MotionEvent.ACTION_UP: @@ -73,10 +91,83 @@ //4)クリア処理 - public void clearCanvas(){ + public void clearCanvas() { System.out.println(xlen.toArray()); path.reset(); invalidate(); } + public void setAcanthus(Acanthus acanthus) { + this.acanthus = acanthus; + } + + public Acanthus getAcanthus() { + return acanthus; + } + + public MutableLiveData getStrokeNo() { + return strokeNo; + } + + public void setStrokeNo(int strokeNo) { + this.strokeNo.setValue(strokeNo); + } + + ////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////////////////// + //retrofit + public void AddPositions(double x, double y, MutableLiveData strokeno) { + Retrofit retrofit = new Retrofit.Builder() + .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/acanthus/") + .addConverterFactory(ScalarsConverterFactory.create()) + .addConverterFactory(JacksonConverterFactory.create()) + .build(); + final StrokesRest strokesRest = retrofit.create(StrokesRest.class); + Call call = strokesRest.addPositions(1111, strokeno.getValue(), x, y); + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()) { + System.out.println("success"); + } else { + System.out.println("false"); + } + } + + @Override + public void onFailure(Call call, Throwable t) { + //mText.setValue("みす helloworld"); + } + }); + + } + + public void addStrokes(Acanthus acanthus) { + Retrofit retrofit = new Retrofit.Builder() + .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/acanthus/") + .addConverterFactory(ScalarsConverterFactory.create()) + .addConverterFactory(JacksonConverterFactory.create()) + .build(); + final StrokesRest strokesRest = retrofit.create(StrokesRest.class); + Call call = strokesRest.addStroke(1111, acanthus.getPreferenceUid(), acanthus.getPreferenceToken(), 1, 1, 1); + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()) { + System.out.println("success"); + setStrokeNo(response.body().intValue()); + } else { + System.out.println("false"); + } + } + + @Override + public void onFailure(Call call, Throwable t) { + //mText.setValue("みす helloworld"); + } + }); + + } + + } \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintActivity.java b/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintActivity.java index fc4abe0..144fc8c 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintActivity.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintActivity.java @@ -5,6 +5,7 @@ import android.os.Bundle; import android.view.View; +import org.ntlab.acanthus_client.Acanthus; import org.ntlab.acanthus_client.R; public class PaintActivity extends AppCompatActivity { @@ -18,6 +19,8 @@ //6)描画のid取得 myPaint =(MyPaint) findViewById(R.id.myCanvas); + Acanthus acanthus = (Acanthus) getApplication(); + myPaint.setAcanthus(acanthus); } //5)クリアメソッド(4)呼び出し