diff --git a/app/src/main/java/com/example/nemophila/MapsActivity.java b/app/src/main/java/com/example/nemophila/MapsActivity.java index 9b05bb3..6d129f7 100644 --- a/app/src/main/java/com/example/nemophila/MapsActivity.java +++ b/app/src/main/java/com/example/nemophila/MapsActivity.java @@ -7,6 +7,7 @@ import androidx.appcompat.widget.Toolbar; import androidx.drawerlayout.widget.DrawerLayout; import androidx.fragment.app.DialogFragment; +import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; import androidx.navigation.NavController; import androidx.navigation.fragment.NavHostFragment; @@ -31,7 +32,10 @@ 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.model.Marker; import com.google.android.material.navigation.NavigationView; @@ -45,6 +49,7 @@ Nemophila nemophila; ShopsViewModel shopsViewModel; + FriendViewModel friendViewModel; DialogFragment filterDialog; private Handler handler; @@ -54,12 +59,13 @@ ListView list; boolean isGenre; String genreData[]; - String friendsData[]; + ArrayList friendsData; @Override protected void onCreate(Bundle savedInstanceState) { shopsViewModel = new ViewModelProvider(this).get(ShopsViewModel.class); + friendViewModel = new ViewModelProvider(this).get(FriendViewModel.class); super.onCreate(savedInstanceState); setContentView(R.layout.activity_maps); @@ -124,18 +130,30 @@ // サイドメニューのフィルターのリストの準備 genreData = new String[5]; - friendsData = new String[5]; + friendsData = new ArrayList<>(); genreData[0] = "和食"; genreData[1] = "中華"; genreData[2] = "イタリアン"; genreData[3] = "洋食"; genreData[4] = "ジャンクフード"; - friendsData[0] = "iyo"; - friendsData[1] = "iyo2"; - friendsData[2] = "superiyo"; - friendsData[3] = "perfectiyo"; - friendsData[4] = "finaliyo"; +// friendsData[0] = "iyo"; +// friendsData[1] = "iyo2"; +// friendsData[2] = "superiyo"; +// friendsData[3] = "perfectiyo"; +// friendsData[4] = "finaliyo"; + + //フレンド一覧を取得 + friendViewModel.getFriends(nemophila.getUid()); + friendViewModel.getFriendsLiveData().observe(this, new Observer>() { + @Override + public void onChanged(Collection friends) { + for (AccountNameJson friend : friends) { + friendsData.add(friend.getName()); + } + } + }); + listData = new ArrayList<>(); list = findViewById(R.id.drawer_list); @@ -194,6 +212,8 @@ public void prepareGenreList(String s){ + //sは検索欄に入力された文字列 + // 現在表示されているリストがジャンルのリストかどうかを設定 isGenre = true; @@ -223,20 +243,24 @@ } public void prepareFriendList(String s){ + //sは検索欄に入力された文字列 + // 現在表示されているリストがジャンルのリストかどうかを設定 isGenre = false; // 一度リストのデータを取り除いてから追加する listData.clear(); - for(int i = 0; i < friendsData.length; i++){ + + for (AccountNameJson friend : nemophila.getFriends()) { if(s == null) { FilterDataModel fd = new FilterDataModel(); - fd.setText(friendsData[i]); + fd.setText(friend.getName()); listData.add(fd); } else { - if(friendsData[i].contains(s)){ + //検索にヒットしたフレンドのみのリストにする + if(friend.getName().contains(s)){ FilterDataModel fd = new FilterDataModel(); - fd.setText(friendsData[i]); + fd.setText(friend.getName()); listData.add(fd); } } @@ -284,7 +308,7 @@ checkBox.setChecked(nemophila.getSelectFriends().contains(item.getText())); } - // チェックボックスを押したときの処理 + // チェックボックスを押したときの処理 //bがtrueでチェック状態を指す checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean b) { @@ -292,7 +316,6 @@ 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()); } @@ -311,22 +334,23 @@ if ( shops != null ) { System.out.println(shops); + nemophila.getSelectGenres(); for (Shop shop : shops) { if ( shopsViewModel.getMarker(shop) != null) { - //すでに立っているピンをフィルター掛け - Marker setMaker = shopsViewModel.getMarker(shop); - if (!nemophila.getSelectGenres().isEmpty()) { - setMaker.setVisible(false); - } else { - setMaker.setVisible(true); - - } +// if (shop.getgenreSet ) { +// //すでに立っているピンをフィルター掛け +// Marker setMaker = shopsViewModel.getMarker(shop); +// if (!nemophila.getSelectGenres().isEmpty()) { +// setMaker.setVisible(false); +// } else { +// setMaker.setVisible(true); +// } +// } + } // if (!nemophila.getSelectFriends().isEmpty()) { // setMaker.setVisible(false); // } - - } } } }