From 72f5efd826dc617213802688f73827a6ad073a38 Mon Sep 17 00:00:00 2001 From: Balint Kovacs Date: Thu, 13 Jun 2013 08:16:06 +0200 Subject: [PATCH] Added Clone tunnel functionality Signed-off-by: Balint Kovacs --- res/values/strings.xml | 3 ++- src/hu/blint/ssldroid/SSLDroidGui.java | 19 ++++++++++++++++--- .../blint/ssldroid/SSLDroidTunnelDetails.java | 14 +++++++++----- 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 971cc23..5e839e3 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -18,10 +18,11 @@ Pick a PKCS12 file from SD card No SD card present, please insert one to continue Read logs - Reading log messages... + Reading log messages… Provisioning Please enter the URL for remote XML configuration Back Refresh Share logs + Clone tunnel diff --git a/src/hu/blint/ssldroid/SSLDroidGui.java b/src/hu/blint/ssldroid/SSLDroidGui.java index 1e40c06..672b9d0 100644 --- a/src/hu/blint/ssldroid/SSLDroidGui.java +++ b/src/hu/blint/ssldroid/SSLDroidGui.java @@ -21,6 +21,7 @@ public class SSLDroidGui extends ListActivity { private static final int ACTIVITY_CREATE = 0; private static final int ACTIVITY_EDIT = 1; private static final int DELETE_ID = Menu.FIRST + 1; + private static final int CLONE_ID = Menu.FIRST + 2; private Cursor cursor; /** Called when the activity is first created. */ @@ -103,13 +104,17 @@ public class SSLDroidGui extends ListActivity { @Override public boolean onContextItemSelected(MenuItem item) { - switch (item.getItemId()) { + AdapterContextMenuInfo info = (AdapterContextMenuInfo) item + .getMenuInfo(); + switch (item.getItemId()) { case DELETE_ID: - AdapterContextMenuInfo info = (AdapterContextMenuInfo) item - .getMenuInfo(); dbHelper.deleteTunnel(info.id); fillData(); return true; + case CLONE_ID: + cloneTunnel(info.id); + fillData(); + return true; } return super.onContextItemSelected(item); } @@ -119,6 +124,13 @@ public class SSLDroidGui extends ListActivity { startActivityForResult(i, ACTIVITY_CREATE); } + public void cloneTunnel(long id) { + Intent i = new Intent(this, SSLDroidTunnelDetails.class); + i.putExtra(SSLDroidDbAdapter.KEY_ROWID, id); + i.putExtra("doClone", true); + startActivityForResult(i, ACTIVITY_EDIT); + } + private void readLogs() { Intent i = new Intent(this, SSLDroidReadLogs.class); startActivity(i); @@ -170,6 +182,7 @@ public class SSLDroidGui extends ListActivity { ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); menu.add(0, DELETE_ID, 0, R.string.menu_delete); + menu.add(0, CLONE_ID, 0, R.string.menu_clone); } @Override diff --git a/src/hu/blint/ssldroid/SSLDroidTunnelDetails.java b/src/hu/blint/ssldroid/SSLDroidTunnelDetails.java index b2ba62f..cf9be51 100644 --- a/src/hu/blint/ssldroid/SSLDroidTunnelDetails.java +++ b/src/hu/blint/ssldroid/SSLDroidTunnelDetails.java @@ -48,6 +48,7 @@ public class SSLDroidTunnelDetails extends Activity { private EditText pkcsfile; private EditText pkcspass; private Long rowId; + private Boolean doClone = false; private SSLDroidDbAdapter dbHelper; @Override @@ -78,6 +79,7 @@ public class SSLDroidTunnelDetails extends Activity { .getSerializable(SSLDroidDbAdapter.KEY_ROWID); if (extras != null) { rowId = extras.getLong(SSLDroidDbAdapter.KEY_ROWID); + doClone = extras.getBoolean("doClone", false); } populateFields(); confirmButton.setOnClickListener(new View.OnClickListener() { @@ -275,10 +277,12 @@ public class SSLDroidTunnelDetails extends Activity { Cursor Tunnel = dbHelper.fetchTunnel(rowId); startManagingCursor(Tunnel); - name.setText(Tunnel.getString(Tunnel - .getColumnIndexOrThrow(SSLDroidDbAdapter.KEY_NAME))); - localport.setText(Tunnel.getString(Tunnel - .getColumnIndexOrThrow(SSLDroidDbAdapter.KEY_LOCALPORT))); + if(!doClone){ + name.setText(Tunnel.getString(Tunnel + .getColumnIndexOrThrow(SSLDroidDbAdapter.KEY_NAME))); + localport.setText(Tunnel.getString(Tunnel + .getColumnIndexOrThrow(SSLDroidDbAdapter.KEY_LOCALPORT))); + } remotehost.setText(Tunnel.getString(Tunnel .getColumnIndexOrThrow(SSLDroidDbAdapter.KEY_REMOTEHOST))); remoteport.setText(Tunnel.getString(Tunnel @@ -383,7 +387,7 @@ public class SSLDroidTunnelDetails extends Activity { return; } - if (rowId == null) { + if (rowId == null || doClone) { long id = dbHelper.createTunnel(sName, sLocalport, sRemotehost, sRemoteport, sPkcsfile, sPkcspass); if (id > 0) {