aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/org/connectbot/ConsoleActivity.java
diff options
context:
space:
mode:
authorKenny Root <kenny@the-b.org>2015-07-29 16:07:59 -0700
committerKenny Root <kenny@the-b.org>2015-07-29 16:07:59 -0700
commit41a1eb43266d64c3fe8f519ed00d16f6436d1cae (patch)
tree6b8aee903ab06df37767e8cb910946d68500a0fc /app/src/main/java/org/connectbot/ConsoleActivity.java
parent48bf6ff1467a3e469655df42aca8fc87be4febec (diff)
parente4e00ff339ab3cce3fcdae762faa2957c7f2dbea (diff)
downloadconnectbot-41a1eb43266d64c3fe8f519ed00d16f6436d1cae.tar.gz
connectbot-41a1eb43266d64c3fe8f519ed00d16f6436d1cae.tar.bz2
connectbot-41a1eb43266d64c3fe8f519ed00d16f6436d1cae.zip
Merge pull request #110 from jklein24/copypaste
Add a context menu to the console view with "paste".
Diffstat (limited to 'app/src/main/java/org/connectbot/ConsoleActivity.java')
-rw-r--r--app/src/main/java/org/connectbot/ConsoleActivity.java60
1 files changed, 49 insertions, 11 deletions
diff --git a/app/src/main/java/org/connectbot/ConsoleActivity.java b/app/src/main/java/org/connectbot/ConsoleActivity.java
index 3a89c4c..79f1269 100644
--- a/app/src/main/java/org/connectbot/ConsoleActivity.java
+++ b/app/src/main/java/org/connectbot/ConsoleActivity.java
@@ -48,6 +48,7 @@ import android.os.Message;
import android.preference.PreferenceManager;
import android.text.ClipboardManager;
import android.util.Log;
+import android.view.ContextMenu;
import android.view.GestureDetector;
import android.view.KeyEvent;
import android.view.LayoutInflater;
@@ -324,6 +325,7 @@ public class ConsoleActivity extends Activity {
inflater = LayoutInflater.from(this);
flip = (ViewFlipper) findViewById(R.id.console_flip);
+ registerForContextMenu(flip);
empty = (TextView) findViewById(android.R.id.empty);
stringPromptGroup = (RelativeLayout) findViewById(R.id.console_password_group);
@@ -455,7 +457,7 @@ public class ConsoleActivity extends Activity {
});
// detect fling gestures to switch between terminals
- final GestureDetector detect = new GestureDetector(new GestureDetector.SimpleOnGestureListener() {
+ final GestureDetector detect = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener() {
private float totalY = 0;
@Override
@@ -480,7 +482,13 @@ public class ConsoleActivity extends Activity {
}
- return false;
+ return super.onFling(e1, e2, velocityX, velocityY);
+ }
+
+ @Override
+ public void onLongPress(MotionEvent e) {
+ super.onLongPress(e);
+ openContextMenu(flip);
}
@@ -623,7 +631,8 @@ public class ConsoleActivity extends Activity {
}
// pass any touch events back to detector
- return detect.onTouchEvent(event);
+ detect.onTouchEvent(event);
+ return true;
}
});
@@ -727,14 +736,7 @@ public class ConsoleActivity extends Activity {
paste.setEnabled(clipboard.hasText() && sessionOpen);
paste.setOnMenuItemClickListener(new OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
- // force insert of clipboard text into current console
- TerminalView terminalView = (TerminalView) findCurrentView(R.id.console_flip);
- TerminalBridge bridge = terminalView.bridge;
-
- // pull string from clipboard and generate all events to force down
- String clip = clipboard.getText().toString();
- bridge.injectString(clip);
-
+ pasteIntoTerminal();
return true;
}
});
@@ -875,6 +877,32 @@ public class ConsoleActivity extends Activity {
}
@Override
+ public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
+ final View view = findCurrentView(R.id.console_flip);
+ boolean activeTerminal = (view instanceof TerminalView);
+ boolean sessionOpen = false;
+
+ if (activeTerminal) {
+ TerminalBridge bridge = ((TerminalView) view).bridge;
+ sessionOpen = bridge.isSessionOpen();
+ }
+
+ MenuItem paste = menu.add(R.string.console_menu_paste);
+ if (hardKeyboard)
+ paste.setAlphabeticShortcut('v');
+ paste.setIcon(android.R.drawable.ic_menu_edit);
+ paste.setEnabled(clipboard.hasText() && sessionOpen);
+ paste.setOnMenuItemClickListener(new OnMenuItemClickListener() {
+ public boolean onMenuItemClick(MenuItem item) {
+ pasteIntoTerminal();
+ return true;
+ }
+ });
+
+
+ }
+
+ @Override
public void onStart() {
super.onStart();
@@ -1115,6 +1143,16 @@ public class ConsoleActivity extends Activity {
}
}
+ private void pasteIntoTerminal() {
+ // force insert of clipboard text into current console
+ TerminalView terminalView = (TerminalView) findCurrentView(R.id.console_flip);
+ TerminalBridge bridge = terminalView.bridge;
+
+ // pull string from clipboard and generate all events to force down
+ String clip = clipboard.getText().toString();
+ bridge.injectString(clip);
+ }
+
/**
* Adds a new TerminalBridge to the current set of views in our ViewFlipper.
*