diff options
author | Jeff Sharkey <jsharkey@android.com> | 2013-02-21 17:45:16 -0800 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2013-02-21 17:52:34 -0800 |
commit | 479bd643981271fb0edf756ae5915e44a7352c4d (patch) | |
tree | db3ebc4bb28345500906392e2ec76d4d7be36dde /src/com | |
parent | 9cae0a9616b1b71eac7e762d198fe1da47fea901 (diff) | |
download | Terminal-479bd643981271fb0edf756ae5915e44a7352c4d.tar.gz |
Split init() and run().
Also switch to ScopedCharArrayRW.
Change-Id: I1e22a166c48ba7209e624fc49bee8618e9b36f0d
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/terminal/Terminal.java | 22 | ||||
-rw-r--r-- | src/com/android/terminal/TerminalActivity.java | 2 | ||||
-rw-r--r-- | src/com/android/terminal/TerminalView.java | 5 |
3 files changed, 20 insertions, 9 deletions
diff --git a/src/com/android/terminal/Terminal.java b/src/com/android/terminal/Terminal.java index dfd370b..c2e9749 100644 --- a/src/com/android/terminal/Terminal.java +++ b/src/com/android/terminal/Terminal.java @@ -22,6 +22,8 @@ import android.graphics.Color; * Single terminal session backed by a pseudo terminal on the local device. */ public class Terminal { + private static final String TAG = "Terminal"; + static { System.loadLibrary("jni_terminal"); } @@ -52,6 +54,8 @@ public class Terminal { } private final int mNativePtr; + private final Thread mThread; + private TerminalClient mClient; private final TerminalCallbacks mCallbacks = new TerminalCallbacks() { @@ -74,14 +78,19 @@ public class Terminal { public Terminal() { mNativePtr = nativeInit(mCallbacks, 25, 80); - - // TODO: move all I/O into separate method; init should only be object setup - new Thread(new Runnable() { + mThread = new Thread(TAG) { @Override public void run() { - nativeReadLoop(mNativePtr); + nativeRun(mNativePtr); } - }).start(); + }; + } + + /** + * Start thread which internally forks and manages the pseudo terminal. + */ + public void start() { + mThread.start(); } public void setClient(TerminalClient client) { @@ -109,7 +118,8 @@ public class Terminal { } private static native int nativeInit(TerminalCallbacks callbacks, int rows, int cols); - private static native int nativeReadLoop(int ptr); + private static native int nativeRun(int ptr); + private static native int nativeResize(int ptr, int rows, int cols); private static native int nativeGetCellRun(int ptr, int row, int col, CellRun run); private static native int nativeGetRows(int ptr); diff --git a/src/com/android/terminal/TerminalActivity.java b/src/com/android/terminal/TerminalActivity.java index 601fd98..bef1859 100644 --- a/src/com/android/terminal/TerminalActivity.java +++ b/src/com/android/terminal/TerminalActivity.java @@ -28,6 +28,8 @@ public class TerminalActivity extends Activity { super.onCreate(savedInstanceState); final Terminal term = new Terminal(); + term.start(); + final TerminalView view = new TerminalView(this, term); setContentView(view); diff --git a/src/com/android/terminal/TerminalView.java b/src/com/android/terminal/TerminalView.java index 33b651b..eb4f063 100644 --- a/src/com/android/terminal/TerminalView.java +++ b/src/com/android/terminal/TerminalView.java @@ -20,13 +20,12 @@ import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; -import android.graphics.Typeface; import android.graphics.Paint.FontMetrics; import android.graphics.Rect; -import android.view.View; - +import android.graphics.Typeface; import android.os.SystemClock; import android.util.Log; +import android.view.View; import com.android.terminal.Terminal.TerminalClient; |