Add HTTPS option

captchafix
Florens Douwes 11 years ago
parent c4aaf523df
commit 1f6529c2c7
  1. 4
      Clover/app/src/main/java/org/floens/chan/ChanApplication.java
  2. 38
      Clover/app/src/main/java/org/floens/chan/chan/ChanUrls.java
  3. 4
      Clover/app/src/main/java/org/floens/chan/core/ChanPreferences.java
  4. 10
      Clover/app/src/main/java/org/floens/chan/ui/activity/AdvancedSettingsActivity.java
  5. 1
      Clover/app/src/main/res/values/strings.xml
  6. 5
      Clover/app/src/main/res/xml/preference_advanced.xml

@ -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();

@ -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() {

@ -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);
}
}

@ -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() {

@ -203,6 +203,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
</string-array>
<string name="preference_image_save_location">Image save folder</string>
<string name="preference_network_https">Use HTTPS</string>
<string name="preference_image_save_original">Save original filename</string>
<string name="preference_open_link_confirmation">Ask before opening links</string>
<string name="preference_autoplay">Start playing videos immediately</string>

@ -25,6 +25,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
android:key="preference_image_save_original"
android:title="@string/preference_image_save_original" />
<CheckBoxPreference
android:defaultValue="true"
android:key="preference_network_https"
android:title="@string/preference_network_https" />
<ListPreference
android:defaultValue="catalog"
android:dialogTitle="@string/preference_board_mode"

Loading…
Cancel
Save