Merge "Move sticky cards to the bottom" into rvc-dev am: bff181f846 am: 8c4d31c8c4 am: 6839ead7c6

Change-Id: I86d5423e0a1e00494eb8a81a544b0a8d54098587
This commit is contained in:
Jason Chiu
2020-03-25 03:11:44 +00:00
committed by Automerger Merge Worker

View File

@@ -169,16 +169,23 @@ public class ContextualCardManager implements ContextualCardLoader.CardContentLo
@VisibleForTesting
List<ContextualCard> sortCards(List<ContextualCard> cards) {
//take mContextualCards as the source and do the ranking based on the rule.
return cards.stream()
// take mContextualCards as the source and do the ranking based on the rule.
final List<ContextualCard> result = cards.stream()
.sorted((c1, c2) -> Double.compare(c2.getRankingScore(), c1.getRankingScore()))
.collect(Collectors.toList());
final List<ContextualCard> stickyCards = result.stream()
.filter(c -> c.getCategory() == STICKY_VALUE)
.collect(Collectors.toList());
// make sticky cards be at the tail end.
result.removeAll(stickyCards);
result.addAll(stickyCards);
return result;
}
@Override
public void onContextualCardUpdated(Map<Integer, List<ContextualCard>> updateList) {
final Set<Integer> cardTypes = updateList.keySet();
//Remove the existing data that matches the certain cardType before inserting new data.
// Remove the existing data that matches the certain cardType before inserting new data.
List<ContextualCard> cardsToKeep;
// We are not sure how many card types will be in the database, so when the list coming