diff --git a/app/src/main/java/com/example/tampopo_client/viewmodels/FriendReceivedRequestViewModel.java b/app/src/main/java/com/example/tampopo_client/viewmodels/FriendReceivedRequestViewModel.java index 2542cc1..d265f38 100644 --- a/app/src/main/java/com/example/tampopo_client/viewmodels/FriendReceivedRequestViewModel.java +++ b/app/src/main/java/com/example/tampopo_client/viewmodels/FriendReceivedRequestViewModel.java @@ -52,12 +52,18 @@ public void onResponse(Call> call, Response> response) { if (response.isSuccessful()) { //通信が成功したらLiveDataへのキャッシュ - receivedRequests.setValue(response.body()); + List requests = response.body(); + System.out.println("[DEBUG] Friend requests received: " + (requests != null ? requests.size() : 0)); + if (requests != null) { + for (FriendRequest req : requests) { + System.out.println("[DEBUG] Request - ID: " + req.getId() + ", Sender: " + req.getSenderId() + ", Receiver: " + req.getReceiverId()); + } + } + receivedRequests.setValue(requests); operationResult.setValue("Success"); - System.out.println("Success SetValue" + response.body()); } else { operationResult.setValue("Error: " + response.code()); - System.out.println("response error"); + System.out.println("[DEBUG] Response error: " + response.code()); } } 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..32a58c8 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 @@ -35,6 +35,8 @@ private int mColumnCount = 1; private Tampopo tampopo; + private MyFriendRequestRecyclerViewAdapter adapter; + private FriendReceivedRequestViewModel friendReceivedRequestViewModel; /** * 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(FriendRequestContent.ITEMS, friendViewModel, receiverId, token); + recyclerView.setAdapter(adapter); } return view; } @@ -95,17 +98,51 @@ @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); - FriendReceivedRequestViewModel friendReceivedRequestViewModel = new ViewModelProvider(this).get(FriendReceivedRequestViewModel.class); + friendReceivedRequestViewModel = new ViewModelProvider(this).get(FriendReceivedRequestViewModel.class); friendReceivedRequestViewModel.loadReceivedRequests(tampopo.getToken()); friendReceivedRequestViewModel.getReceivedRequestsLiveData().observe(getViewLifecycleOwner(), new Observer>() { // LiveData に変更があったとき(新しい友達リクエストのリストが届いたとき)に呼ばれるメソッド @Override public void onChanged(List friendRequests) { - for (FriendRequest f: friendRequests) { - FriendRequestContent.addItem(new FriendRequestContent.FriendRequestItem(f.getSenderId(), "ユーザー名")); + System.out.println("[DEBUG] onChanged called with " + (friendRequests != null ? friendRequests.size() : 0) + " requests"); + + // 既存のアイテムをクリア + FriendRequestContent.ITEMS.clear(); + FriendRequestContent.ITEM_MAP.clear(); + + // 新しいデータを追加(自分が受信者のリクエストのみ) + String myUserId = tampopo.getUserId(); + System.out.println("[DEBUG] My user ID: " + myUserId); + + int filteredCount = 0; + if (friendRequests != null) { + for (FriendRequest f: friendRequests) { + // 自分がreceiverIdのリクエストのみを追加 + if (myUserId != null && myUserId.equals(f.getReceiverId())) { + FriendRequestContent.addItem(new FriendRequestContent.FriendRequestItem(f.getSenderId(), "ユーザー名")); + filteredCount++; + System.out.println("[DEBUG] Added request from: " + f.getSenderId()); + } + } + } + System.out.println("[DEBUG] Filtered " + filteredCount + " received requests"); + + // アダプターに変更を通知 + if (adapter != null) { + adapter.notifyDataSetChanged(); + System.out.println("[DEBUG] Adapter notified"); } } }); } + + @Override + public void onResume() { + super.onResume(); + // 画面遷移で戻ってきたときにデータを再読み込み + if (friendReceivedRequestViewModel != null && tampopo != null) { + friendReceivedRequestViewModel.loadReceivedRequests(tampopo.getToken()); + } + } } \ No newline at end of file