#getstream-io
#getstream-io
Вопрос:
У меня есть 10 каналов активности, каждый канал с разным количеством лайков, нужно показывать ленту активности в порядке убывания по количеству лайков, как это реализовать?
Комментарии:
1. Вы имеете в виду, что хотите получить общее количество лайков для всех действий в каждой ленте и отсортировать на основе этого?
2. нет, мне нужно количество лайков для каждого действия, например — у post1: было 18 лайков, а у post2: было 20 лайков. Если я вижу ленту активности, порядок должен быть post2 и post1. как фильтровать подобным образом?
Ответ №1:
Количество реакций доступно для обогащенных действий. На данный момент Stream не поддерживает ранжирование каналов на основе данных о реакциях, но вы можете отсортировать действия самостоятельно после получения их с сервера:
List<EnrichedActivity> activities = client.flatFeed("user", "alice")
.getEnrichedActivities(new EnrichmentFlags().withReactionCounts())
.get();
activities.sort((a, b) -> {
int aLikes = a.getReactionCounts().getOrDefault("like", 0).intValue();
int bLikes = b.getReactionCounts().getOrDefault("like", 0).intValue();
return aLikes - bLikes;
});