mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2025-06-05 21:49:48 +02:00
improved sorting performance
This commit is contained in:
@@ -19,6 +19,7 @@ import android.widget.Toast;
|
|||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
|
import java.util.IdentityHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
@@ -58,14 +59,19 @@ public class QHybridAppChoserActivity extends AbstractGBActivity {
|
|||||||
new Thread(new Runnable() {
|
new Thread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
final IdentityHashMap<PackageInfo, String> nameMap = new IdentityHashMap(packages.size());
|
||||||
|
for(PackageInfo info : packages){
|
||||||
|
CharSequence label = manager.getApplicationLabel(info.applicationInfo);
|
||||||
|
if(label == null) label = info.packageName;
|
||||||
|
nameMap.put(info, label.toString());
|
||||||
|
}
|
||||||
|
|
||||||
Collections.sort(packages, new Comparator<PackageInfo>() {
|
Collections.sort(packages, new Comparator<PackageInfo>() {
|
||||||
@Override
|
@Override
|
||||||
public int compare(PackageInfo packageInfo, PackageInfo t1) {
|
public int compare(PackageInfo packageInfo, PackageInfo t1) {
|
||||||
return manager.getApplicationLabel(packageInfo.applicationInfo)
|
return nameMap.get(packageInfo)
|
||||||
.toString()
|
|
||||||
.compareToIgnoreCase(
|
.compareToIgnoreCase(
|
||||||
manager.getApplicationLabel(t1.applicationInfo)
|
nameMap.get(t1)
|
||||||
.toString()
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user