X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2FAlbum.java;h=cc32f8833b193b20bacbed1ea334693ffae0b694;hb=7ea94de6b3101ad2825b45c97d1d4893d65843f2;hp=ab5822b02b36dc5a4db696e6a11737c051a3dd3d;hpb=b50dc71166ed2e9e7274fdfe545b21db614f820d;p=Sone.git
diff --git a/src/main/java/net/pterodactylus/sone/data/Album.java b/src/main/java/net/pterodactylus/sone/data/Album.java
index ab5822b..cc32f88 100644
--- a/src/main/java/net/pterodactylus/sone/data/Album.java
+++ b/src/main/java/net/pterodactylus/sone/data/Album.java
@@ -25,6 +25,7 @@ import java.util.UUID;
import net.pterodactylus.util.collection.Mapper;
import net.pterodactylus.util.collection.Mappers;
+import net.pterodactylus.util.object.Default;
import net.pterodactylus.util.validation.Validation;
/**
@@ -179,7 +180,7 @@ public class Album implements Fingerprintable {
image.getAlbum().removeImage(image);
}
image.setAlbum(this);
- if (imageIds.isEmpty()) {
+ if (imageIds.isEmpty() && (albumImage == null)) {
albumImage = image.getId();
}
if (!imageIds.contains(image.getId())) {
@@ -213,15 +214,18 @@ public class Album implements Fingerprintable {
*
* @param image
* The image to move up
+ * @return The image that the given image swapped the place with, or
+ * null
if the image did not change its place
*/
- public void moveImageUp(Image image) {
+ public Image moveImageUp(Image image) {
Validation.begin().isNotNull("Image", image).check().isEqual("Image Album", image.getAlbum(), this).isEqual("Album Owner", image.getAlbum().getSone(), sone).check();
int oldIndex = imageIds.indexOf(image.getId());
if (oldIndex <= 0) {
- return;
+ return null;
}
imageIds.remove(image.getId());
imageIds.add(oldIndex - 1, image.getId());
+ return images.get(imageIds.get(oldIndex));
}
/**
@@ -230,15 +234,18 @@ public class Album implements Fingerprintable {
*
* @param image
* The image to move down
+ * @return The image that the given image swapped the place with, or
+ * null
if the image did not change its place
*/
- public void moveImageDown(Image image) {
+ public Image moveImageDown(Image image) {
Validation.begin().isNotNull("Image", image).check().isEqual("Image Album", image.getAlbum(), this).isEqual("Album Owner", image.getAlbum().getSone(), sone).check();
int oldIndex = imageIds.indexOf(image.getId());
if ((oldIndex == -1) || (oldIndex >= (imageIds.size() - 1))) {
- return;
+ return null;
}
imageIds.remove(image.getId());
imageIds.add(oldIndex + 1, image.getId());
+ return images.get(imageIds.get(oldIndex));
}
/**
@@ -251,7 +258,7 @@ public class Album implements Fingerprintable {
if (albumImage == null) {
return null;
}
- return images.get(albumImage);
+ return Default.forNull(images.get(albumImage), images.values().iterator().next());
}
/**
@@ -366,6 +373,9 @@ public class Album implements Fingerprintable {
fingerprint.append("ID(").append(id).append(')');
fingerprint.append("Title(").append(title).append(')');
fingerprint.append("Description(").append(description).append(')');
+ if (albumImage != null) {
+ fingerprint.append("AlbumImage(").append(albumImage).append(')');
+ }
/* add nested albums. */
fingerprint.append("Albums(");