diff --git a/app/src/main/java/com/example/tampopo_client/views/FriendReceivedFragment.java b/app/src/main/java/com/example/tampopo_client/views/FriendReceivedFragment.java index b5a8976..1e40f42 100644 --- a/app/src/main/java/com/example/tampopo_client/views/FriendReceivedFragment.java +++ b/app/src/main/java/com/example/tampopo_client/views/FriendReceivedFragment.java @@ -22,6 +22,7 @@ import com.example.tampopo_client.viewmodels.FriendViewModel; import com.example.tampopo_client.viewmodels.FriendReceivedRequestViewModel; +import java.util.ArrayList; import java.util.List; /** @@ -35,6 +36,7 @@ private int mColumnCount = 1; private Tampopo tampopo; + private MyFriendRequestRecyclerViewAdapter adapter; /** * Mandatory empty constructor for the fragment manager to instantiate the @@ -87,7 +89,8 @@ } else { recyclerView.setLayoutManager(new GridLayoutManager(context, mColumnCount)); } - recyclerView.setAdapter(new MyFriendRequestRecyclerViewAdapter(FriendRequestContent.ITEMS, friendViewModel, receiverId, token)); + adapter = new MyFriendRequestRecyclerViewAdapter(new ArrayList<>(), friendViewModel, receiverId, token); + recyclerView.setAdapter(adapter); } return view; } @@ -102,8 +105,23 @@ // LiveData に変更があったとき(新しい友達リクエストのリストが届いたとき)に呼ばれるメソッド @Override public void onChanged(List friendRequests) { - for (FriendRequest f: friendRequests) { - FriendRequestContent.addItem(new FriendRequestContent.FriendRequestItem(f.getSenderId(), "ユーザー名")); + if (friendRequests == null) return; + + // 既存のリストをクリア + FriendRequestContent.ITEMS.clear(); + FriendRequestContent.ITEM_MAP.clear(); + + String myId = tampopo.getUserId(); + for (FriendRequest f : friendRequests) { + // 自分が受信者である申請のみを追加 + if (f.getReceiverId() != null && f.getReceiverId().equals(myId)) { + FriendRequestContent.addItem(new FriendRequestContent.FriendRequestItem(f.getSenderId(), f.getSenderId())); + } + } + + // アダプターに更新を通知 + if (adapter != null) { + adapter.setItems(new ArrayList<>(FriendRequestContent.ITEMS)); } } }); diff --git a/app/src/main/java/com/example/tampopo_client/views/MyFriendRequestRecyclerViewAdapter.java b/app/src/main/java/com/example/tampopo_client/views/MyFriendRequestRecyclerViewAdapter.java index 4b7c836..611703b 100644 --- a/app/src/main/java/com/example/tampopo_client/views/MyFriendRequestRecyclerViewAdapter.java +++ b/app/src/main/java/com/example/tampopo_client/views/MyFriendRequestRecyclerViewAdapter.java @@ -20,7 +20,7 @@ public class MyFriendRequestRecyclerViewAdapter extends RecyclerView.Adapter { // 表示するFriendRequestItemのリスト(アダプターのデータ) - private final List mValues; + private List mValues; private FriendViewModel friendViewModel; private String receiverId; @@ -70,6 +70,11 @@ return mValues.size(); } + public void setItems(List items) { + this.mValues = items; + notifyDataSetChanged(); + } + // 各行(View)を保持するための ViewHolder クラス public class ViewHolder extends RecyclerView.ViewHolder { // TextView:表示される友達の名前