diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/org/connectbot/PubkeyListActivity.java | 6 | ||||
-rw-r--r-- | src/org/connectbot/service/TerminalManager.java | 17 | ||||
-rw-r--r-- | src/org/connectbot/transport/SSH.java | 6 |
3 files changed, 17 insertions, 12 deletions
diff --git a/src/org/connectbot/PubkeyListActivity.java b/src/org/connectbot/PubkeyListActivity.java index b445d18..cd4d255 100644 --- a/src/org/connectbot/PubkeyListActivity.java +++ b/src/org/connectbot/PubkeyListActivity.java @@ -292,10 +292,8 @@ public class PubkeyListActivity extends ListActivity implements EventListener { Log.d(TAG, String.format("Unlocked key '%s'", pubkey.getNickname())); - // save this key in-memory if option enabled - if(bound.isSavingKeys()) { - bound.addKey(pubkey, trileadKey); - } + // save this key in memory + bound.addKey(pubkey, trileadKey); updateHandler.sendEmptyMessage(-1); } diff --git a/src/org/connectbot/service/TerminalManager.java b/src/org/connectbot/service/TerminalManager.java index 1b7b91d..0f302f7 100644 --- a/src/org/connectbot/service/TerminalManager.java +++ b/src/org/connectbot/service/TerminalManager.java @@ -110,6 +110,8 @@ public class TerminalManager extends Service implements BridgeDisconnectedListen private boolean resizeAllowed = true; + private boolean savingKeys; + protected List<WeakReference<TerminalBridge>> mPendingReconnect = new LinkedList<WeakReference<TerminalBridge>>(); @@ -153,6 +155,12 @@ public class TerminalManager extends Service implements BridgeDisconnectedListen final boolean lockingWifi = prefs.getBoolean(PreferenceConstants.WIFI_LOCK, true); connectivityManager = new ConnectivityReceiver(this, lockingWifi); + + updateSavingKeys(); + } + + private void updateSavingKeys() { + savingKeys = prefs.getBoolean(PreferenceConstants.MEMKEYS, true); } @Override @@ -251,10 +259,6 @@ public class TerminalManager extends Service implements BridgeDisconnectedListen return scrollback; } - public boolean isSavingKeys() { - return prefs.getBoolean(PreferenceConstants.MEMKEYS, true); - } - public String getKeyMode() { return prefs.getString(PreferenceConstants.KEYMODE, PreferenceConstants.KEYMODE_RIGHT); // "Use right-side keys" } @@ -344,6 +348,9 @@ public class TerminalManager extends Service implements BridgeDisconnectedListen } public void addKey(PubkeyBean pubkey, Object trileadKey) { + if (!savingKeys) + return; + removeKey(pubkey.getNickname()); byte[] sshPubKey = PubkeyUtils.extractOpenSSHPublic(trileadKey); @@ -604,6 +611,8 @@ public class TerminalManager extends Service implements BridgeDisconnectedListen } else if (PreferenceConstants.WIFI_LOCK.equals(key)) { final boolean lockingWifi = prefs.getBoolean(PreferenceConstants.WIFI_LOCK, true); connectivityManager.setWantWifiLock(lockingWifi); + } else if (PreferenceConstants.MEMKEYS.equals(key)) { + updateSavingKeys(); } } diff --git a/src/org/connectbot/transport/SSH.java b/src/org/connectbot/transport/SSH.java index 7dfaf0c..b1fcd77 100644 --- a/src/org/connectbot/transport/SSH.java +++ b/src/org/connectbot/transport/SSH.java @@ -342,10 +342,8 @@ public class SSH extends AbsTransport implements ConnectionMonitor, InteractiveC Log.d(TAG, String.format("Unlocked key '%s'", pubkey.getNickname())); - // save this key in-memory if option enabled - if(manager.isSavingKeys()) { - manager.addKey(pubkey, trileadKey); - } + // save this key in memory + manager.addKey(pubkey, trileadKey); } return tryPublicKey(host.getUsername(), pubkey.getNickname(), trileadKey); |