Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 283895c0 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Sorting search results with TreeSet instead of Collection.sort"

parents a1bf76a6 cf66647a
Loading
Loading
Loading
Loading
+18 −16
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;

public class SearchResultsAdapter extends RecyclerView.Adapter<SearchViewHolder>
        implements SearchResultsRankerCallback {
@@ -312,8 +313,8 @@ public class SearchResultsAdapter extends RecyclerView.Adapter<SearchViewHolder>
        int appSize = installedAppResults.size();

        final List<SearchResult> asyncRankingResults = new ArrayList<>(dbSize + appSize);
        List<SearchResult> databaseResultsSortedByScores = new ArrayList<>(databaseResults);
        Collections.sort(databaseResultsSortedByScores, new Comparator<SearchResult>() {
        TreeSet<SearchResult> dbResultsSortedByScores = new TreeSet<>(
                new Comparator<SearchResult>() {
                    @Override
                    public int compare(SearchResult o1, SearchResult o2) {
                        float score1 = getRankingScoreByStableId(o1.stableId);
@@ -327,7 +328,8 @@ public class SearchResultsAdapter extends RecyclerView.Adapter<SearchViewHolder>
                        }
                    }
                });
        asyncRankingResults.addAll(databaseResultsSortedByScores);
        dbResultsSortedByScores.addAll(databaseResults);
        asyncRankingResults.addAll(dbResultsSortedByScores);
        // App results are not ranked by async ranking and appended at the end of the list.
        asyncRankingResults.addAll(installedAppResults);
        return asyncRankingResults;