X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2FSoneOptions.java;h=d7089d966e7b7bd7380f609dbe96e777fb4e9591;hp=819e94a1ae8ea6c2492c2a5ac73f411e2aac6f37;hb=179e7da4d8d8a474d0b622d60b5f5d32d6ab4052;hpb=e25b3f1ea99a8dffc55efe4b68246937a55ebd33 diff --git a/src/main/java/net/pterodactylus/sone/data/SoneOptions.java b/src/main/java/net/pterodactylus/sone/data/SoneOptions.java index 819e94a..d7089d9 100644 --- a/src/main/java/net/pterodactylus/sone/data/SoneOptions.java +++ b/src/main/java/net/pterodactylus/sone/data/SoneOptions.java @@ -1,13 +1,11 @@ package net.pterodactylus.sone.data; -import static net.pterodactylus.sone.data.Sone.ShowCustomAvatars.NEVER; +import static net.pterodactylus.sone.data.SoneOptions.LoadExternalContent.NEVER; -import net.pterodactylus.sone.data.Sone.ShowCustomAvatars; +import javax.annotation.Nonnull; /** * All Sone-specific options. - * - * @author David ‘Bombe’ Roden */ public interface SoneOptions { @@ -26,13 +24,36 @@ public interface SoneOptions { boolean isShowNewReplyNotifications(); void setShowNewReplyNotifications(boolean showNewReplyNotifications); - ShowCustomAvatars getShowCustomAvatars(); - void setShowCustomAvatars(ShowCustomAvatars showCustomAvatars); + LoadExternalContent getShowCustomAvatars(); + void setShowCustomAvatars(LoadExternalContent showCustomAvatars); + + @Nonnull LoadExternalContent getLoadLinkedImages(); + void setLoadLinkedImages(@Nonnull LoadExternalContent loadLinkedImages); + + /** + * Possible values for all options that are related to loading external content. + */ + enum LoadExternalContent { + + /** Never show custom avatars. */ + NEVER, + + /** Only show custom avatars of followed Sones. */ + FOLLOWED, + + /** Only show custom avatars of Sones you manually trust. */ + MANUALLY_TRUSTED, + + /** Only show custom avatars of automatically trusted Sones. */ + TRUSTED, + + /** Always show custom avatars. */ + ALWAYS, + + } /** * {@link SoneOptions} implementation. - * - * @author David ‘Bombe’ Roden */ public class DefaultSoneOptions implements SoneOptions { @@ -41,7 +62,8 @@ public interface SoneOptions { private boolean showNewSoneNotifications = true; private boolean showNewPostNotifications = true; private boolean showNewReplyNotifications = true; - private ShowCustomAvatars showCustomAvatars = NEVER; + private LoadExternalContent showCustomAvatars = NEVER; + private LoadExternalContent loadLinkedImages = NEVER; @Override public boolean isAutoFollow() { @@ -94,15 +116,26 @@ public interface SoneOptions { } @Override - public ShowCustomAvatars getShowCustomAvatars() { + public LoadExternalContent getShowCustomAvatars() { return showCustomAvatars; } @Override - public void setShowCustomAvatars(ShowCustomAvatars showCustomAvatars) { + public void setShowCustomAvatars(LoadExternalContent showCustomAvatars) { this.showCustomAvatars = showCustomAvatars; } + @Nonnull + @Override + public LoadExternalContent getLoadLinkedImages() { + return loadLinkedImages; + } + + @Override + public void setLoadLinkedImages(@Nonnull LoadExternalContent loadLinkedImages) { + this.loadLinkedImages = loadLinkedImages; + } + } }