From 57afa9bdc5b269a48bd27fc8455cab4cb956d02a Mon Sep 17 00:00:00 2001 From: Kenny Root Date: Mon, 7 Sep 2015 22:15:57 -0700 Subject: Never cache instances of the HostDatabase --- .../main/java/org/connectbot/service/TerminalBridge.java | 11 +++++++---- .../main/java/org/connectbot/service/TerminalManager.java | 15 +++++---------- 2 files changed, 12 insertions(+), 14 deletions(-) (limited to 'app/src/main/java/org/connectbot/service') diff --git a/app/src/main/java/org/connectbot/service/TerminalBridge.java b/app/src/main/java/org/connectbot/service/TerminalBridge.java index 6d47f96..6f76b02 100644 --- a/app/src/main/java/org/connectbot/service/TerminalBridge.java +++ b/app/src/main/java/org/connectbot/service/TerminalBridge.java @@ -273,7 +273,8 @@ public class TerminalBridge implements VDUDisplay { transport.setEmulation(emulation); if (transport.canForwardPorts()) { - for (PortForwardBean portForward : manager.hostdb.getPortForwardsForHost(host)) + HostDatabase hostDb = HostDatabase.get(manager); + for (PortForwardBean portForward : hostDb.getPortForwardsForHost(host)) transport.addPortForward(portForward); } @@ -533,7 +534,8 @@ public class TerminalBridge implements VDUDisplay { } host.setFontSize((int) sizeDp); - manager.hostdb.updateFontSize(host); + HostDatabase hostDb = HostDatabase.get(manager); + hostDb.updateFontSize(host); forcedSize = false; } @@ -950,11 +952,12 @@ public class TerminalBridge implements VDUDisplay { } public final void resetColors() { - int[] defaults = manager.hostdb.getDefaultColorsForScheme(HostDatabase.DEFAULT_COLOR_SCHEME); + HostDatabase hostDb = HostDatabase.get(manager); + int[] defaults = hostDb.getDefaultColorsForScheme(HostDatabase.DEFAULT_COLOR_SCHEME); defaultFg = defaults[0]; defaultBg = defaults[1]; - color = manager.hostdb.getColorsForScheme(HostDatabase.DEFAULT_COLOR_SCHEME); + color = hostDb.getColorsForScheme(HostDatabase.DEFAULT_COLOR_SCHEME); } private static Pattern urlPattern = null; diff --git a/app/src/main/java/org/connectbot/service/TerminalManager.java b/app/src/main/java/org/connectbot/service/TerminalManager.java index 1f0ee29..3a58c8a 100644 --- a/app/src/main/java/org/connectbot/service/TerminalManager.java +++ b/app/src/main/java/org/connectbot/service/TerminalManager.java @@ -87,9 +87,6 @@ public class TerminalManager extends Service implements BridgeDisconnectedListen public Resources res; - public HostDatabase hostdb; - public PubkeyDatabase pubkeydb; - protected SharedPreferences prefs; final private IBinder binder = new TerminalBinder(); @@ -129,11 +126,9 @@ public class TerminalManager extends Service implements BridgeDisconnectedListen pubkeyTimer = new Timer("pubkeyTimer", true); - hostdb = HostDatabase.get(this); - pubkeydb = PubkeyDatabase.get(this); - // load all marked pubkeys into memory updateSavingKeys(); + PubkeyDatabase pubkeydb = PubkeyDatabase.get(this); List pubkeys = pubkeydb.getAllStartPubkeys(); for (PubkeyBean pubkey : pubkeys) { @@ -173,9 +168,6 @@ public class TerminalManager extends Service implements BridgeDisconnectedListen disconnectAll(true, false); - hostdb = null; - pubkeydb = null; - synchronized (this) { if (idleTimer != null) idleTimer.cancel(); @@ -270,10 +262,12 @@ public class TerminalManager extends Service implements BridgeDisconnectedListen * format specified by an individual transport. */ public TerminalBridge openConnection(Uri uri) throws Exception { + HostDatabase hostdb = HostDatabase.get(this); HostBean host = TransportFactory.findHost(hostdb, uri); - if (host == null) + if (host == null) { host = TransportFactory.getTransport(uri.getScheme()).createHost(uri); + } return openConnection(host); } @@ -283,6 +277,7 @@ public class TerminalManager extends Service implements BridgeDisconnectedListen * to {@link HostDatabase}. */ private void touchHost(HostBean host) { + HostDatabase hostdb = HostDatabase.get(this); hostdb.touchHost(host); } -- cgit v1.2.3