diff --git a/lib/widgets/latest_releases_container.dart b/lib/widgets/latest_releases_container.dart index e9cfe37..eb88f57 100644 --- a/lib/widgets/latest_releases_container.dart +++ b/lib/widgets/latest_releases_container.dart @@ -77,8 +77,8 @@ class LatestReleasesNotifier extends StateNotifier { _sub?.close(); _sub = ref.listen( query( - tags: {'#f': {'android-arm64-v8a'}}, limit: _kPageSize, + where: (r) => r.event.getTagSetValues('f').contains('android-arm64-v8a'), source: const LocalAndRemoteSource(relays: 'AppCatalog', stream: true), subscriptionPrefix: 'app-latest-releases', ), @@ -122,25 +122,25 @@ class LatestReleasesNotifier extends StateNotifier { try { final storage = ref.read(storageNotifierProvider.notifier); final releases = await storage.query( - RequestFilter( - tags: {'#f': {'android-arm64-v8a'}}, - until: oldest, - limit: _kPageSize, - ).toRequest(), + RequestFilter(until: oldest, limit: _kPageSize).toRequest(), source: const LocalAndRemoteSource(relays: 'AppCatalog', stream: false), subscriptionPrefix: 'app-latest-releases-older', ); - if (releases.isEmpty) { + final filtered = releases + .where((r) => r.event.getTagSetValues('f').contains('android-arm64-v8a')) + .toList(); + + if (filtered.isEmpty) { state = state.copyWith(isLoadingMore: false, hasMore: false); return; } - final apps = await _resolveRelated(releases); + final apps = await _resolveRelated(filtered); final existingIds = all.map((r) => r.id).toSet(); final unique = - releases.where((r) => !existingIds.contains(r.id)).toList(); + filtered.where((r) => !existingIds.contains(r.id)).toList(); state = state.copyWith( olderPages: [...state.olderPages, ...unique], appsByIdentifier: {...state.appsByIdentifier, ...apps},