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 455723a..37d01a9 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 @@ -262,15 +262,23 @@ public void onResponse(@NonNull Call> call, @NonNull Response> response) { if (response.isSuccessful()) { - // MEMO: 入れ込んだだけ - // フレンドのIDをアクティビティ更新順に並べ替える - List friendUserIds = friendUserIdsLiveData.getValue(); - if (friendUserIds == null || !friendUserIds.equals(response.body())) { - friendUserIdsLiveData.postValue(response.body()); + // フレンドのID一覧(最新値) + List latestFriendUserIds = response.body(); + + // 取得結果がこれまでと同じであれば何もしない + List current = friendUserIdsLiveData.getValue(); + if (current == null || !current.equals(latestFriendUserIds)) { + // LiveData 本体を更新 + friendUserIdsLiveData.postValue(latestFriendUserIds); + + // フレンドのIDをアクティビティ更新順に並べ替える SortedSet friends = new TreeSet<>(new Friend.UpdateTimeComparator()); - assert friendUserIds != null; - friendUserIds.forEach(userId -> { + if (latestFriendUserIds == null) { + return; + } + + latestFriendUserIds.forEach(userId -> { List activities = getActivitiesLiveDataFromUserId(userId).getValue(); if (activities == null || activities.isEmpty()) { return;