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 cd1eaf2..0b9211a 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 @@ -24,14 +24,15 @@ //----------------------------------------------------------------- // - @GET("gallery/{aid}/pageMap/0/layers/0/strokes") - Call> getStrokes(@Path("aid") Integer aid); + @GET("gallery/{aid}/pageMap/{pid}/layers/{layerNo}/strokes") + Call> getStrokes(@Path("aid") Integer aid, @Path("pid") Integer pid, @Path("layerNo") Integer layerNo); //----------------------------------------------------------------- // @FormUrlEncoded - @POST("gallery/{aid}/pageMap/0/layers/0/strokes") - Call addStroke(@Path("aid") Integer aid, @Field("uid") Integer uid, @Field("uidToken") String uidToken, + @POST("gallery/{aid}/pageMap/{pid}/layers/{layerNo}/strokes") + Call addStroke(@Path("aid") Integer aid, @Path("pid") Integer pid, @Path("layerNo") Integer layerNo, + @Field("uid") Integer uid, @Field("uidToken") String uidToken, @Field("pen") Integer pen, @Field("color") Integer color, @Field("thick") Integer thick); //----------------------------------------------------------------- diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/animation/AnimationViewModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/animation/AnimationViewModel.java index 8b496c2..50eb155 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/animation/AnimationViewModel.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/animation/AnimationViewModel.java @@ -42,7 +42,7 @@ // StrokesRestをGETする。 public void getAnimationStrokes() { final StrokesRest strokesRest = retrofit.create(StrokesRest.class); - Call> strokes = strokesRest.getStrokes(acanthus.getAid()); + Call> strokes = strokesRest.getStrokes(acanthus.getAid(), 0, 0); } } diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/EditFragment.java b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/EditFragment.java index 2d0e7b1..0cfd53c 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/EditFragment.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/EditFragment.java @@ -31,6 +31,13 @@ import java.util.ArrayList; import java.util.Collection; +import java.util.HashMap; +import java.util.Map;import java.util.Map.Entry; +import java.util.List; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; + public class EditFragment extends Fragment { @@ -39,7 +46,12 @@ private ArrayList aidList; private ArrayList AnimationJsonList; private ArrayList nameList; + private ArrayList lastUpDateList; + private HashMap nameHashMap; + private HashMap lastUpDateHashMap; + private Integer AnimationAid; private String AnimationName; + private String AnimationLastUpDate; public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -66,7 +78,11 @@ editViewModel.getWorkList(uid, token); aidList = new ArrayList<>(); nameList = new ArrayList<>(); + lastUpDateList = new ArrayList<>(); AnimationJsonList = new ArrayList<>(); + Map nameHashMap = new HashMap(); + Map lastUpDateHashMap = new HashMap(); + ListView listView = (ListView) getActivity().findViewById(R.id.list_view); editViewModel.getWorkJson().observe(getViewLifecycleOwner(), new Observer() { @@ -83,14 +99,36 @@ //acanthusのAnimationJsonListにとってきたaidが該当するかを探索する if(aidList.contains(AnimationJsonList.get(i).getAid())){ AnimationName = AnimationJsonList.get(i).getAnimationName(); - nameList.add(AnimationName); + AnimationLastUpDate = AnimationJsonList.get(i).getLastUpdate(); + AnimationAid = AnimationJsonList.get(i).getAid(); + nameHashMap.put(AnimationAid, AnimationName); + lastUpDateHashMap.put(AnimationAid, AnimationLastUpDate); + +// nameList.add(AnimationName); +// lastUpDateList.add(AnimationLastUpDate); workList.add(AnimationJsonList.get(i)); } } } + //-------------------------------------------------------------------------------------------------------------------- + //sort + List> list_entries = new ArrayList>(lastUpDateHashMap.entrySet()); + Collections.sort(list_entries, new Comparator>() { + public int compare(Entry obj1, Entry obj2) { + // 降順(昇順はObj1とObj2を変える) + return obj2.getValue().compareTo(obj1.getValue()); + } + }); + for(Entry entry : list_entries) { + lastUpDateList.add(entry.getValue()); + nameList.add(nameHashMap.get(entry.getKey())); + } + //-------------------------------------------------------------------------------------------------------------------- + + BaseAdapter adapter = new WorkListViewAdapter(getActivity(), - R.layout.work_list, nameList, nameList); + R.layout.work_list, nameList, lastUpDateList); listView.setAdapter(adapter); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 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 6609dbb..008dfce 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 @@ -6,6 +6,7 @@ import android.os.Bundle; import android.view.View; +import android.widget.TextView; import org.ntlab.acanthus_client.Acanthus; import org.ntlab.acanthus_client.R; @@ -58,20 +59,34 @@ //----------------------------------------------------------------- // init private void init() { - setContentView(R.layout.activity_paint); Acanthus acanthus = (Acanthus) getApplication(); paintViewModel = new ViewModelProvider(this).get(PaintViewModel.class); paintViewModel.init(acanthus); initView(); + + startObserve(); } //----------------------------------------------------------------- // private void initView() { binding = ActivityPaintBinding.inflate(getLayoutInflater()); + setContentView(binding.getRoot()); + paintCanvas = (PaintCanvas) findViewById(R.id.myCanvas); paintCanvas.setPaintViewModel(paintViewModel); } + //----------------------------------------------------------------- + // + private void startObserve() { + paintViewModel.getPageNo().observe(this, new Observer() { + @Override + public void onChanged(Integer i) { + binding.buttonAddPage.setText(String.valueOf(i)); + } + }); + } + //------------------------------------------------------------------ } \ No newline at end of file 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 92802e8..5d96119 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 @@ -105,6 +105,7 @@ public void clearCanvas() { paintViewModel.deleteStrokesRequest(); path.reset(); + path2.reset(); invalidate(); } 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 87b3081..b2ae71d 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 @@ -25,6 +25,7 @@ private PaintModelContainer paintModelContainer; private MutableLiveData> paintPosition; + private MutableLiveData mPageNo = new MutableLiveData<>(); private MutableLiveData> mStrokes = new MutableLiveData<>(); private ScheduledThreadPoolExecutor thread = new ScheduledThreadPoolExecutor(1); @@ -35,6 +36,10 @@ return this.mStrokes; } + public LiveData getPageNo() { + return this.mPageNo; + } + //----------------------------------------------------------------- //----------------------------------------------------------------- // init @@ -81,7 +86,7 @@ //----------------------------------------------------------------- // ページの追加通信リクエスト public void addPageRequest() { - paintModelContainer.getPageConnectionModel().addPage(); + paintModelContainer.getPageConnectionModel().addPage(mPageNo); } //----------------------------------------------------------------- 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 394c716..80f2e93 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 @@ -42,14 +42,14 @@ //----------------------------------------------------------------- //----------------------------------------------------------------- // ページ追加API - public void addPage() { + public void addPage(MutableLiveData mPageNo) { final PagesRest pagesRest = retrofit.create(PagesRest.class); Call call = pagesRest.addPage(acanthus.getAid()); call.enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { - if (response.isSuccessful()) ; + if (response.isSuccessful()) mPageNo.setValue(response.body()); } @Override 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 791fa24..bfcb33a 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 @@ -71,7 +71,7 @@ //----------------------------------------------------------------- // ストローク追加API Call call = strokesRest.addStroke( - acanthus.getAid(), acanthus.getPreferenceUid(), acanthus.getPreferenceToken(), + acanthus.getAid(), 0, 0, acanthus.getPreferenceUid(), acanthus.getPreferenceToken(), 0, 0, 10); // strokeNoを更新 @@ -138,7 +138,7 @@ //----------------------------------------------------------------- // 筆跡追加API - Call> call = strokesRest.getStrokes(acanthus.getAid()); + Call> call = strokesRest.getStrokes(acanthus.getAid(), 0, 0); call.enqueue(new Callback>() { @Override public void onResponse(Call> call, Response> response) { diff --git a/app/src/main/res/drawable/ic_paint_tool_button.xml b/app/src/main/res/drawable/ic_paint_tool_button.xml new file mode 100644 index 0000000..78664bd --- /dev/null +++ b/app/src/main/res/drawable/ic_paint_tool_button.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/sample1.png b/app/src/main/res/drawable/sample1.png new file mode 100644 index 0000000..f7b55a2 --- /dev/null +++ b/app/src/main/res/drawable/sample1.png Binary files differ diff --git a/app/src/main/res/drawable/sample2.png b/app/src/main/res/drawable/sample2.png new file mode 100644 index 0000000..5ec05f4 --- /dev/null +++ b/app/src/main/res/drawable/sample2.png Binary files differ diff --git a/app/src/main/res/drawable/sample3.png b/app/src/main/res/drawable/sample3.png new file mode 100644 index 0000000..660c1b8 --- /dev/null +++ b/app/src/main/res/drawable/sample3.png Binary files differ diff --git a/app/src/main/res/drawable/sample4.png b/app/src/main/res/drawable/sample4.png new file mode 100644 index 0000000..6835214 --- /dev/null +++ b/app/src/main/res/drawable/sample4.png Binary files differ diff --git a/app/src/main/res/drawable/sample5.png b/app/src/main/res/drawable/sample5.png new file mode 100644 index 0000000..8133c27 --- /dev/null +++ b/app/src/main/res/drawable/sample5.png Binary files differ diff --git a/app/src/main/res/layout/activity_paint.xml b/app/src/main/res/layout/activity_paint.xml index a8be3dd..dd0e520 100644 --- a/app/src/main/res/layout/activity_paint.xml +++ b/app/src/main/res/layout/activity_paint.xml @@ -27,11 +27,13 @@