Add similar posts, provider hints and app icon

This commit is contained in:
2026-05-24 16:53:22 +03:00
parent 73a991e3a8
commit 52f2c6669c
17 changed files with 769 additions and 295 deletions
@@ -177,7 +177,7 @@ class FeedController extends AsyncNotifier<FeedState> {
? <String?>[null]
: current.selectedProviderIds;
final posts = <Post>[];
final seen = <String>{};
final providerResults = <List<Post>>[];
for (final providerId in providerIds) {
final result = refresh
? await service.refresh(
@@ -193,10 +193,33 @@ class FeedController extends AsyncNotifier<FeedState> {
topPeriod: current.topPeriodFilter,
);
if (result is Success<List<Post>>) {
for (final post in result.data) {
providerResults.add(result.data);
}
}
final seen = <String>{};
if (providerResults.length <= 1) {
for (final group in providerResults) {
for (final post in group) {
if (seen.add(post.cacheKey)) posts.add(post);
}
}
return posts;
}
var index = 0;
while (true) {
var added = false;
for (final group in providerResults) {
if (index >= group.length) continue;
final post = group[index];
if (seen.add(post.cacheKey)) {
posts.add(post);
added = true;
}
}
if (!added && providerResults.every((group) => index >= group.length)) {
break;
}
index++;
}
return posts;
}