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();
 | 
			
		||||
 | 
			
		||||
        curTheme = preferences.getTheme();
 | 
			
		||||
        preferences.configureProxy();
 | 
			
		||||
        configureProxy(preferences);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        // bug specific to exactly 5.0 makes it only work with the old index
 | 
			
		||||
        // which includes an ugly, hacky workaround
 | 
			
		||||
@ -485,8 +486,6 @@ public class FDroidApp extends Application {
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        configureTor(preferences.isTorEnabled());
 | 
			
		||||
 | 
			
		||||
        if (preferences.isKeepingInstallHistory()) {
 | 
			
		||||
            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) {
 | 
			
		||||
        if (enabled) {
 | 
			
		||||
    public static void configureProxy(Preferences preferences) {
 | 
			
		||||
        if (preferences.isTorEnabled()) {
 | 
			
		||||
            NetCipher.useTor();
 | 
			
		||||
        } else if (preferences.isProxyEnabled()) {
 | 
			
		||||
            NetCipher.setProxy(preferences.getProxyHost(), preferences.getProxyPort());
 | 
			
		||||
        } else {
 | 
			
		||||
            NetCipher.clearProxy();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -481,22 +481,10 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh
 | 
			
		||||
        return preferences.getBoolean(PREF_USE_TOR, IGNORED_B);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private boolean isProxyEnabled() {
 | 
			
		||||
    public boolean isProxyEnabled() {
 | 
			
		||||
        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() {
 | 
			
		||||
        return preferences.getString(PREF_PROXY_HOST, DEFAULT_PROXY_HOST);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -455,12 +455,12 @@ public class PreferencesFragment extends PreferenceFragment
 | 
			
		||||
                if ((Boolean) enabled) {
 | 
			
		||||
                    final Activity activity = getActivity();
 | 
			
		||||
                    enableProxyCheckPref.setEnabled(false);
 | 
			
		||||
                    if (OrbotHelper.isOrbotInstalled(activity)) {
 | 
			
		||||
                        NetCipher.useTor();
 | 
			
		||||
                    } else {
 | 
			
		||||
                    if (!OrbotHelper.isOrbotInstalled(activity)) {
 | 
			
		||||
                        Intent intent = OrbotHelper.getOrbotInstallIntent(activity);
 | 
			
		||||
                        activity.startActivityForResult(intent, REQUEST_INSTALL_ORBOT);
 | 
			
		||||
                    }
 | 
			
		||||
                    // NetCipher gets configured to use Tor in onPause()
 | 
			
		||||
                    // via a call to FDroidApp.configureProxy()
 | 
			
		||||
                } else {
 | 
			
		||||
                    enableProxyCheckPref.setEnabled(true);
 | 
			
		||||
                    NetCipher.clearProxy();
 | 
			
		||||
@ -491,7 +491,7 @@ public class PreferencesFragment extends PreferenceFragment
 | 
			
		||||
    public void onPause() {
 | 
			
		||||
        super.onPause();
 | 
			
		||||
        getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
 | 
			
		||||
        Preferences.get().configureProxy();
 | 
			
		||||
        FDroidApp.configureProxy(Preferences.get());
 | 
			
		||||
 | 
			
		||||
        if (updateIntervalPrevious != updateIntervalSeekBar.getValue()) {
 | 
			
		||||
            UpdateService.schedule(getActivity());
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user