aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/org/connectbot/ConsoleActivity.java
diff options
context:
space:
mode:
authorJeremy Klein <jlklein@google.com>2015-07-28 17:01:47 -0700
committerJeremy Klein <jlklein@google.com>2015-07-29 15:34:14 -0700
commite4e00ff339ab3cce3fcdae762faa2957c7f2dbea (patch)
tree66c385c8e3eb4588138f333b05773d754894f9cb /app/src/main/java/org/connectbot/ConsoleActivity.java
parenta50c117765c8795346187a950b1407fe827f3f11 (diff)
downloadconnectbot-e4e00ff339ab3cce3fcdae762faa2957c7f2dbea.tar.gz
connectbot-e4e00ff339ab3cce3fcdae762faa2957c7f2dbea.tar.bz2
connectbot-e4e00ff339ab3cce3fcdae762faa2957c7f2dbea.zip
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 e7a8f7d..dc1cb91 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);
}
@@ -622,7 +630,8 @@ public class ConsoleActivity extends Activity {
}
// pass any touch events back to detector
- return detect.onTouchEvent(event);
+ detect.onTouchEvent(event);
+ return true;
}
});
@@ -726,14 +735,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;
}
});
@@ -874,6 +876,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();
@@ -1114,6 +1142,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.
*