deduplicate error prone proxy settings code
This commit is contained in:
parent
292950898e
commit
88f3a68f83
@ -388,7 +388,8 @@ public class FDroidApp extends Application {
|
|||||||
PRNGFixes.apply();
|
PRNGFixes.apply();
|
||||||
|
|
||||||
curTheme = preferences.getTheme();
|
curTheme = preferences.getTheme();
|
||||||
preferences.configureProxy();
|
configureProxy(preferences);
|
||||||
|
|
||||||
|
|
||||||
// bug specific to exactly 5.0 makes it only work with the old index
|
// bug specific to exactly 5.0 makes it only work with the old index
|
||||||
// which includes an ugly, hacky workaround
|
// which includes an ugly, hacky workaround
|
||||||
@ -485,8 +486,6 @@ public class FDroidApp extends Application {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
configureTor(preferences.isTorEnabled());
|
|
||||||
|
|
||||||
if (preferences.isKeepingInstallHistory()) {
|
if (preferences.isKeepingInstallHistory()) {
|
||||||
InstallHistoryService.register(this);
|
InstallHistoryService.register(this);
|
||||||
}
|
}
|
||||||
@ -641,11 +640,15 @@ public class FDroidApp extends Application {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the proxy settings based on whether Tor should be enabled or not.
|
* Put proxy settings (or Tor settings) globally into effect based on whats configured in Preferences.
|
||||||
|
*
|
||||||
|
* Must be called on App startup and after every proxy configuration change.
|
||||||
*/
|
*/
|
||||||
private static void configureTor(boolean enabled) {
|
public static void configureProxy(Preferences preferences) {
|
||||||
if (enabled) {
|
if (preferences.isTorEnabled()) {
|
||||||
NetCipher.useTor();
|
NetCipher.useTor();
|
||||||
|
} else if (preferences.isProxyEnabled()) {
|
||||||
|
NetCipher.setProxy(preferences.getProxyHost(), preferences.getProxyPort());
|
||||||
} else {
|
} else {
|
||||||
NetCipher.clearProxy();
|
NetCipher.clearProxy();
|
||||||
}
|
}
|
||||||
|
@ -481,22 +481,10 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh
|
|||||||
return preferences.getBoolean(PREF_USE_TOR, IGNORED_B);
|
return preferences.getBoolean(PREF_USE_TOR, IGNORED_B);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isProxyEnabled() {
|
public boolean isProxyEnabled() {
|
||||||
return preferences.getBoolean(PREF_ENABLE_PROXY, IGNORED_B);
|
return preferences.getBoolean(PREF_ENABLE_PROXY, IGNORED_B);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Configure the proxy settings based on whether its enabled and set up. This must be
|
|
||||||
* run once at app startup, then whenever any of these settings changes.
|
|
||||||
*/
|
|
||||||
public void configureProxy() {
|
|
||||||
if (isProxyEnabled()) {
|
|
||||||
// if "Use Tor" is set, NetCipher will ignore these proxy settings
|
|
||||||
SocketAddress sa = new InetSocketAddress(getProxyHost(), getProxyPort());
|
|
||||||
NetCipher.setProxy(new Proxy(Proxy.Type.HTTP, sa));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getProxyHost() {
|
public String getProxyHost() {
|
||||||
return preferences.getString(PREF_PROXY_HOST, DEFAULT_PROXY_HOST);
|
return preferences.getString(PREF_PROXY_HOST, DEFAULT_PROXY_HOST);
|
||||||
}
|
}
|
||||||
|
@ -455,12 +455,12 @@ public class PreferencesFragment extends PreferenceFragment
|
|||||||
if ((Boolean) enabled) {
|
if ((Boolean) enabled) {
|
||||||
final Activity activity = getActivity();
|
final Activity activity = getActivity();
|
||||||
enableProxyCheckPref.setEnabled(false);
|
enableProxyCheckPref.setEnabled(false);
|
||||||
if (OrbotHelper.isOrbotInstalled(activity)) {
|
if (!OrbotHelper.isOrbotInstalled(activity)) {
|
||||||
NetCipher.useTor();
|
|
||||||
} else {
|
|
||||||
Intent intent = OrbotHelper.getOrbotInstallIntent(activity);
|
Intent intent = OrbotHelper.getOrbotInstallIntent(activity);
|
||||||
activity.startActivityForResult(intent, REQUEST_INSTALL_ORBOT);
|
activity.startActivityForResult(intent, REQUEST_INSTALL_ORBOT);
|
||||||
}
|
}
|
||||||
|
// NetCipher gets configured to use Tor in onPause()
|
||||||
|
// via a call to FDroidApp.configureProxy()
|
||||||
} else {
|
} else {
|
||||||
enableProxyCheckPref.setEnabled(true);
|
enableProxyCheckPref.setEnabled(true);
|
||||||
NetCipher.clearProxy();
|
NetCipher.clearProxy();
|
||||||
@ -491,7 +491,7 @@ public class PreferencesFragment extends PreferenceFragment
|
|||||||
public void onPause() {
|
public void onPause() {
|
||||||
super.onPause();
|
super.onPause();
|
||||||
getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
|
getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
|
||||||
Preferences.get().configureProxy();
|
FDroidApp.configureProxy(Preferences.get());
|
||||||
|
|
||||||
if (updateIntervalPrevious != updateIntervalSeekBar.getValue()) {
|
if (updateIntervalPrevious != updateIntervalSeekBar.getValue()) {
|
||||||
UpdateService.schedule(getActivity());
|
UpdateService.schedule(getActivity());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user