diff --git a/Clover/app/src/main/java/org/floens/chan/ChanApplication.java b/Clover/app/src/main/java/org/floens/chan/ChanApplication.java index 42d09bbd..f3c5a7dd 100644 --- a/Clover/app/src/main/java/org/floens/chan/ChanApplication.java +++ b/Clover/app/src/main/java/org/floens/chan/ChanApplication.java @@ -29,6 +29,8 @@ import com.koushikdutta.ion.Ion; import com.koushikdutta.ion.builder.Builders; import com.koushikdutta.ion.builder.LoadBuilder; +import org.floens.chan.chan.ChanUrls; +import org.floens.chan.core.ChanPreferences; import org.floens.chan.core.manager.BoardManager; import org.floens.chan.core.manager.ReplyManager; import org.floens.chan.core.manager.WatchManager; @@ -128,6 +130,8 @@ public class ChanApplication extends Application { // StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectAll().penaltyLog().build()); } + ChanUrls.loadScheme(ChanPreferences.getNetworkHttps()); + IconCache.createIcons(this); Ion.getDefault(getInstance()).getCache().clear(); diff --git a/Clover/app/src/main/java/org/floens/chan/chan/ChanUrls.java b/Clover/app/src/main/java/org/floens/chan/chan/ChanUrls.java index 3063143d..d76a9f62 100644 --- a/Clover/app/src/main/java/org/floens/chan/chan/ChanUrls.java +++ b/Clover/app/src/main/java/org/floens/chan/chan/ChanUrls.java @@ -17,55 +17,63 @@ */ package org.floens.chan.chan; +import org.floens.chan.core.ChanPreferences; + import java.util.Locale; public class ChanUrls { + private static String scheme; + + public static void loadScheme(boolean useHttps) { + scheme = useHttps ? "https" : "http"; + } + public static String getCatalogUrl(String board) { - return "https://a.4cdn.org/" + board + "/catalog.json"; + return scheme + "://a.4cdn.org/" + board + "/catalog.json"; } public static String getPageUrl(String board, int pageNumber) { - return "https://a.4cdn.org/" + board + "/" + (pageNumber + 1) + ".json"; + return scheme + "://a.4cdn.org/" + board + "/" + (pageNumber + 1) + ".json"; } public static String getThreadUrl(String board, int no) { - return "https://a.4cdn.org/" + board + "/thread/" + no + ".json"; + return scheme + "://a.4cdn.org/" + board + "/thread/" + no + ".json"; } public static String getCaptchaChallengeUrl() { - return "https://www.google.com/recaptcha/api/challenge?k=6Ldp2bsSAAAAAAJ5uyx_lx34lJeEpTLVkP5k04qc"; + return scheme + "://www.google.com/recaptcha/api/challenge?k=6Ldp2bsSAAAAAAJ5uyx_lx34lJeEpTLVkP5k04qc"; } public static String getCaptchaImageUrl(String challenge) { - return "https://www.google.com/recaptcha/api/image?c=" + challenge; + return scheme + "://www.google.com/recaptcha/api/image?c=" + challenge; } public static String getImageUrl(String board, String code, String extension) { - return "https://i.4cdn.org/" + board + "/" + code + "." + extension; + return scheme + "://i.4cdn.org/" + board + "/" + code + "." + extension; } public static String getThumbnailUrl(String board, String code) { - return "https://t.4cdn.org/" + board + "/" + code + "s.jpg"; + return scheme + "://t.4cdn.org/" + board + "/" + code + "s.jpg"; } public static String getSpoilerUrl() { - return "https://s.4cdn.org/image/spoiler.png"; + return scheme + "://s.4cdn.org/image/spoiler.png"; } public static String getCustomSpoilerUrl(String board, int value) { - return "https://s.4cdn.org/image/spoiler-" + board + value + ".png"; + return scheme + "://s.4cdn.org/image/spoiler-" + board + value + ".png"; } public static String getCountryFlagUrl(String countryCode) { - return "https://s.4cdn.org/image/country/" + countryCode.toLowerCase(Locale.ENGLISH) + ".gif"; + return scheme + "://s.4cdn.org/image/country/" + countryCode.toLowerCase(Locale.ENGLISH) + ".gif"; } public static String getTrollCountryFlagUrl(String countryCode) { - return "https://s.4cdn.org/image/country/troll/" + countryCode.toLowerCase(Locale.ENGLISH) + ".gif"; + return scheme + "://s.4cdn.org/image/country/troll/" + countryCode.toLowerCase(Locale.ENGLISH) + ".gif"; } public static String getBoardsUrl() { - return "https://a.4cdn.org/boards.json"; + return scheme + "://a.4cdn.org/boards.json"; } public static String getReplyUrl(String board) { @@ -77,15 +85,15 @@ public class ChanUrls { } public static String getBoardUrlDesktop(String board) { - return "https://boards.4chan.org/" + board + "/"; + return scheme + "://boards.4chan.org/" + board + "/"; } public static String getThreadUrlDesktop(String board, int no) { - return "https://boards.4chan.org/" + board + "/thread/" + no; + return scheme + "://boards.4chan.org/" + board + "/thread/" + no; } public static String getCatalogUrlDesktop(String board) { - return "https://boards.4chan.org/" + board + "/catalog"; + return scheme + "://boards.4chan.org/" + board + "/catalog"; } public static String getPassUrl() { diff --git a/Clover/app/src/main/java/org/floens/chan/core/ChanPreferences.java b/Clover/app/src/main/java/org/floens/chan/core/ChanPreferences.java index 299b53d5..88b74d18 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/ChanPreferences.java +++ b/Clover/app/src/main/java/org/floens/chan/core/ChanPreferences.java @@ -193,4 +193,8 @@ public class ChanPreferences { String font = p().getString("preference_font", null); return font == null ? 14 : Integer.parseInt(font); } + + public static boolean getNetworkHttps() { + return p().getBoolean("preference_network_https", true); + } } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/activity/AdvancedSettingsActivity.java b/Clover/app/src/main/java/org/floens/chan/ui/activity/AdvancedSettingsActivity.java index 37cca85d..a49c3dfd 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/activity/AdvancedSettingsActivity.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/activity/AdvancedSettingsActivity.java @@ -24,6 +24,7 @@ import android.preference.Preference; import android.preference.PreferenceFragment; import org.floens.chan.R; +import org.floens.chan.chan.ChanUrls; import org.floens.chan.core.ChanPreferences; import org.floens.chan.ui.fragment.FolderPickFragment; import org.floens.chan.utils.ThemeHelper; @@ -107,6 +108,15 @@ public class AdvancedSettingsActivity extends Activity { return true; } }); + + findPreference("preference_network_https").setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + ChanUrls.loadScheme((Boolean)newValue); + + return true; + } + }); } private void reloadSavePath() { diff --git a/Clover/app/src/main/res/values/strings.xml b/Clover/app/src/main/res/values/strings.xml index ca26548d..f2b751e7 100644 --- a/Clover/app/src/main/res/values/strings.xml +++ b/Clover/app/src/main/res/values/strings.xml @@ -203,6 +203,7 @@ along with this program. If not, see . Image save folder + Use HTTPS Save original filename Ask before opening links Start playing videos immediately diff --git a/Clover/app/src/main/res/xml/preference_advanced.xml b/Clover/app/src/main/res/xml/preference_advanced.xml index 7dea9b68..c5a92fbe 100644 --- a/Clover/app/src/main/res/xml/preference_advanced.xml +++ b/Clover/app/src/main/res/xml/preference_advanced.xml @@ -25,6 +25,11 @@ along with this program. If not, see . android:key="preference_image_save_original" android:title="@string/preference_image_save_original" /> + +