Fix app list order (#23)

This commit is contained in:
tehcneko 2021-01-31 19:07:40 +08:00 committed by GitHub
parent f5cf8199a9
commit 27e58a30df
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 11 deletions

View File

@ -155,20 +155,24 @@ public class ScopeAdapter extends RecyclerView.Adapter<ScopeAdapter.ViewHolder>
private void sortApps() { private void sortApps() {
Comparator<PackageInfo> cmp = AppHelper.getAppListComparator(preferences.getInt("list_sort", 0), pm); Comparator<PackageInfo> cmp = AppHelper.getAppListComparator(preferences.getInt("list_sort", 0), pm);
fullList.sort((a, b) -> { fullList.sort((a, b) -> {
boolean aAndroid = a.packageName.equals("android"); boolean aChecked = checkedList.contains(a.packageName);
boolean bAnrdoid = b.packageName.equals("android"); boolean bChecked = checkedList.contains(b.packageName);
if (aAndroid || bAnrdoid) { if (aChecked == bChecked) {
if (aAndroid == bAnrdoid) { if (hasRecommended()) {
return 0; boolean aRecommended = recommendedList.contains(a.packageName);
} else if (aAndroid) { boolean bRecommended = recommendedList.contains(b.packageName);
if (aRecommended || bRecommended) {
if (aRecommended == bRecommended) {
return cmp.compare(a, b);
} else if (aRecommended) {
return -1; return -1;
} else { } else {
return 1; return 1;
} }
} }
boolean aChecked = checkedList.contains(a.packageName); }
boolean bChecked = checkedList.contains(b.packageName); if (a.packageName.equals("android")) return -1;
if (aChecked == bChecked) { if (b.packageName.equals("android")) return 1;
return cmp.compare(a, b); return cmp.compare(a, b);
} else if (aChecked) { } else if (aChecked) {
return -1; return -1;