diff --git a/app/src/main/java/com/example/nemophila/MapsFragment.java b/app/src/main/java/com/example/nemophila/MapsFragment.java index a078e85..aa88095 100644 --- a/app/src/main/java/com/example/nemophila/MapsFragment.java +++ b/app/src/main/java/com/example/nemophila/MapsFragment.java @@ -90,6 +90,7 @@ postsViewModel = new ViewModelProvider(getActivity()).get(PostsViewModel.class); //フレンドの更新が入った時の処理(LiveDataへの購読) + friendViewModel.getFriends(nemophila.getUid()); friendViewModel.getFriendsLiveData().observe(getActivity(), friends -> { Toast.makeText(getActivity(), String.format("フレンドの更新を確認しました。"), diff --git a/app/src/main/java/com/example/nemophila/ShopActivity.java b/app/src/main/java/com/example/nemophila/ShopActivity.java index 6a0e6fa..0c88111 100644 --- a/app/src/main/java/com/example/nemophila/ShopActivity.java +++ b/app/src/main/java/com/example/nemophila/ShopActivity.java @@ -19,15 +19,18 @@ import android.widget.TextView; import com.example.nemophila.entities.Account; +import com.example.nemophila.entities.AccountNameJson; import com.example.nemophila.entities.Post; import com.example.nemophila.entities.Shop; import com.example.nemophila.viewmodels.PostsViewModel; import java.util.ArrayList; +import java.util.Collection; import java.util.HashSet; import java.util.List; public class ShopActivity extends AppCompatActivity { + Nemophila nemophila; private ShopAcAdapter adapter = null; @Override @@ -64,6 +67,9 @@ } }); + //フレンドを取得 + Collection friends = ((Nemophila)getApplication()).getFriends(); + //RecyclerViewに表示する中身を格納するリストを宣言 List postsDataset = new ArrayList<>(); @@ -108,6 +114,8 @@ //postsDatasetを一旦クリアし、LiveDataから受け取ったデータを一つずつセット(重複しないように) postsDataset.clear(); + int friendFrag; + for (Post post: ShopPosts){ //dataを宣言 dataに投稿の必要なデータをセットし、それをpostsDatasetに追加してリストを作る ShopAcDataModel data = new ShopAcDataModel(); @@ -116,27 +124,39 @@ String uid = post.getUid(); String name = post.getName(); - //選択が何もない場合は全ての投稿を、選択がある場合は一致する投稿をdataにセット - if(selectingGenre.isEmpty() || selectingGenre.contains(genre)) { - if(selectingFriend.isEmpty() || selectingFriend.contains(uid)) { - data.setName(name); - data.setDate(post.getDate()); - //rateはintで受け取った評価に対応した星の数のStringに変換してセット - int intRate = post.getRate(); - String strRate = ""; - for (int i = 0; i < 5; i++) { - if (intRate > i) { - strRate += "★"; - } else { - strRate += "☆"; - } - } - data.setRate(strRate); - data.setGenre(genre); - data.setComment(post.getComment()); + //投稿がフレンドのものかチェック + friendFrag = 0; + for(AccountNameJson friendNJ: friends){ + if(uid.equals(friendNJ.getUid())){ + friendFrag = 1; + } + } - //投稿一つの情報がdataに全部セットされたらDatasetに追加 - postsDataset.add(data); + //フレンドの投稿のみdataにセット + if(friendFrag == 1) { +// if(friends.contains(uid)){ + //選択が何もない場合は全ての投稿を、選択がある場合は一致する投稿をdataにセット + if (selectingGenre.isEmpty() || selectingGenre.contains(genre)) { + if (selectingFriend.isEmpty() || selectingFriend.contains(uid)) { + data.setName(name); + data.setDate(post.getDate()); + //rateはintで受け取った評価に対応した星の数のStringに変換してセット + int intRate = post.getRate(); + String strRate = ""; + for (int i = 0; i < 5; i++) { + if (intRate > i) { + strRate += "★"; + } else { + strRate += "☆"; + } + } + data.setRate(strRate); + data.setGenre(genre); + data.setComment(post.getComment()); + + //投稿一つの情報がdataに全部セットされたらDatasetに追加 + postsDataset.add(data); + } } } //フレンド名を表示用HashSetにセット