diff --git a/app/src/main/java/com/example/tampopo_client/viewmodels/ActivityViewModel.java b/app/src/main/java/com/example/tampopo_client/viewmodels/ActivityViewModel.java index 3d15caf..0c74253 100644 --- a/app/src/main/java/com/example/tampopo_client/viewmodels/ActivityViewModel.java +++ b/app/src/main/java/com/example/tampopo_client/viewmodels/ActivityViewModel.java @@ -39,6 +39,7 @@ private final MutableLiveData myLatestActivityLiveData; // 自分の最新のアクティビティ private final Map>> friendToActivitiesLiveData; // <フレンドのユーザーID, フレンドのアクティビティのリスト> private final MutableLiveData> friendUserIdsLiveData; // フレンドのユーザーIDのリスト + private final MutableLiveData> allFriendsLatestActivitiesLiveData; // 全フレンドの最新アクティビティのリスト private final String myUserId; private final String myToken; @@ -65,6 +66,7 @@ friendToActivitiesLiveData = new HashMap<>(); friendUserIdsLiveData = new MutableLiveData<>(List.of()); myLatestActivityLiveData = new MutableLiveData<>(null); + allFriendsLatestActivitiesLiveData = new MutableLiveData<>(new ArrayList<>()); // 初期化 userActivityStatusChangeListeners = new ArrayList<>(); } @@ -109,11 +111,13 @@ // 自分のフレンドの最新のアクティビティを取得して更新する if (friendUserIdsLiveData.isInitialized() && friendUserIdsLiveData.getValue() != null) { + List latestActivities = new ArrayList<>(); for (String userId : friendUserIdsLiveData.getValue()) { pullLatestActivity(userId, activitiesResource, new ActivityFetchCallback() { @Override public void onSuccess(Activity activity) { updateFriendToActivitiesLiveData(activity, userId); + latestActivities.add(activity); } @Override @@ -122,6 +126,7 @@ } }); } + allFriendsLatestActivitiesLiveData.postValue(latestActivities); } if (friendUserIdsLiveData.isInitialized()) { @@ -314,6 +319,10 @@ return friendUserIdsLiveData; } + public MutableLiveData> getAllFriendsLatestActivitiesLiveData() { + return allFriendsLatestActivitiesLiveData; + } + public String getMyUserId() { return myUserId; }