diff --git a/src/org/torproject/android/OrbotMainActivity.java b/src/org/torproject/android/OrbotMainActivity.java index 405e9301..26abd582 100644 --- a/src/org/torproject/android/OrbotMainActivity.java +++ b/src/org/torproject/android/OrbotMainActivity.java @@ -822,6 +822,7 @@ public class OrbotMainActivity extends Activity implements OrbotConstants, OnLon else if (request == REQUEST_VPN && response == RESULT_OK) { startService(TorServiceConstants.CMD_VPN); + restartTor (); } IntentResult scanResult = IntentIntegrator.parseActivityResult(request, response, data); @@ -1005,30 +1006,7 @@ public class OrbotMainActivity extends Activity implements OrbotConstants, OnLon String bridgeList = mPrefs.getString(OrbotConstants.PREF_BRIDGES_LIST,null); if (bridgeList != null && bridgeList.length() > 0) { - try - { - //do auto restart - stopTor (); - - mHandler.postDelayed(new Runnable () { - - public void run () - { - try - { - startTor(); - } - catch (Exception e) - { - Log.e(TAG,"can't start orbot",e); - } - } - }, 2000); - } - catch (Exception e) - { - Log.e(TAG,"can't stop orbot",e); - } + restartTor (); } } @@ -1036,6 +1014,34 @@ public class OrbotMainActivity extends Activity implements OrbotConstants, OnLon } + private void restartTor () + { + try + { + //do auto restart + stopTor (); + + mHandler.postDelayed(new Runnable () { + + public void run () + { + try + { + startTor(); + } + catch (Exception e) + { + Log.e(TAG,"can't start orbot",e); + } + } + }, 2000); + } + catch (Exception e) + { + Log.e(TAG,"can't stop orbot",e); + } + } + public void promptStartVpnService () { LayoutInflater li = LayoutInflater.from(this); @@ -1086,13 +1092,14 @@ public class OrbotMainActivity extends Activity implements OrbotConstants, OnLon else { startService(TorServiceConstants.CMD_VPN); - + restartTor (); } } public void stopVpnService () { startService(TorServiceConstants.CMD_VPN_CLEAR); + restartTor (); } private boolean flushTransProxy ()