aboutsummaryrefslogtreecommitdiffstats
path: root/src/org
diff options
context:
space:
mode:
Diffstat (limited to 'src/org')
-rw-r--r--src/org/connectbot/HostListActivity.java14
-rw-r--r--src/org/connectbot/service/TerminalKeyListener.java26
-rw-r--r--src/org/connectbot/util/PreferenceConstants.java4
3 files changed, 36 insertions, 8 deletions
diff --git a/src/org/connectbot/HostListActivity.java b/src/org/connectbot/HostListActivity.java
index 052f139..5fa09a9 100644
--- a/src/org/connectbot/HostListActivity.java
+++ b/src/org/connectbot/HostListActivity.java
@@ -39,6 +39,7 @@ import android.content.Intent.ShortcutIconResource;
import android.content.SharedPreferences.Editor;
import android.content.res.ColorStateList;
import android.net.Uri;
+import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
@@ -160,9 +161,20 @@ public class HostListActivity extends ListActivity {
getResources().getText(R.string.app_name),
getResources().getText(R.string.title_hosts_list)));
- // check for eula agreement
this.prefs = PreferenceManager.getDefaultSharedPreferences(this);
+ // detect HTC Dream and apply special preferences
+ if (Build.MANUFACTURER.equals("HTC") && Build.DEVICE.equals("dream")) {
+ if (!prefs.contains(PreferenceConstants.SHIFT_FKEYS) &&
+ !prefs.contains(PreferenceConstants.CTRL_FKEYS)) {
+ SharedPreferences.Editor editor = prefs.edit();
+ editor.putBoolean(PreferenceConstants.SHIFT_FKEYS, true);
+ editor.putBoolean(PreferenceConstants.CTRL_FKEYS, true);
+ editor.commit();
+ }
+ }
+
+ // check for eula agreement
boolean agreed = prefs.getBoolean(PreferenceConstants.EULA, false);
if(!agreed) {
this.startActivityForResult(new Intent(this, WizardActivity.class), REQUEST_EULA);
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) {
diff --git a/src/org/connectbot/util/PreferenceConstants.java b/src/org/connectbot/util/PreferenceConstants.java
index 2ff8dd4..e9fb06c 100644
--- a/src/org/connectbot/util/PreferenceConstants.java
+++ b/src/org/connectbot/util/PreferenceConstants.java
@@ -81,6 +81,10 @@ public class PreferenceConstants {
public static final String CONNECTION_PERSIST = "connPersist";
+ public static final String SHIFT_FKEYS = "shiftfkeys";
+ public static final String CTRL_FKEYS = "ctrlfkeys";
+ public static final String VOLUME_FONT = "volumefont";
+
/* Backup identifiers */
public static final String BACKUP_PREF_KEY = "prefs";
}