diff options
author | Arne Schwabe <arne@rfc2549.org> | 2012-05-01 00:26:54 +0200 |
---|---|---|
committer | Arne Schwabe <arne@rfc2549.org> | 2012-05-01 00:26:54 +0200 |
commit | 61deb1b6598f2816125525c8621b08e047172768 (patch) | |
tree | 436cd91b85b5f1f704ea22e041c8d12dfb51ed8f /src/de/blinkt/openvpn | |
parent | 370fa3686c7bfa74ed4b26c253ad0ba391bd34c4 (diff) |
The real 0.4.6 version as being pushed to the market.
adds working clear and disconnect buttons to log window
Diffstat (limited to 'src/de/blinkt/openvpn')
-rw-r--r-- | src/de/blinkt/openvpn/LaunchVPN.java | 2 | ||||
-rw-r--r-- | src/de/blinkt/openvpn/LogWindow.java | 22 | ||||
-rw-r--r-- | src/de/blinkt/openvpn/OpenVpnManagementThread.java | 16 |
3 files changed, 35 insertions, 5 deletions
diff --git a/src/de/blinkt/openvpn/LaunchVPN.java b/src/de/blinkt/openvpn/LaunchVPN.java index 38a3b5d..2bd647f 100644 --- a/src/de/blinkt/openvpn/LaunchVPN.java +++ b/src/de/blinkt/openvpn/LaunchVPN.java @@ -255,7 +255,7 @@ public class LaunchVPN extends ListActivity implements OnItemClickListener { AlertDialog.Builder d = new AlertDialog.Builder(this); d.setTitle(R.string.config_error_found); d.setMessage(vpnok); - d.setPositiveButton("Ok", null); + d.setPositiveButton(android.R.string.ok, null); d.show(); } diff --git a/src/de/blinkt/openvpn/LogWindow.java b/src/de/blinkt/openvpn/LogWindow.java index f600488..001dbf1 100644 --- a/src/de/blinkt/openvpn/LogWindow.java +++ b/src/de/blinkt/openvpn/LogWindow.java @@ -2,7 +2,11 @@ package de.blinkt.openvpn; import java.util.Vector; +import android.app.AlertDialog; +import android.app.AlertDialog.Builder; import android.app.ListActivity; +import android.content.DialogInterface; +import android.content.DialogInterface.OnClickListener; import android.database.DataSetObserver; import android.os.Bundle; import android.os.Handler; @@ -143,12 +147,14 @@ public class LogWindow extends ListActivity { for (DataSetObserver observer : observers) { observer.onInvalidated(); } - } + } return true; } void clearLog() { + // Actually is probably called from GUI Thread as result of the user + // pressing a button. But better safe than sorry OpenVPN.clearLog(); OpenVPN.logMessage(0,"","Log cleared."); mHandler.sendEmptyMessage(MESSAGE_CLEARLOG); @@ -165,6 +171,20 @@ public class LogWindow extends ListActivity { if(item.getItemId()==R.id.clearlog) { ladapter.clearLog(); return true; + } else if(item.getItemId()==R.id.cancel){ + Builder builder = new AlertDialog.Builder(this); + builder.setTitle(R.string.title_cancel); + builder.setMessage(R.string.cancel_connection_query); + builder.setPositiveButton(android.R.string.yes, new OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, int which) { + OpenVpnManagementThread.stopOpenVPN(); + } + }); + builder.setNegativeButton(android.R.string.no, null); + builder.show(); + return true; } return super.onOptionsItemSelected(item); diff --git a/src/de/blinkt/openvpn/OpenVpnManagementThread.java b/src/de/blinkt/openvpn/OpenVpnManagementThread.java index 00d8fe9..02e5dc4 100644 --- a/src/de/blinkt/openvpn/OpenVpnManagementThread.java +++ b/src/de/blinkt/openvpn/OpenVpnManagementThread.java @@ -2,6 +2,7 @@ package de.blinkt.openvpn; import java.io.IOException;
import java.io.InputStream;
+import java.util.Vector;
import android.net.LocalSocket;
import android.util.Log;
@@ -11,7 +12,8 @@ public class OpenVpnManagementThread implements Runnable { private static final String TAG = "openvpn";
private LocalSocket mSocket;
private VpnProfile mProfile;
-
+private static Vector<OpenVpnManagementThread> active=new Vector<OpenVpnManagementThread>();
+
public OpenVpnManagementThread(VpnProfile profile, LocalSocket mgmtsocket) {
mProfile = profile;
mSocket = mgmtsocket;
@@ -48,6 +50,7 @@ public class OpenVpnManagementThread implements Runnable { e.printStackTrace();
}
String pendingInput="";
+ active.add(this);
try {
@@ -68,6 +71,7 @@ public class OpenVpnManagementThread implements Runnable { } catch (IOException e) {
e.printStackTrace();
}
+ active.remove(this);
}
@@ -133,8 +137,14 @@ public class OpenVpnManagementThread implements Runnable { private void logStatusMessage(String command) {
- // TODO Auto-generated method stub
-
+ OpenVPN.logMessage(0,"MGMT:", command);
+ }
+
+
+ public static void stopOpenVPN() {
+ for (OpenVpnManagementThread mt: active){
+ mt.managmentCommand("signal SIGINT\n");
+ }
}
}
|