Return default avatar ID (null) when ID points to invalid image.
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Fri, 9 Dec 2011 06:40:54 +0000 (07:40 +0100)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Fri, 9 Dec 2011 06:40:54 +0000 (07:40 +0100)
This can happen after you delete your avatar image.

src/main/java/net/pterodactylus/sone/template/ProfileAccessor.java

index 97be0cd..8c7d1e4 100644 (file)
@@ -60,16 +60,22 @@ public class ProfileAccessor extends ReflectionAccessor {
                                /* not logged in? don’t show custom avatars, then. */
                                return null;
                        }
+                       String avatarId = profile.getAvatar();
+                       if (avatarId != null) {
+                               if (core.getImage(avatarId, false) == null) {
+                                       /* avatar ID but no matching image? show nothing. */
+                                       return null;
+                               }
+                       }
                        Sone remoteSone = profile.getSone();
                        if (core.isLocalSone(remoteSone)) {
                                /* always show your own avatars. */
-                               return profile.getAvatar();
+                               return avatarId;
                        }
                        ShowCustomAvatars showCustomAvatars = currentSone.getOptions().<ShowCustomAvatars> getEnumOption("ShowCustomAvatars").get();
                        if (showCustomAvatars == ShowCustomAvatars.NEVER) {
                                return null;
                        }
-                       String avatarId = profile.getAvatar();
                        if ((showCustomAvatars == ShowCustomAvatars.ALWAYS) || (avatarId == null)) {
                                return avatarId;
                        }