diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml
index b268ef3..65adab4 100644
--- a/.idea/deploymentTargetSelector.xml
+++ b/.idea/deploymentTargetSelector.xml
@@ -4,6 +4,14 @@
+
+
+
+
+
+
+
+
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 0897082..639c779 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -4,6 +4,7 @@
-
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..a205ac5 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
@@ -43,7 +43,7 @@
}
//サーバーから受け取ったFriendReceivedRequestのデータを格納してキャッシュしていくぞ
- public void loadReceivedRequests(String token) {
+ public void loadReceivedRequests(String token, String userId) {
//tokenを渡して、受信フレンド申請一覧を取得するHTTPリクエスト(Webのサーバーに対して何かをお願いするメッセージ」)を作る準備をしている
Call> call = friendRequestsResource.getFriendRequests(token);
//call.enqueueでサーバーへ送信(何を?)
@@ -51,10 +51,19 @@
@Override
public void onResponse(Call> call, Response> response) {
if (response.isSuccessful()) {
- //通信が成功したらLiveDataへのキャッシュ
- receivedRequests.setValue(response.body());
+ //通信が成功したら、receiverIdが自分のIDと一致するものだけをフィルタリング
+ List allRequests = response.body();
+ List filteredRequests = new java.util.ArrayList<>();
+ if (allRequests != null) {
+ for (FriendRequest request : allRequests) {
+ if (userId.equals(request.getReceiverId())) {
+ filteredRequests.add(request);
+ }
+ }
+ }
+ receivedRequests.setValue(filteredRequests);
operationResult.setValue("Success");
- System.out.println("Success SetValue" + response.body());
+ System.out.println("Success SetValue (filtered): " + filteredRequests);
} else {
operationResult.setValue("Error: " + response.code());
System.out.println("response error");
@@ -69,7 +78,7 @@
});
}
// フレンドリクエスト削除メソッド
- public void deleteFriendRequest(String friendRequestId, String token) {
+ public void deleteFriendRequest(String friendRequestId, String token, String userId) {
Call call = friendRequestsResource.deleteFriendRequest(friendRequestId, token);
call.enqueue(new Callback() {
@@ -77,7 +86,7 @@
public void onResponse(Call call, Response response) {
if (response.isSuccessful()) {
operationResult.setValue("Friend request deleted successfully.");
- loadReceivedRequests(token); // 削除後、一覧を更新
+ loadReceivedRequests(token, userId); // 削除後、一覧を更新
System.out.println("Deleted friend request ID: " + friendRequestId);
} else {
operationResult.setValue("Error deleting request: " + 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..5e309b4 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,29 @@
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
- FriendReceivedRequestViewModel friendReceivedRequestViewModel = new ViewModelProvider(this).get(FriendReceivedRequestViewModel.class);
- friendReceivedRequestViewModel.loadReceivedRequests(tampopo.getToken());
+ friendReceivedRequestViewModel = new ViewModelProvider(this).get(FriendReceivedRequestViewModel.class);
friendReceivedRequestViewModel.getReceivedRequestsLiveData().observe(getViewLifecycleOwner(), new Observer>() {
// LiveData に変更があったとき(新しい友達リクエストのリストが届いたとき)に呼ばれるメソッド
@Override
public void onChanged(List friendRequests) {
+ FriendRequestContent.ITEMS.clear();
for (FriendRequest f: friendRequests) {
FriendRequestContent.addItem(new FriendRequestContent.FriendRequestItem(f.getSenderId(), "ユーザー名"));
}
+ if (adapter != null) {
+ adapter.notifyDataSetChanged();
+ }
}
});
}
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ // 画面が表示される度にデータを再読み込み
+ if (friendReceivedRequestViewModel != null && tampopo != null) {
+ friendReceivedRequestViewModel.loadReceivedRequests(tampopo.getToken(), tampopo.getUserId());
+ }
+ }
}
\ No newline at end of file