aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/org/connectbot/service/TerminalBridge.java5
-rw-r--r--src/org/connectbot/service/TerminalKeyListener.java16
2 files changed, 13 insertions, 8 deletions
diff --git a/src/org/connectbot/service/TerminalBridge.java b/src/org/connectbot/service/TerminalBridge.java
index 2c1c1e1..e9e69ca 100644
--- a/src/org/connectbot/service/TerminalBridge.java
+++ b/src/org/connectbot/service/TerminalBridge.java
@@ -151,7 +151,7 @@ public class TerminalBridge implements VDUDisplay {
transport = null;
- keyListener = new TerminalKeyListener(manager, this, buffer, host);
+ keyListener = new TerminalKeyListener(manager, this, buffer, null);
}
/**
@@ -242,7 +242,7 @@ public class TerminalBridge implements VDUDisplay {
selectionArea = new SelectionArea();
- keyListener = new TerminalKeyListener(manager, this, buffer, host);
+ keyListener = new TerminalKeyListener(manager, this, buffer, host.getEncoding());
}
public PromptHelper getPromptHelper() {
@@ -307,6 +307,7 @@ public class TerminalBridge implements VDUDisplay {
public void setCharset(String encoding) {
if (relay != null)
relay.setCharset(encoding);
+ keyListener.setCharset(encoding);
}
/**
diff --git a/src/org/connectbot/service/TerminalKeyListener.java b/src/org/connectbot/service/TerminalKeyListener.java
index b63dab7..21bd218 100644
--- a/src/org/connectbot/service/TerminalKeyListener.java
+++ b/src/org/connectbot/service/TerminalKeyListener.java
@@ -6,7 +6,6 @@ package org.connectbot.service;
import java.io.IOException;
import org.connectbot.TerminalView;
-import org.connectbot.bean.HostBean;
import org.connectbot.bean.SelectionArea;
import org.connectbot.util.PreferenceConstants;
@@ -51,7 +50,6 @@ public class TerminalKeyListener implements OnKeyListener, OnSharedPreferenceCha
private final TerminalManager manager;
private final TerminalBridge bridge;
private final VDUBuffer buffer;
- private final HostBean host;
protected KeyCharacterMap keymap = KeyCharacterMap.load(KeyCharacterMap.BUILT_IN_KEYBOARD);
@@ -64,16 +62,18 @@ public class TerminalKeyListener implements OnKeyListener, OnSharedPreferenceCha
private boolean selectingForCopy = false;
private final SelectionArea selectionArea;
+ private String encoding;
+
private final SharedPreferences prefs;
public TerminalKeyListener(TerminalManager manager,
TerminalBridge bridge,
VDUBuffer buffer,
- HostBean host) {
+ String encoding) {
this.manager = manager;
this.bridge = bridge;
this.buffer = buffer;
- this.host = host;
+ this.encoding = encoding;
selectionArea = new SelectionArea();
@@ -202,14 +202,14 @@ public class TerminalKeyListener implements OnKeyListener, OnSharedPreferenceCha
else
// TODO write encoding routine that doesn't allocate each time
bridge.transport.write(new String(Character.toChars(key))
- .getBytes(host.getEncoding()));
+ .getBytes(encoding));
return true;
}
if (keyCode == KeyEvent.KEYCODE_UNKNOWN &&
event.getAction() == KeyEvent.ACTION_MULTIPLE) {
- byte[] input = event.getCharacters().getBytes(host.getEncoding());
+ byte[] input = event.getCharacters().getBytes(encoding);
bridge.transport.write(input);
return true;
}
@@ -483,4 +483,8 @@ public class TerminalKeyListener implements OnKeyListener, OnSharedPreferenceCha
private void updateKeymode() {
keymode = prefs.getString(PreferenceConstants.KEYMODE, PreferenceConstants.KEYMODE_RIGHT);
}
+
+ public void setCharset(String encoding) {
+ this.encoding = encoding;
+ }
}