X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fxdcc%2Fui%2Fstdin%2FResult.java;h=47430ca1f5cbd452b0dc860f183a89dd26687d97;hb=8ccf6fb9615a48da74239b56be56f1d4772896a5;hp=0107c6ce3fc48afdaa641f548d7af11c453f2791;hpb=5c5d99895106b562e6726ba146d3cf3a677b70e3;p=xudocci.git diff --git a/src/main/java/net/pterodactylus/xdcc/ui/stdin/Result.java b/src/main/java/net/pterodactylus/xdcc/ui/stdin/Result.java index 0107c6c..47430ca 100644 --- a/src/main/java/net/pterodactylus/xdcc/ui/stdin/Result.java +++ b/src/main/java/net/pterodactylus/xdcc/ui/stdin/Result.java @@ -85,16 +85,20 @@ public class Result implements Comparable { return preferredComparator(matches("[-|]P[-|]").negate(), (result) -> result.bot().name()); } - /** - * {@link Comparator} for {@link Result}s that sorts them by the name of the - * {@link Pack}. - */ - private static final Comparator packNameComparator = new Comparator() { - @Override - public int compare(Result leftResult, Result rightResult) { - return leftResult.pack().name().compareToIgnoreCase(rightResult.pack().name()); - } - }; + private static final Comparator packNameComparator = sortRepacksFirst().thenComparing(sortPacksAlphabetically()); + + private static Comparator sortRepacksFirst() { + return preferredComparator(matches("\\.(PROPER|REPACK)\\."), (result) -> result.pack().name()); + } + + private static Comparator sortPacksAlphabetically() { + return new Comparator() { + @Override + public int compare(Result leftResult, Result rightResult) { + return leftResult.pack().name().compareToIgnoreCase(rightResult.pack().name()); + } + }; + } /** Comparator that sorts bots with running downloads to the back of the list. */ private final Comparator botsWithRunningTransfersComparator = new Comparator() { @@ -174,8 +178,8 @@ public class Result implements Comparable { return ComparisonChain.start() .compare(this, result, botsWithRunningTransfersComparator) .compare(this, result, packArchiveComparator) - .compare(this, result, botNameComparator) - .compare(this, result, packNameComparator).result(); + .compare(this, result, packNameComparator) + .compare(this, result, botNameComparator).result(); } }