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 a361397..795e04d 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 @@ -15,6 +15,8 @@ import java.util.Comparator; import java.util.List; import java.util.Map; +import java.util.SortedSet; +import java.util.TreeSet; import retrofit2.Call; import retrofit2.Callback; @@ -122,27 +124,8 @@ if (friendUserIdsLiveData.isInitialized()) { // 最新のフレンドのユーザーIDを取得して更新する + // TODO: 適切なコールバックを使う必要あり pullLatestFriendUserIds(myUserId, myToken); - - // フレンドのIDをアクティビティ更新順に並べ替える - List friendUserIds = friendUserIdsLiveData.getValue(); - List friends = new ArrayList<>(); - - assert friendUserIds != null; - friendUserIds.forEach(userId -> { - List activities = getActivitiesLiveDataFromUserId(userId).getValue(); - if (activities == null || activities.isEmpty()) { - return; - } - - Activity latestActivity = activities.get(0); - friends.add(new Friend(userId, latestActivity.getUpdateTime())); - }); - friends.sort(new Friend.UpdateTimeComparator()); - - // 並び替えたフレンドのユーザーIDを順番に格納して更新する - sortedFriendUserIds.clear(); - friends.forEach(friend -> sortedFriendUserIds.add(friend.getUserId())); } }; } @@ -279,6 +262,26 @@ public void onResponse(@NonNull Call> call, @NonNull Response> response) { if (response.isSuccessful()) { friendUserIdsLiveData.postValue(response.body()); + + // MEMO: 入れ込んだだけ + // フレンドのIDをアクティビティ更新順に並べ替える + List friendUserIds = friendUserIdsLiveData.getValue(); + SortedSet friends = new TreeSet<>(new Friend.UpdateTimeComparator()); + + assert friendUserIds != null; + friendUserIds.forEach(userId -> { + List activities = getActivitiesLiveDataFromUserId(userId).getValue(); + if (activities == null || activities.isEmpty()) { + return; + } + + Activity latestActivity = activities.get(0); + friends.add(new Friend(userId, latestActivity.getUpdateTime())); + }); + + // 並び替えたフレンドのユーザーIDを順番に格納して更新する + sortedFriendUserIds.clear(); + friends.forEach(friend -> sortedFriendUserIds.add(friend.getUserId())); } }