aboutsummaryrefslogtreecommitdiffstats
path: root/src/org/connectbot/service/TerminalKeyListener.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/connectbot/service/TerminalKeyListener.java')
-rw-r--r--src/org/connectbot/service/TerminalKeyListener.java26
1 files changed, 19 insertions, 7 deletions
diff --git a/src/org/connectbot/service/TerminalKeyListener.java b/src/org/connectbot/service/TerminalKeyListener.java
index 656b737..3f82259 100644
--- a/src/org/connectbot/service/TerminalKeyListener.java
+++ b/src/org/connectbot/service/TerminalKeyListener.java
@@ -74,6 +74,9 @@ public class TerminalKeyListener implements OnKeyListener, OnSharedPreferenceCha
private String keymode = null;
private final boolean deviceHasHardKeyboard;
+ private boolean shiftedNumbersAreFKeysOnHardKeyboard;
+ private boolean controlNumbersAreFKeysOnSoftKeyboard;
+ private boolean volumeKeysChangeFontSize;
private int ourMetaState = 0;
@@ -106,7 +109,7 @@ public class TerminalKeyListener implements OnKeyListener, OnSharedPreferenceCha
deviceHasHardKeyboard = (manager.res.getConfiguration().keyboard
== Configuration.KEYBOARD_QWERTY);
- updateKeymode();
+ updatePrefs();
}
/**
@@ -125,9 +128,10 @@ public class TerminalKeyListener implements OnKeyListener, OnSharedPreferenceCha
PreferenceConstants.KEYMODE_RIGHT.equals(keymode);
final boolean leftModifiersAreSlashAndTab = interpretAsHardKeyboard &&
PreferenceConstants.KEYMODE_LEFT.equals(keymode);
- final boolean volumeKeysChangeFontSize = true;
- final boolean shiftedNumbersAreFKeys = interpretAsHardKeyboard;
- final boolean controlNumbersAreFKeys = !interpretAsHardKeyboard;
+ final boolean shiftedNumbersAreFKeys = shiftedNumbersAreFKeysOnHardKeyboard &&
+ interpretAsHardKeyboard;
+ final boolean controlNumbersAreFKeys = controlNumbersAreFKeysOnSoftKeyboard &&
+ !interpretAsHardKeyboard;
// Ignore all key-up events except for the special keys
if (event.getAction() == KeyEvent.ACTION_UP) {
@@ -525,13 +529,21 @@ public class TerminalKeyListener implements OnKeyListener, OnSharedPreferenceCha
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
- if (PreferenceConstants.KEYMODE.equals(key)) {
- updateKeymode();
+ if (PreferenceConstants.KEYMODE.equals(key) ||
+ PreferenceConstants.SHIFT_FKEYS.equals(key) ||
+ PreferenceConstants.CTRL_FKEYS.equals(key) ||
+ PreferenceConstants.VOLUME_FONT.equals(key)) {
+ updatePrefs();
}
}
- private void updateKeymode() {
+ private void updatePrefs() {
keymode = prefs.getString(PreferenceConstants.KEYMODE, PreferenceConstants.KEYMODE_RIGHT);
+ shiftedNumbersAreFKeysOnHardKeyboard =
+ prefs.getBoolean(PreferenceConstants.SHIFT_FKEYS, false);
+ controlNumbersAreFKeysOnSoftKeyboard =
+ prefs.getBoolean(PreferenceConstants.CTRL_FKEYS, false);
+ volumeKeysChangeFontSize = prefs.getBoolean(PreferenceConstants.VOLUME_FONT, true);
}
public void setCharset(String encoding) {