diff options
Diffstat (limited to 'src')
| -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 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<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");
 +		}		
  	}
  }
 | 
