diff --git a/app/src/main/java/com/example/nemophila/MapsFragment.java b/app/src/main/java/com/example/nemophila/MapsFragment.java index 1ee5dd6..4f79231 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.LiveData; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -55,6 +56,7 @@ import com.google.common.collect.Maps; import java.util.ArrayList; +import java.util.Collection; import java.util.Map; public class MapsFragment extends Fragment implements LocationListener { @@ -113,37 +115,8 @@ String.format("表示していない店を確認しました。ピンを立てます"), Toast.LENGTH_SHORT) .show(); - for (Shop shop : shops) { - //受け取ったshopsにfriendsの投稿が含まれているかを確認,受け取ったshopsに対してMarkerが立っているかを確認 - - //observeの中にobserveはうまくいかなかった -// postsViewModel.loadShopPost(shop.getSid()); -// postsViewModel.getShopPostLiveData().observe(getActivity(), new Observer >() { -// @Override -// public void onChanged(ArrayList posts) { -// ArrayList ids = postsViewModel.getUserIds(); -// -// 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) { //フレンド以外の投稿のピンも立てたい場合 - //if( && shopsViewModel.getMarker(shop) == null) { //各shopに対応するMarkerがなければMarkerを立てる shopLatlng = new LatLng(shop.getLatitude(), shop.getLongitude()); @@ -151,8 +124,29 @@ Marker createMaker = mMap.addMarker(new MarkerOptions().position(shopLatlng).title("")); //マーカーに店情報を持たせる createMaker.setTag(shop); + //フィルター掛け + if ( !nemophila.getSelectGenres().isEmpty() ) { + Toast.makeText(getActivity(), + String.format("ジャンルに該当しないので非表示にします"), + Toast.LENGTH_SHORT) + .show(); + createMaker.setVisible(false); + } + if ( !nemophila.getSelectFriends().isEmpty() ) { + createMaker.setVisible(false); + } + //ShopToMarkerに紐づけ shopsViewModel.setShopAndMarker(shop, createMaker); + } else { + //すでに立っているピンをフィルター掛け + Marker setMaker = shopsViewModel.getMarker(shop); + if ( !nemophila.getSelectGenres().isEmpty() ) { + setMaker.setVisible(false); + } + if ( !nemophila.getSelectFriends().isEmpty() ) { + setMaker.setVisible(false); + } } } }); @@ -185,6 +179,37 @@ nemophila.setZoom(mMap.getCameraPosition().zoom); //Shopの描画範囲を指定 shopsViewModel.setViewArea(nemophila.getCameraLongitude() + 1, nemophila.getCameraLatitude() + 1, nemophila.getCameraLongitude() - 1, nemophila.getCameraLatitude() - 1); + +// Collection shops = shopsViewModel.getPreShoplist(); +// +// if ( shops != null ) { +// System.out.println("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"); +// System.out.println(shops); +// +// Toast.makeText(getActivity(), +// String.format("フィルターを適応中"), +// Toast.LENGTH_SHORT) +// .show(); +// +// for (Shop shop : shops) { +// // if ( shopsViewModel.getMarker(shop) != null) { +// // //すでに立っているピンをフィルター掛け +// // Marker setMaker = shopsViewModel.getMarker(shop); +// // if (!nemophila.getSelectGenres().isEmpty()) { +// // Toast.makeText(getActivity(), +// // String.format("ジャンルに該当しないピンを全て非表示にします"), +// // Toast.LENGTH_SHORT) +// // .show(); +// // setMaker.setVisible(false); +// // } +// // if (!nemophila.getSelectFriends().isEmpty()) { +// // setMaker.setVisible(false); +// // } +// // } +// // System.out.println("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"); +// //} +// } +// } });