From 61deb1b6598f2816125525c8621b08e047172768 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Tue, 1 May 2012 00:26:54 +0200 Subject: The real 0.4.6 version as being pushed to the market. adds working clear and disconnect buttons to log window --- AndroidManifest.xml | 6 +++++- res/drawable-hdpi/ic_menu_trash_holo_light.png | Bin 0 -> 1001 bytes res/drawable-mdpi/ic_menu_trash_holo_light.png | Bin 0 -> 746 bytes res/drawable-xhdpi/ic_menu_trash_holo_light.png | Bin 0 -> 1279 bytes res/menu/logmenu.xml | 18 ++++++++++++----- res/values/strings.xml | 4 ++++ src/de/blinkt/openvpn/LaunchVPN.java | 2 +- src/de/blinkt/openvpn/LogWindow.java | 22 ++++++++++++++++++++- src/de/blinkt/openvpn/OpenVpnManagementThread.java | 16 ++++++++++++--- 9 files changed, 57 insertions(+), 11 deletions(-) create mode 100644 res/drawable-hdpi/ic_menu_trash_holo_light.png create mode 100644 res/drawable-mdpi/ic_menu_trash_holo_light.png create mode 100644 res/drawable-xhdpi/ic_menu_trash_holo_light.png diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 3541f6c5..5b4bdef8 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -33,10 +33,13 @@ - + + @@ -54,6 +57,7 @@ android:label="@string/vpn_launch_title" > + diff --git a/res/drawable-hdpi/ic_menu_trash_holo_light.png b/res/drawable-hdpi/ic_menu_trash_holo_light.png new file mode 100644 index 00000000..c62295aa Binary files /dev/null and b/res/drawable-hdpi/ic_menu_trash_holo_light.png differ diff --git a/res/drawable-mdpi/ic_menu_trash_holo_light.png b/res/drawable-mdpi/ic_menu_trash_holo_light.png new file mode 100644 index 00000000..08291855 Binary files /dev/null and b/res/drawable-mdpi/ic_menu_trash_holo_light.png differ diff --git a/res/drawable-xhdpi/ic_menu_trash_holo_light.png b/res/drawable-xhdpi/ic_menu_trash_holo_light.png new file mode 100644 index 00000000..bd3fd784 Binary files /dev/null and b/res/drawable-xhdpi/ic_menu_trash_holo_light.png differ diff --git a/res/menu/logmenu.xml b/res/menu/logmenu.xml index 5fcadae0..80331c5e 100644 --- a/res/menu/logmenu.xml +++ b/res/menu/logmenu.xml @@ -1,9 +1,17 @@ - + + + + + \ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml index 7bc7ab95..28863ab9 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -113,4 +113,8 @@ Specify custom options. Use with care! Route rejected by Android Cannot make sense of %s and %s as IP and CIDR netmask, assuming P2P for local address (/32) + cancel + clear log + Cancel Confirmation + Disconnect the connected VPN/cancel the connection attempt? diff --git a/src/de/blinkt/openvpn/LaunchVPN.java b/src/de/blinkt/openvpn/LaunchVPN.java index 38a3b5d7..2bd647f9 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 f6004882..001dbf1f 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 00d8fe9b..02e5dc46 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 active=new Vector(); + 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"); + } } } -- cgit v1.2.3