diff --git a/.idea/misc.xml b/.idea/misc.xml
index 960c647..d8d659e 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -9,6 +9,9 @@
+
+
+
diff --git a/app/src/main/java/com/example/nemophila/MapsFragment.java b/app/src/main/java/com/example/nemophila/MapsFragment.java
index 70c0e99..e01ee82 100644
--- a/app/src/main/java/com/example/nemophila/MapsFragment.java
+++ b/app/src/main/java/com/example/nemophila/MapsFragment.java
@@ -9,6 +9,7 @@
import androidx.core.content.res.ResourcesCompat;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;
+import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import android.Manifest;
@@ -29,9 +30,11 @@
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
+import android.widget.TextView;
import android.widget.Toast;
import com.example.nemophila.databinding.ActivityMainBinding;
+import com.example.nemophila.entities.Post;
import com.example.nemophila.entities.Shop;
import com.example.nemophila.viewmodels.FriendViewModel;
import com.example.nemophila.viewmodels.PostsViewModel;
@@ -51,6 +54,7 @@
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.common.collect.Maps;
+import java.util.ArrayList;
import java.util.Map;
public class MapsFragment extends Fragment implements LocationListener {
@@ -72,7 +76,7 @@
private Marker currentMarker;
private BitmapDescriptor bd;
private boolean isLongClick;
- private
+
LocationManager locationManager;
@@ -112,18 +116,42 @@
for (Shop shop : shops) {
//受け取ったshopsにfriendsの投稿が含まれているかを確認,受け取ったshopsに対してMarkerが立っているかを確認
- if ( shopsViewModel.getMarker(shop) == null) { //フレンド以外の投稿のピンも立てたい場合
- //if( && shopsViewModel.getMarker(shop) == null) {
+ //if ( shopsViewModel.getMarker(shop) == null) { //フレンド以外の投稿のピンも立てたい場合
+ postsViewModel.loadShopPost(shop.getSid());
+ postsViewModel.getShopPostLiveData().observe(getActivity(), new Observer >() {
+ @Override
+ public void onChanged(ArrayList posts) {
+ ArrayList ids = postsViewModel.getUserIds();
- //各shopに対応するMarkerがなければMarkerを立てる
- shopLatlng = new LatLng(shop.getLatitude(), shop.getLongitude());
- System.out.println(shopLatlng);
- Marker createMaker = mMap.addMarker(new MarkerOptions().position(shopLatlng).title(""));
- //マーカーに店情報を持たせる
- createMaker.setTag(shop);
- //ShopToMarkerに紐づけ
- shopsViewModel.setShopAndMarker(shop, createMaker);
- }
+ for(int i = 0; i < ids.size(); i++) {
+ ArrayList fids = nemophila.getFriendIds();
+ for(int j = 0; j < fids.size(); j++) {
+ if( ( ids.get(i).equals(fids.get(j)) || ids.get(i).equals(nemophila.getUid()) ) && shopsViewModel.getMarker(shop) == null ){
+
+ //各shopに対応するMarkerがなければMarkerを立てる
+ shopLatlng = new LatLng(shop.getLatitude(), shop.getLongitude());
+ System.out.println(shopLatlng);
+ Marker createMaker = mMap.addMarker(new MarkerOptions().position(shopLatlng).title(""));
+ //マーカーに店情報を持たせる
+ createMaker.setTag(shop);
+ //ShopToMarkerに紐づけ
+ shopsViewModel.setShopAndMarker(shop, createMaker);
+ }
+ }
+ }
+ }
+ });
+// if( shopsViewModel.getMarker(shop) == null) {
+//
+// //各shopに対応するMarkerがなければMarkerを立てる
+// shopLatlng = new LatLng(shop.getLatitude(), shop.getLongitude());
+// System.out.println(shopLatlng);
+// Marker createMaker = mMap.addMarker(new MarkerOptions().position(shopLatlng).title(""));
+// //マーカーに店情報を持たせる
+// createMaker.setTag(shop);
+// //ShopToMarkerに紐づけ
+// shopsViewModel.setShopAndMarker(shop, createMaker);
+// }
}
});
diff --git a/app/src/main/java/com/example/nemophila/Nemophila.java b/app/src/main/java/com/example/nemophila/Nemophila.java
index a41a04d..00a9120 100644
--- a/app/src/main/java/com/example/nemophila/Nemophila.java
+++ b/app/src/main/java/com/example/nemophila/Nemophila.java
@@ -8,6 +8,7 @@
import com.example.nemophila.entities.Shop;
import com.google.type.LatLng;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
@@ -198,4 +199,12 @@
public void removeFavoriteFriends(String favoriteFriend){
this.favoriteFriends.remove(favoriteFriend);
}
+ public ArrayList getFriendIds() {
+ ArrayList friendIds = new ArrayList<>();
+ for(AccountNameJson anj: friends) {
+ friendIds.add(anj.getUid());
+ }
+ return friendIds;
+ }
+
}