diff --git a/app/src/main/java/com/example/nemophila/viewmodels/ShopsViewModel.java b/app/src/main/java/com/example/nemophila/viewmodels/ShopsViewModel.java index e1aae7e..4f048db 100644 --- a/app/src/main/java/com/example/nemophila/viewmodels/ShopsViewModel.java +++ b/app/src/main/java/com/example/nemophila/viewmodels/ShopsViewModel.java @@ -1,5 +1,6 @@ package com.example.nemophila.viewmodels; +import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModel; import com.example.nemophila.entities.Shop; @@ -14,10 +15,16 @@ import retrofit2.converter.jackson.JacksonConverterFactory; public class ShopsViewModel extends ViewModel { + // フィールド final private ShopsRest shopsRest; final private Retrofit retrofit; - public ShopsViewModel(){ + // ライブデータ + final private MutableLiveData> shopsLiveData; + + // コンストラクタ + public ShopsViewModel(MutableLiveData> shopsLiveData){ + this.shopsLiveData = new MutableLiveData<>(); this.retrofit = new Retrofit.Builder() .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/nemophila/") .addConverterFactory(JacksonConverterFactory.create()) @@ -25,18 +32,30 @@ this.shopsRest = retrofit.create(ShopsRest.class); } + // 画面を動かす, 又はGPSが移動する度に呼び出される public void setViewArea(double ux, double uy, double lx, double ly){ + // 画面内に収まる範囲の店舗を取得する Call> call = shopsRest.getShops(ux, uy, lx, ly); call.enqueue(new Callback>() { + // 通信が成功 @Override public void onResponse(Call> call, Response> response) { - + // 通信が正常に動作 + if (response.isSuccessful()) { + if (response.body() != null) { + shopsLiveData.setValue(response.body()); // LiveDataを書き換える + } else { + System.out.println("response null : setViewModel"); + } + } else { + System.out.println("ステータスコード 不正 : setViewModel"); + } } - + // 通信が失敗 @Override public void onFailure(Call> call, Throwable t) { - + System.out.println("通信失敗 : setViewModel"); } }); }