Ignore albums without inserted images when calculating the fingerprint.
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Thu, 11 Jul 2013 20:45:32 +0000 (22:45 +0200)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Thu, 11 Jul 2013 20:45:32 +0000 (22:45 +0200)
src/main/java/net/pterodactylus/sone/data/Album.java
src/main/java/net/pterodactylus/sone/data/Sone.java

index aa14ede..c47d83f 100644 (file)
@@ -86,11 +86,19 @@ public class Album implements Fingerprintable {
 
                @Override
                public boolean apply(Album album) {
+                       /* so, we flatten all albums below the given one and check whether at least one album… */
                        return FluentIterable.from(asList(album)).transformAndConcat(FLATTENER).anyMatch(new Predicate<Album>() {
 
                                @Override
                                public boolean apply(Album album) {
-                                       return !album.getImages().isEmpty();
+                                       /* …contains any inserted images. */
+                                       return !album.getImages().isEmpty() && FluentIterable.from(album.getImages()).allMatch(new Predicate<Image>() {
+
+                                               @Override
+                                               public boolean apply(Image input) {
+                                                       return input.isInserted();
+                                               }
+                                       });
                                }
                        });
                }
index 22dc593..eb52860 100644 (file)
@@ -832,7 +832,10 @@ public class Sone implements Fingerprintable, Comparable<Sone> {
                hash.putString(")");
 
                hash.putString("Albums(");
-               for (Album album : albums) {
+               for (Album album : rootAlbum.getAlbums()) {
+                       if (!Album.NOT_EMPTY.apply(album)) {
+                               continue;
+                       }
                        hash.putString(album.getFingerprint());
                }
                hash.putString(")");