X-Git-Url: http://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=tim%2Fprune%2Fload%2FMediaSorter.java;h=e67a32bfd2a45ca0b728ce1b1a8f35556b6c2ef2;hp=897b5aa0ff6957e80b859fa485c15b554cf73d8d;hb=649c5da6ee1bbc590699e11a92316ece2ea8512d;hpb=eebbb64b5d63f9eea43a0dff908c30361a376768 diff --git a/tim/prune/load/MediaSorter.java b/tim/prune/load/MediaSorter.java index 897b5aa..e67a32b 100644 --- a/tim/prune/load/MediaSorter.java +++ b/tim/prune/load/MediaSorter.java @@ -2,31 +2,39 @@ package tim.prune.load; import java.io.File; import java.util.Comparator; -import tim.prune.data.MediaFile; - +import tim.prune.data.MediaObject; /** - * Class to sort photos by name + * Class to sort photos, audios by name */ -public class MediaSorter implements Comparator +public class MediaSorter implements Comparator { - /** - * Compare two media files + * Compare two media objects * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) */ - public int compare(MediaFile o1, MediaFile o2) + public int compare(MediaObject o1, MediaObject o2) { + int nameComp = o1.getName().compareTo(o2.getName()); + if (nameComp != 0) { + // names different + return nameComp; + } File file1 = o1.getFile(); File file2 = o2.getFile(); - int nameComp = file1.getName().compareTo(file2.getName()); - if (nameComp == 0) + if (file1 != null && file2 != null) { // names same, maybe in different directories - return file1.getAbsolutePath().compareTo(file2.getAbsolutePath()); + nameComp = file1.getAbsolutePath().compareTo(file2.getAbsolutePath()); + } + else if (o1.getByteData() != null && o2.getByteData() != null) { + // compare data lengths instead + nameComp = o1.getByteData().length - o2.getByteData().length; + } + else { + // one's a file, one's from data + nameComp = 1; } - // names different return nameComp; } - }