improved activate button responsive to be more instant

svn:r21778
This commit is contained in:
Nathan Freitas 2010-03-01 06:15:35 +00:00
parent 86c568f03e
commit 09fd0ef66d
2 changed files with 53 additions and 17 deletions

View File

@ -631,39 +631,37 @@ public class Orbot extends Activity implements OnClickListener, TorConstants, On
{ {
try try
{ {
if (mService == null) if (mService == null)
{ {
} }
else if (mService.getStatus() == STATUS_READY) else if (mService.getStatus() == STATUS_READY)
{ {
mService.setProfile(PROFILE_ON); //this means turn on mService.setProfile(PROFILE_ON); //this means turn on
updateStatus(""); imgStatus.setImageResource(R.drawable.torstarting);
lblStatus.setText(getString(R.string.status_starting_up));
processSettings(); Message msg = mHandler.obtainMessage(ENABLE_TOR_MSG);
mHandler.sendMessage(msg);
updateStatus("");
if (hasRoot && enableTransparentProxy)
{
TorTransProxy.setDNSProxying();
TorTransProxy.setTransparentProxying(this,TorServiceUtils.getApps(this));
}
} }
else else
{ {
mService.setProfile(PROFILE_ONDEMAND); //these means turn off mService.setProfile(PROFILE_ONDEMAND); //these means turn off
updateStatus("");
if (hasRoot && enableTransparentProxy) Message msg = mHandler.obtainMessage(DISABLE_TOR_MSG);
{ mHandler.sendMessage(msg);
TorTransProxy.purgeNatIptables();
//TorRoot.setDNSProxying(false); updateStatus("");
//TorRoot.setTransparentProxying(this,false);
}
} }
} }
catch (Exception e) catch (Exception e)
{ {
@ -675,6 +673,31 @@ public class Orbot extends Activity implements OnClickListener, TorConstants, On
} }
private void doTorSetup (boolean enabled)
{
if (enabled)
{
processSettings();
if (hasRoot && enableTransparentProxy)
{
TorTransProxy.setDNSProxying();
TorTransProxy.setTransparentProxying(this,TorServiceUtils.getApps(this));
}
}
else
{
if (hasRoot && enableTransparentProxy)
{
TorTransProxy.purgeNatIptables();
//TorRoot.setDNSProxying(false);
//TorRoot.setTransparentProxying(this,false);
}
}
}
/** /**
* This implementation is used to receive callbacks from the remote * This implementation is used to receive callbacks from the remote
* service. * service.
@ -697,6 +720,8 @@ public class Orbot extends Activity implements OnClickListener, TorConstants, On
private static final int BUMP_MSG = 1; private static final int BUMP_MSG = 1;
private static final int ENABLE_TOR_MSG = 2;
private static final int DISABLE_TOR_MSG = 3;
private Handler mHandler = new Handler() { private Handler mHandler = new Handler() {
@Override public void handleMessage(Message msg) { @Override public void handleMessage(Message msg) {
@ -711,6 +736,15 @@ public class Orbot extends Activity implements OnClickListener, TorConstants, On
updateStatus(torServiceMsg); updateStatus(torServiceMsg);
break; break;
case ENABLE_TOR_MSG:
doTorSetup(true);
break;
case DISABLE_TOR_MSG:
doTorSetup(false);
break;
default: default:
super.handleMessage(msg); super.handleMessage(msg);
} }

View File

@ -699,6 +699,8 @@ public class TorService extends Service implements TorServiceConstants, Runnable
public void setProfile (int profile) public void setProfile (int profile)
{ {
setTorProfile(profile); setTorProfile(profile);
sendCallbackMessage("");
} }
}; };