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 237a6e2..cbb2429 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 @@ -1,26 +1,35 @@ package org.ntlab.acanthus_client.views.animation; import androidx.appcompat.app.AppCompatActivity; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProvider; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; +import android.webkit.WebView; +import android.webkit.WebViewClient; import android.widget.Button; import org.ntlab.acanthus_client.Acanthus; import org.ntlab.acanthus_client.R; -import org.ntlab.acanthus_client.databinding.ActivityPaintBinding; 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; // 表示ページ public class AnimationActivity extends AppCompatActivity { private AnimationCanvas animationCanvas; - private ActivityPaintBinding binding; + private AnimationViewModel animationViewModel; private View view; + private WebView webView; + private String url; + //ボタン系 private boolean buttonView = true; private Button buttonPlayback; @@ -34,19 +43,33 @@ //animationCanvasの表示 @Override protected void onCreate(Bundle savedInstanceState) { + init(); + super.onCreate(savedInstanceState); setContentView(R.layout.activity_animation); animationCanvas = this.findViewById(R.id.animationMyCanvas); + //wecView + webView = this.findViewById(R.id.animationWebview); + webView.setWebViewClient(new WebViewClient(){ + @Override + public boolean shouldOverrideUrlLoading(WebView view, String url) { + return false; + } + }); +// url = animationViewModel.getAnimationPage().getValue(); +// //url = "http://nitta-lab-www.is.konan-u.ac.jp/gallery/300/0/a300p0.png"; +// webView.loadUrl(url); + //アニメーションの再生停止 buttonPlayback = findViewById(R.id.button_playback); buttonPlayback.setOnClickListener(new View.OnClickListener(){ public void onClick(View v) { if(animationCanvas.onClickPlayback() == 0){ - buttonPlayback.setText("Play"); + buttonPlayback.setText("start"); } else { - buttonPlayback.setText("Stop"); + buttonPlayback.setText("stop"); } } }); @@ -94,6 +117,25 @@ }); } + public void init(){ + //初期化 + Acanthus acanthus = (Acanthus) getApplication(); + animationViewModel = new ViewModelProvider(this).get(AnimationViewModel.class); + animationViewModel.init(acanthus); + startObserver(); + } + //startobserve + private void startObserver(){ + animationViewModel.getAnimationPage().observe(this, new Observer() { + @Override + public void onChanged(String s) { + url = animationViewModel.getAnimationPage().getValue(); + //url = "http://nitta-lab-www.is.konan-u.ac.jp/gallery/300/0/a300p0.png"; + webView.loadUrl(url); + } + }); + } + //Activity内のボタンの表示/非表示 @Override diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/animation/AnimationConnectionModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/animation/AnimationConnectionModel.java new file mode 100644 index 0000000..1a1bd24 --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/views/animation/AnimationConnectionModel.java @@ -0,0 +1,59 @@ +package org.ntlab.acanthus_client.views.animation; + +import android.util.Log; + +import androidx.lifecycle.MutableLiveData; + +import org.ntlab.acanthus_client.Acanthus; +import org.ntlab.acanthus_client.entities.Stroke; +import org.ntlab.acanthus_client.resources.gallery.StrokesRest; + +import java.util.Collection; + +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; +import retrofit2.Retrofit; +import retrofit2.converter.jackson.JacksonConverterFactory; +import retrofit2.converter.scalars.ScalarsConverterFactory; + +public class AnimationConnectionModel { + private Retrofit retrofit; + private Acanthus acanthus; + + public AnimationConnectionModel(Acanthus acanthus) { + init(acanthus); + } + + public void init(Acanthus acanthus) { + this.acanthus = acanthus; + this.retrofit = new Retrofit.Builder() + .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/acanthus/") + .addConverterFactory(ScalarsConverterFactory.create()) + .addConverterFactory(JacksonConverterFactory.create()) + .build(); + } + + public void getPage(MutableLiveData pages) { + final StrokesRest strokesRest = retrofit.create(StrokesRest.class); + + //----------------------------------------------------------------- + // 筆跡追加API + Call call = strokesRest.getLayers(300, 0); + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()){ + pages.setValue(response.body()); + } + } + + @Override + public void onFailure(Call call, Throwable t) { + Log.d("a", "onFailure: "); + } + + }); + + } +} 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 50eb155..d56c054 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 @@ -24,25 +24,43 @@ */ package org.ntlab.acanthus_client.views.animation; +import android.util.Log; + +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModel; import org.ntlab.acanthus_client.Acanthus; import org.ntlab.acanthus_client.entities.Stroke; import org.ntlab.acanthus_client.resources.gallery.StrokesRest; +import org.ntlab.acanthus_client.views.paint.PaintModelContainer; +import java.util.ArrayList; import java.util.Collection; import retrofit2.Call; import retrofit2.Retrofit; +import retrofit2.converter.jackson.JacksonConverterFactory; +import retrofit2.converter.scalars.ScalarsConverterFactory; public class AnimationViewModel extends ViewModel { private Retrofit retrofit; private Acanthus acanthus; + private PaintModelContainer paintModelContainer; + private AnimationConnectionModel animationConnectionModel; + private MutableLiveData pages = new MutableLiveData<>();; - // StrokesRestをGETする。 - public void getAnimationStrokes() { - final StrokesRest strokesRest = retrofit.create(StrokesRest.class); - Call> strokes = strokesRest.getStrokes(acanthus.getAid(), 0, 0); + public void init(Acanthus acanthus) { + + animationConnectionModel = new AnimationConnectionModel(acanthus); + animationConnectionModel.init(acanthus); + animationConnectionModel.getPage(pages); + //Log.d("image", "init: "+pages.getValue()); + //url.setValue(new String()); + } - + // StrokesRestをGETする。 + public LiveData getAnimationPage() { + return pages; + } } diff --git a/app/src/main/res/layout/activity_animation.xml b/app/src/main/res/layout/activity_animation.xml index 5706054..a389cfc 100644 --- a/app/src/main/res/layout/activity_animation.xml +++ b/app/src/main/res/layout/activity_animation.xml @@ -89,4 +89,13 @@ app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.499" /> + + \ No newline at end of file