diff --git a/mobile/lib/providers/user.provider.dart b/mobile/lib/providers/user.provider.dart index 99dfba9010..1a1c21554c 100644 --- a/mobile/lib/providers/user.provider.dart +++ b/mobile/lib/providers/user.provider.dart @@ -1,5 +1,6 @@ import 'dart:async'; +import 'package:collection/collection.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/domain/models/user.model.dart'; import 'package:immich_mobile/domain/services/user.service.dart'; @@ -36,10 +37,13 @@ final currentUserProvider = class TimelineUserIdsProvider extends StateNotifier> { TimelineUserIdsProvider(this._timelineService) : super([]) { + final listEquality = const ListEquality(); _timelineService.getTimelineUserIds().then((users) => state = users); - streamSub = _timelineService - .watchTimelineUserIds() - .listen((users) => state = users); + streamSub = _timelineService.watchTimelineUserIds().listen((users) { + if (!listEquality.equals(state, users)) { + state = users; + } + }); } late final StreamSubscription> streamSub;