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" />
+
+