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
|
# Uncomment this to preserve the line number information for
|
||||||
# debugging stack traces.
|
# debugging stack traces.
|
||||||
#-keepattributes SourceFile,LineNumberTable
|
-keepattributes SourceFile,LineNumberTable
|
||||||
|
|
||||||
# If you keep the line number information, uncomment this to
|
# If you keep the line number information, uncomment this to
|
||||||
# hide the original source file name.
|
# hide the original source file name.
|
||||||
#-renamesourcefileattribute SourceFile
|
#-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) {
|
if (rmList.size() > 0) {
|
||||||
fullList.removeAll(rmList);
|
fullList.removeAll(rmList);
|
||||||
}
|
}
|
||||||
sortApps();
|
showList = sortApps(fullList);
|
||||||
showList = fullList;
|
|
||||||
activity.onDataReady();
|
activity.onDataReady();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sortApps() {
|
private List<PackageInfo> sortApps(List<PackageInfo> list) {
|
||||||
Comparator<PackageInfo> cmp = AppHelper.getAppListComparator(preferences.getInt("list_sort", 0), pm);
|
Comparator<PackageInfo> comparator = AppHelper.getAppListComparator(preferences.getInt("list_sort", 0), pm);
|
||||||
fullList.sort((a, b) -> {
|
Comparator<PackageInfo> frameworkComparator = (a, b) -> {
|
||||||
boolean aChecked = checkedList.contains(a.packageName);
|
if (a.packageName.equals("android") == b.packageName.equals("android")) {
|
||||||
boolean bChecked = checkedList.contains(b.packageName);
|
return comparator.compare(a, b);
|
||||||
if (aChecked == bChecked) {
|
} else if (a.packageName.equals("android")) {
|
||||||
if (hasRecommended()) {
|
return -1;
|
||||||
boolean aRecommended = recommendedList.contains(a.packageName);
|
} else {
|
||||||
boolean bRecommended = recommendedList.contains(b.packageName);
|
return 1;
|
||||||
if (aRecommended || bRecommended) {
|
}
|
||||||
|
};
|
||||||
|
Comparator<PackageInfo> recommendedComparator = (a, b) -> {
|
||||||
|
boolean aRecommended = hasRecommended() && recommendedList.contains(a.packageName);
|
||||||
|
boolean bRecommended = hasRecommended() && recommendedList.contains(b.packageName);
|
||||||
if (aRecommended == bRecommended) {
|
if (aRecommended == bRecommended) {
|
||||||
return cmp.compare(a, b);
|
return frameworkComparator.compare(a, b);
|
||||||
} else if (aRecommended) {
|
} else if (aRecommended) {
|
||||||
return -1;
|
return -1;
|
||||||
} else {
|
} else {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
}
|
list.sort((a, b) -> {
|
||||||
if (a.packageName.equals("android")) return -1;
|
boolean aChecked = checkedList.contains(a.packageName);
|
||||||
if (b.packageName.equals("android")) return 1;
|
boolean bChecked = checkedList.contains(b.packageName);
|
||||||
return cmp.compare(a, b);
|
if (aChecked == bChecked) {
|
||||||
|
return recommendedComparator.compare(a, b);
|
||||||
} else if (aChecked) {
|
} else if (aChecked) {
|
||||||
return -1;
|
return -1;
|
||||||
} else {
|
} else {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkRecommended() {
|
private void checkRecommended() {
|
||||||
|
|
|
||||||
|
|
@ -272,7 +272,7 @@ public final class ModuleUtil {
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> getScopeList() {
|
public List<String> getScopeList() {
|
||||||
if (this.scopeList == null) {
|
if (scopeList == null) {
|
||||||
try {
|
try {
|
||||||
int scopeListResourceId = app.metaData.getInt("xposedscope");
|
int scopeListResourceId = app.metaData.getInt("xposedscope");
|
||||||
if (scopeListResourceId != 0) {
|
if (scopeListResourceId != 0) {
|
||||||
|
|
@ -282,7 +282,7 @@ public final class ModuleUtil {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return this.scopeList;
|
return scopeList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PackageInfo getPackageInfo() {
|
public PackageInfo getPackageInfo() {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue