X-Git-Url: http://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=src%2Ftim%2Fprune%2Fload%2FMediaSorter.java;fp=src%2Ftim%2Fprune%2Fload%2FMediaSorter.java;h=e67a32bfd2a45ca0b728ce1b1a8f35556b6c2ef2;hp=0000000000000000000000000000000000000000;hb=ce6f2161b8596f7018d6a76bff79bc9e571f35fd;hpb=2d8cb72e84d5cc1089ce77baf1e34ea3ea2f8465 diff --git a/src/tim/prune/load/MediaSorter.java b/src/tim/prune/load/MediaSorter.java new file mode 100644 index 0000000..e67a32b --- /dev/null +++ b/src/tim/prune/load/MediaSorter.java @@ -0,0 +1,40 @@ +package tim.prune.load; + +import java.io.File; +import java.util.Comparator; +import tim.prune.data.MediaObject; + +/** + * Class to sort photos, audios by name + */ +public class MediaSorter implements Comparator +{ + /** + * Compare two media objects + * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) + */ + 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(); + if (file1 != null && file2 != null) + { + // names same, maybe in different directories + 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; + } + return nameComp; + } +}