diff options
author | Ryan Hansberry <rhansby@gmail.com> | 2015-10-14 13:34:46 -0700 |
---|---|---|
committer | Ryan Hansberry <rhansby@gmail.com> | 2015-10-14 15:47:14 -0700 |
commit | 0b1de8d696ed7abf64766fefe5700e750cd1f30e (patch) | |
tree | 5bff78c72f27e0d38217d30cecf423af81959bf3 /app/src/main/java/org/connectbot/util | |
parent | 1af52a1af5effa89733ddb4925832f4ba14232cd (diff) | |
download | connectbot-0b1de8d696ed7abf64766fefe5700e750cd1f30e.tar.gz connectbot-0b1de8d696ed7abf64766fefe5700e750cd1f30e.tar.bz2 connectbot-0b1de8d696ed7abf64766fefe5700e750cd1f30e.zip |
Made TerminalTextViewOverlay a child view of TerminalView.
Diffstat (limited to 'app/src/main/java/org/connectbot/util')
-rw-r--r-- | app/src/main/java/org/connectbot/util/TerminalTextViewOverlay.java | 49 |
1 files changed, 17 insertions, 32 deletions
diff --git a/app/src/main/java/org/connectbot/util/TerminalTextViewOverlay.java b/app/src/main/java/org/connectbot/util/TerminalTextViewOverlay.java index be37524..a00ab47 100644 --- a/app/src/main/java/org/connectbot/util/TerminalTextViewOverlay.java +++ b/app/src/main/java/org/connectbot/util/TerminalTextViewOverlay.java @@ -26,10 +26,8 @@ import android.content.Context; import android.graphics.Color; import android.graphics.Typeface; import android.os.Build; -import android.support.annotation.Nullable; import android.support.v4.view.MotionEventCompat; import android.text.ClipboardManager; -import android.util.AttributeSet; import android.view.ActionMode; import android.view.InputDevice; import android.view.KeyEvent; @@ -50,7 +48,7 @@ import de.mud.terminal.vt320; */ @TargetApi(11) public class TerminalTextViewOverlay extends TextView { - public TerminalView parent; + public TerminalView terminalView; // ryan: this name sucks private String currentSelection = ""; private ActionMode selectionActionMode; private ClipboardManager clipboard; @@ -58,33 +56,20 @@ public class TerminalTextViewOverlay extends TextView { private int oldBufferHeight = 0; private int oldScrollY = -1; - public TerminalTextViewOverlay(Context context) { + public TerminalTextViewOverlay(Context context, TerminalView terminalView) { super(context); - init(); - } - - public TerminalTextViewOverlay(Context context, @Nullable AttributeSet attrs) { - super(context, attrs); - init(); - } - @TargetApi(21) - public TerminalTextViewOverlay(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - init(); - } + this.terminalView = terminalView; + clipboard = (ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE); - private void init() { setTextColor(Color.TRANSPARENT); setTypeface(Typeface.MONOSPACE); setTextIsSelectable(true); setCustomSelectionActionModeCallback(new TextSelectionActionModeCallback()); - - clipboard = (ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE); } public void refreshTextFromBuffer() { - VDUBuffer vb = parent.bridge.getVDUBuffer(); + VDUBuffer vb = terminalView.bridge.getVDUBuffer(); int numRows = vb.getBufferSize(); int numCols = vb.getColumns() - 1; oldBufferHeight = numRows; @@ -111,7 +96,7 @@ public class TerminalTextViewOverlay extends TextView { * rest of the buffer. */ public void onBufferChanged() { - VDUBuffer vb = parent.bridge.getVDUBuffer(); + VDUBuffer vb = terminalView.bridge.getVDUBuffer(); int numRows = vb.getBufferSize(); int numNewRows = numRows - oldBufferHeight; @@ -161,7 +146,7 @@ public class TerminalTextViewOverlay extends TextView { if (clipboard.hasText()) { clip = clipboard.getText().toString(); } - parent.bridge.injectString(clip); + terminalView.bridge.injectString(clip); } @Override @@ -176,7 +161,7 @@ public class TerminalTextViewOverlay extends TextView { public void scrollTo(int x, int y) { int lineMultiple = y / getLineHeight(); - TerminalBridge bridge = parent.bridge; + TerminalBridge bridge = terminalView.bridge; bridge.buffer.setWindowBase(lineMultiple); super.scrollTo(0, lineMultiple * getLineHeight()); @@ -192,12 +177,12 @@ public class TerminalTextViewOverlay extends TextView { // Mouse input is treated differently: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH && MotionEventCompat.getSource(event) == InputDevice.SOURCE_MOUSE) { - if (onMouseEvent(event, parent.bridge)) { + if (onMouseEvent(event, terminalView.bridge)) { return true; } - parent.viewPager.setPagingEnabled(true); + terminalView.viewPager.setPagingEnabled(true); } else { - parent.onTouchEvent(event); + terminalView.onTouchEvent(event); } super.onTouchEvent(event); @@ -214,11 +199,11 @@ public class TerminalTextViewOverlay extends TextView { // Process scroll wheel movement: float yDistance = MotionEventCompat.getAxisValue(event, MotionEvent.AXIS_VSCROLL); - vt320 vtBuffer = (vt320) parent.bridge.buffer; + vt320 vtBuffer = (vt320) terminalView.bridge.buffer; boolean mouseReport = vtBuffer.isMouseReportEnabled(); if (mouseReport) { - int row = (int) Math.floor(event.getY() / parent.bridge.charHeight); - int col = (int) Math.floor(event.getX() / parent.bridge.charWidth); + int row = (int) Math.floor(event.getY() / terminalView.bridge.charHeight); + int col = (int) Math.floor(event.getX() / terminalView.bridge.charWidth); vtBuffer.mouseWheel( yDistance > 0, @@ -282,12 +267,12 @@ public class TerminalTextViewOverlay extends TextView { currentSelection = getText().toString().substring(selectionStart, selectionEnd); } } else if (event.getAction() == MotionEvent.ACTION_DOWN) { - parent.viewPager.setPagingEnabled(false); + terminalView.viewPager.setPagingEnabled(false); vtBuffer.mousePressed( col, row, mouseEventToJavaModifiers(event)); return true; } else if (event.getAction() == MotionEvent.ACTION_UP) { - parent.viewPager.setPagingEnabled(true); + terminalView.viewPager.setPagingEnabled(true); vtBuffer.mouseReleased(col, row); return true; } else if (event.getAction() == MotionEvent.ACTION_MOVE) { @@ -349,7 +334,7 @@ public class TerminalTextViewOverlay extends TextView { @Override public InputConnection onCreateInputConnection(EditorInfo outAttrs) { - return parent.onCreateInputConnection(outAttrs); + return terminalView.onCreateInputConnection(outAttrs); } private class TextSelectionActionModeCallback implements ActionMode.Callback { |