diff --git a/src/org/torproject/android/Orbot.java b/src/org/torproject/android/Orbot.java index d5cd9da9..89928262 100644 --- a/src/org/torproject/android/Orbot.java +++ b/src/org/torproject/android/Orbot.java @@ -815,8 +815,14 @@ public class Orbot extends ActionBarActivity implements TorConstants, OnLongClic e.printStackTrace(); } } - else + else if (torStatus == TorServiceConstants.STATUS_ON) { + try { + mService.processSettings(); + } catch (RemoteException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } Toast.makeText(this, R.string.you_may_need_to_stop_and_start_orbot_for_settings_change_to_be_enabled_, Toast.LENGTH_SHORT).show(); } diff --git a/src/org/torproject/android/service/TorService.java b/src/org/torproject/android/service/TorService.java index b9f3791a..ec56cebb 100644 --- a/src/org/torproject/android/service/TorService.java +++ b/src/org/torproject/android/service/TorService.java @@ -897,15 +897,11 @@ public class TorService extends Service implements TorServiceConstants, TorConst if (mTransProxy == null) mTransProxy = new TorTransProxy(this, fileXtables); - - if (mTransProxyAll) - mTransProxy.setTransparentProxyingAll(this, false); - else - { - ArrayList apps = AppManager.getApps(this, TorServiceUtils.getSharedPrefs(getApplicationContext())); - mTransProxy.setTransparentProxyingByApp(this, apps, false); - } - + + mTransProxy.setTransparentProxyingAll(this, false); + ArrayList apps = AppManager.getApps(this, TorServiceUtils.getSharedPrefs(getApplicationContext())); + mTransProxy.setTransparentProxyingByApp(this, apps, false); + return true; } @@ -1730,7 +1726,31 @@ public class TorService extends Service implements TorServiceConstants, TorConst public void processSettings () { - /* + + try { + + boolean hadEnableTransparentProxy = mEnableTransparentProxy; + + updateSettings (); + + if (mHasRoot) + { + if (hadEnableTransparentProxy) + disableTransparentProxy(); + + if (mEnableTransparentProxy) + { + disableTransparentProxy(); + enableTransparentProxy(); + } + } + + + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + Thread thread = new Thread() { @@ -1750,7 +1770,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst }; thread.start(); - */ + }