diff options
author | Jeremy Klein <jlklein@google.com> | 2015-07-14 15:15:47 -0700 |
---|---|---|
committer | Jeremy Klein <jlklein@google.com> | 2015-07-14 15:15:47 -0700 |
commit | 802476a777f9f646f40d6128d3476d32ffc4a901 (patch) | |
tree | 1c772cb5451b498168c7f17d74c949d9c70d6c98 | |
parent | d8d9a5f3d5df044c6c7e5c87d6805f702eed1a36 (diff) | |
download | connectbot-802476a777f9f646f40d6128d3476d32ffc4a901.tar.gz connectbot-802476a777f9f646f40d6128d3476d32ffc4a901.tar.bz2 connectbot-802476a777f9f646f40d6128d3476d32ffc4a901.zip |
Add a tab button to the emulated keys above the soft keyboard.
Fixes #92
-rw-r--r-- | res/drawable/button_tab.png | bin | 0 -> 3535 bytes | |||
-rw-r--r-- | res/layout/act_console.xml | 11 | ||||
-rw-r--r-- | res/values/strings.xml | 4 | ||||
-rw-r--r-- | src/org/connectbot/ConsoleActivity.java | 24 | ||||
-rw-r--r-- | src/org/connectbot/service/TerminalKeyListener.java | 14 |
5 files changed, 47 insertions, 6 deletions
diff --git a/res/drawable/button_tab.png b/res/drawable/button_tab.png Binary files differnew file mode 100644 index 0000000..4443118 --- /dev/null +++ b/res/drawable/button_tab.png diff --git a/res/layout/act_console.xml b/res/layout/act_console.xml index f7db787..46dedfb 100644 --- a/res/layout/act_console.xml +++ b/res/layout/act_console.xml @@ -158,6 +158,17 @@ android:src="@+drawable/button_esc" android:contentDescription="@string/image_description_send_escape_character" /> + + <ImageView + android:id="@+id/button_tab" + android:paddingRight="15dip" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_toRightOf="@+id/button_esc" + android:layout_alignParentBottom="true" + android:src="@+drawable/button_tab" + android:contentDescription="@string/image_description_send_tab_character" + /> </RelativeLayout> diff --git a/res/values/strings.xml b/res/values/strings.xml index d8e3bb5..cbc275c 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -505,6 +505,10 @@ <!-- Describes the icon of the "send escape character" button in the terminal view for accessibility purposes. --> <string name="image_description_send_escape_character">Send escape character.</string> + + <!-- Describes the icon of the "send tab character" button in the terminal view for + accessibility purposes. --> + <string name="image_description_send_tab_character">Send TAB character.</string> <!-- Describes the icon of the "show keyboard" button in the terminal view for accessibility purposes. --> diff --git a/src/org/connectbot/ConsoleActivity.java b/src/org/connectbot/ConsoleActivity.java index aeb0e67..d376c94 100644 --- a/src/org/connectbot/ConsoleActivity.java +++ b/src/org/connectbot/ConsoleActivity.java @@ -52,19 +52,20 @@ import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; +import android.view.MenuItem.OnMenuItemClickListener; import android.view.MotionEvent; import android.view.View; -import android.view.ViewConfiguration; -import android.view.Window; -import android.view.WindowManager; -import android.view.MenuItem.OnMenuItemClickListener; import android.view.View.OnClickListener; import android.view.View.OnKeyListener; import android.view.View.OnTouchListener; +import android.view.ViewConfiguration; +import android.view.Window; +import android.view.WindowManager; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.view.inputmethod.InputMethodManager; import android.widget.AdapterView; +import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; @@ -74,8 +75,6 @@ import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; import android.widget.ViewFlipper; -import android.widget.AdapterView.OnItemClickListener; - import de.mud.terminal.vt320; public class ConsoleActivity extends Activity { @@ -440,6 +439,19 @@ public class ConsoleActivity extends Activity { } }); + final ImageView tabButton = (ImageView) findViewById(R.id.button_tab); + tabButton.setOnClickListener(new OnClickListener() { + public void onClick(View view) { + View flip = findCurrentView(R.id.console_flip); + if (flip == null) return; + TerminalView terminal = (TerminalView)flip; + + TerminalKeyListener handler = terminal.bridge.getKeyHandler(); + handler.sendTab(); + hideEmulatedKeys(); + } + }); + actionBar = ActionBarWrapper.getActionBar(this); actionBar.setDisplayHomeAsUpEnabled(true); if (titleBarHide) { diff --git a/src/org/connectbot/service/TerminalKeyListener.java b/src/org/connectbot/service/TerminalKeyListener.java index 13e8dd1..cc85268 100644 --- a/src/org/connectbot/service/TerminalKeyListener.java +++ b/src/org/connectbot/service/TerminalKeyListener.java @@ -485,6 +485,20 @@ public class TerminalKeyListener implements OnKeyListener, OnSharedPreferenceCha ((vt320)buffer).keyTyped(vt320.KEY_ESCAPE, ' ', 0); } + public void sendTab() { + try { + bridge.transport.write(0x09); + } catch (IOException e) { + Log.e(TAG, "Problem while trying to send TAB press.", e); + try { + bridge.transport.flush(); + } catch (IOException ioe) { + Log.d(TAG, "Our transport was closed, dispatching disconnect event"); + bridge.dispatchDisconnect(false); + } + } + } + /** * @param key * @return successful |