diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index b589d56..b86273d 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml
index b268ef3..a207691 100644
--- a/.idea/deploymentTargetSelector.xml
+++ b/.idea/deploymentTargetSelector.xml
@@ -4,6 +4,14 @@
+
+
+
+
+
+
+
+
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 8978d23..74dd639 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,7 @@
+
-
+
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..cb52bac 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
@@ -36,6 +36,10 @@
private Tampopo tampopo;
+ // RecyclerView とそのアダプターをフィールドとして保持しておく
+ private RecyclerView recyclerView;
+ private MyFriendRequestRecyclerViewAdapter adapter;
+
/**
* Mandatory empty constructor for the fragment manager to instantiate the
* fragment (e.g. upon screen orientation changes).
@@ -81,13 +85,20 @@
// Set the adapter
if (view instanceof RecyclerView) {
Context context = view.getContext();
- RecyclerView recyclerView = (RecyclerView) view;
+ recyclerView = (RecyclerView) view;
+
if (mColumnCount <= 1) {
recyclerView.setLayoutManager(new LinearLayoutManager(context));
} else {
recyclerView.setLayoutManager(new GridLayoutManager(context, mColumnCount));
}
- recyclerView.setAdapter(new MyFriendRequestRecyclerViewAdapter(FriendRequestContent.ITEMS, friendViewModel, receiverId, token));
+
+ // 画面を開くたびに、いったんリストを空にしてから最新データを入れるようにする
+ FriendRequestContent.ITEMS.clear();
+ FriendRequestContent.ITEM_MAP.clear();
+
+ adapter = new MyFriendRequestRecyclerViewAdapter(FriendRequestContent.ITEMS, friendViewModel, receiverId, token);
+ recyclerView.setAdapter(adapter);
}
return view;
}
@@ -102,9 +113,17 @@
// LiveData に変更があったとき(新しい友達リクエストのリストが届いたとき)に呼ばれるメソッド
@Override
public void onChanged(List friendRequests) {
+ // LiveData に新しいリストが来たら、表示用リストを作り直してアダプターに更新を通知
+ FriendRequestContent.ITEMS.clear();
+ FriendRequestContent.ITEM_MAP.clear();
+
for (FriendRequest f: friendRequests) {
FriendRequestContent.addItem(new FriendRequestContent.FriendRequestItem(f.getSenderId(), "ユーザー名"));
}
+
+ if (adapter != null) {
+ adapter.notifyDataSetChanged();
+ }
}
});
}