aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/org/connectbot/ConsoleActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/org/connectbot/ConsoleActivity.java')
-rw-r--r--app/src/main/java/org/connectbot/ConsoleActivity.java25
1 files changed, 21 insertions, 4 deletions
diff --git a/app/src/main/java/org/connectbot/ConsoleActivity.java b/app/src/main/java/org/connectbot/ConsoleActivity.java
index 0e7a693..6a6aa32 100644
--- a/app/src/main/java/org/connectbot/ConsoleActivity.java
+++ b/app/src/main/java/org/connectbot/ConsoleActivity.java
@@ -103,6 +103,7 @@ public class ConsoleActivity extends AppCompatActivity implements BridgeDisconne
private static final int KEYBOARD_DISPLAY_TIME = 3000;
private static final int KEYBOARD_REPEAT_INITIAL = 500;
private static final int KEYBOARD_REPEAT = 100;
+ private static final String STATE_SELECTED_URI = "selectedUri";
protected ViewPager pager = null;
protected TabLayout tabs = null;
@@ -470,7 +471,11 @@ public class ConsoleActivity extends AppCompatActivity implements BridgeDisconne
setVolumeControlStream(AudioManager.STREAM_MUSIC);
// handle requested console from incoming intent
- requested = getIntent().getData();
+ if (icicle == null) {
+ requested = getIntent().getData();
+ } else {
+ requested = Uri.parse(icicle.getString(STATE_SELECTED_URI));
+ }
inflater = LayoutInflater.from(this);
@@ -1190,6 +1195,18 @@ public class ConsoleActivity extends AppCompatActivity implements BridgeDisconne
unbindService(connection);
}
+ @Override
+ public void onSaveInstanceState(Bundle savedInstanceState) {
+ // Maintain selected host if connected.
+ if (adapter.getCurrentTerminalView() != null
+ && !adapter.getCurrentTerminalView().bridge.isDisconnected()) {
+ Uri uri = adapter.getCurrentTerminalView().bridge.host.getUri();
+ savedInstanceState.putString(STATE_SELECTED_URI, uri.toString());
+ }
+
+ super.onSaveInstanceState(savedInstanceState);
+ }
+
private void startCopyMode() {
// mark as copying and reset any previous bounds
TerminalView terminalView = (TerminalView) adapter.getCurrentTerminalView();
@@ -1375,7 +1392,7 @@ public class ConsoleActivity extends AppCompatActivity implements BridgeDisconne
// and add our terminal view control, using index to place behind overlay
final TerminalView terminal = new TerminalView(container.getContext(), bridge);
- terminal.setId(R.id.console_flip);
+ terminal.setId(R.id.terminal_view);
view.addView(terminal, 0);
// Tag the view with its bridge so it can be retrieved later.
@@ -1400,7 +1417,7 @@ public class ConsoleActivity extends AppCompatActivity implements BridgeDisconne
}
View view = (View) object;
- TerminalView terminal = (TerminalView) view.findViewById(R.id.console_flip);
+ TerminalView terminal = (TerminalView) view.findViewById(R.id.terminal_view);
HostBean host = terminal.bridge.host;
int itemIndex = POSITION_NONE;
@@ -1453,7 +1470,7 @@ public class ConsoleActivity extends AppCompatActivity implements BridgeDisconne
public TerminalView getCurrentTerminalView() {
View currentView = pager.findViewWithTag(getBridgeAtPosition(pager.getCurrentItem()));
if (currentView == null) return null;
- return (TerminalView) currentView.findViewById(R.id.console_flip);
+ return (TerminalView) currentView.findViewById(R.id.terminal_view);
}
}
}