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; } }