diff --git a/app/src/main/java/com/example/nemophila/MapsFragment.java b/app/src/main/java/com/example/nemophila/MapsFragment.java index 5a4966f..a078e85 100644 --- a/app/src/main/java/com/example/nemophila/MapsFragment.java +++ b/app/src/main/java/com/example/nemophila/MapsFragment.java @@ -33,6 +33,8 @@ import com.example.nemophila.databinding.ActivityMainBinding; import com.example.nemophila.entities.Shop; +import com.example.nemophila.viewmodels.FriendViewModel; +import com.example.nemophila.viewmodels.PostsViewModel; import com.example.nemophila.viewmodels.ShopsViewModel; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; @@ -53,6 +55,8 @@ public class MapsFragment extends Fragment implements LocationListener { ShopsViewModel shopsViewModel; + FriendViewModel friendViewModel; + PostsViewModel postsViewModel; Nemophila nemophila; private GoogleMap mMap; @@ -68,6 +72,7 @@ private Marker currentMarker; private BitmapDescriptor bd; private boolean isLongClick; + private LocationManager locationManager; @@ -81,19 +86,32 @@ //ViewModelへのアクセス shopsViewModel = new ViewModelProvider(getActivity()).get(ShopsViewModel.class); + friendViewModel = new ViewModelProvider(getActivity()).get(FriendViewModel.class); + postsViewModel = new ViewModelProvider(getActivity()).get(PostsViewModel.class); - // 店情報の更新が入った時の処理 - // LiveDataへの購読 + //フレンドの更新が入った時の処理(LiveDataへの購読) + friendViewModel.getFriendsLiveData().observe(getActivity(), friends -> { + Toast.makeText(getActivity(), + String.format("フレンドの更新を確認しました。"), + Toast.LENGTH_SHORT) + .show(); + //nemophilaにセットしておく + nemophila.setFriends(friends); + }); + + // 店情報の更新が入った時の処理(LiveDataへの購読) shopsViewModel.getShopsLiveData().observe(getActivity(), shops -> { Toast.makeText(getActivity(), String.format("表示していない店を確認しました。ピンを立てます"), Toast.LENGTH_SHORT) .show(); - //受け取ったshopsに対してMarkerが立っているかを確認 - //各shopに対応するMarkerがなければMarkerを立てる for (Shop shop : shops) { - if (shopsViewModel.getMarker(shop) == null) { + //受け取ったshopsにfriendsの投稿が含まれているかを確認,受け取ったshopsに対してMarkerが立っているかを確認 + if ( shopsViewModel.getMarker(shop) == null) { //フレンド以外の投稿のピンも立てたい場合 + //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("")); @@ -105,8 +123,7 @@ } }); - // 長押しを認識した後の処理 - // LiveDataへの購読 + // 長押しを認識した後の処理(LiveDataへの購読) shopsViewModel.getNearShopsLiveData().observe(getActivity(), shops -> { Toast.makeText(getActivity(), String.format("近辺の店を確認しました。ダイアログを表示します"),