Fix app list sort comparators (#48)
* Update proguard rules * Fix app list sort comparators
This commit is contained in:
parent
7aeee8fe9a
commit
cccc407084
|
|
@ -14,10 +14,14 @@
|
|||
|
||||
# Uncomment this to preserve the line number information for
|
||||
# debugging stack traces.
|
||||
#-keepattributes SourceFile,LineNumberTable
|
||||
-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
# If you keep the line number information, uncomment this to
|
||||
# hide the original source file name.
|
||||
#-renamesourcefileattribute SourceFile
|
||||
-keep class io.github.lsposed.manager.util.json.** {public *; }
|
||||
-keep class io.github.lsposed.manager.Constants { *; }
|
||||
-keep class io.github.lsposed.manager.Constants { *; }
|
||||
-keepnames class io.github.lsposed.manager.adapters.* { *; }
|
||||
-keepnames class io.github.lsposed.manager.receivers.* { *; }
|
||||
-keepnames class io.github.lsposed.manager.ui.* { *; }
|
||||
-keepnames class io.github.lsposed.manager.utils.* { *; }
|
||||
-keepnames class io.github.lsposed.manager.* { *; }
|
||||
|
|
@ -147,40 +147,44 @@ public class ScopeAdapter extends RecyclerView.Adapter<ScopeAdapter.ViewHolder>
|
|||
if (rmList.size() > 0) {
|
||||
fullList.removeAll(rmList);
|
||||
}
|
||||
sortApps();
|
||||
showList = fullList;
|
||||
showList = sortApps(fullList);
|
||||
activity.onDataReady();
|
||||
}
|
||||
|
||||
private void sortApps() {
|
||||
Comparator<PackageInfo> cmp = AppHelper.getAppListComparator(preferences.getInt("list_sort", 0), pm);
|
||||
fullList.sort((a, b) -> {
|
||||
private List<PackageInfo> sortApps(List<PackageInfo> list) {
|
||||
Comparator<PackageInfo> comparator = AppHelper.getAppListComparator(preferences.getInt("list_sort", 0), pm);
|
||||
Comparator<PackageInfo> frameworkComparator = (a, b) -> {
|
||||
if (a.packageName.equals("android") == b.packageName.equals("android")) {
|
||||
return comparator.compare(a, b);
|
||||
} else if (a.packageName.equals("android")) {
|
||||
return -1;
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
};
|
||||
Comparator<PackageInfo> recommendedComparator = (a, b) -> {
|
||||
boolean aRecommended = hasRecommended() && recommendedList.contains(a.packageName);
|
||||
boolean bRecommended = hasRecommended() && recommendedList.contains(b.packageName);
|
||||
if (aRecommended == bRecommended) {
|
||||
return frameworkComparator.compare(a, b);
|
||||
} else if (aRecommended) {
|
||||
return -1;
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
};
|
||||
list.sort((a, b) -> {
|
||||
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);
|
||||
return recommendedComparator.compare(a, b);
|
||||
} else if (aChecked) {
|
||||
return -1;
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
|
||||
});
|
||||
return list;
|
||||
}
|
||||
|
||||
private void checkRecommended() {
|
||||
|
|
|
|||
|
|
@ -272,7 +272,7 @@ public final class ModuleUtil {
|
|||
}
|
||||
|
||||
public List<String> getScopeList() {
|
||||
if (this.scopeList == null) {
|
||||
if (scopeList == null) {
|
||||
try {
|
||||
int scopeListResourceId = app.metaData.getInt("xposedscope");
|
||||
if (scopeListResourceId != 0) {
|
||||
|
|
@ -282,7 +282,7 @@ public final class ModuleUtil {
|
|||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return this.scopeList;
|
||||
return scopeList;
|
||||
}
|
||||
|
||||
public PackageInfo getPackageInfo() {
|
||||
|
|
|
|||
Loading…
Reference in New Issue