diff --git a/Clover/app/src/main/java/org/floens/chan/Chan.java b/Clover/app/src/main/java/org/floens/chan/Chan.java index 2a9aee84..fd2314d7 100644 --- a/Clover/app/src/main/java/org/floens/chan/Chan.java +++ b/Clover/app/src/main/java/org/floens/chan/Chan.java @@ -151,7 +151,7 @@ public class Chan extends Application { replyManager = new ReplyManager(this); - String userAgent = getUserAgent(); + String userAgent = getUserAgent(); volleyRequestQueue = Volley.newRequestQueue(this, userAgent, new ProxiedHurlStack(userAgent), new File(cacheDir, Volley.DEFAULT_CACHE_DIR), VOLLEY_CACHE_SIZE); final int runtimeMemory = (int) (Runtime.getRuntime().maxMemory() / 1024); diff --git a/Clover/app/src/main/java/org/floens/chan/chan/ChanHelper.java b/Clover/app/src/main/java/org/floens/chan/chan/ChanHelper.java index 42087118..e39f7393 100644 --- a/Clover/app/src/main/java/org/floens/chan/chan/ChanHelper.java +++ b/Clover/app/src/main/java/org/floens/chan/chan/ChanHelper.java @@ -1,3 +1,20 @@ +/* + * Clover - 4chan browser https://github.com/Floens/Clover/ + * Copyright (C) 2014 Floens + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ package org.floens.chan.chan; import android.net.Uri; diff --git a/Clover/app/src/main/java/org/floens/chan/core/cache/FileCache.java b/Clover/app/src/main/java/org/floens/chan/core/cache/FileCache.java index 6a298ea7..be2ae6e4 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/cache/FileCache.java +++ b/Clover/app/src/main/java/org/floens/chan/core/cache/FileCache.java @@ -36,8 +36,6 @@ import java.io.File; import java.io.FileOutputStream; import java.io.InterruptedIOException; import java.io.OutputStream; -import java.net.InetSocketAddress; -import java.net.Proxy; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -422,14 +420,7 @@ public class FileCache { .header("User-Agent", userAgent) .build(); - Proxy proxy = null; - if (ChanSettings.proxyEnabled.get()) - { - proxy = new Proxy(Proxy.Type.HTTP, InetSocketAddress.createUnresolved( - ChanSettings.proxyAddress.get(), - ChanSettings.proxyPort.get())); - } - fileCache.httpClient.setProxy(proxy); + fileCache.httpClient.setProxy(ChanSettings.getProxy()); call = fileCache.httpClient.newCall(request); Response response = call.execute(); diff --git a/Clover/app/src/main/java/org/floens/chan/core/http/PassHttpCall.java b/Clover/app/src/main/java/org/floens/chan/core/http/PassHttpCall.java index ad6457f7..cbf3fa1c 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/http/PassHttpCall.java +++ b/Clover/app/src/main/java/org/floens/chan/core/http/PassHttpCall.java @@ -1,3 +1,20 @@ +/* + * Clover - 4chan browser https://github.com/Floens/Clover/ + * Copyright (C) 2014 Floens + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ package org.floens.chan.core.http; import com.squareup.okhttp.FormEncodingBuilder; diff --git a/Clover/app/src/main/java/org/floens/chan/core/net/ProxiedHurlStack.java b/Clover/app/src/main/java/org/floens/chan/core/net/ProxiedHurlStack.java index ec63a07f..7d57c2e3 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/net/ProxiedHurlStack.java +++ b/Clover/app/src/main/java/org/floens/chan/core/net/ProxiedHurlStack.java @@ -1,15 +1,32 @@ +/* + * Clover - 4chan browser https://github.com/Floens/Clover/ + * Copyright (C) 2014 Floens + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ package org.floens.chan.core.net; +import com.android.volley.toolbox.HurlStack; + +import org.floens.chan.core.settings.ChanSettings; + import java.io.IOException; import java.net.HttpURLConnection; -import java.net.InetSocketAddress; import java.net.Proxy; import java.net.URL; -import com.android.volley.toolbox.HurlStack; -import org.floens.chan.core.settings.ChanSettings; public class ProxiedHurlStack extends HurlStack { - public ProxiedHurlStack(String userAgent) { super(userAgent, null); } @@ -17,16 +34,11 @@ public class ProxiedHurlStack extends HurlStack { @Override protected HttpURLConnection createConnection(URL url) throws IOException { // Start the connection by specifying a proxy server - if (ChanSettings.proxyEnabled.get()) - { - Proxy proxy = new Proxy(Proxy.Type.HTTP, InetSocketAddress.createUnresolved( - ChanSettings.proxyAddress.get(), - ChanSettings.proxyPort.get())); + Proxy proxy = ChanSettings.getProxy(); + if (proxy != null) { return (HttpURLConnection) url.openConnection(proxy); - } - else - { + } else { return (HttpURLConnection) url.openConnection(); } } -} \ No newline at end of file +} diff --git a/Clover/app/src/main/java/org/floens/chan/core/presenter/ReplyPresenter.java b/Clover/app/src/main/java/org/floens/chan/core/presenter/ReplyPresenter.java index 8b564a4f..12e25063 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/presenter/ReplyPresenter.java +++ b/Clover/app/src/main/java/org/floens/chan/core/presenter/ReplyPresenter.java @@ -22,6 +22,7 @@ import android.text.TextUtils; import org.floens.chan.Chan; import org.floens.chan.R; import org.floens.chan.chan.ChanUrls; +import org.floens.chan.core.database.DatabaseManager; import org.floens.chan.core.http.ReplyHttpCall; import org.floens.chan.core.http.ReplyManager; import org.floens.chan.core.manager.BoardManager; @@ -32,7 +33,6 @@ import org.floens.chan.core.model.Post; import org.floens.chan.core.model.Reply; import org.floens.chan.core.model.SavedReply; import org.floens.chan.core.settings.ChanSettings; -import org.floens.chan.core.database.DatabaseManager; import org.floens.chan.ui.helper.ImagePickDelegate; import org.floens.chan.ui.layout.CaptchaLayout; diff --git a/Clover/app/src/main/java/org/floens/chan/core/settings/ChanSettings.java b/Clover/app/src/main/java/org/floens/chan/core/settings/ChanSettings.java index 91f38ca6..adce6c88 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/settings/ChanSettings.java +++ b/Clover/app/src/main/java/org/floens/chan/core/settings/ChanSettings.java @@ -28,6 +28,8 @@ import org.floens.chan.ui.cell.PostCellInterface; import org.floens.chan.utils.AndroidUtils; import java.io.File; +import java.net.InetSocketAddress; +import java.net.Proxy; public class ChanSettings { public enum ImageAutoLoadMode { @@ -54,6 +56,8 @@ public class ChanSettings { } } + private static Proxy proxy; + private static final StringSetting theme; public static final StringSetting fontSize; public static final BooleanSetting openLinkConfirmation; @@ -165,9 +169,25 @@ public class ChanSettings { historyEnabled = new BooleanSetting(p, "preference_history_enabled", true); - proxyEnabled = new BooleanSetting(p, "preference_proxy_enabled", false); - proxyAddress = new StringSetting(p, "preference_proxy_address", ""); - proxyPort = new IntegerSetting(p, "preference_proxy_port", 80); + proxyEnabled = new BooleanSetting(p, "preference_proxy_enabled", false, new Setting.SettingCallback() { + @Override + public void onValueChange(Setting setting, Boolean value) { + loadProxy(); + } + }); + proxyAddress = new StringSetting(p, "preference_proxy_address", "", new Setting.SettingCallback() { + @Override + public void onValueChange(Setting setting, String value) { + loadProxy(); + } + }); + proxyPort = new IntegerSetting(p, "preference_proxy_port", 80, new Setting.SettingCallback() { + @Override + public void onValueChange(Setting setting, Integer value) { + loadProxy(); + } + }); + loadProxy(); // Old (but possibly still in some users phone) // preference_board_view_mode default "list" @@ -202,6 +222,23 @@ public class ChanSettings { } } + /** + * Returns a {@link Proxy} if a proxy is enabled, null otherwise. + * + * @return a proxy or null + */ + public static Proxy getProxy() { + return proxy; + } + + private static void loadProxy() { + if (proxyEnabled.get()) { + proxy = new Proxy(Proxy.Type.HTTP, InetSocketAddress.createUnresolved(proxyAddress.get(), proxyPort.get())); + } else { + proxy = null; + } + } + public static class ThemeColor { public String theme; public String color; diff --git a/Clover/app/src/main/java/org/floens/chan/core/settings/IntegerSetting.java b/Clover/app/src/main/java/org/floens/chan/core/settings/IntegerSetting.java index 19839fd7..72dcb102 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/settings/IntegerSetting.java +++ b/Clover/app/src/main/java/org/floens/chan/core/settings/IntegerSetting.java @@ -1,9 +1,26 @@ +/* + * Clover - 4chan browser https://github.com/Floens/Clover/ + * Copyright (C) 2014 Floens + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ package org.floens.chan.core.settings; import android.content.SharedPreferences; /** - * Created by Zetsubou on 02.07.2015. + * Created by Zetsubou on 02.07.2015 */ public class IntegerSetting extends Setting { private boolean hasCached = false; diff --git a/Clover/app/src/main/java/org/floens/chan/core/watch/PinWatcher.java b/Clover/app/src/main/java/org/floens/chan/core/watch/PinWatcher.java index 6df7e77c..41e71f33 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/watch/PinWatcher.java +++ b/Clover/app/src/main/java/org/floens/chan/core/watch/PinWatcher.java @@ -21,10 +21,10 @@ import com.android.volley.VolleyError; import org.floens.chan.Chan; import org.floens.chan.chan.ChanLoader; -import org.floens.chan.core.net.LoaderPool; import org.floens.chan.core.model.ChanThread; import org.floens.chan.core.model.Pin; import org.floens.chan.core.model.Post; +import org.floens.chan.core.net.LoaderPool; import org.floens.chan.utils.AndroidUtils; import org.floens.chan.utils.Logger; diff --git a/Clover/app/src/main/java/org/floens/chan/test/TestActivity.java b/Clover/app/src/main/java/org/floens/chan/test/TestActivity.java index 632a8f5b..ecd84569 100644 --- a/Clover/app/src/main/java/org/floens/chan/test/TestActivity.java +++ b/Clover/app/src/main/java/org/floens/chan/test/TestActivity.java @@ -28,13 +28,13 @@ import android.widget.LinearLayout; import com.android.volley.VolleyError; import org.floens.chan.Chan; -import org.floens.chan.core.cache.FileCache; import org.floens.chan.chan.ChanLoader; +import org.floens.chan.core.cache.FileCache; import org.floens.chan.core.model.ChanThread; import org.floens.chan.core.model.Loadable; import org.floens.chan.core.model.Post; -import org.floens.chan.utils.Logger; import org.floens.chan.ui.theme.ThemeHelper; +import org.floens.chan.utils.Logger; import java.io.File; diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/MainSettingsController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/MainSettingsController.java index c39e3d08..4d01828a 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/MainSettingsController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/MainSettingsController.java @@ -172,7 +172,7 @@ public class MainSettingsController extends SettingsController implements Toolba List imageAutoLoadTypes = new ArrayList<>(); for (ChanSettings.ImageAutoLoadMode mode : ChanSettings.ImageAutoLoadMode.values()) { String name = ""; - switch(mode) { + switch (mode) { case ALL: name = string(R.string.setting_image_auto_load_all); break; diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/ViewThreadController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/ViewThreadController.java index e6e08f7a..6c8ea6e0 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/ViewThreadController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/ViewThreadController.java @@ -177,7 +177,7 @@ public class ViewThreadController extends ThreadController implements ThreadLayo break; case UP_ID: case DOWN_ID: - boolean up = ((Integer)item.getId()) == UP_ID; + boolean up = ((Integer) item.getId()) == UP_ID; threadLayout.getPresenter().scrollTo(up ? 0 : -1, false); break; } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/helper/RefreshUIMessage.java b/Clover/app/src/main/java/org/floens/chan/ui/helper/RefreshUIMessage.java index 3c3a6653..809e827c 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/helper/RefreshUIMessage.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/helper/RefreshUIMessage.java @@ -1,3 +1,20 @@ +/* + * Clover - 4chan browser https://github.com/Floens/Clover/ + * Copyright (C) 2014 Floens + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ package org.floens.chan.ui.helper; public class RefreshUIMessage { diff --git a/Clover/app/src/main/java/org/floens/chan/ui/layout/ReplyLayout.java b/Clover/app/src/main/java/org/floens/chan/ui/layout/ReplyLayout.java index 211e5f14..c188efb5 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/layout/ReplyLayout.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/layout/ReplyLayout.java @@ -38,9 +38,9 @@ import org.floens.chan.core.model.Loadable; import org.floens.chan.core.model.Reply; import org.floens.chan.core.presenter.ReplyPresenter; import org.floens.chan.core.settings.ChanSettings; -import org.floens.chan.ui.helper.ImagePickDelegate; import org.floens.chan.ui.activity.StartActivity; import org.floens.chan.ui.drawable.DropdownArrowDrawable; +import org.floens.chan.ui.helper.ImagePickDelegate; import org.floens.chan.ui.theme.ThemeHelper; import org.floens.chan.ui.view.LoadView; import org.floens.chan.ui.view.SelectionListeningEditText; diff --git a/Clover/app/src/main/java/org/floens/chan/ui/settings/IntegerSettingView.java b/Clover/app/src/main/java/org/floens/chan/ui/settings/IntegerSettingView.java index 007c83c9..c4b53ecb 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/settings/IntegerSettingView.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/settings/IntegerSettingView.java @@ -1,3 +1,20 @@ +/* + * Clover - 4chan browser https://github.com/Floens/Clover/ + * Copyright (C) 2014 Floens + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ package org.floens.chan.ui.settings; import android.app.AlertDialog; @@ -15,7 +32,7 @@ import org.floens.chan.core.settings.Setting; import static org.floens.chan.utils.AndroidUtils.dp; /** - * Created by Zetsubou on 02.07.2015. + * Created by Zetsubou on 02.07.2015 */ public class IntegerSettingView extends SettingView implements View.OnClickListener { private final Setting setting; diff --git a/Clover/app/src/main/java/org/floens/chan/ui/settings/SettingsController.java b/Clover/app/src/main/java/org/floens/chan/ui/settings/SettingsController.java index 2d23dc86..1e8f31d3 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/settings/SettingsController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/settings/SettingsController.java @@ -136,8 +136,7 @@ public class SettingsController extends Controller implements AndroidUtils.OnMea if ((settingView instanceof ListSettingView) || (settingView instanceof LinkSettingView) || (settingView instanceof StringSettingView) - || (settingView instanceof IntegerSettingView) ) - { + || (settingView instanceof IntegerSettingView)) { preferenceView = (ViewGroup) inf.inflate(R.layout.setting_link, groupLayout, false); } else if (settingView instanceof BooleanSettingView) { preferenceView = (ViewGroup) inf.inflate(R.layout.setting_boolean, groupLayout, false); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/state/ChanState.java b/Clover/app/src/main/java/org/floens/chan/ui/state/ChanState.java index ee2f412a..bb8b90e4 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/state/ChanState.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/state/ChanState.java @@ -1,3 +1,20 @@ +/* + * Clover - 4chan browser https://github.com/Floens/Clover/ + * Copyright (C) 2014 Floens + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ package org.floens.chan.ui.state; import android.os.Parcel; diff --git a/Clover/app/src/main/java/org/floens/chan/ui/theme/DarkTheme.java b/Clover/app/src/main/java/org/floens/chan/ui/theme/DarkTheme.java index 9ece2259..8591fb69 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/theme/DarkTheme.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/theme/DarkTheme.java @@ -1,3 +1,20 @@ +/* + * Clover - 4chan browser https://github.com/Floens/Clover/ + * Copyright (C) 2014 Floens + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ package org.floens.chan.ui.theme; import org.floens.chan.R;