X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Frhynodge%2Ftriggers%2FNewTorrentTrigger.java;h=f084c61b7dee3de6094fcd0d2230d9987dd58ef1;hb=42dba263fcc2476fde0670696fe22b750a951b5f;hp=9e3e91ee22e1c563f1989394c01b9cace522d9bb;hpb=22e98b8896aa47b397ba89d887bfdbe212850517;p=rhynodge.git diff --git a/src/main/java/net/pterodactylus/rhynodge/triggers/NewTorrentTrigger.java b/src/main/java/net/pterodactylus/rhynodge/triggers/NewTorrentTrigger.java index 9e3e91e..f084c61 100644 --- a/src/main/java/net/pterodactylus/rhynodge/triggers/NewTorrentTrigger.java +++ b/src/main/java/net/pterodactylus/rhynodge/triggers/NewTorrentTrigger.java @@ -33,6 +33,7 @@ import net.pterodactylus.rhynodge.states.TorrentState.TorrentFile; import org.apache.commons.lang3.StringEscapeUtils; import com.google.common.collect.Lists; +import com.google.common.collect.Ordering; import com.google.common.collect.Sets; /** @@ -146,7 +147,7 @@ public class NewTorrentTrigger implements Trigger { htmlBuilder.append("\n"); htmlBuilder.append("\n"); htmlBuilder.append("\n"); - for (TorrentFile torrentFile : allTorrentFiles) { + for (TorrentFile torrentFile : sortNewFirst().sortedCopy(allTorrentFiles)) { if (newTorrentFiles.contains(torrentFile)) { htmlBuilder.append(""); } else { @@ -167,4 +168,27 @@ public class NewTorrentTrigger implements Trigger { return htmlBuilder.toString(); } + /** + * Returns an ordering that sorts torrent files by whether they are new + * (according to {@link #newTorrentFiles}) or not. New files will be sorted + * first. + * + * @return An ordering for “new files first” + */ + private Ordering sortNewFirst() { + return new Ordering() { + + @Override + public int compare(TorrentFile leftTorrentFile, TorrentFile rightTorrentFile) { + if (newTorrentFiles.contains(leftTorrentFile) && !newTorrentFiles.contains(rightTorrentFile)) { + return -1; + } + if (!newTorrentFiles.contains(leftTorrentFile) && newTorrentFiles.contains(rightTorrentFile)) { + return 1; + } + return 0; + } + }; + } + }