diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/animation/AnimationActivity.java b/app/src/main/java/org/ntlab/acanthus_client/views/animation/AnimationActivity.java index b746a12..242a3b8 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/animation/AnimationActivity.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/animation/AnimationActivity.java @@ -4,7 +4,6 @@ import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; @@ -20,9 +19,6 @@ import org.ntlab.acanthus_client.R; import org.ntlab.acanthus_client.entities.AnimationJson; import org.ntlab.acanthus_client.views.animation_detail.AnimationDetailActivity; -import org.ntlab.acanthus_client.views.paint.PaintCanvas; -import org.ntlab.acanthus_client.views.paint.PaintToolBar; -import org.ntlab.acanthus_client.views.paint.PaintViewModel; import java.util.HashMap; import java.util.Timer; 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 5e8eb6e..64501ea 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 @@ -25,7 +25,7 @@ private Acanthus acanthus; private PaintModelContainer paintModelContainer; private AnimationConnectionModel animationConnectionModel; - private MutableLiveData> pages = new MutableLiveData<>();; + private MutableLiveData> pages = new MutableLiveData<>(); public void init(Acanthus acanthus) { 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 d5a1cb6..f696c87 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 @@ -15,6 +15,7 @@ import java.util.ArrayList; import java.util.Collection; +import java.util.HashMap; import java.util.Random; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.TimeUnit; @@ -29,8 +30,10 @@ private MutableLiveData mCurPageId = new MutableLiveData<>(0); private MutableLiveData mPageSize = new MutableLiveData<>(0); private MutableLiveData mStrokeNo = new MutableLiveData(0); - private MutableLiveData> mlatestPosition= new MutableLiveData<>(); + private MutableLiveData> mlatestPosition = new MutableLiveData<>(); private MutableLiveData> mStrokes = new MutableLiveData<>(); + private MutableLiveData> mPages = new MutableLiveData<>(new HashMap<>()); + private int strokeNo = 0; private ScheduledThreadPoolExecutor thread = new ScheduledThreadPoolExecutor(1); @@ -44,19 +47,22 @@ return this.mStrokes; } - public MutableLiveData getmStrokeNo() { - return this.mStrokeNo; - } - public LiveData getPageNo() { return this.mCurPageNo; } + public LiveData> getPages() { + return this.mPages; + } + public PaintModelContainer getPaintModelContainer() { return paintModelContainer; } - public MutableLiveData> getMlatestPosition(){ return this.mlatestPosition;} + public MutableLiveData> getMlatestPosition() { + return this.mlatestPosition; + } + //----------------------------------------------------------------- //----------------------------------------------------------------- @@ -66,8 +72,6 @@ paintModelContainer.getPaintConnectionModel().init(acanthus); paintModelContainer.getInvitesConnectionModel().init(acanthus); - //mStrokes.setValue(new ArrayList<>()); - //mStrokes.getValue().add(new Stroke()); mlatestPosition.setValue(new ArrayList<>()); mlatestPosition.getValue().add(new Position()); // ページの情報初期化 @@ -183,11 +187,20 @@ } //----------------------------------------------------------------- + // ページのサムネイル取得 + public void getPageThumbnailRequest() { + PageConnectionModel pageConnectionModel = paintModelContainer.getPageConnectionModel(); + + pageConnectionModel.getPageThumb(mPages); + } + + //----------------------------------------------------------------- //----------------------------------------------------------------- // public void deleteStroke() { this.mStrokes.getValue().clear(); } + public void deletePosition() { this.mlatestPosition.getValue().clear(); } @@ -197,10 +210,11 @@ public void getPageSizeRequest() { paintModelContainer.getPageConnectionModel().getPageSize(mPageSize); } + //----------------------------------------------------------------- //最新のStrokePositionを取得 - public void getPosition(Integer latestStrokeNo){ - paintModelContainer.getPaintConnectionModel().getLatestStrokePosition(latestStrokeNo,mlatestPosition); + public void getPosition(Integer latestStrokeNo) { + paintModelContainer.getPaintConnectionModel().getLatestStrokePosition(latestStrokeNo, mlatestPosition); //Log.d("debug", "run: "+mlatestPosition.getValue()); } @@ -212,8 +226,9 @@ paintModelContainer.getPaintConnectionModel().getStrokes(mStrokes); paintModelContainer.getPageConnectionModel().getPageSize(mPageSize); } + //一定間隔でserver上のStrokeNoSizeを返す - public void latestStrokeNo(){ + public void latestStrokeNo() { paintModelContainer.getPaintConnectionModel().getStrokeNo(mStrokeNo); } 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 fd4ddc6..7acd54f 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 @@ -9,6 +9,8 @@ import org.ntlab.acanthus_client.resources.gallery.PagesRest; import org.ntlab.acanthus_client.resources.gallery.StrokesRest; +import java.util.HashMap; + import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; @@ -127,4 +129,27 @@ } //----------------------------------------------------------------- + // ページのサムネイルを取得する + public void getPageThumb(MutableLiveData> mPages){ + final StrokesRest strokesRest = retrofit.create(StrokesRest.class); + + Call> call = strokesRest.getPageUrls(acanthus.getAid()); + call.enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + if(response.isSuccessful()){ + mPages.setValue(response.body()); + } + } + + @Override + public void onFailure(Call> call, Throwable t) { + + } + }); + + } + + //----------------------------------------------------------------- + } 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 02e1c72..10686fa 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 @@ -5,8 +5,10 @@ import androidx.lifecycle.ViewModelProvider; import android.os.Bundle; +import android.util.Log; import android.view.MotionEvent; import android.view.View; +import android.webkit.WebView; import com.fasterxml.jackson.databind.ser.VirtualBeanPropertyWriter; @@ -15,6 +17,7 @@ import org.ntlab.acanthus_client.databinding.ActivityPageBinding; import org.ntlab.acanthus_client.views.paint.PaintViewModel; +import java.util.HashMap; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.TimeUnit; @@ -113,6 +116,7 @@ startObserve(); + thread.scheduleWithFixedDelay(this, 1000L, 2000L, TimeUnit.MILLISECONDS); } @@ -122,6 +126,10 @@ binding = ActivityPageBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); + WebView webView = binding.pageWebview; + webView.setInitialScale(1); + webView.getSettings().setLoadWithOverviewMode(true); + webView.getSettings().setUseWideViewPort(true); } //----------------------------------------------------------------- @@ -131,6 +139,16 @@ @Override public void onChanged(Integer pageNo) { binding.textPageNo.setText(String.valueOf(pageNo)); + + paintViewModel.getPageThumbnailRequest(); + } + }); + + paintViewModel.getPages().observe(this, new Observer>() { + @Override + public void onChanged(HashMap s) { + binding.pageWebview.loadUrl(s.get(paintViewModel.getPageNo().getValue())); + Log.d("a", "onFailure: -----------------------OK:Obs"); } }); } diff --git a/app/src/main/res/layout/activity_page.xml b/app/src/main/res/layout/activity_page.xml index 44cdea3..3f334eb 100644 --- a/app/src/main/res/layout/activity_page.xml +++ b/app/src/main/res/layout/activity_page.xml @@ -6,10 +6,27 @@ android:layout_height="match_parent" tools:context=".views.paint.page.PageActivity"> + + + +