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..0fb2b15 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 @@ -146,17 +146,19 @@ MutableLiveData> userActivitiesLiveData = friendToActivitiesLiveData.get(userId); assert userActivitiesLiveData != null; - List userActivities = userActivitiesLiveData.getValue(); + // + // NOTE: + // 以前は「同じ activityId の場合は更新しない」という条件になっていたが、 + // サーバ側の実装によっては、同じ activityId のまま text だけ書き換えられるケースがある。 + // その場合、LiveData が更新されず、Observer(FriendIconView の吹き出し)が + // 一切反応しない問題が発生していた。 + // + // フレンドの最新アクティビティは 1 件だけ保持していれば十分なので、 + // activityId に関わらず常に最新の値で上書きするようにしている。 + // これにより、同一 ID で内容だけ変わる更新でも必ず UI に反映される。 + // - if (userActivities == null || userActivities.isEmpty()) { - userActivitiesLiveData.postValue(List.of(latestActivity)); - } else { - if (userActivities.get(0).getActivityId().equals(latestActivity.getActivityId())) { - return; - } - - userActivitiesLiveData.postValue(List.of(latestActivity)); - } + userActivitiesLiveData.postValue(List.of(latestActivity)); } /**