diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml index 69e56fe..10746e9 100644 --- a/.idea/deploymentTargetDropDown.xml +++ b/.idea/deploymentTargetDropDown.xml @@ -7,11 +7,11 @@ - + - + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index bdd5b80..43cf19a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -39,12 +39,12 @@ android:exported="true" android:label="@string/title_activity_sign_up"> - - + + - - + + - - + + - - + + - - + + - - + + posts = new ArrayList<>(); //Getter public String getSid() { @@ -22,9 +21,6 @@ public double getLatitude() { return latitude; } - public ArrayList getPosts() { - return posts; - } //Setter public void setSid(String id) { @@ -39,7 +35,16 @@ public void setLatitude(double latitude) { this.latitude = latitude; } - public void setPosts(ArrayList posts) { - this.posts = posts; + + @Override + public boolean equals(Object other) { + if (other == null || !(other instanceof Shop)) { + return false; + } + Shop shop = (Shop) other; + if (!this.id.equals(shop.id)) { + return false; + } + return true; } } 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 4f0d8d3..738202d 100644 --- a/app/src/main/java/com/example/nemophila/viewmodels/ShopsViewModel.java +++ b/app/src/main/java/com/example/nemophila/viewmodels/ShopsViewModel.java @@ -7,6 +7,7 @@ import com.example.nemophila.entities.Shop; import com.example.nemophila.resources.ShopsRest; +import java.util.ArrayList; import java.util.Collection; import retrofit2.Call; @@ -24,11 +25,14 @@ private double lx; private double ly; + // 更新比較用 + private Collection shopsPreData; + // ライブデータ final private MutableLiveData> shopsLiveData; // コンストラクタ - public ShopsViewModel(){ + public ShopsViewModel() { this.shopsLiveData = new MutableLiveData<>(); this.retrofit = new Retrofit.Builder() .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/nemophila/") @@ -68,7 +72,15 @@ // 通信が正常に動作 if (response.isSuccessful()) { if (response.body() != null) { - shopsLiveData.setValue(response.body()); // LiveDataを書き換える + // LiveDataとresponse.body()が異なるときは更新する + if (shopsPreData == null || !shopsPreData.containsAll(response.body())) { + System.out.println(shopsPreData); + System.out.println(response.body()); + shopsLiveData.setValue(response.body()); // LiveDataを書き換える + shopsPreData = response.body(); + } else { + System.out.println("LiveDataとresponse.body()が一致"); + } } else { System.out.println("response null : setViewModel"); }