diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml index b268ef3..3279e27 100644 --- a/.idea/deploymentTargetSelector.xml +++ b/.idea/deploymentTargetSelector.xml @@ -4,6 +4,14 @@ 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..32d987f 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 @@ -102,8 +102,40 @@ // LiveData に変更があったとき(新しい友達リクエストのリストが届いたとき)に呼ばれるメソッド @Override public void onChanged(List friendRequests) { - for (FriendRequest f: friendRequests) { - FriendRequestContent.addItem(new FriendRequestContent.FriendRequestItem(f.getSenderId(), "ユーザー名")); + // null 安全のためガード + if (friendRequests == null) { + return; + } + + // 既存データをクリアしてから新しいリストで再構築 + FriendRequestContent.clearItems(); + + // この端末でログインしているユーザー(受信者)のID + String myUserId = tampopo.getUserId(); + + // API から返ってきた一覧のうち「自分宛て(receiverId == myUserId)」の + // フレンド申請だけを抽出して表示用リストに追加する + for (FriendRequest f : friendRequests) { + if (myUserId != null && myUserId.equals(f.getReceiverId())) { + // RecyclerView では senderId を "ID" として表示 + FriendRequestContent.addItem( + new FriendRequestContent.FriendRequestItem( + f.getSenderId(), + "ユーザー名" // TODO: 必要であればユーザー名取得に差し替える + ) + ); + } + } + + // RecyclerView が FriendRequestContent.ITEMS を参照しているので、 + // データ変更を通知して再描画させる + View rootView = getView(); + if (rootView instanceof RecyclerView) { + RecyclerView recyclerView = (RecyclerView) rootView; + RecyclerView.Adapter adapter = recyclerView.getAdapter(); + if (adapter != null) { + adapter.notifyDataSetChanged(); + } } } }); diff --git a/app/src/main/java/com/example/tampopo_client/views/placeholder/FriendRequestContent.java b/app/src/main/java/com/example/tampopo_client/views/placeholder/FriendRequestContent.java index a52b3af..a548ffc 100644 --- a/app/src/main/java/com/example/tampopo_client/views/placeholder/FriendRequestContent.java +++ b/app/src/main/java/com/example/tampopo_client/views/placeholder/FriendRequestContent.java @@ -29,6 +29,12 @@ ITEM_MAP.put(item.id, item); } + // 一覧を再読み込みする際に古いデータを消すためのメソッド + public static void clearItems() { + ITEMS.clear(); + ITEM_MAP.clear(); + } + //位置(1,2,...)に応じたFriendRequestItem を生成するメソッド // public static FriendRequestItem createPlaceholderItem(int position) { // return new FriendRequestItem(String.valueOf(position), "ユーザー名 ", makeDetails(position));