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 5d0c3c95..fd2314d7 100644
--- a/Clover/app/src/main/java/org/floens/chan/Chan.java
+++ b/Clover/app/src/main/java/org/floens/chan/Chan.java
@@ -35,6 +35,7 @@ import org.floens.chan.core.http.ReplyManager;
import org.floens.chan.core.manager.BoardManager;
import org.floens.chan.core.manager.WatchManager;
import org.floens.chan.core.net.BitmapLruImageCache;
+import org.floens.chan.core.net.ProxiedHurlStack;
import org.floens.chan.core.settings.ChanSettings;
import org.floens.chan.utils.AndroidUtils;
import org.floens.chan.utils.Logger;
@@ -150,7 +151,8 @@ public class Chan extends Application {
replyManager = new ReplyManager(this);
- volleyRequestQueue = Volley.newRequestQueue(this, getUserAgent(), null, new File(cacheDir, Volley.DEFAULT_CACHE_DIR), VOLLEY_CACHE_SIZE);
+ 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);
final int lruImageCacheSize = runtimeMemory / 8;
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 2b0af178..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
@@ -25,6 +25,7 @@ import com.squareup.okhttp.Response;
import com.squareup.okhttp.ResponseBody;
import com.squareup.okhttp.internal.Util;
+import org.floens.chan.core.settings.ChanSettings;
import org.floens.chan.utils.AndroidUtils;
import org.floens.chan.utils.Logger;
import org.floens.chan.utils.Time;
@@ -419,6 +420,8 @@ public class FileCache {
.header("User-Agent", userAgent)
.build();
+ fileCache.httpClient.setProxy(ChanSettings.getProxy());
+
call = fileCache.httpClient.newCall(request);
Response response = call.execute();
if (!response.isSuccessful()) {
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
new file mode 100644
index 00000000..7d57c2e3
--- /dev/null
+++ b/Clover/app/src/main/java/org/floens/chan/core/net/ProxiedHurlStack.java
@@ -0,0 +1,44 @@
+/*
+ * 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.Proxy;
+import java.net.URL;
+
+public class ProxiedHurlStack extends HurlStack {
+ public ProxiedHurlStack(String userAgent) {
+ super(userAgent, null);
+ }
+
+ @Override
+ protected HttpURLConnection createConnection(URL url) throws IOException {
+ // Start the connection by specifying a proxy server
+ Proxy proxy = ChanSettings.getProxy();
+ if (proxy != null) {
+ return (HttpURLConnection) url.openConnection(proxy);
+ } else {
+ return (HttpURLConnection) url.openConnection();
+ }
+ }
+}
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 9f56d646..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;
@@ -97,6 +101,10 @@ public class ChanSettings {
public static final BooleanSetting historyEnabled;
+ public static final BooleanSetting proxyEnabled;
+ public static final StringSetting proxyAddress;
+ public static final IntegerSetting proxyPort;
+
static {
SharedPreferences p = AndroidUtils.getPreferences();
@@ -161,6 +169,26 @@ public class ChanSettings {
historyEnabled = new BooleanSetting(p, "preference_history_enabled", true);
+ 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"
// preference_board_editor_filler default false
@@ -194,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
new file mode 100644
index 00000000..72dcb102
--- /dev/null
+++ b/Clover/app/src/main/java/org/floens/chan/core/settings/IntegerSetting.java
@@ -0,0 +1,56 @@
+/*
+ * 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
+ */
+public class IntegerSetting extends Setting {
+ private boolean hasCached = false;
+ private Integer cached;
+
+ public IntegerSetting(SharedPreferences sharedPreferences, String key, Integer def) {
+ super(sharedPreferences, key, def);
+ }
+
+ public IntegerSetting(SharedPreferences sharedPreferences, String key, Integer def, SettingCallback callback) {
+ super(sharedPreferences, key, def, callback);
+ }
+
+ @Override
+ public Integer get() {
+ if (hasCached) {
+ return cached;
+ } else {
+ cached = sharedPreferences.getInt(key, def);
+ hasCached = true;
+ return cached;
+ }
+ }
+
+ @Override
+ public void set(Integer value) {
+ if (!value.equals(get())) {
+ sharedPreferences.edit().putInt(key, value).apply();
+ cached = value;
+ onValueChanged();
+ }
+ }
+}
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/AdvancedSettingsController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/AdvancedSettingsController.java
index 5e81d5b0..d0d5fedf 100644
--- a/Clover/app/src/main/java/org/floens/chan/ui/controller/AdvancedSettingsController.java
+++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/AdvancedSettingsController.java
@@ -27,9 +27,11 @@ import org.floens.chan.R;
import org.floens.chan.core.settings.ChanSettings;
import org.floens.chan.ui.fragment.FolderPickFragment;
import org.floens.chan.ui.settings.BooleanSettingView;
+import org.floens.chan.ui.settings.IntegerSettingView;
import org.floens.chan.ui.settings.LinkSettingView;
import org.floens.chan.ui.settings.SettingsController;
import org.floens.chan.ui.settings.SettingsGroup;
+import org.floens.chan.ui.settings.StringSettingView;
import java.io.File;
@@ -92,6 +94,12 @@ public class AdvancedSettingsController extends SettingsController {
settings.add(new BooleanSettingView(this, ChanSettings.tapNoReply, string(R.string.setting_tap_no_rely), null));
groups.add(settings);
+
+ SettingsGroup proxy = new SettingsGroup(string(R.string.settings_group_proxy));
+ proxy.add(new BooleanSettingView(this, ChanSettings.proxyEnabled, string(R.string.setting_proxy_enabled), null));
+ proxy.add(new StringSettingView(this, ChanSettings.proxyAddress, string(R.string.setting_proxy_address), string(R.string.setting_proxy_address)));
+ proxy.add(new IntegerSettingView(this, ChanSettings.proxyPort, string(R.string.setting_proxy_port), string(R.string.setting_proxy_port)));
+ groups.add(proxy);
}
private void setSaveLocationDescription() {
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
new file mode 100644
index 00000000..c4b53ecb
--- /dev/null
+++ b/Clover/app/src/main/java/org/floens/chan/ui/settings/IntegerSettingView.java
@@ -0,0 +1,91 @@
+/*
+ * 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;
+import android.content.DialogInterface;
+import android.text.InputType;
+import android.view.View;
+import android.view.WindowManager;
+import android.view.inputmethod.EditorInfo;
+import android.widget.EditText;
+import android.widget.LinearLayout;
+
+import org.floens.chan.R;
+import org.floens.chan.core.settings.Setting;
+
+import static org.floens.chan.utils.AndroidUtils.dp;
+
+/**
+ * Created by Zetsubou on 02.07.2015
+ */
+public class IntegerSettingView extends SettingView implements View.OnClickListener {
+ private final Setting setting;
+ private final String dialogTitle;
+
+ public IntegerSettingView(SettingsController settingsController, Setting setting, String name, String dialogTitle) {
+ super(settingsController, name);
+ this.setting = setting;
+ this.dialogTitle = dialogTitle;
+ }
+
+ @Override
+ public void setView(View view) {
+ super.setView(view);
+ view.setOnClickListener(this);
+ }
+
+ @Override
+ public String getBottomDescription() {
+ return setting.get() != null ? setting.get().toString() : null;
+ }
+
+ @Override
+ public void onClick(View v) {
+ LinearLayout container = new LinearLayout(v.getContext());
+ container.setPadding(dp(24), dp(8), dp(24), 0);
+
+ final EditText editText = new EditText(v.getContext());
+ editText.setImeOptions(EditorInfo.IME_FLAG_NO_FULLSCREEN);
+ editText.setText(setting.get().toString());
+ editText.setInputType(InputType.TYPE_CLASS_NUMBER);
+ editText.setSingleLine(true);
+
+ container.addView(editText, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
+
+ AlertDialog dialog = new AlertDialog.Builder(v.getContext())
+ .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface d, int which) {
+ try {
+ setting.set(Integer.parseInt(editText.getText().toString()));
+ } catch (Exception e) {
+ setting.set(setting.getDefault());
+ }
+
+ settingsController.onPreferenceChange(IntegerSettingView.this);
+ }
+ })
+ .setNegativeButton(R.string.cancel, null)
+ .setTitle(dialogTitle)
+ .setView(container)
+ .create();
+ dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
+ dialog.show();
+ }
+}
\ No newline at end of file
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 f8a55926..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
@@ -65,7 +65,10 @@ public class SettingsController extends Controller implements AndroidUtils.OnMea
}
public void onPreferenceChange(SettingView item) {
- if ((item instanceof ListSettingView) || (item instanceof StringSettingView) || (item instanceof LinkSettingView)) {
+ if ((item instanceof ListSettingView)
+ || (item instanceof StringSettingView)
+ || (item instanceof IntegerSettingView)
+ || (item instanceof LinkSettingView)) {
setDescriptionText(item.view, item.getTopDescription(), item.getBottomDescription());
}
}
@@ -130,7 +133,10 @@ public class SettingsController extends Controller implements AndroidUtils.OnMea
String topValue = settingView.getTopDescription();
String bottomValue = settingView.getBottomDescription();
- if ((settingView instanceof ListSettingView) || (settingView instanceof LinkSettingView) || (settingView instanceof StringSettingView)) {
+ if ((settingView instanceof ListSettingView)
+ || (settingView instanceof LinkSettingView)
+ || (settingView instanceof StringSettingView)
+ || (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;
diff --git a/Clover/app/src/main/res/values/strings.xml b/Clover/app/src/main/res/values/strings.xml
index e1c9c0a0..daf7b57f 100644
--- a/Clover/app/src/main/res/values/strings.xml
+++ b/Clover/app/src/main/res/values/strings.xml
@@ -310,6 +310,11 @@ If the pattern matches then the post can be hidden or highlighted.<br>
Confirm exit
Tap the post number to reply
+ HTTP Proxy
+ Enable proxy
+ Proxy server address
+ Proxy server port
+
Watcher settings
Watcher settings
To watch pins for new posts, turn the thread watcher on.