diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
deleted file mode 100644
index 797acea..0000000
--- a/.idea/runConfigurations.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 78c8159..160c466 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -32,6 +32,7 @@
+
animationJsonList = new ArrayList<>();
@@ -78,10 +79,14 @@
}
public Integer getEditingPageNo() {
- if (editingPageNo == null) editingPageNo = 0;
+ if (editingPageNo == null) editingPageNo = 1;
return editingPageNo;
}
+ public Integer getEditingPageId() {
+ return this.editingPageId;
+ }
+
public Animation getCurrentAnimation() {
return currentAnimation;
}
@@ -143,6 +148,10 @@
this.currentAnimation = currentAnimation;
}
+ public void setEditingPageId(Integer editingPageId) {
+ this.editingPageId = editingPageId;
+ }
+
//HomeViewModelでしようするためのsetter
public void setAnimationJsonList(Collection sentAnimationJsonList) {
this.animationJsonList.clear();
diff --git a/app/src/main/java/org/ntlab/acanthus_client/entities/Page.java b/app/src/main/java/org/ntlab/acanthus_client/entities/Page.java
index 10340b0..cc25367 100644
--- a/app/src/main/java/org/ntlab/acanthus_client/entities/Page.java
+++ b/app/src/main/java/org/ntlab/acanthus_client/entities/Page.java
@@ -5,14 +5,29 @@
//-----------------------------------------------------------------
// ページ情報
public class Page {
+ private Integer pid;
+ private Integer pageNo;
private ArrayList layers = new ArrayList<>();
+ //-----------------------------------------------------------------
+ // getter
+ public Integer getPid() {
+ return pid;
+ }
+
+ public Integer getPageNo() {
+ return pageNo;
+ }
+
public ArrayList getLayers() {
return this.layers;
}
+ //-----------------------------------------------------------------
+ // setter
public void setLayers(ArrayList layers) {
this.layers = layers;
}
+
}
diff --git a/app/src/main/java/org/ntlab/acanthus_client/resources/gallery/PagesRest.java b/app/src/main/java/org/ntlab/acanthus_client/resources/gallery/PagesRest.java
index 816392f..7c577d5 100644
--- a/app/src/main/java/org/ntlab/acanthus_client/resources/gallery/PagesRest.java
+++ b/app/src/main/java/org/ntlab/acanthus_client/resources/gallery/PagesRest.java
@@ -28,8 +28,13 @@
//-----------------------------------------------------------------
//
- @DELETE("gallery/{aid}/pageMap/{pid}")
- Call deletePage(@Path("aid") Integer aid, @Path("pid") Integer pid);
+ @DELETE("gallery/{aid}/pageMap/{pageNo}")
+ Call deletePage(@Path("aid") Integer aid, @Path("pageNo") Integer pageNo);
+
+ //-----------------------------------------------------------------
+ //
+ @GET("gallery/{aid}/pageMap/{pageNo}")
+ Call getPage(@Path("aid") Integer aid, @Path("pageNo") Integer pageNo);
//-----------------------------------------------------------------
//
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 11f7b1a..0f7a43f 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
@@ -43,21 +43,23 @@
//-----------------------------------------------------------------
//
@FormUrlEncoded
- @POST("gallery/{aid}/pageMap/0/layers/0/strokes/{strokeNo}/positions")
- Call addPositions(@Field("positionNo") int i,@Path("aid") Integer aid, @Path("strokeNo") Integer strokeNo,
+ @POST("gallery/{aid}/pageMap/{pid}/layers/0/strokes/{strokeNo}/positions")
+ 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);
//-----------------------------------------------------------------
//
- @DELETE("gallery/{aid}/pageMap/0/layers/0/strokes")
- Call deleteStrokes(@Path("aid") Integer aid, @Query("uid") Integer uid);
+ @DELETE("gallery/{aid}/pageMap/{pid}/layers/0/strokes")
+ Call deleteStrokes(@Path("aid") Integer aid, @Path("pid") Integer pid, @Query("uid") Integer uid);
//-----------------------------------------------------------------
//
@DELETE("gallery/{aid}/pageMap/0/layers/0/strokes/{strokeNo}/positions")
Call deleteStrokeNo(@Path("aid") Integer aid, @Path("strokeNo") Integer strokeNo);
+
//-----------------------------------------------------------------
//
@GET("gallery/{aid}/pageMap/{pid}/image")
- Call getLayers(@Path("aid") Integer aid, @Path("pid")Integer pid);
+ Call getLayers(@Path("aid") Integer aid, @Path("pid") Integer pid);
}
\ No newline at end of file
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 18ed989..2f174ce 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
@@ -24,36 +24,31 @@
private PaintModelContainer paintModelContainer;
- private MutableLiveData mPageLength = new MutableLiveData<>();
private MutableLiveData mCurPageNo = new MutableLiveData<>();
+ private MutableLiveData mCurPageId = new MutableLiveData<>();
private MutableLiveData mPageSize = new MutableLiveData<>();
private MutableLiveData mStrokeNo = new MutableLiveData<>();
+
private MutableLiveData> mStrokes = new MutableLiveData<>();
private ScheduledThreadPoolExecutor thread = new ScheduledThreadPoolExecutor(1);
- private ArrayListpositionLocalx = new ArrayList<>();
- private ArrayListpositionLocaly = new ArrayList<>();
- private ArrayListlocalstrokeNo = new ArrayList<>();
- private int cnt=0;
- private float fsx=0;
- private float fsy=0;
+ private ArrayList positionLocalx = new ArrayList<>();
+ private ArrayList positionLocaly = new ArrayList<>();
+ private ArrayList localstrokeNo = new ArrayList<>();
+ private int cnt = 0;
+ private float fsx = 0;
+ private float fsy = 0;
+
//-----------------------------------------------------------------
// getter
public MutableLiveData> getStroke() {
return this.mStrokes;
}
- public void deleteStroke() {
- this.mStrokes.getValue().clear();
- }
public LiveData getStrokeNo() {
return this.mStrokeNo;
}
- public LiveData getPageLength() {
- return this.mPageLength;
- }
-
public LiveData getPageNo() {
return this.mCurPageNo;
}
@@ -73,6 +68,8 @@
mStrokes.setValue(new ArrayList<>());
mStrokes.getValue().add(new Stroke());
+ // ページの情報初期化
+ paintModelContainer.getPageConnectionModel().getPage(mCurPageId);
paintModelContainer.getPageConnectionModel().getPageSize(mPageSize);
thread.scheduleWithFixedDelay(this, 1000L, 100L, TimeUnit.MILLISECONDS);
@@ -80,22 +77,24 @@
//-----------------------------------------------------------------
// 描画APIの通信リクエスト
- public void addLocalStrokeRequest(float x,float y) {
+ public void addLocalStrokeRequest(float x, float y) {
paintModelContainer.getPaintConnectionModel().addLocalStroke(mStrokeNo);
- fsx=x;
- fsy=y;
- cnt=1;
+ fsx = x;
+ fsy = y;
+ cnt = 1;
}
+
public void addPositionRequest(float x, float y) {
// Log.d("mStrokeNo", mStrokeNo.getValue().toString());
- paintModelContainer.getPaintConnectionModel().addPosition(cnt,x,y,mStrokeNo.getValue());
- //positionLocalx.add((double)x);
- //positionLocaly.add((double)y);
+ paintModelContainer.getPaintConnectionModel().addPosition(cnt, x, y, mStrokeNo.getValue());
+ //positionLocalx.add((double)x);
+ //positionLocaly.add((double)y);
cnt++;
}
+
public void addPositionRequestfirst() {
- paintModelContainer.getPaintConnectionModel().addPosition(0,fsx,fsy,mStrokeNo.getValue());
- paintModelContainer.getPaintConnectionModel().addPosition(cnt,-1,-1,mStrokeNo.getValue());
+ paintModelContainer.getPaintConnectionModel().addPosition(0, fsx, fsy, mStrokeNo.getValue());
+ paintModelContainer.getPaintConnectionModel().addPosition(cnt, -1, -1, mStrokeNo.getValue());
//Log.d("x", positionLocalx.toString());
//Log.d("y", positionLocaly.toString());
//positionLocalx.clear();
@@ -115,12 +114,15 @@
}
//-----------------------------------------------------------------
- //
- public void updatePageNo(MotionEvent event) {
+ // 操作するページを切り替える
+ public void switchToEditPageRequest(MotionEvent event) {
PageOperationModel pageOperationModel = paintModelContainer.getPageOperationModel();
+ PageConnectionModel pageConnectionModel = paintModelContainer.getPageConnectionModel();
- // 編集中のページ番号が最大ページ数を超えないように
- pageOperationModel.updatePageNo(event, mCurPageNo, mPageSize.getValue());
+ pageOperationModel.changeEditPageNo(event, mCurPageNo, mPageSize.getValue());
+ //ページを操作したので更新
+ pageConnectionModel.getPage(mCurPageId);
+
}
//-----------------------------------------------------------------
@@ -130,6 +132,7 @@
pageConnectionModel.addPage();
pageConnectionModel.getPageSize(mPageSize);
+ Log.d("pageSize:", mPageSize.getValue().toString());
}
//-----------------------------------------------------------------
@@ -139,6 +142,16 @@
pageConnectionModel.deletePage();
pageConnectionModel.getPageSize(mPageSize);
+ //ページ削除後同じページ番号のページを再取得する必要あり
+ Log.d("pageSize:", mPageSize.getValue().toString());
+
+ //pageConnectionModel.getPage(mCurPageNo);
+ }
+
+ //-----------------------------------------------------------------
+ //
+ public void deleteStroke() {
+ this.mStrokes.getValue().clear();
}
//-----------------------------------------------------------------
diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/paint/models/PageConnectionModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/paint/models/PageConnectionModel.java
index 41257da..114b080 100644
--- a/app/src/main/java/org/ntlab/acanthus_client/views/paint/models/PageConnectionModel.java
+++ b/app/src/main/java/org/ntlab/acanthus_client/views/paint/models/PageConnectionModel.java
@@ -1,5 +1,7 @@
package org.ntlab.acanthus_client.views.paint.models;
+import android.util.Log;
+
import androidx.lifecycle.MutableLiveData;
import org.ntlab.acanthus_client.Acanthus;
@@ -60,7 +62,7 @@
}
//-----------------------------------------------------------------
- //
+ // ページ削除
public void deletePage() {
final PagesRest pagesRest = retrofit.create(PagesRest.class);
@@ -79,7 +81,7 @@
}
//-----------------------------------------------------------------
- //
+ // ページサイズ取得
public void getPageSize(MutableLiveData pageSize) {
final PagesRest pagesRest = retrofit.create(PagesRest.class);
@@ -87,7 +89,8 @@
call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
- if (response.isSuccessful()) pageSize.setValue(response.body());
+ if (response.isSuccessful())
+ pageSize.setValue(response.body());
}
@Override
@@ -98,4 +101,28 @@
}
//-----------------------------------------------------------------
+ // ページ情報を取得するリクエスト
+ public void getPage(MutableLiveData pageId) {
+ final PagesRest pagesRest = retrofit.create(PagesRest.class);
+
+ Call call = pagesRest.getPage(acanthus.getAid(), acanthus.getEditingPageNo());
+ call.enqueue(new Callback() {
+ @Override
+ public void onResponse(Call call, Response response) {
+ if (response.isSuccessful()) {
+ //acanthus.setEditingPageId(response.body());
+ // ページ番号とページIDを取得する
+ acanthus.setEditingPageNo(response.body().getPageNo());
+ acanthus.setEditingPageId(response.body().getPid());
+ }
+ }
+
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ Log.d("failure", "omg");
+ }
+ });
+ }
+
+ //-----------------------------------------------------------------
}
diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/paint/models/PageOperationModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/paint/models/PageOperationModel.java
index cb08f12..1c299f1 100644
--- a/app/src/main/java/org/ntlab/acanthus_client/views/paint/models/PageOperationModel.java
+++ b/app/src/main/java/org/ntlab/acanthus_client/views/paint/models/PageOperationModel.java
@@ -1,6 +1,7 @@
package org.ntlab.acanthus_client.views.paint.models;
import android.preference.SwitchPreference;
+import android.util.Log;
import android.view.MotionEvent;
import android.view.VelocityTracker;
@@ -9,8 +10,7 @@
import org.ntlab.acanthus_client.Acanthus;
//-----------------------------------------------------------------
-//
-
+// ページの操作
public class PageOperationModel {
//-----------------------------------------------------------------
// スワイプの向き
@@ -31,19 +31,25 @@
//-----------------------------------------------------------------
//-----------------------------------------------------------------
- public void updatePageNo(MotionEvent event, MutableLiveData mCurPageNo, Integer pageSize) {
+ // 編集中のページを切り替える
+ public void changeEditPageNo(MotionEvent event, MutableLiveData mCurPageNo, Integer pageSize) {
mCurPageNo.setValue(acanthus.getEditingPageNo());
//ページの枚数以上現在のページ番号を更新しない
- if (getVelocityDirection(event).equals(SwipeDirectionType.LEFT) && (mCurPageNo.getValue() < (pageSize - 1)))
+ if (getVelocityDirection(event).equals(SwipeDirectionType.LEFT) && (mCurPageNo.getValue() < pageSize))
incrementPageNo(mCurPageNo);
if (getVelocityDirection(event).equals(SwipeDirectionType.RIGHT))
decrementPageNo(mCurPageNo);
+
+
+
+ Log.d("pageNo", acanthus.getEditingPageNo().toString());
+ Log.d("pid", acanthus.getEditingPageId().toString());
}
//-----------------------------------------------------------------
//-----------------------------------------------------------------
- //
+ // ページを進める
public void incrementPageNo(MutableLiveData mPageNo) {
Integer editingNo = acanthus.getEditingPageNo();
@@ -52,16 +58,16 @@
}
//-----------------------------------------------------------------s
- //
- private void decrementPageNo(MutableLiveData mPageNo) {
+ // ページ番号を前に戻す
+ public void decrementPageNo(MutableLiveData mPageNo) {
Integer editingNo = acanthus.getEditingPageNo();
- if (0 < editingNo) {
+
+ if (1 < editingNo) {
acanthus.setEditingPageNo(acanthus.getEditingPageNo() - 1);
mPageNo.setValue(acanthus.getEditingPageNo());
}
}
-
//-----------------------------------------------------------------
// 操作からスワイプの向きを取得する
private SwipeDirectionType getVelocityDirection(MotionEvent event) {
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 f2d866d..960c354 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
@@ -58,9 +58,7 @@
.addConverterFactory(JacksonConverterFactory.create())
.build();
}
-//-----------------------------------------------------------------
-//----------▽▽POST▽▽----------
- //-----------------------------------------------------------------
+
//-----------------------------------------------------------------
// ローカルでのストロークの追加(POST)
public void addLocalStroke(MutableLiveData mStrokeNo) {
@@ -70,7 +68,7 @@
//-----------------------------------------------------------------
// ストローク追加API
Call call = strokesRest.addStroke(
- acanthus.getAid(), acanthus.getEditingPageNo(), 0, acanthus.getPreferenceUid(), acanthus.getPreferenceToken(),
+ acanthus.getAid(), acanthus.getEditingPageId(), 0, acanthus.getPreferenceUid(), acanthus.getPreferenceToken(),
0, 0, 10);
// strokeNoを更新
@@ -82,21 +80,23 @@
@Override
public void onFailure(Call call, Throwable t) {
- Log.d("POSTonFailure: ","strokeNo");
+ Log.d("POSTonFailure: ", "strokeNo");
}
});
}
//-----------------------------------------------------------------
// ローカルでの筆跡追加(POST)
- public void addPosition(int i ,double x, double y, int currentStrokeNo) {
+ public void addPosition(int i, double x, double y, int currentStrokeNo) {
final StrokesRest strokesRest = retrofit.create(StrokesRest.class);
//Log.d("strokeNo:", currentStrokeNo);
+ Log.d("curPageId:", acanthus.getEditingPageId().toString());
+ Log.d("curPageNo:", acanthus.getEditingPageNo().toString());
//-----------------------------------------------------------------
// 座標追加
- Call call = strokesRest.addPositions(i,acanthus.getAid(), currentStrokeNo, x, y);
+ Call call = strokesRest.addPositions(i, acanthus.getAid(), acanthus.getEditingPageId(), currentStrokeNo, x, y);
call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
@@ -105,15 +105,11 @@
@Override
public void onFailure(Call call, Throwable t) {
- Log.d("POSTonFailure: ","i:"+i+",x:"+x+",y:"+y );
+ Log.d("POSTonFailure: ", "i:" + i + ",x:" + x + ",y:" + y);
}
});
}
-//----------△△POST△△----------
-//-----------------------------------------------------------------
-///////////////////////////////////////////////////////////////////////////////////////////////////////////
-//-----------------------------------------------------------------
-//----------▽▽GET▽▽----------
+
//-----------------------------------------------------------------
// 全strokeを取得する
public void getStrokes(MutableLiveData> strokes) {
@@ -121,7 +117,7 @@
//-----------------------------------------------------------------
// 筆跡追加API
- Call> call = strokesRest.getStrokes(acanthus.getAid(), 0, 0);
+ Call> call = strokesRest.getStrokes(acanthus.getAid(), acanthus.getEditingPageId(), 0);
call.enqueue(new Callback>() {
@Override
public void onResponse(Call> call, Response> response) {
@@ -143,7 +139,7 @@
//-----------------------------------------------------------------
// 現在の筆跡番号の取得
- Call call = layersRest.getStrokeSize(acanthus.getAid(), 0, 0);
+ Call call = layersRest.getStrokeSize(acanthus.getAid(), acanthus.getEditingPageId(), 0);
call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
@@ -156,11 +152,7 @@
}
});
}
-//----------△△GET△△----------
-//-----------------------------------------------------------------
-///////////////////////////////////////////////////////////////////////////////////////////////////////////
-//-----------------------------------------------------------------
-//----------▽▽delete▽▽----------
+
//-----------------------------------------------------------------
// "Clear"ボタンによる描画の全消去 / サーバー側の筆跡全削除
public void deleteStrokes() {
@@ -168,7 +160,7 @@
//-----------------------------------------------------------------
// 筆跡をすべて削除する
- Call call = strokesRest.deleteStrokes(acanthus.getAid(), acanthus.getPreferenceUid());
+ Call call = strokesRest.deleteStrokes(acanthus.getAid(), acanthus.getEditingPageId(), acanthus.getPreferenceUid());
call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
@@ -179,7 +171,7 @@
}
});
}
-//----------△△delete△△----------
-//-----------------------------------------------------------------
+
+ //-----------------------------------------------------------------
}
\ No newline at end of file
diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/paint/page/PageActivity.java b/app/src/main/java/org/ntlab/acanthus_client/views/paint/page/PageActivity.java
index 6e55aef..83f2533 100644
--- a/app/src/main/java/org/ntlab/acanthus_client/views/paint/page/PageActivity.java
+++ b/app/src/main/java/org/ntlab/acanthus_client/views/paint/page/PageActivity.java
@@ -75,7 +75,7 @@
//-----------------------------------------------------------------
//
public void slidePage(MotionEvent event) {
- paintViewModel.updatePageNo(event);
+ paintViewModel.switchToEditPageRequest(event);
}
//-----------------------------------------------------------------
@@ -89,13 +89,6 @@
//-----------------------------------------------------------------
//
private void startObserve() {
- paintViewModel.getPageLength().observe(this, new Observer() {
- @Override
- public void onChanged(Integer i) {
- binding.buttonAddPage.setText(String.valueOf(i));
- }
- });
-
paintViewModel.getPageNo().observe(this, new Observer() {
@Override
public void onChanged(Integer pageNo) {