diff --git a/app/src/main/java/com/example/nemophila/MapsActivity.java b/app/src/main/java/com/example/nemophila/MapsActivity.java index 8fb3da6..5b22689 100644 --- a/app/src/main/java/com/example/nemophila/MapsActivity.java +++ b/app/src/main/java/com/example/nemophila/MapsActivity.java @@ -9,10 +9,6 @@ import androidx.fragment.app.DialogFragment; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import androidx.navigation.NavController; -import androidx.navigation.fragment.NavHostFragment; -import androidx.navigation.ui.AppBarConfiguration; -import androidx.navigation.ui.NavigationUI; import android.content.Context; import android.content.Intent; @@ -32,21 +28,15 @@ import android.widget.TextView; import android.widget.Toast; -import com.example.nemophila.entities.Account; import com.example.nemophila.entities.AccountNameJson; import com.example.nemophila.entities.Shop; import com.example.nemophila.viewmodels.FriendViewModel; import com.example.nemophila.viewmodels.ShopsViewModel; -import com.google.android.gms.maps.CameraUpdateFactory; -import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.Marker; -import com.google.android.gms.maps.model.MarkerOptions; import com.google.android.material.navigation.NavigationView; import java.util.ArrayList; import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; import java.util.List; @@ -58,7 +48,6 @@ DialogFragment filterDialog; MapsFragment mapsFragment; private Handler handler; - //private HashMap NameToId; // フィルターのリスト用 @@ -66,7 +55,7 @@ ListView list; boolean isGenre; String genreData[]; - ArrayList friendsData; + ArrayList UsersData; @Override @@ -132,8 +121,6 @@ } }); - //filterDialog = new FilterDialog(); - // サイドメニューのボタン Button genreButton = findViewById(R.id.filter_genre_button); Button friendButton = findViewById(R.id.filter_friends_button); @@ -152,14 +139,10 @@ // サイドメニューのフィルターのリストの準備 genreData = new String[]{"中華", "和食", "イタリアン", "フレンチ", "カフェ", "バー", "居酒屋", "ラーメン", "うどん・そば", "その他 海外料理"}; - friendsData = new ArrayList<>(); - //NameToId = new HashMap<>(); + UsersData = new ArrayList<>(); -// friendsData[0] = "iyo"; -// friendsData[1] = "iyo2"; -// friendsData[2] = "superiyo"; -// friendsData[3] = "perfectiyo"; -// friendsData[4] = "finaliyo"; + //自分自身をfilterにかけられるように追加しておく + UsersData.add(nemophila.getUid()); //フレンド一覧を取得 friendViewModel.getFriends(nemophila.getUid()); @@ -167,8 +150,7 @@ @Override public void onChanged(Collection friends) { for (AccountNameJson friend : friends) { - friendsData.add(friend.getUid()); - //NameToId.put(friend.getName(), friend.getUid()); + UsersData.add(friend.getUid()); } } }); @@ -229,7 +211,7 @@ return super.onOptionsItemSelected(item); } - + //ジャンルfilter設定画面になったとき public void prepareGenreList(String s){ //sは検索欄に入力された文字列 @@ -261,6 +243,7 @@ list.deferNotifyDataSetChanged(); } + //ユーザーfilter設定画面になったとき public void prepareFriendList(String s){ //sは検索欄に入力された文字列 @@ -269,20 +252,25 @@ // 一度リストのデータを取り除いてから追加する listData.clear(); + + FilterDataModel fd = new FilterDataModel(); + fd.setText(nemophila.getUid()); + fd.setNameText(nemophila.getName()); + listData.add(fd); for (AccountNameJson friend : nemophila.getFriends()) { if(s == null) { - FilterDataModel fd = new FilterDataModel(); - fd.setText(friend.getUid()); - fd.setNameText(friend.getName()); - listData.add(fd); + FilterDataModel fd2 = new FilterDataModel(); + fd2.setText(friend.getUid()); + fd2.setNameText(friend.getName()); + listData.add(fd2); } else { //検索にヒットしたフレンドのみのリストにする if(friend.getName().contains(s)){ - FilterDataModel fd = new FilterDataModel(); - fd.setText(friend.getUid()); - fd.setNameText(friend.getName()); - listData.add(fd); + FilterDataModel fd2 = new FilterDataModel(); + fd2.setText(friend.getUid()); + fd2.setNameText(friend.getName()); + listData.add(fd2); } } } @@ -314,7 +302,7 @@ layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } - // 画面外に行ったときにチェックがずれないようにする + // 画面外に行ったときにチェックがはずれないようにする @Override public View getView(int position, View convertView, ViewGroup parent) { CheckBox checkBox; @@ -354,34 +342,31 @@ public void onCheckedChanged(CompoundButton compoundButton, boolean b) { if(b) { if(isGenre) { - //Toast.makeText(MapsActivity.this, listData.get(position).getText(), Toast.LENGTH_SHORT).show(); nemophila.setSelectGenres(listData.get(position).getText()); } else { nemophila.setSelectFriends(listData.get(position).getText()); } } else { if(isGenre) { - //Toast.makeText(MapsActivity.this, listData.get(position).getText(), Toast.LENGTH_SHORT).show(); nemophila.removeSelectGenres(listData.get(position).getText()); - } else { nemophila.removeSelectFriends(listData.get(position).getText()); } } FilterDataModel data = getItem(position); data.isChecked = b; + //shopsViewModelのPreShoplistは、現在取得した全てのshopを持っている Collection shops = shopsViewModel.getPreShoplist(); if ( shops != null ) { System.out.println(shops); - nemophila.getSelectGenres(); for (Shop shop : shops) { Marker setMarker = shopsViewModel.getMarker(shop); ArrayList userIdSet = (ArrayList)shop.getUserIdSet().clone(); - friendsData.add(nemophila.getUid()); - userIdSet.retainAll(friendsData); + UsersData.add(nemophila.getUid()); + userIdSet.retainAll(UsersData); //自分とそのフレンド以外の投稿は確認しない if( userIdSet.size() > 0) { @@ -446,13 +431,6 @@ public String getText() { return text; } - public String getNameText() { - return nameText; - } - - public boolean isChecked() { - return isChecked; - } public void setText(String text) { this.text = text; @@ -461,9 +439,6 @@ this.nameText = text; } - public void setChecked(boolean checked) { - isChecked = checked; - } } } \ No newline at end of file