aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ewald <robewald@gmx.net>2012-10-02 22:12:58 +0200
committerJack Palevich <jackpal@google.com>2012-10-07 10:12:43 -0700
commitad8eac83e1b02c6b558a6581a2d385d38f1116c5 (patch)
tree30cd0cc75a3eb1bc7c93feeccc9cca41ca5456b9
parent7785940304e1a21fd25730770e6d8ba01a8a33b2 (diff)
downloadAndroidTerm-ad8eac83e1b02c6b558a6581a2d385d38f1116c5.tar.gz
Add Alt key behavior option to the preferences screen.
This will allow the user to choose whether she wants to keep the old behavior or send a esc character before the string.
-rw-r--r--libraries/emulatorview/src/jackpal/androidterm/emulatorview/EmulatorView.java9
-rw-r--r--libraries/emulatorview/src/jackpal/androidterm/emulatorview/TermKeyListener.java5
-rw-r--r--res/values/defaults.xml1
-rw-r--r--res/values/strings.xml3
-rw-r--r--res/xml/preferences.xml1
-rw-r--r--src/jackpal/androidterm/TermView.java1
-rw-r--r--src/jackpal/androidterm/util/TermSettings.java8
7 files changed, 28 insertions, 0 deletions
diff --git a/libraries/emulatorview/src/jackpal/androidterm/emulatorview/EmulatorView.java b/libraries/emulatorview/src/jackpal/androidterm/emulatorview/EmulatorView.java
index 466a269..9619f22 100644
--- a/libraries/emulatorview/src/jackpal/androidterm/emulatorview/EmulatorView.java
+++ b/libraries/emulatorview/src/jackpal/androidterm/emulatorview/EmulatorView.java
@@ -1242,6 +1242,15 @@ public class EmulatorView extends View implements GestureDetector.OnGestureListe
}
/**
+ * Set whether to prepend the ESC keycode to the character when when pressing
+ * the ALT Key.
+ * @param flag
+ */
+ public void setAltSendsEsc(boolean flag) {
+ mKeyListener.setAltSendsEsc(flag);
+ }
+
+ /**
* Set the keycode corresponding to the Ctrl key.
*/
public void setControlKeyCode(int keyCode) {
diff --git a/libraries/emulatorview/src/jackpal/androidterm/emulatorview/TermKeyListener.java b/libraries/emulatorview/src/jackpal/androidterm/emulatorview/TermKeyListener.java
index f8ca207..d9554c3 100644
--- a/libraries/emulatorview/src/jackpal/androidterm/emulatorview/TermKeyListener.java
+++ b/libraries/emulatorview/src/jackpal/androidterm/emulatorview/TermKeyListener.java
@@ -665,6 +665,7 @@ class TermKeyListener {
private TermSession mTermSession;
private int mBackKeyCode;
+ private boolean mAltSendsEsc;
// Map keycodes out of (above) the Unicode code point space.
static public final int KEYCODE_OFFSET = 0xA00000;
@@ -682,6 +683,10 @@ class TermKeyListener {
mBackKeyCode = code;
}
+ public void setAltSendsEsc(boolean flag) {
+ mAltSendsEsc = flag;
+ }
+
public void handleControlKey(boolean down) {
if (down) {
mControlKey.onPress();
diff --git a/res/values/defaults.xml b/res/values/defaults.xml
index 4ef4857..bd2868f 100644
--- a/res/values/defaults.xml
+++ b/res/values/defaults.xml
@@ -8,6 +8,7 @@
<string name="pref_fontsize_default">10</string>
<string name="pref_color_default">1</string>
<bool name="pref_utf8_by_default_default">false</bool>
+ <bool name="pref_alt_sends_esc_off_default">false</bool>
<string name="pref_backaction_default">2</string>
<string name="pref_controlkey_default">5</string>
<string name="pref_fnkey_default">4</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index b2e23f4..ad08dda 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -144,4 +144,7 @@
<string name="email_transcript_subject">Transcript from Android Terminal Emulator</string>
<string name="email_transcript_chooser_title">Mail transcript using:</string>
<string name="email_transcript_no_email_activity_found">Could not choose an email activity to send transcript.</string>
+ <string name="alt_sends_esc">Alt sends ESC</string>
+ <string name="alt_compose_char">Alt composes characters</string>
+ <string name="alt_key_behavior">Alt Key Behaviour</string>
</resources>
diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml
index 81be6a0..d9edec7 100644
--- a/res/xml/preferences.xml
+++ b/res/xml/preferences.xml
@@ -87,6 +87,7 @@
android:defaultValue="@bool/pref_utf8_by_default_default"
android:title="@string/title_utf8_by_default_preference"
android:summary="@string/summary_utf8_by_default_preference" />
+ <CheckBoxPreference android:title="@string/alt_key_behavior" android:key="alt_key_behavior" android:defaultValue="@bool/pref_alt_sends_esc_off_default" android:summaryOn="@string/alt_sends_esc" android:summaryOff="@string/alt_compose_char"/>
</PreferenceCategory>
diff --git a/src/jackpal/androidterm/TermView.java b/src/jackpal/androidterm/TermView.java
index 5d83e3d..cd572d5 100644
--- a/src/jackpal/androidterm/TermView.java
+++ b/src/jackpal/androidterm/TermView.java
@@ -43,6 +43,7 @@ public class TermView extends EmulatorView {
setUseCookedIME(settings.useCookedIME());
setColorScheme(scheme);
setBackKeyCharacter(settings.getBackKeyCharacter());
+ setAltSendsEsc(settings.getAltSendsEscFlag());
setControlKeyCode(settings.getControlKeyCode());
setFnKeyCode(settings.getFnKeyCode());
}
diff --git a/src/jackpal/androidterm/util/TermSettings.java b/src/jackpal/androidterm/util/TermSettings.java
index 6336eb0..fba5912 100644
--- a/src/jackpal/androidterm/util/TermSettings.java
+++ b/src/jackpal/androidterm/util/TermSettings.java
@@ -51,6 +51,8 @@ public class TermSettings {
private String mPrependPath = null;
private String mAppendPath = null;
+ private boolean mAltSendsEsc;
+
private static final String STATUSBAR_KEY = "statusbar";
private static final String ACTIONBAR_KEY = "actionbar";
private static final String CURSORSTYLE_KEY = "cursorstyle";
@@ -69,6 +71,7 @@ public class TermSettings {
private static final String VERIFYPATH_KEY = "verify_path";
private static final String PATHEXTENSIONS_KEY = "do_path_extensions";
private static final String PATHPREPEND_KEY = "allow_prepend_path";
+ private static final String ALT_SENDS_ESC = "alt_key_behavior";
public static final int WHITE = 0xffffffff;
public static final int BLACK = 0xff000000;
@@ -177,6 +180,7 @@ public class TermSettings {
mVerifyPath = readBooleanPref(VERIFYPATH_KEY, mVerifyPath);
mDoPathExtensions = readBooleanPref(PATHEXTENSIONS_KEY, mDoPathExtensions);
mAllowPathPrepend = readBooleanPref(PATHPREPEND_KEY, mAllowPathPrepend);
+ mAltSendsEsc = readBooleanPref(ALT_SENDS_ESC, mAltSendsEsc);
mPrefs = null; // we leak a Context if we hold on to this
}
@@ -236,6 +240,10 @@ public class TermSettings {
return mBackKeyAction >= BACK_KEY_SENDS_ESC;
}
+ public boolean getAltSendsEscFlag() {
+ return mAltSendsEsc;
+ }
+
public int getBackKeyCharacter() {
switch (mBackKeyAction) {
case BACK_KEY_SENDS_ESC: return 27;