From 27e58a30df405be2e2f70fdd7cbbe937a3051c9f Mon Sep 17 00:00:00 2001 From: tehcneko <7764726+tehcneko@users.noreply.github.com> Date: Sun, 31 Jan 2021 19:07:40 +0800 Subject: [PATCH] Fix app list order (#23) --- .../manager/adapters/ScopeAdapter.java | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/io/github/lsposed/manager/adapters/ScopeAdapter.java b/app/src/main/java/io/github/lsposed/manager/adapters/ScopeAdapter.java index 848e7aba..d74267db 100644 --- a/app/src/main/java/io/github/lsposed/manager/adapters/ScopeAdapter.java +++ b/app/src/main/java/io/github/lsposed/manager/adapters/ScopeAdapter.java @@ -155,20 +155,24 @@ public class ScopeAdapter extends RecyclerView.Adapter private void sortApps() { Comparator cmp = AppHelper.getAppListComparator(preferences.getInt("list_sort", 0), pm); fullList.sort((a, b) -> { - boolean aAndroid = a.packageName.equals("android"); - boolean bAnrdoid = b.packageName.equals("android"); - if (aAndroid || bAnrdoid) { - if (aAndroid == bAnrdoid) { - return 0; - } else if (aAndroid) { - return -1; - } else { - return 1; - } - } boolean aChecked = checkedList.contains(a.packageName); boolean bChecked = checkedList.contains(b.packageName); if (aChecked == bChecked) { + if (hasRecommended()) { + boolean aRecommended = recommendedList.contains(a.packageName); + boolean bRecommended = recommendedList.contains(b.packageName); + if (aRecommended || bRecommended) { + if (aRecommended == bRecommended) { + return cmp.compare(a, b); + } else if (aRecommended) { + return -1; + } else { + return 1; + } + } + } + if (a.packageName.equals("android")) return -1; + if (b.packageName.equals("android")) return 1; return cmp.compare(a, b); } else if (aChecked) { return -1;