+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<MediaObject>
+{
+ /**
+ * 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;
+ }
+}