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 a1032b0..e65b460 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 @@ -33,13 +33,13 @@ //----------------------------------------------------------------- // - @GET("gallery/{aid}/pageMap/0/layers/0/strokes/{strokeNo}/position") + @GET("gallery/{aid}/pageMap/0/layers/0/strokes/{strokeNo}/positions") Call> getPositions(@Path("aid") Integer aid, @Path("strokeNo") Integer strokeNo); //----------------------------------------------------------------- // @FormUrlEncoded - @POST("gallery/{aid}/pageMap/0/layers/0/strokes/{strokeNo}/position") + @POST("gallery/{aid}/pageMap/0/layers/0/strokes/{strokeNo}/positions") Call addPositions(@Path("aid") Integer aid, @Path("strokeNo") Integer strokeNo, @Field("x") double x, @Field("y") double y); @@ -50,7 +50,7 @@ //----------------------------------------------------------------- // - @GET("gallery/{aid}/pageMap/0/layers/0/strokes/{strokeNo}/position") + @GET("gallery/{aid}/pageMap/0/layers/0/strokes/{strokeNo}/positions") Call deleteStrokeNo(@Path("aid") Integer aid, @Path("strokeNo") Integer strokeNo); //----------------------------------------------------------------- } diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/paint/InviteConnectionModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/paint/InviteConnectionModel.java new file mode 100644 index 0000000..307a57c --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/views/paint/InviteConnectionModel.java @@ -0,0 +1,5 @@ +package org.ntlab.acanthus_client.views.paint; + +public class InviteConnectionModel { + +} diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintConnectionModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintConnectionModel.java new file mode 100644 index 0000000..117290f --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintConnectionModel.java @@ -0,0 +1,90 @@ +package org.ntlab.acanthus_client.views.paint; + +import androidx.navigation.ActivityNavigator; + +import org.ntlab.acanthus_client.Acanthus; +import org.ntlab.acanthus_client.entities.Animation; +import org.ntlab.acanthus_client.resources.gallery.GalleryRest; +import org.ntlab.acanthus_client.resources.gallery.StrokesRest; + +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; +import retrofit2.Retrofit; +import retrofit2.converter.jackson.JacksonConverterFactory; +import retrofit2.converter.scalars.ScalarsConverterFactory; + +//----------------------------------------------------------------- +// 描画通信 +public class PaintConnectionModel { + private Animation editedAnimation; + private Integer currentStrokeNo; + private Retrofit retrofit; + private Acanthus acanthus; + + //----------------------------------------------------------------- + //----------------------------------------------------------------- + // + public PaintConnectionModel() { + retrofit = new Retrofit.Builder() + .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/acanthus/") + .addConverterFactory(ScalarsConverterFactory.create()) + .addConverterFactory(JacksonConverterFactory.create()) + .build(); + } + + //----------------------------------------------------------------- + // setter + public void setEditedAnimation(Animation editedAnimation) { + this.editedAnimation = editedAnimation; + } + + private void setCurrentStrokeNo(int strokeNo) { + this.currentStrokeNo = strokeNo; + } + + //----------------------------------------------------------------- + //----------------------------------------------------------------- + // init + public void init(Acanthus acanthus) { + this.acanthus = acanthus; + } + + //----------------------------------------------------------------- + //----------------------------------------------------------------- + // ローカルでのストロークの追加(POST) + public void addLocalStroke() { + final StrokesRest strokesRest = retrofit.create(StrokesRest.class); + + //----------------------------------------------------------------- + // ストローク追加API + Call call = strokesRest.addStroke( + acanthus.getAid(), acanthus.getPreferenceUid(), acanthus.getPreferenceToken(), + 0, 0, 10); + + // strokeNoを更新 + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()) setCurrentStrokeNo(response.body()); + } + + @Override + public void onFailure(Call call, Throwable t) { + + } + }); + } + + //----------------------------------------------------------------- + // ローカルでの筆跡追加(POST) + public void addPosition(float x, float y) { + final StrokesRest strokesRest = retrofit.create(StrokesRest.class); + + //----------------------------------------------------------------- + // 筆跡追加API + Call call = strokesRest.addPositions(acanthus.getAid(), this.currentStrokeNo, x, y); + } + //----------------------------------------------------------------- + +} diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintModel.java deleted file mode 100644 index e500459..0000000 --- a/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintModel.java +++ /dev/null @@ -1,90 +0,0 @@ -package org.ntlab.acanthus_client.views.paint; - -import androidx.navigation.ActivityNavigator; - -import org.ntlab.acanthus_client.Acanthus; -import org.ntlab.acanthus_client.entities.Animation; -import org.ntlab.acanthus_client.resources.gallery.GalleryRest; -import org.ntlab.acanthus_client.resources.gallery.StrokesRest; - -import retrofit2.Call; -import retrofit2.Callback; -import retrofit2.Response; -import retrofit2.Retrofit; -import retrofit2.converter.jackson.JacksonConverterFactory; -import retrofit2.converter.scalars.ScalarsConverterFactory; - -//----------------------------------------------------------------- -// -public class PaintModel { - private Animation editedAnimation; - private Integer currentStrokeNo; - private Retrofit retrofit; - private Acanthus acanthus; - - //----------------------------------------------------------------- - //----------------------------------------------------------------- - // - public PaintModel() { - retrofit = new Retrofit.Builder() - .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/acanthus/") - .addConverterFactory(ScalarsConverterFactory.create()) - .addConverterFactory(JacksonConverterFactory.create()) - .build(); - } - - //----------------------------------------------------------------- - // setter - public void setEditedAnimation(Animation editedAnimation) { - this.editedAnimation = editedAnimation; - } - - private void setCurrentStrokeNo(int strokeNo) { - this.currentStrokeNo = strokeNo; - } - - //----------------------------------------------------------------- - //----------------------------------------------------------------- - // init - public void init(Acanthus acanthus) { - this.acanthus = acanthus; - } - - //----------------------------------------------------------------- - //----------------------------------------------------------------- - // ローカルでのストロークの追加(POST) - public void addLocalStroke() { - final StrokesRest strokesRest = retrofit.create(StrokesRest.class); - - //----------------------------------------------------------------- - // ストローク追加API - Call call = strokesRest.addStroke( - acanthus.getAid(), acanthus.getPreferenceUid(), acanthus.getPreferenceToken(), - 0, 0, 10); - - // strokeNoを更新 - call.enqueue(new Callback() { - @Override - public void onResponse(Call call, Response response) { - if (response.isSuccessful()) setCurrentStrokeNo(response.body()); - } - - @Override - public void onFailure(Call call, Throwable t) { - - } - }); - } - - //----------------------------------------------------------------- - // ローカルでの筆跡追加(POST) - public void addPosition(float x, float y) { - final StrokesRest strokesRest = retrofit.create(StrokesRest.class); - - //----------------------------------------------------------------- - // 筆跡追加API - Call call = strokesRest.addPositions(acanthus.getAid(), this.currentStrokeNo, x, y); - } - //----------------------------------------------------------------- - -} diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintModelContainer.java b/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintModelContainer.java new file mode 100644 index 0000000..6885e14 --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintModelContainer.java @@ -0,0 +1,20 @@ +package org.ntlab.acanthus_client.views.paint; + +//----------------------------------------------------------------- +//  +public class PaintModelContainer { + private PaintConnectionModel paintConnectionModel; + + //----------------------------------------------------------------- + //----------------------------------------------------------------- + //  + public PaintModelContainer(){ + this.paintConnectionModel = new PaintConnectionModel(); + } + //----------------------------------------------------------------- + // getter + public PaintConnectionModel getPaintConnectionModel() { + return this.paintConnectionModel; + } + //----------------------------------------------------------------- +} 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 98115b6..6ccbdb6 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,54 +1,29 @@ package org.ntlab.acanthus_client.views.paint; -import android.graphics.Paint; import android.view.MotionEvent; -import android.view.View; -import androidx.appcompat.app.AppCompatActivity; -import androidx.constraintlayout.widget.ConstraintSet; -import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModel; import org.ntlab.acanthus_client.Acanthus; -import org.ntlab.acanthus_client.entities.Account; -import org.ntlab.acanthus_client.entities.Animation; -import org.ntlab.acanthus_client.entities.Stroke; -import org.ntlab.acanthus_client.resources.accounts.LoginRest; -import org.ntlab.acanthus_client.resources.gallery.StrokesRest; - -import java.text.CollationElementIterator; -import java.util.ArrayList; -import java.util.Collection; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import kotlinx.coroutines.sync.Mutex; -import retrofit2.Call; -import retrofit2.Callback; -import retrofit2.Response; -import retrofit2.Retrofit; -import retrofit2.converter.jackson.JacksonConverterFactory; -import retrofit2.converter.scalars.ScalarsConverterFactory; //----------------------------------------------------------------- // 描画 public class PaintViewModel extends ViewModel { - private PaintModel paintModel; + private PaintModelContainer paintModelContainer; //----------------------------------------------------------------- //----------------------------------------------------------------- public PaintViewModel() { - paintModel = new PaintModel(); + paintModelContainer = new PaintModelContainer(); } //----------------------------------------------------------------- //----------------------------------------------------------------- // public void init(Acanthus acanthus) { - paintModel.init(acanthus); + paintModelContainer.getPaintConnectionModel().init(acanthus); } //----------------------------------------------------------------- @@ -59,11 +34,11 @@ switch (motionEvent.getAction()) { case MotionEvent.ACTION_DOWN: - paintModel.addLocalStroke(); + paintModelContainer.getPaintConnectionModel().addLocalStroke(); break; case MotionEvent.ACTION_MOVE: - paintModel.addPosition(x, y); + paintModelContainer.getPaintConnectionModel().addPosition(x, y); break; } }