diff options
author | Parménides GV <parmegv@sdf.org> | 2014-10-08 20:59:30 +0200 |
---|---|---|
committer | Parménides GV <parmegv@sdf.org> | 2014-10-08 20:59:30 +0200 |
commit | 2b56dd61c0bd9eb6f71405d1d7f07f3051b29601 (patch) | |
tree | 7f4f30989d99f743467b3c382ff4858f45d1eead /app/src/main/java/se/leap/bitmaskclient/VoidVpnLauncher.java | |
parent | 34643c6b5ab0643383e24025876b0d69859ba4f9 (diff) | |
parent | 35674aa6be80c153a0fbe4a4c15c54e02aef0b3e (diff) |
Merge branch 'feature/Early-routes-#5816' into develop
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/VoidVpnLauncher.java')
-rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/VoidVpnLauncher.java | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/VoidVpnLauncher.java b/app/src/main/java/se/leap/bitmaskclient/VoidVpnLauncher.java new file mode 100644 index 00000000..3b286fbf --- /dev/null +++ b/app/src/main/java/se/leap/bitmaskclient/VoidVpnLauncher.java @@ -0,0 +1,37 @@ +package se.leap.bitmaskclient; + +import android.app.Activity; +import android.content.Intent; +import android.net.VpnService; +import android.os.Bundle; + +public class VoidVpnLauncher extends Activity { + + private static final int VPN_USER_PERMISSION = 71; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setUp(); + } + + public void setUp() { + Intent blocking_intent = VpnService.prepare(getApplicationContext()); // stops the VPN connection created by another application. + if(blocking_intent != null) + startActivityForResult(blocking_intent, VPN_USER_PERMISSION); + else { + onActivityResult(VPN_USER_PERMISSION, RESULT_OK, null); + } + } + + protected void onActivityResult(int requestCode, int resultCode, Intent data){ + if(requestCode == VPN_USER_PERMISSION) { + if(resultCode == RESULT_OK) { + Intent void_vpn_service = new Intent(getApplicationContext(), VoidVpnService.class); + void_vpn_service.setAction(VoidVpnService.START_BLOCKING_VPN_PROFILE); + startService(void_vpn_service); + } + } + finish(); + } +} |