From 19be66987c2014ff38ff0b051a86319b354eff16 Mon Sep 17 00:00:00 2001 From: Kyle Horimoto Date: Fri, 25 Sep 2015 16:24:26 -0700 Subject: Add FAB to port forward activity. --- .../org/connectbot/PortForwardListActivity.java | 98 +++++++++++----------- 1 file changed, 47 insertions(+), 51 deletions(-) (limited to 'app/src/main/java/org') diff --git a/app/src/main/java/org/connectbot/PortForwardListActivity.java b/app/src/main/java/org/connectbot/PortForwardListActivity.java index 28b4331..ecab4e0 100644 --- a/app/src/main/java/org/connectbot/PortForwardListActivity.java +++ b/app/src/main/java/org/connectbot/PortForwardListActivity.java @@ -39,6 +39,8 @@ import android.os.Handler; import android.os.IBinder; import android.os.Message; import android.support.annotation.VisibleForTesting; +import android.support.design.widget.FloatingActionButton; +import android.support.v4.app.DialogFragment; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.Log; @@ -143,16 +145,12 @@ public class PortForwardListActivity extends AppCompatListActivity { this.registerForContextMenu(mListView); this.inflater = LayoutInflater.from(this); - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - super.onCreateOptionsMenu(menu); - MenuItem add = menu.add(R.string.portforward_menu_add); - add.setIcon(android.R.drawable.ic_menu_add); - add.setOnMenuItemClickListener(new OnMenuItemClickListener() { - public boolean onMenuItemClick(MenuItem item) { + FloatingActionButton addPortForwardButton = + (FloatingActionButton) findViewById(R.id.add_port_forward_button); + addPortForwardButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { // build dialog to prompt user about updating final View portForwardView = inflater.inflate(R.layout.dia_portforward, null, false); final EditText destEdit = (EditText) portForwardView.findViewById(R.id.portforward_destination); @@ -168,55 +166,53 @@ public class PortForwardListActivity extends AppCompatListActivity { }); new AlertDialog.Builder(PortForwardListActivity.this) - .setView(portForwardView) - .setPositiveButton(R.string.portforward_pos, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - try { - final EditText nicknameEdit = (EditText) portForwardView.findViewById(R.id.nickname); - final EditText sourcePortEdit = (EditText) portForwardView.findViewById(R.id.portforward_source); - - String type = HostDatabase.PORTFORWARD_LOCAL; - switch (typeSpinner.getSelectedItemPosition()) { - case 0: - type = HostDatabase.PORTFORWARD_LOCAL; - break; - case 1: - type = HostDatabase.PORTFORWARD_REMOTE; - break; - case 2: - type = HostDatabase.PORTFORWARD_DYNAMIC5; - break; - } + .setView(portForwardView) + .setPositiveButton(R.string.portforward_pos, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + try { + final EditText nicknameEdit = (EditText) portForwardView.findViewById(R.id.nickname); + final EditText sourcePortEdit = (EditText) portForwardView.findViewById(R.id.portforward_source); + + String type = HostDatabase.PORTFORWARD_LOCAL; + switch (typeSpinner.getSelectedItemPosition()) { + case 0: + type = HostDatabase.PORTFORWARD_LOCAL; + break; + case 1: + type = HostDatabase.PORTFORWARD_REMOTE; + break; + case 2: + type = HostDatabase.PORTFORWARD_DYNAMIC5; + break; + } - PortForwardBean portForward = new PortForwardBean( - host != null ? host.getId() : -1, - nicknameEdit.getText().toString(), type, - sourcePortEdit.getText().toString(), - destEdit.getText().toString()); + PortForwardBean portForward = new PortForwardBean( + host != null ? host.getId() : -1, + nicknameEdit.getText().toString(), type, + sourcePortEdit.getText().toString(), + destEdit.getText().toString()); - if (hostBridge != null) { - hostBridge.addPortForward(portForward); - hostBridge.enablePortForward(portForward); - } + if (hostBridge != null) { + hostBridge.addPortForward(portForward); + hostBridge.enablePortForward(portForward); + } - if (host != null && !hostdb.savePortForward(portForward)) { - throw new SQLException("Could not save port forward"); - } + if (host != null && !hostdb.savePortForward(portForward)) { + throw new SQLException("Could not save port forward"); + } - updateHandler.sendEmptyMessage(-1); - } catch (Exception e) { - Log.e(TAG, "Could not update port forward", e); - // TODO Show failure dialog. + updateHandler.sendEmptyMessage(-1); + } catch (Exception e) { + Log.e(TAG, "Could not update port forward", e); + // TODO Show failure dialog. + } } - } - }) - .setNegativeButton(R.string.delete_neg, null).create().show(); - - return true; + }) + .setNegativeButton(R.string.delete_neg, null).create().show(); } - }); - return true; + public void onNothingSelected(AdapterView arg0) {} + }); } protected Handler updateHandler = new Handler() { -- cgit v1.2.3 From 8b76ca32a6b333a6e19f1513bf3ab6f598027656 Mon Sep 17 00:00:00 2001 From: Kyle Horimoto Date: Fri, 25 Sep 2015 17:54:30 -0700 Subject: Fix lint. --- .../org/connectbot/PortForwardListActivity.java | 31 ++++++++++++++-------- 1 file changed, 20 insertions(+), 11 deletions(-) (limited to 'app/src/main/java/org') diff --git a/app/src/main/java/org/connectbot/PortForwardListActivity.java b/app/src/main/java/org/connectbot/PortForwardListActivity.java index ecab4e0..c7f0e7c 100644 --- a/app/src/main/java/org/connectbot/PortForwardListActivity.java +++ b/app/src/main/java/org/connectbot/PortForwardListActivity.java @@ -17,6 +17,7 @@ package org.connectbot; +import java.lang.ref.WeakReference; import java.util.List; import org.connectbot.bean.HostBean; @@ -40,13 +41,11 @@ import android.os.IBinder; import android.os.Message; import android.support.annotation.VisibleForTesting; import android.support.design.widget.FloatingActionButton; -import android.support.v4.app.DialogFragment; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.ContextMenu; import android.view.LayoutInflater; -import android.view.Menu; import android.view.MenuItem; import android.view.MenuItem.OnMenuItemClickListener; import android.view.View; @@ -77,6 +76,9 @@ public class PortForwardListActivity extends AppCompatListActivity { protected TerminalBridge hostBridge = null; protected LayoutInflater inflater = null; + + protected Handler updateHandler = new Handler(new WeakReference<>(this)); + private HostBean host; @Override @@ -152,7 +154,7 @@ public class PortForwardListActivity extends AppCompatListActivity { @Override public void onClick(View v) { // build dialog to prompt user about updating - final View portForwardView = inflater.inflate(R.layout.dia_portforward, null, false); + final View portForwardView = View.inflate(PortForwardListActivity.this, R.layout.dia_portforward, null); final EditText destEdit = (EditText) portForwardView.findViewById(R.id.portforward_destination); final Spinner typeSpinner = (Spinner) portForwardView.findViewById(R.id.portforward_type); @@ -215,13 +217,6 @@ public class PortForwardListActivity extends AppCompatListActivity { }); } - protected Handler updateHandler = new Handler() { - @Override - public void handleMessage(Message msg) { - PortForwardListActivity.this.updateList(); - } - }; - protected void updateList() { if (hostBridge != null) { this.portForwards = hostBridge.getPortForwards(); @@ -272,7 +267,7 @@ public class PortForwardListActivity extends AppCompatListActivity { MenuItem edit = menu.add(R.string.portforward_edit); edit.setOnMenuItemClickListener(new OnMenuItemClickListener() { public boolean onMenuItemClick(MenuItem item) { - final View editTunnelView = inflater.inflate(R.layout.dia_portforward, null, false); + final View editTunnelView = View.inflate(PortForwardListActivity.this, R.layout.dia_portforward, null); final Spinner typeSpinner = (Spinner) editTunnelView.findViewById(R.id.portforward_type); if (HostDatabase.PORTFORWARD_LOCAL.equals(portForward.getType())) @@ -428,4 +423,18 @@ public class PortForwardListActivity extends AppCompatListActivity { return portForwards.size(); } } + + private static class Handler extends android.os.Handler { + + private WeakReference mActivity; + + Handler(WeakReference activity) { + mActivity = activity; + } + + @Override + public void handleMessage(Message msg) { + mActivity.get().updateList(); + } + } } -- cgit v1.2.3