aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/build.gradle4
-rw-r--r--app/src/main/AndroidManifest.xml10
-rw-r--r--app/src/main/assets/help/Hints.html23
-rw-r--r--app/src/main/assets/help/PhysicalKeyboard.html62
-rw-r--r--app/src/main/assets/help/ScreenGestures.html38
-rw-r--r--app/src/main/assets/help/VirtualKeyboard.html49
-rw-r--r--app/src/main/java/de/mud/telnet/TelnetProtocolHandler.java2
-rw-r--r--app/src/main/java/org/apache/harmony/niochar/charset/additional/IBM437.java4
-rw-r--r--app/src/main/java/org/connectbot/ActionBarWrapper.java89
-rw-r--r--app/src/main/java/org/connectbot/ConsoleActivity.java317
-rw-r--r--app/src/main/java/org/connectbot/EulaActivity.java (renamed from app/src/main/res/values-v11/styles.xml)31
-rw-r--r--app/src/main/java/org/connectbot/HelpActivity.java29
-rw-r--r--app/src/main/java/org/connectbot/HostListActivity.java21
-rw-r--r--app/src/main/java/org/connectbot/SettingsActivity.java7
-rw-r--r--app/src/main/java/org/connectbot/WizardActivity.java104
-rw-r--r--app/src/main/java/org/connectbot/service/TerminalBridge.java27
-rw-r--r--app/src/main/java/org/connectbot/service/TerminalManager.java13
-rw-r--r--app/src/main/java/org/connectbot/util/HostDatabase.java2
-rw-r--r--app/src/main/java/org/connectbot/util/PreferenceConstants.java2
-rw-r--r--app/src/main/res/anim/fade_out_delayed.xml6
-rw-r--r--app/src/main/res/anim/fade_stay_hidden.xml4
-rw-r--r--app/src/main/res/anim/keyboard_fade_in.xml6
-rw-r--r--app/src/main/res/anim/keyboard_fade_out.xml6
-rw-r--r--app/src/main/res/anim/slide_left_in.xml5
-rw-r--r--app/src/main/res/anim/slide_left_out.xml5
-rw-r--r--app/src/main/res/anim/slide_right_in.xml5
-rw-r--r--app/src/main/res/anim/slide_right_out.xml5
-rw-r--r--app/src/main/res/color/blue.xml8
-rw-r--r--app/src/main/res/color/green.xml8
-rw-r--r--app/src/main/res/color/red.xml8
-rw-r--r--app/src/main/res/drawable/connected.xml10
-rw-r--r--app/src/main/res/drawable/ic_btn_back.pngbin861 -> 0 bytes
-rw-r--r--app/src/main/res/drawable/ic_btn_next.pngbin729 -> 0 bytes
-rw-r--r--app/src/main/res/drawable/pubkey.xml6
-rw-r--r--app/src/main/res/layout-land/item_host.xml41
-rw-r--r--app/src/main/res/layout-large/act_console.xml342
-rw-r--r--app/src/main/res/layout-port/item_host.xml20
-rw-r--r--app/src/main/res/layout/act_colors.xml28
-rw-r--r--app/src/main/res/layout/act_console.xml346
-rw-r--r--app/src/main/res/layout/act_eula.xml90
-rw-r--r--app/src/main/res/layout/act_generatepubkey.xml119
-rw-r--r--app/src/main/res/layout/act_help.xml12
-rw-r--r--app/src/main/res/layout/act_help_topic.xml2
-rw-r--r--app/src/main/res/layout/act_hostlist.xml16
-rw-r--r--app/src/main/res/layout/act_portforwardlist.xml10
-rw-r--r--app/src/main/res/layout/act_pubkeylist.xml10
-rw-r--r--app/src/main/res/layout/act_wizard.xml62
-rw-r--r--app/src/main/res/layout/dia_changepassword.xml31
-rw-r--r--app/src/main/res/layout/dia_gatherentropy.xml8
-rw-r--r--app/src/main/res/layout/dia_keyboard_shortcuts.xml79
-rw-r--r--app/src/main/res/layout/dia_password.xml4
-rw-r--r--app/src/main/res/layout/dia_portforward.xml35
-rw-r--r--app/src/main/res/layout/dia_resize.xml10
-rw-r--r--app/src/main/res/layout/item_portforward.xml16
-rw-r--r--app/src/main/res/layout/item_pubkey.xml23
-rw-r--r--app/src/main/res/layout/item_terminal.xml4
-rw-r--r--app/src/main/res/layout/wiz_eula.xml87
-rw-r--r--app/src/main/res/values-ca/strings.xml3
-rw-r--r--app/src/main/res/values-cs/strings.xml3
-rw-r--r--app/src/main/res/values-da/strings.xml3
-rw-r--r--app/src/main/res/values-de/strings.xml3
-rw-r--r--app/src/main/res/values-es/strings.xml3
-rw-r--r--app/src/main/res/values-eu/strings.xml3
-rw-r--r--app/src/main/res/values-fi/strings.xml3
-rw-r--r--app/src/main/res/values-fr/strings.xml3
-rw-r--r--app/src/main/res/values-he/strings.xml3
-rw-r--r--app/src/main/res/values-hu/strings.xml3
-rw-r--r--app/src/main/res/values-id/strings.xml3
-rw-r--r--app/src/main/res/values-is/strings.xml3
-rw-r--r--app/src/main/res/values-it/strings.xml3
-rw-r--r--app/src/main/res/values-ja/strings.xml3
-rw-r--r--app/src/main/res/values-ko/strings.xml3
-rw-r--r--app/src/main/res/values-nb/strings.xml3
-rw-r--r--app/src/main/res/values-nl/strings.xml3
-rw-r--r--app/src/main/res/values-oc/strings.xml3
-rw-r--r--app/src/main/res/values-pl/strings.xml3
-rw-r--r--app/src/main/res/values-pt-rBR/strings.xml3
-rw-r--r--app/src/main/res/values-pt/strings.xml3
-rw-r--r--app/src/main/res/values-ru/strings.xml3
-rw-r--r--app/src/main/res/values-sk/strings.xml3
-rw-r--r--app/src/main/res/values-sl/strings.xml3
-rw-r--r--app/src/main/res/values-sr/strings.xml3
-rw-r--r--app/src/main/res/values-sv/strings.xml3
-rw-r--r--app/src/main/res/values-tr/strings.xml3
-rw-r--r--app/src/main/res/values-v14/styles.xml29
-rw-r--r--app/src/main/res/values-zh-rCN/strings.xml3
-rw-r--r--app/src/main/res/values-zh-rTW/strings.xml3
-rw-r--r--app/src/main/res/values/arrays.xml6
-rw-r--r--app/src/main/res/values/notrans.xml2
-rw-r--r--app/src/main/res/values/strings.xml54
-rw-r--r--app/src/main/res/values/styles.xml22
91 files changed, 1383 insertions, 1128 deletions
diff --git a/app/build.gradle b/app/build.gradle
index 34fe4c4..e791fc9 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -41,7 +41,7 @@ android {
defaultConfig {
applicationId "org.connectbot"
- minSdkVersion 4
+ minSdkVersion 8
targetSdkVersion 22
ndk {
@@ -64,6 +64,8 @@ android {
dependencies {
compile "com.android.support:support-v4:22.2.1"
+ compile "com.android.support:appcompat-v7:22.2.1"
+ compile "com.android.support:design:22.2.1"
}
buildTypes {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 76c421f..f43a428 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -21,7 +21,7 @@
android:versionCode="376"
android:installLocation="auto">
- <uses-sdk android:targetSdkVersion="22" android:minSdkVersion="4" />
+ <uses-sdk />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE" />
@@ -64,17 +64,21 @@
<activity android:name=".HostEditorActivity" android:configChanges="keyboardHidden|orientation" />
<activity android:name=".PortForwardListActivity" android:configChanges="keyboardHidden|orientation" />
<activity android:name=".SettingsActivity" android:configChanges="keyboardHidden|orientation" />
- <activity android:name=".WizardActivity" android:configChanges="keyboardHidden|orientation" />
<activity android:name=".HelpActivity" android:configChanges="keyboardHidden|orientation" />
<activity android:name=".HelpTopicActivity" android:configChanges="keyboardHidden|orientation" />
<activity android:name=".ColorsActivity" android:configChanges="keyboardHidden|orientation" />
+ <activity android:name=".EulaActivity" android:parentActivityName=".HelpActivity"
+ android:configChanges="keyboardHidden|orientation" >
+ <meta-data android:name="android.support.PARENT_ACTIVITY"
+ android:value="org.connectbot.HelpActivity" />
+ </activity>
<service android:name="org.connectbot.service.TerminalManager"
android:configChanges="keyboardHidden|orientation"
android:description="@string/service_desc" />
<activity android:name=".ConsoleActivity" android:configChanges="keyboardHidden|orientation"
- android:theme="@style/NoTitle" android:windowSoftInputMode="stateAlwaysVisible|adjustResize"
+ android:theme="@style/Theme.AppCompat" android:windowSoftInputMode="stateAlwaysVisible|adjustResize"
android:launchMode="singleTop" android:hardwareAccelerated="false">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
diff --git a/app/src/main/assets/help/Hints.html b/app/src/main/assets/help/Hints.html
index 37583db..4e07792 100644
--- a/app/src/main/assets/help/Hints.html
+++ b/app/src/main/assets/help/Hints.html
@@ -1,13 +1,26 @@
<html>
<body style="background-color: #000; color: #fff">
-<h2>Helpful hints</h2>
-
-<p>When you have multiple sessions open, you can 'pan' between them by swiping your finger left-to-right or right-to-left over the screen.</p>
-
+<h2><a name="Shortcuts" />Host Shortcuts</h2>
<p>Long-press on your Android desktop to create direct shortcuts to frequently-used SSH hosts.</p>
-<p>Slide your finger up/down on the right-half of the terminal screen to look at the scrollback history. Slide up/down on the left-half to send the page up/down keys.</p>
+<h2><a name="Page_Up_/_Page_Down" />Page Up / Page Down</h2>
+<p>Swiping your finger up and down on the left third of the screen
+ will send a page up and page down key to the remote host. Many programs
+ map this to scrolling back into history such as irssi or tinyfugue.</p>
+<p><img src="http://connectbot.googlecode.com/svn/trunk/www/gesture-pgup.png" />Page Up gesture</p>
+<p><img src="http://connectbot.googlecode.com/svn/trunk/www/gesture-pgdn.png" />Page Down gesture</p>
+
+<h2><a name="Scroll_back_/_Scroll_forward" />Scroll back / Scroll forward</h2>
+<p>Swiping your finger up on the right side of the screen allows you to scroll backward and forward
+ in the local terminal buffer history.</p>
+<p><img src="http://connectbot.googlecode.com/svn/trunk/www/gesture-scrollback.png" />Scroll back gesture</p>
+<p><img src="http://connectbot.googlecode.com/svn/trunk/www/gesture-scrollforward.png" />Scroll forward gesture</p>
+
+<h2><a name="Switching_hosts" />Switching hosts</h2>
+<p>Swiping your finger from one side of the screen to the other will switch between currently connected hosts.</p>
+<p><img src="http://connectbot.googlecode.com/svn/trunk/www/gesture-hostprev.png" />Previous host gesture</p>
+<p><img src="http://connectbot.googlecode.com/svn/trunk/www/gesture-hostnext.png" />Next host gesture</p>
</body>
</html> \ No newline at end of file
diff --git a/app/src/main/assets/help/PhysicalKeyboard.html b/app/src/main/assets/help/PhysicalKeyboard.html
deleted file mode 100644
index 4ff3753..0000000
--- a/app/src/main/assets/help/PhysicalKeyboard.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<html>
-<body style="background-color: #000; color: #fff">
-
-<p><img
- src="http://connectbot.googlecode.com/svn/trunk/www/keyboard.jpg" /></p>
-<p>Here are some keyboard shortcuts available when a <strong>hardware
-keyboard</strong> is present. If you&#x27;re using a phone where the main input
-type is a <strong>virtual keyboard</strong>, please see the VirtualKeyboard help topic.
-</p>
-<p><strong>Note:</strong> the side that <strong>shift</strong>, <strong>alt</strong>,
-<strong>slash</strong>, and <strong>tab</strong> uses can be changed in
-preferences between left, right, and disabled.</p>
-<ul>
- <li>Control key (CTRL)</li>
- <blockquote>Pressing once on the trackball will toggle on
- <strong>control</strong> for the next character typed. The cursor will
- indicate this state with a &lt; symbol. Note that pressing the
- trackball again will send an <strong>escape</strong> key.</blockquote>
-</ul>
-<ul>
- <li>Escape (ESC)</li>
- <blockquote>Pressing twice on the trackball will send <strong>escape</strong>
- key. Note that some other terminal emulators map pressing <strong>ALT-<i>key</i></strong>
- to <strong>escape + <i>key</i></strong>.</blockquote>
-</ul>
-<ul>
- <li>Shift</li>
- <blockquote>Pressing the <strong>shift</strong> (up arrow)
- key once will make the next key typed its uppercase variant according
- to the keyboard layout. This state is indicated with an outline of a
- triangle on the top of the cursor. Pressing it twice will turn on <strong>shift
- lock</strong> which is indicated by a solid triangle on the top of the cursor.</blockquote>
-</ul>
-<ul>
- <li>Alt</li>
- <blockquote>Pressing the <strong>Alt</strong> key once
- will make the next key typed its symbol as indicated on the keyboard.
- This state is indicated with the outline of a triangle on the bottom of
- the cursor. Pressing it twice will turn on <strong>alt lock</strong>
- which is indicated by a solid triangle on the bottom of the cursor.</blockquote>
-</ul>
-<ul>
- <li>Slash (opposite side Alt)</li>
- <blockquote>The opposite side <strong>alt</strong> key can
- be used as a shortcut for the forward slash / character. This aids in
- quickly typing directories on the G1.</blockquote>
-</ul>
-<ul>
- <li>Tab (opposite side Shift)</li>
- <blockquote>The opposite side <strong>shift</strong> key
- can be used as a shortcut for the <strong>tab</strong> key (CTRL-i) for
- quick completion in many shells.</blockquote>
-</ul>
-<ul>
- <li>Function keys (F1 through F10)</li>
- <blockquote>Hold down the shift key and press numbers 1
- through 10 to send F1 through F10 respectively.</blockquote>
-</ul>
-
-
-</body>
-</html>
diff --git a/app/src/main/assets/help/ScreenGestures.html b/app/src/main/assets/help/ScreenGestures.html
deleted file mode 100644
index 9332821..0000000
--- a/app/src/main/assets/help/ScreenGestures.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<html>
-<body style="background-color: #000; color: #fff">
-
-<p>Gestures in ConnectBot allow a user to do several things for
-which there&#x27;s no keyboard equivalent. If the gestures seem
-backward, then imagine that you&#x27;re grabbing the text and moving it
-with your finger.</p>
-<h1><a name="Page_Up_/_Page_Down" />Page Up / Page Down</h1>
-<p>Swiping your finger up and down on the left third of the screen
-will send a page up and page down key to the remote host. Many programs
-map this to scrolling back into history such as irssi or tinyfugue.</p>
-<p><img
- src="http://connectbot.googlecode.com/svn/trunk/www/gesture-pgup.png" />
-Page Up gesture</p>
-<p><img
- src="http://connectbot.googlecode.com/svn/trunk/www/gesture-pgdn.png" />
-Page Down gesture</p>
-<h1><a name="Scroll_back_/_Scroll_forward" />Scroll back / Scroll
-forward</h1>
-<p>Swiping your finger up on the right side of the screen allows you
-to scroll backward and forward in the local terminal buffer history.</p>
-<p><img
- src="http://connectbot.googlecode.com/svn/trunk/www/gesture-scrollback.png" />
-Scroll back gesture</p>
-<p><img
- src="http://connectbot.googlecode.com/svn/trunk/www/gesture-scrollforward.png" />
-Scroll forward gesture</p>
-<h1><a name="Switching_hosts" />Switching hosts</h1>
-<p>Swiping your finger from one side of the screen to the other will
-switch between currently connected hosts.</p>
-<p><img
- src="http://connectbot.googlecode.com/svn/trunk/www/gesture-hostprev.png" />
-Previous host gesture</p>
-<p><img
- src="http://connectbot.googlecode.com/svn/trunk/www/gesture-hostnext.png" />
-Next host gesture</p>
-</body>
-</html> \ No newline at end of file
diff --git a/app/src/main/assets/help/VirtualKeyboard.html b/app/src/main/assets/help/VirtualKeyboard.html
deleted file mode 100644
index 9788161..0000000
--- a/app/src/main/assets/help/VirtualKeyboard.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<html>
-<body style="background-color: #000; color: #fff">
-
-<p><img src="http://connectbot.googlecode.com/svn/trunk/www/magic-cb-screen.png" width="100%" /></p>
-
-<h2>Caveats</h2>
-<p>Since ConnectBot doesn&#x27;t use any of the normal TextView
-widgets, Android&#x27;s IME structure isn&#x27;t designed to directly
-support it.</p>
-<p>The best way to use Android with a virtual keyboard is in <strong>Portrait</strong>
-mode. By default, ConnectBot is set to use <strong>Portrait</strong>
-mode when no hardware keyboard is present. To change this setting, go to
-<strong>Preferences</strong> from the <strong>Host List</strong>.</p>
-<p>In <strong>Landscape</strong> mode, the Android virtual keyboard
-(or other IMEs) will take up the entire screen. Android provides no way
-for ConnectBot to resize the terminal view in <strong>Landscape</strong>.
-However, you may use a <i>work-around</i>: <strong>Force Resize</strong>
-to fit above the virtual keyboard if desired.</p>
-<p>On devices without a hardware keyboard, you may press and hold
-the <strong>MENU</strong> button to bring up the virtual keyboard. NOTE:
-This applies to any program on the Android platform; it is not
-ConnectBot specific.</p>
-<h2>How to Enter Control, Alt, Escape, and Function Keys</h2>
-<p>You can enter any key combination with ConnectBot and the virtual
-keyboard, but you must know how keys are mapped on a normal console. For
-instance, usually combinations of ALT+letter on a PC keyboard are
-actually mapped to sending, sequentially, ESC key then the letter.</p>
-<p>Note there are also screen gestures: see the ScreenGestures help topic.</a>
-for <strong>Page Up</strong> and <strong>Page Down</strong>.</p>
-<ul>
- <li>Trackball: 1 press is <strong>CTRL</strong>, 2 presses sends <strong>ESC</strong>
- </li>
- <li><strong>Tab key</strong> = <strong>CTRL + i</strong></li>
- <li><strong>Function key</strong> = <strong>CTRL + number</strong>
- </li>
-</ul>
-<h2>Examples</h2>
-<ul>
- <li><strong>ESC</strong> = Press the trackball twice.</li>
- <li><strong>ALT + Right Arrow</strong> = Press trackball twice
- then move trackball to right.</li>
- <li><strong>CTRL + A</strong> = Press trackball once then tap the
- &quot;A&quot; key on the soft keyboard.</li>
- <li><strong>F3</strong> = Press trackball once then tap the
- &quot;3&quot; key on the soft keyboard.</li>
-</ul>
-
-</body>
-</html>
diff --git a/app/src/main/java/de/mud/telnet/TelnetProtocolHandler.java b/app/src/main/java/de/mud/telnet/TelnetProtocolHandler.java
index 74f08bb..a2a5d71 100644
--- a/app/src/main/java/de/mud/telnet/TelnetProtocolHandler.java
+++ b/app/src/main/java/de/mud/telnet/TelnetProtocolHandler.java
@@ -382,7 +382,7 @@ public abstract class TelnetProtocolHandler {
if (b>=128)
b=(byte)(b-256);
if(debug > 2) {
- Byte B = new Byte(b);
+ Byte B = Byte.valueOf(b);
System.err.print("byte: " + B.intValue()+ " ");
}
switch (neg_state) {
diff --git a/app/src/main/java/org/apache/harmony/niochar/charset/additional/IBM437.java b/app/src/main/java/org/apache/harmony/niochar/charset/additional/IBM437.java
index d61ef59..2835d1b 100644
--- a/app/src/main/java/org/apache/harmony/niochar/charset/additional/IBM437.java
+++ b/app/src/main/java/org/apache/harmony/niochar/charset/additional/IBM437.java
@@ -53,7 +53,7 @@ public class IBM437 extends Charset {
}
- private native int nDecode(char[] array, int arrPosition, int remaining, long outAddr, int absolutePos);
+// private native int nDecode(char[] array, int arrPosition, int remaining, long outAddr, int absolutePos);
protected CoderResult decodeLoop(ByteBuffer bb, CharBuffer cb){
@@ -151,7 +151,7 @@ public class IBM437 extends Charset {
super(cs, 1, 1);
}
- private native void nEncode(long outAddr, int absolutePos, char[] array, int arrPosition, int[] res);
+// private native void nEncode(long outAddr, int absolutePos, char[] array, int arrPosition, int[] res);
protected CoderResult encodeLoop(CharBuffer cb, ByteBuffer bb){
int bbRemaining = bb.remaining();
diff --git a/app/src/main/java/org/connectbot/ActionBarWrapper.java b/app/src/main/java/org/connectbot/ActionBarWrapper.java
deleted file mode 100644
index f6bed8c..0000000
--- a/app/src/main/java/org/connectbot/ActionBarWrapper.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * ConnectBot: simple, powerful, open-source SSH client for Android
- * Copyright 2007 Kenny Root, Jeffrey Sharkey
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.connectbot;
-
-import org.connectbot.util.PreferenceConstants;
-
-import android.annotation.TargetApi;
-import android.app.Activity;
-import android.app.ActionBar;
-
-public abstract class ActionBarWrapper {
- public interface OnMenuVisibilityListener {
- public void onMenuVisibilityChanged(boolean isVisible);
- }
-
- public static ActionBarWrapper getActionBar(Activity activity) {
- if (PreferenceConstants.PRE_HONEYCOMB)
- return new DummyActionBar();
- else
- return new RealActionBar(activity);
- }
-
- public void hide() {
- }
-
- public void show() {
- }
-
- public void addOnMenuVisibilityListener(OnMenuVisibilityListener listener) {
- }
-
- public void setDisplayHomeAsUpEnabled(boolean showHomeAsUp) {
- }
-
- private static class DummyActionBar extends ActionBarWrapper {
- }
-
- /**
- * Real ActionBar delegate that is only invoked on Honeycomb
- * and later.
- */
- @TargetApi(11)
- private static class RealActionBar extends ActionBarWrapper {
- private final ActionBar actionBar;
-
- public RealActionBar(Activity activity) {
- actionBar = activity.getActionBar();
- }
-
- @Override
- public void hide() {
- actionBar.hide();
- }
-
- @Override
- public void show() {
- actionBar.show();
- }
-
- @Override
- public void addOnMenuVisibilityListener(final OnMenuVisibilityListener listener) {
- actionBar.addOnMenuVisibilityListener(new ActionBar.OnMenuVisibilityListener() {
- public void onMenuVisibilityChanged(boolean isVisible) {
- listener.onMenuVisibilityChanged(isVisible);
- }
- });
- }
-
- @Override
- public void setDisplayHomeAsUpEnabled(boolean showHomeAsUp) {
- actionBar.setDisplayHomeAsUpEnabled(showHomeAsUp);
- }
- }
-}
diff --git a/app/src/main/java/org/connectbot/ConsoleActivity.java b/app/src/main/java/org/connectbot/ConsoleActivity.java
index 214f878..0e23979 100644
--- a/app/src/main/java/org/connectbot/ConsoleActivity.java
+++ b/app/src/main/java/org/connectbot/ConsoleActivity.java
@@ -23,13 +23,13 @@ import java.util.List;
import org.connectbot.bean.HostBean;
import org.connectbot.bean.SelectionArea;
+import org.connectbot.service.BridgeDisconnectedListener;
import org.connectbot.service.PromptHelper;
import org.connectbot.service.TerminalBridge;
import org.connectbot.service.TerminalKeyListener;
import org.connectbot.service.TerminalManager;
import org.connectbot.util.PreferenceConstants;
-import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.ComponentName;
@@ -50,9 +50,13 @@ import android.os.Message;
import android.preference.PreferenceManager;
import android.support.annotation.Nullable;
import android.support.v4.app.ActivityCompat;
+import android.support.design.widget.TabLayout;
import android.support.v4.view.MotionEventCompat;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
+import android.support.v7.app.ActionBar;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
import android.text.ClipboardManager;
import android.util.Log;
import android.view.ContextMenu;
@@ -80,6 +84,7 @@ import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
+import android.widget.HorizontalScrollView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
@@ -88,16 +93,20 @@ import android.widget.TextView;
import android.widget.Toast;
import de.mud.terminal.vt320;
-public class ConsoleActivity extends Activity {
+public class ConsoleActivity extends AppCompatActivity implements BridgeDisconnectedListener {
public final static String TAG = "CB.ConsoleActivity";
protected static final int REQUEST_EDIT = 1;
private static final int CLICK_TIME = 400;
private static final float MAX_CLICK_DISTANCE = 25f;
- private static final int KEYBOARD_DISPLAY_TIME = 1500;
+ private static final int KEYBOARD_DISPLAY_TIME = 3000;
+ private static final int KEYBOARD_REPEAT_INITIAL = 500;
+ private static final int KEYBOARD_REPEAT = 100;
protected ViewPager pager = null;
+ protected TabLayout tabs = null;
+ protected Toolbar toolbar = null;
@Nullable
protected TerminalManager bound = null;
protected TerminalPagerAdapter adapter = null;
@@ -143,7 +152,7 @@ public class ConsoleActivity extends Activity {
private ImageView mKeyboardButton;
- private ActionBarWrapper actionBar;
+ private ActionBar actionBar;
private boolean inActionBarMenu = false;
private boolean titleBarHide;
@@ -152,7 +161,7 @@ public class ConsoleActivity extends Activity {
bound = ((TerminalManager.TerminalBinder) service).getService();
// let manager know about our event handling services
- bound.disconnectHandler = disconnectHandler;
+ bound.disconnectListener = ConsoleActivity.this;
bound.setResizeAllowed(true);
final String requestedNickname = (requested != null) ? requested.getFragment() : null;
@@ -192,21 +201,16 @@ public class ConsoleActivity extends Activity {
}
};
- protected Handler disconnectHandler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
+ public void onDisconnected(TerminalBridge bridge) {
+ synchronized (adapter) {
+ adapter.notifyDataSetChanged();
Log.d(TAG, "Someone sending HANDLE_DISCONNECT to parentHandler");
- // someone below us requested to display a password dialog
- // they are sending nickname and requested
- TerminalBridge bridge = (TerminalBridge) msg.obj;
-
- adapter.notifyDataSetChanged();
if (bridge.isAwaitingClose()) {
closeBridge(bridge);
}
}
- };
+ }
protected OnClickListener emulatedKeysListener = new OnClickListener() {
@Override
@@ -215,38 +219,143 @@ public class ConsoleActivity extends Activity {
}
};
+ protected Handler keyRepeatHandler = new Handler();
+
+
+ /**
+ * Handle repeatable virtual keys and touch events
+ */
+ public class KeyRepeater implements Runnable, OnTouchListener {
+ private View mView;
+ private Handler mHandler;
+ private boolean mDown;
+
+ public KeyRepeater(Handler handler, View view) {
+ mView = view;
+ mHandler = handler;
+ mView.setOnTouchListener(this);
+ mDown = false;
+ }
+
+ @Override
+ public void run() {
+ mDown = true;
+ mHandler.removeCallbacks(this);
+ mHandler.postDelayed(this, KEYBOARD_REPEAT);
+ onEmulatedKeyClicked(mView);
+ }
+
+ @Override
+ public boolean onTouch(View v, MotionEvent event) {
+ if (BuildConfig.DEBUG) {
+ Log.d(TAG, "KeyRepeater.onTouch(" + v.getId() + ", " +
+ event.getAction() + ", " +
+ event.getActionIndex() + ", " +
+ event.getActionMasked() + ");");
+ }
+ switch (event.getAction()) {
+ case MotionEvent.ACTION_DOWN:
+ mDown = false;
+ mHandler.postDelayed(this, KEYBOARD_REPEAT_INITIAL);
+ return (true);
+
+ case MotionEvent.ACTION_CANCEL:
+ keyRepeatHandler.removeCallbacks(this);
+ return (true);
+
+ case MotionEvent.ACTION_UP:
+ keyRepeatHandler.removeCallbacks(this);
+ if (!mDown) {
+ onEmulatedKeyClicked(mView);
+ }
+ return (true);
+ }
+ return false;
+ }
+ }
+
private void onEmulatedKeyClicked(View v) {
TerminalView terminal = adapter.getCurrentTerminalView();
if (terminal == null) return;
TerminalKeyListener handler = terminal.bridge.getKeyHandler();
- boolean hideKeys = true;
+ boolean hideKeys = false;
- switch (v.getId()) {
+ switch (v.getId()) {
case R.id.button_ctrl:
handler.metaPress(TerminalKeyListener.OUR_CTRL_ON, true);
+ hideKeys = true;
break;
case R.id.button_esc:
handler.sendEscape();
+ hideKeys = true;
break;
case R.id.button_tab:
handler.sendTab();
+ hideKeys = true;
break;
+
case R.id.button_up:
handler.sendPressedKey(vt320.KEY_UP);
- hideKeys = false;
break;
case R.id.button_down:
handler.sendPressedKey(vt320.KEY_DOWN);
- hideKeys = false;
break;
case R.id.button_left:
handler.sendPressedKey(vt320.KEY_LEFT);
- hideKeys = false;
break;
case R.id.button_right:
handler.sendPressedKey(vt320.KEY_RIGHT);
- hideKeys = false;
+ break;
+
+ case R.id.button_home:
+ handler.sendPressedKey(vt320.KEY_HOME);
+ break;
+ case R.id.button_end:
+ handler.sendPressedKey(vt320.KEY_END);
+ break;
+ case R.id.button_pgup:
+ handler.sendPressedKey(vt320.KEY_PAGE_UP);
+ break;
+ case R.id.button_pgdn:
+ handler.sendPressedKey(vt320.KEY_PAGE_DOWN);
+ break;
+
+ case R.id.button_f1:
+ handler.sendPressedKey(vt320.KEY_F1);
+ break;
+ case R.id.button_f2:
+ handler.sendPressedKey(vt320.KEY_F2);
+ break;
+ case R.id.button_f3:
+ handler.sendPressedKey(vt320.KEY_F3);
+ break;
+ case R.id.button_f4:
+ handler.sendPressedKey(vt320.KEY_F4);
+ break;
+ case R.id.button_f5:
+ handler.sendPressedKey(vt320.KEY_F5);
+ break;
+ case R.id.button_f6:
+ handler.sendPressedKey(vt320.KEY_F6);
+ break;
+ case R.id.button_f7:
+ handler.sendPressedKey(vt320.KEY_F7);
+ break;
+ case R.id.button_f8:
+ handler.sendPressedKey(vt320.KEY_F8);
+ break;
+ case R.id.button_f9:
+ handler.sendPressedKey(vt320.KEY_F9);
+ break;
+ case R.id.button_f10:
+ handler.sendPressedKey(vt320.KEY_F10);
+ break;
+ case R.id.button_f11:
+ handler.sendPressedKey(vt320.KEY_F11);
+ break;
+ case R.id.button_f12:
+ handler.sendPressedKey(vt320.KEY_F12);
break;
}
@@ -256,20 +365,21 @@ public class ConsoleActivity extends Activity {
autoHideEmulatedKeys();
terminal.bridge.tryKeyVibrate();
+ if (titleBarHide) {
+ actionBar.hide();
+ }
}
/**
* @param bridge
*/
private void closeBridge(final TerminalBridge bridge) {
- synchronized (pager) {
- updateEmptyVisible();
- updatePromptVisible();
+ updateEmptyVisible();
+ updatePromptVisible();
- // If we just closed the last bridge, go back to the previous activity.
- if (pager.getChildCount() == 0) {
- finish();
- }
+ // If we just closed the last bridge, go back to the previous activity.
+ if (pager.getChildCount() == 0) {
+ finish();
}
}
@@ -343,7 +453,7 @@ public class ConsoleActivity extends Activity {
titleBarHide = prefs.getBoolean(PreferenceConstants.TITLEBARHIDE, false);
if (titleBarHide) {
- getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
+ supportRequestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
}
this.setContentView(R.layout.act_console);
@@ -362,6 +472,7 @@ public class ConsoleActivity extends Activity {
inflater = LayoutInflater.from(this);
+ toolbar = (Toolbar) findViewById(R.id.toolbar);
pager = (ViewPager) findViewById(R.id.console_flip);
registerForContextMenu(pager);
pager.addOnPageChangeListener(
@@ -371,6 +482,8 @@ public class ConsoleActivity extends Activity {
onTerminalChanged();
}
});
+ adapter = new TerminalPagerAdapter();
+ pager.setAdapter(adapter);
empty = (TextView) findViewById(android.R.id.empty);
@@ -445,17 +558,36 @@ public class ConsoleActivity extends Activity {
findViewById(R.id.button_ctrl).setOnClickListener(emulatedKeysListener);
findViewById(R.id.button_esc).setOnClickListener(emulatedKeysListener);
findViewById(R.id.button_tab).setOnClickListener(emulatedKeysListener);
- findViewById(R.id.button_up).setOnClickListener(emulatedKeysListener);
- findViewById(R.id.button_down).setOnClickListener(emulatedKeysListener);
- findViewById(R.id.button_left).setOnClickListener(emulatedKeysListener);
- findViewById(R.id.button_right).setOnClickListener(emulatedKeysListener);
- actionBar = ActionBarWrapper.getActionBar(this);
+ new KeyRepeater(keyRepeatHandler, findViewById(R.id.button_up));
+ new KeyRepeater(keyRepeatHandler, findViewById(R.id.button_down));
+ new KeyRepeater(keyRepeatHandler, findViewById(R.id.button_left));
+ new KeyRepeater(keyRepeatHandler, findViewById(R.id.button_right));
+
+ findViewById(R.id.button_home).setOnClickListener(emulatedKeysListener);
+ findViewById(R.id.button_end).setOnClickListener(emulatedKeysListener);
+ findViewById(R.id.button_pgup).setOnClickListener(emulatedKeysListener);
+ findViewById(R.id.button_pgdn).setOnClickListener(emulatedKeysListener);
+ findViewById(R.id.button_f1).setOnClickListener(emulatedKeysListener);
+ findViewById(R.id.button_f2).setOnClickListener(emulatedKeysListener);
+ findViewById(R.id.button_f3).setOnClickListener(emulatedKeysListener);
+ findViewById(R.id.button_f4).setOnClickListener(emulatedKeysListener);
+ findViewById(R.id.button_f5).setOnClickListener(emulatedKeysListener);
+ findViewById(R.id.button_f6).setOnClickListener(emulatedKeysListener);
+ findViewById(R.id.button_f7).setOnClickListener(emulatedKeysListener);
+ findViewById(R.id.button_f8).setOnClickListener(emulatedKeysListener);
+ findViewById(R.id.button_f9).setOnClickListener(emulatedKeysListener);
+ findViewById(R.id.button_f10).setOnClickListener(emulatedKeysListener);
+ findViewById(R.id.button_f11).setOnClickListener(emulatedKeysListener);
+ findViewById(R.id.button_f12).setOnClickListener(emulatedKeysListener);
+
+
+ actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
if (titleBarHide) {
actionBar.hide();
}
- actionBar.addOnMenuVisibilityListener(new ActionBarWrapper.OnMenuVisibilityListener() {
+ actionBar.addOnMenuVisibilityListener(new ActionBar.OnMenuVisibilityListener() {
public void onMenuVisibilityChanged(boolean isVisible) {
inActionBarMenu = isVisible;
if (isVisible == false) {
@@ -464,6 +596,35 @@ public class ConsoleActivity extends Activity {
}
});
+ if (!hardKeyboard) {
+ // Show virtual keyboard and scroll back and forth
+ final HorizontalScrollView keyboardScroll = (HorizontalScrollView) findViewById(R.id.keyboard_hscroll);
+ showEmulatedKeys();
+ keyboardScroll.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ final int xscroll = findViewById(R.id.button_f12).getRight();
+ if (BuildConfig.DEBUG) {
+ Log.d(TAG, "smoothScrollBy(toEnd[" + xscroll + "])");
+ }
+ keyboardScroll.smoothScrollBy(xscroll, 0);
+ keyboardScroll.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ if (BuildConfig.DEBUG) {
+ Log.d(TAG, "smoothScrollBy(toStart[" + (-xscroll) + "])");
+ }
+ keyboardScroll.smoothScrollBy(-xscroll, 0);
+ }
+ }, 1000);
+ }
+ }, 1000);
+ }
+
+ tabs = (TabLayout) findViewById(R.id.tabs);
+ if (tabs != null)
+ setupTabLayoutWithViewPager();
+
// detect fling gestures to switch between terminals
final GestureDetector detect = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener() {
private float totalY = 0;
@@ -635,9 +796,32 @@ public class ConsoleActivity extends Activity {
}
});
+ }
- adapter = new TerminalPagerAdapter();
- pager.setAdapter(adapter);
+ /**
+ * Ties the {@link TabLayout} to the {@link ViewPager}.
+ *
+ * <p>This method will:
+ * <ul>
+ * <li>Add a {@link ViewPager.OnPageChangeListener} that will forward events to
+ * this TabLayout.</li>
+ * <li>Populate the TabLayout's tabs from the ViewPager's {@link PagerAdapter}.</li>
+ * <li>Set our {@link TabLayout.OnTabSelectedListener} which will forward
+ * selected events to the ViewPager</li>
+ * </ul>
+ * </p>
+ */
+ public void setupTabLayoutWithViewPager() {
+ tabs.setTabsFromPagerAdapter(adapter);
+ pager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabs));
+ tabs.setOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(pager));
+
+ if (adapter.getCount() > 0) {
+ final int curItem = pager.getCurrentItem();
+ if (tabs.getSelectedTabPosition() != curItem) {
+ tabs.getTabAt(curItem).select();
+ }
+ }
}
/**
@@ -784,26 +968,26 @@ public class ConsoleActivity extends Activity {
final View resizeView = inflater.inflate(R.layout.dia_resize, null, false);
new AlertDialog.Builder(ConsoleActivity.this)
- .setView(resizeView)
- .setPositiveButton(R.string.button_resize, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int which) {
- int width, height;
- try {
- width = Integer.parseInt(((EditText) resizeView
- .findViewById(R.id.width))
- .getText().toString());
- height = Integer.parseInt(((EditText) resizeView
- .findViewById(R.id.height))
- .getText().toString());
- } catch (NumberFormatException nfe) {
- // TODO change this to a real dialog where we can
- // make the input boxes turn red to indicate an error.
- return;
+ .setView(resizeView)
+ .setPositiveButton(R.string.button_resize, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int which) {
+ int width, height;
+ try {
+ width = Integer.parseInt(((EditText) resizeView
+ .findViewById(R.id.width))
+ .getText().toString());
+ height = Integer.parseInt(((EditText) resizeView
+ .findViewById(R.id.height))
+ .getText().toString());
+ } catch (NumberFormatException nfe) {
+ // TODO change this to a real dialog where we can
+ // make the input boxes turn red to indicate an error.
+ return;
+ }
+
+ terminalView.forceSize(width, height);
}
-
- terminalView.forceSize(width, height);
- }
- }).setNegativeButton(android.R.string.cancel, null).create().show();
+ }).setNegativeButton(android.R.string.cancel, null).create().show();
return true;
}
@@ -848,13 +1032,13 @@ public class ConsoleActivity extends Activity {
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
- case android.R.id.home:
- Intent intent = new Intent(this, HostListActivity.class);
- intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
- startActivity(intent);
- return true;
- default:
- return super.onOptionsItemSelected(item);
+ case android.R.id.home:
+ Intent intent = new Intent(this, HostListActivity.class);
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+ startActivity(intent);
+ return true;
+ default:
+ return super.onOptionsItemSelected(item);
}
}
@@ -1226,6 +1410,15 @@ public class ConsoleActivity extends Activity {
}
@Override
+ public void notifyDataSetChanged() {
+ super.notifyDataSetChanged();
+ if (tabs != null) {
+ toolbar.setVisibility(this.getCount() > 1 ? View.VISIBLE : View.GONE);
+ tabs.setTabsFromPagerAdapter(this);
+ }
+ }
+
+ @Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
diff --git a/app/src/main/res/values-v11/styles.xml b/app/src/main/java/org/connectbot/EulaActivity.java
index 9a0c22b..650a5b5 100644
--- a/app/src/main/res/values-v11/styles.xml
+++ b/app/src/main/java/org/connectbot/EulaActivity.java
@@ -1,8 +1,6 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
/*
* ConnectBot: simple, powerful, open-source SSH client for Android
- * Copyright 2007 Kenny Root, Jeffrey Sharkey
+ * Copyright 2015 Kenny Root, Jeffrey Sharkey
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,14 +14,21 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
--->
-<resources>
- <style name="NoTitle" parent="android:Theme.Holo">
- <item name="android:windowContentOverlay">@null</item>
- <item name="android:actionBarStyle">@style/SolidActionBar</item>
- </style>
- <style name="SolidActionBar" parent="android:Widget.Holo.ActionBar">
- <item name="android:background">#222222</item>
- </style>
-</resources>
+package org.connectbot;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+public class EulaActivity extends Activity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.act_eula);
+
+ this.setTitle(String.format("%s: %s",
+ getResources().getText(R.string.app_name),
+ getResources().getText(R.string.terms_and_conditions)));
+ }
+}
diff --git a/app/src/main/java/org/connectbot/HelpActivity.java b/app/src/main/java/org/connectbot/HelpActivity.java
index 5c4fa79..1e78d72 100644
--- a/app/src/main/java/org/connectbot/HelpActivity.java
+++ b/app/src/main/java/org/connectbot/HelpActivity.java
@@ -20,10 +20,12 @@ package org.connectbot;
import java.io.IOException;
import android.app.Activity;
+import android.app.AlertDialog;
import android.content.Intent;
import android.content.res.AssetManager;
import android.os.Bundle;
import android.util.Log;
+import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
@@ -39,6 +41,9 @@ public class HelpActivity extends Activity {
public final static String HELPDIR = "help";
public final static String SUFFIX = ".html";
+ private LayoutInflater inflater = null;
+
+
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
@@ -73,5 +78,29 @@ public class HelpActivity extends Activity {
// TODO Auto-generated catch block
Log.e(TAG, "couldn't get list of help assets", e);
}
+
+ inflater = LayoutInflater.from(this);
+ Button shortcutsButton = new Button(this);
+ shortcutsButton.setText(getResources().getString(R.string.keyboard_shortcuts));
+ shortcutsButton.setOnClickListener(new OnClickListener() {
+ public void onClick(View v) {
+ final View shortcuts = inflater.inflate(R.layout.dia_keyboard_shortcuts, null, false);
+ new AlertDialog.Builder(HelpActivity.this)
+ .setView(shortcuts)
+ .setTitle(R.string.keyboard_shortcuts)
+ .show();
+ }
+ });
+ content.addView(shortcutsButton);
+
+ Button eulaButton = new Button(this);
+ eulaButton.setText(getResources().getString(R.string.terms_and_conditions));
+ eulaButton.setOnClickListener(new OnClickListener() {
+ public void onClick(View v) {
+ Intent intent = new Intent(HelpActivity.this, EulaActivity.class);
+ HelpActivity.this.startActivity(intent);
+ }
+ });
+ content.addView(eulaButton);
}
}
diff --git a/app/src/main/java/org/connectbot/HostListActivity.java b/app/src/main/java/org/connectbot/HostListActivity.java
index a0d7901..2d8e882 100644
--- a/app/src/main/java/org/connectbot/HostListActivity.java
+++ b/app/src/main/java/org/connectbot/HostListActivity.java
@@ -26,7 +26,6 @@ import org.connectbot.transport.TransportFactory;
import org.connectbot.util.HostDatabase;
import org.connectbot.util.PreferenceConstants;
-import android.app.Activity;
import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.ComponentName;
@@ -70,8 +69,6 @@ public class HostListActivity extends ListActivity {
public final static int REQUEST_EDIT = 1;
- public final static int REQUEST_EULA = 2;
-
protected TerminalManager bound = null;
protected HostDatabase hostdb;
@@ -175,17 +172,7 @@ public class HostListActivity extends ListActivity {
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- if (requestCode == REQUEST_EULA) {
- if (resultCode == Activity.RESULT_OK) {
- // yay they agreed, so store that info
- Editor edit = prefs.edit();
- edit.putBoolean(PreferenceConstants.EULA, true);
- edit.commit();
- } else {
- // user didnt agree, so close
- this.finish();
- }
- } else if (requestCode == REQUEST_EDIT) {
+ if (requestCode == REQUEST_EDIT) {
this.updateList();
}
}
@@ -224,12 +211,6 @@ public class HostListActivity extends ListActivity {
}
}
- // check for eula agreement
- boolean agreed = prefs.getBoolean(PreferenceConstants.EULA, false);
- if (!agreed) {
- this.startActivityForResult(new Intent(this, WizardActivity.class), REQUEST_EULA);
- }
-
this.makingShortcut = Intent.ACTION_CREATE_SHORTCUT.equals(getIntent().getAction())
|| Intent.ACTION_PICK.equals(getIntent().getAction());
diff --git a/app/src/main/java/org/connectbot/SettingsActivity.java b/app/src/main/java/org/connectbot/SettingsActivity.java
index 38f3367..153f4ba 100644
--- a/app/src/main/java/org/connectbot/SettingsActivity.java
+++ b/app/src/main/java/org/connectbot/SettingsActivity.java
@@ -17,8 +17,6 @@
package org.connectbot;
-import org.connectbot.util.PreferenceConstants;
-
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceActivity;
@@ -45,11 +43,6 @@ public class SettingsActivity extends PreferenceActivity {
PreferenceManager.setDefaultValues(this, R.xml.preferences, true);
- // Since they were able to get to the Settings activity, they already agreed to the EULA
- editor = preferences.edit();
- editor.putBoolean(PreferenceConstants.EULA, true);
- editor.commit();
-
addPreferencesFromResource(R.xml.preferences);
}
diff --git a/app/src/main/java/org/connectbot/WizardActivity.java b/app/src/main/java/org/connectbot/WizardActivity.java
deleted file mode 100644
index 4069c50..0000000
--- a/app/src/main/java/org/connectbot/WizardActivity.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * ConnectBot: simple, powerful, open-source SSH client for Android
- * Copyright 2007 Kenny Root, Jeffrey Sharkey
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.connectbot;
-
-import org.connectbot.util.HelpTopicView;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.Button;
-import android.widget.ViewFlipper;
-
-/**
- * Show a series of wizard-like steps to the user, which might include an EULA,
- * program credits, and helpful hints.
- *
- * @author jsharkey
- */
-public class WizardActivity extends Activity {
- protected ViewFlipper flipper = null;
- private Button next, prev;
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.act_wizard);
-
- this.flipper = (ViewFlipper) findViewById(R.id.wizard_flipper);
-
- // inflate the layout for EULA step
- LayoutInflater inflater = LayoutInflater.from(this);
- this.flipper.addView(inflater.inflate(R.layout.wiz_eula, this.flipper, false));
-
- // Add a view for each help topic we want the user to see.
- String[] topics = getResources().getStringArray(R.array.list_wizard_topics);
- for (String topic : topics) {
- flipper.addView(new HelpTopicView(this).setTopic(topic));
- }
-
- next = (Button) findViewById(R.id.action_next);
- next.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- if (isLastDisplayed()) {
- // user walked past end of wizard, so return okay
- WizardActivity.this.setResult(Activity.RESULT_OK);
- WizardActivity.this.finish();
- } else {
- // show next step and update buttons
- flipper.showNext();
- updateButtons();
- }
- }
- });
-
- prev = (Button) findViewById(R.id.action_prev);
- prev.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- if (isFirstDisplayed()) {
- // user walked past beginning of wizard, so return that they cancelled
- WizardActivity.this.setResult(Activity.RESULT_CANCELED);
- WizardActivity.this.finish();
- } else {
- // show previous step and update buttons
- flipper.showPrevious();
- updateButtons();
- }
- }
- });
-
- this.updateButtons();
- }
-
- protected boolean isFirstDisplayed() {
- return (flipper.getDisplayedChild() == 0);
- }
-
- protected boolean isLastDisplayed() {
- return (flipper.getDisplayedChild() == flipper.getChildCount() - 1);
- }
-
- protected void updateButtons() {
- boolean eula = (flipper.getDisplayedChild() == 0);
-
- next.setText(eula ? getString(R.string.wizard_agree) : getString(R.string.wizard_next));
- prev.setText(eula ? getString(R.string.delete_neg) : getString(R.string.wizard_back));
- }
-}
diff --git a/app/src/main/java/org/connectbot/service/TerminalBridge.java b/app/src/main/java/org/connectbot/service/TerminalBridge.java
index 6333c17..6d47f96 100644
--- a/app/src/main/java/org/connectbot/service/TerminalBridge.java
+++ b/app/src/main/java/org/connectbot/service/TerminalBridge.java
@@ -437,8 +437,7 @@ public class TerminalBridge implements VDUDisplay {
if (immediate || (host.getQuickDisconnect() && !host.getStayConnected())) {
awaitingClose = true;
- if (disconnectListener != null)
- disconnectListener.onDisconnected(TerminalBridge.this);
+ triggerDisconnectListener();
} else {
{
final String line = manager.res.getString(R.string.alert_disconnect_msg);
@@ -454,10 +453,7 @@ public class TerminalBridge implements VDUDisplay {
manager.res.getString(R.string.prompt_host_disconnected));
if (result == null || result.booleanValue()) {
awaitingClose = true;
-
- // Tell the TerminalManager that we can be destroyed now.
- if (disconnectListener != null)
- disconnectListener.onDisconnected(TerminalBridge.this);
+ triggerDisconnectListener();
}
}
});
@@ -467,6 +463,25 @@ public class TerminalBridge implements VDUDisplay {
}
}
+ /**
+ * Tells the TerminalManager that we can be destroyed now.
+ */
+ private void triggerDisconnectListener() {
+ if (disconnectListener != null) {
+ // The disconnect listener should be run on the main thread if possible.
+ if (parent != null) {
+ parent.post(new Runnable() {
+ @Override
+ public void run() {
+ disconnectListener.onDisconnected(TerminalBridge.this);
+ }
+ });
+ } else {
+ disconnectListener.onDisconnected(TerminalBridge.this);
+ }
+ }
+ }
+
public void setSelectingForCopy(boolean selectingForCopy) {
this.selectingForCopy = selectingForCopy;
}
diff --git a/app/src/main/java/org/connectbot/service/TerminalManager.java b/app/src/main/java/org/connectbot/service/TerminalManager.java
index 8001561..a15dff0 100644
--- a/app/src/main/java/org/connectbot/service/TerminalManager.java
+++ b/app/src/main/java/org/connectbot/service/TerminalManager.java
@@ -54,9 +54,7 @@ import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.net.Uri;
import android.os.Binder;
-import android.os.Handler;
import android.os.IBinder;
-import android.os.Message;
import android.os.Vibrator;
import android.preference.PreferenceManager;
import android.util.Log;
@@ -81,7 +79,7 @@ public class TerminalManager extends Service implements BridgeDisconnectedListen
public List<HostBean> disconnected = new LinkedList<HostBean>();
- public Handler disconnectHandler = null;
+ public BridgeDisconnectedListener disconnectListener = null;
public Map<String, KeyHolder> loadedKeypairs = new HashMap<String, KeyHolder>();
@@ -329,6 +327,7 @@ public class TerminalManager extends Service implements BridgeDisconnectedListen
*/
public void onDisconnected(TerminalBridge bridge) {
boolean shouldHideRunningNotification = false;
+ Log.d(TAG, "Bridge Disconnected. Removing it.");
synchronized (bridges) {
// remove this bridge from our list
@@ -345,6 +344,10 @@ public class TerminalManager extends Service implements BridgeDisconnectedListen
mPendingReconnect.size() == 0) {
shouldHideRunningNotification = true;
}
+
+ // pass notification back up to gui
+ if (disconnectListener != null)
+ disconnectListener.onDisconnected(bridge);
}
synchronized (disconnected) {
@@ -354,10 +357,6 @@ public class TerminalManager extends Service implements BridgeDisconnectedListen
if (shouldHideRunningNotification) {
ConnectionNotifier.getInstance().hideRunningNotification(this);
}
-
- // pass notification back up to gui
- if (disconnectHandler != null)
- Message.obtain(disconnectHandler, -1, bridge).sendToTarget();
}
public boolean isKeyLoaded(String nickname) {
diff --git a/app/src/main/java/org/connectbot/util/HostDatabase.java b/app/src/main/java/org/connectbot/util/HostDatabase.java
index 4756157..d8cdf09 100644
--- a/app/src/main/java/org/connectbot/util/HostDatabase.java
+++ b/app/src/main/java/org/connectbot/util/HostDatabase.java
@@ -678,7 +678,7 @@ public class HostDatabase extends RobustSQLiteOpenHelper {
null, null, null);
while (c.moveToNext()) {
- colors[c.getInt(0)] = new Integer(c.getInt(1));
+ colors[c.getInt(0)] = Integer.valueOf(c.getInt(1));
}
c.close();
diff --git a/app/src/main/java/org/connectbot/util/PreferenceConstants.java b/app/src/main/java/org/connectbot/util/PreferenceConstants.java
index d3cd832..eb0e396 100644
--- a/app/src/main/java/org/connectbot/util/PreferenceConstants.java
+++ b/app/src/main/java/org/connectbot/util/PreferenceConstants.java
@@ -66,8 +66,6 @@ public class PreferenceConstants {
public static final String BUMPY_ARROWS = "bumpyarrows";
- public static final String EULA = "eula";
-
public static final String SORT_BY_COLOR = "sortByColor";
public static final String BELL = "bell";
diff --git a/app/src/main/res/anim/fade_out_delayed.xml b/app/src/main/res/anim/fade_out_delayed.xml
index 20ca839..5c40b70 100644
--- a/app/src/main/res/anim/fade_out_delayed.xml
+++ b/app/src/main/res/anim/fade_out_delayed.xml
@@ -19,9 +19,9 @@
-->
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
- android:fromAlpha="1.0"
- android:toAlpha="0.0"
android:duration="500"
- android:startOffset="1000"
android:fillAfter="true"
+ android:fromAlpha="1.0"
+ android:startOffset="1000"
+ android:toAlpha="0.0"
/>
diff --git a/app/src/main/res/anim/fade_stay_hidden.xml b/app/src/main/res/anim/fade_stay_hidden.xml
index e62ca8b..30e00fa 100644
--- a/app/src/main/res/anim/fade_stay_hidden.xml
+++ b/app/src/main/res/anim/fade_stay_hidden.xml
@@ -19,8 +19,8 @@
-->
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
- android:fromAlpha="0.0"
- android:toAlpha="0.0"
android:duration="500"
android:fillAfter="true"
+ android:fromAlpha="0.0"
+ android:toAlpha="0.0"
/>
diff --git a/app/src/main/res/anim/keyboard_fade_in.xml b/app/src/main/res/anim/keyboard_fade_in.xml
index edd5b94..fa5351f 100644
--- a/app/src/main/res/anim/keyboard_fade_in.xml
+++ b/app/src/main/res/anim/keyboard_fade_in.xml
@@ -19,7 +19,7 @@
-->
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
- android:interpolator="@android:anim/accelerate_interpolator"
+ android:duration="100"
android:fromAlpha="0.0"
- android:toAlpha="1.0"
- android:duration="100" />
+ android:interpolator="@android:anim/accelerate_interpolator"
+ android:toAlpha="1.0"/>
diff --git a/app/src/main/res/anim/keyboard_fade_out.xml b/app/src/main/res/anim/keyboard_fade_out.xml
index 1f37d32..fcc63e3 100644
--- a/app/src/main/res/anim/keyboard_fade_out.xml
+++ b/app/src/main/res/anim/keyboard_fade_out.xml
@@ -19,7 +19,7 @@
-->
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
- android:interpolator="@android:anim/accelerate_interpolator"
+ android:duration="100"
android:fromAlpha="1.0"
- android:toAlpha="0.0"
- android:duration="100" />
+ android:interpolator="@android:anim/accelerate_interpolator"
+ android:toAlpha="0.0"/>
diff --git a/app/src/main/res/anim/slide_left_in.xml b/app/src/main/res/anim/slide_left_in.xml
index 29a0048..c60e917 100644
--- a/app/src/main/res/anim/slide_left_in.xml
+++ b/app/src/main/res/anim/slide_left_in.xml
@@ -19,6 +19,9 @@
-->
<set xmlns:android="http://schemas.android.com/apk/res/android">
- <translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="300"/>
+ <translate
+ android:duration="300"
+ android:fromXDelta="100%p"
+ android:toXDelta="0"/>
<!-- <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" /> -->
</set>
diff --git a/app/src/main/res/anim/slide_left_out.xml b/app/src/main/res/anim/slide_left_out.xml
index 9c46442..bd7360d 100644
--- a/app/src/main/res/anim/slide_left_out.xml
+++ b/app/src/main/res/anim/slide_left_out.xml
@@ -19,6 +19,9 @@
-->
<set xmlns:android="http://schemas.android.com/apk/res/android">
- <translate android:fromXDelta="0" android:toXDelta="-100%p" android:duration="300"/>
+ <translate
+ android:duration="300"
+ android:fromXDelta="0"
+ android:toXDelta="-100%p"/>
<!-- <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" /> -->
</set>
diff --git a/app/src/main/res/anim/slide_right_in.xml b/app/src/main/res/anim/slide_right_in.xml
index 0d52c9f..c69f371 100644
--- a/app/src/main/res/anim/slide_right_in.xml
+++ b/app/src/main/res/anim/slide_right_in.xml
@@ -19,6 +19,9 @@
-->
<set xmlns:android="http://schemas.android.com/apk/res/android">
- <translate android:fromXDelta="-100%p" android:toXDelta="0" android:duration="300"/>
+ <translate
+ android:duration="300"
+ android:fromXDelta="-100%p"
+ android:toXDelta="0"/>
<!-- <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" /> -->
</set>
diff --git a/app/src/main/res/anim/slide_right_out.xml b/app/src/main/res/anim/slide_right_out.xml
index ace4e9d..2f7abbe 100644
--- a/app/src/main/res/anim/slide_right_out.xml
+++ b/app/src/main/res/anim/slide_right_out.xml
@@ -19,6 +19,9 @@
-->
<set xmlns:android="http://schemas.android.com/apk/res/android">
- <translate android:fromXDelta="0" android:toXDelta="100%p" android:duration="300"/>
+ <translate
+ android:duration="300"
+ android:fromXDelta="0"
+ android:toXDelta="100%p"/>
<!-- <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" /> -->
</set>
diff --git a/app/src/main/res/color/blue.xml b/app/src/main/res/color/blue.xml
index 981c3ef..7ff859c 100644
--- a/app/src/main/res/color/blue.xml
+++ b/app/src/main/res/color/blue.xml
@@ -19,8 +19,8 @@
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_selected="true" android:color="#000" />
- <item android:state_focused="true" android:color="#000" />
- <item android:state_pressed="true" android:color="#000" />
- <item android:color="#88f" />
+ <item android:color="#000" android:state_selected="true"/>
+ <item android:color="#000" android:state_focused="true"/>
+ <item android:color="#000" android:state_pressed="true"/>
+ <item android:color="#88f"/>
</selector>
diff --git a/app/src/main/res/color/green.xml b/app/src/main/res/color/green.xml
index 388ea58..acb166c 100644
--- a/app/src/main/res/color/green.xml
+++ b/app/src/main/res/color/green.xml
@@ -19,8 +19,8 @@
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_selected="true" android:color="#000" />
- <item android:state_focused="true" android:color="#000" />
- <item android:state_pressed="true" android:color="#000" />
- <item android:color="#8f8" />
+ <item android:color="#000" android:state_selected="true"/>
+ <item android:color="#000" android:state_focused="true"/>
+ <item android:color="#000" android:state_pressed="true"/>
+ <item android:color="#8f8"/>
</selector>
diff --git a/app/src/main/res/color/red.xml b/app/src/main/res/color/red.xml
index b7e18cd..440ee69 100644
--- a/app/src/main/res/color/red.xml
+++ b/app/src/main/res/color/red.xml
@@ -19,8 +19,8 @@
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_selected="true" android:color="#000" />
- <item android:state_focused="true" android:color="#000" />
- <item android:state_pressed="true" android:color="#000" />
- <item android:color="#f00" />
+ <item android:color="#000" android:state_selected="true"/>
+ <item android:color="#000" android:state_focused="true"/>
+ <item android:color="#000" android:state_pressed="true"/>
+ <item android:color="#f00"/>
</selector>
diff --git a/app/src/main/res/drawable/connected.xml b/app/src/main/res/drawable/connected.xml
index 7b633d3..7e15a8d 100644
--- a/app/src/main/res/drawable/connected.xml
+++ b/app/src/main/res/drawable/connected.xml
@@ -21,14 +21,14 @@
xmlns:android="http://schemas.android.com/apk/res/android">
<item
- android:state_checked="true"
- android:drawable="@android:drawable/presence_online" />
+ android:drawable="@android:drawable/presence_online"
+ android:state_checked="true"/>
<item
- android:state_expanded="true"
- android:drawable="@android:drawable/presence_busy" />
+ android:drawable="@android:drawable/presence_busy"
+ android:state_expanded="true"/>
<item
- android:drawable="@android:drawable/presence_invisible" />
+ android:drawable="@android:drawable/presence_invisible"/>
</selector>
diff --git a/app/src/main/res/drawable/ic_btn_back.png b/app/src/main/res/drawable/ic_btn_back.png
deleted file mode 100644
index 9615e67..0000000
--- a/app/src/main/res/drawable/ic_btn_back.png
+++ /dev/null
Binary files differ
diff --git a/app/src/main/res/drawable/ic_btn_next.png b/app/src/main/res/drawable/ic_btn_next.png
deleted file mode 100644
index ea2a80e..0000000
--- a/app/src/main/res/drawable/ic_btn_next.png
+++ /dev/null
Binary files differ
diff --git a/app/src/main/res/drawable/pubkey.xml b/app/src/main/res/drawable/pubkey.xml
index 1926d24..0dbdba9 100644
--- a/app/src/main/res/drawable/pubkey.xml
+++ b/app/src/main/res/drawable/pubkey.xml
@@ -21,10 +21,10 @@
xmlns:android="http://schemas.android.com/apk/res/android">
<item
- android:state_checked="true"
- android:drawable="@drawable/pubkey_unlocked" />
+ android:drawable="@drawable/pubkey_unlocked"
+ android:state_checked="true"/>
<item
- android:drawable="@drawable/pubkey_locked" />
+ android:drawable="@drawable/pubkey_locked"/>
</selector> \ No newline at end of file
diff --git a/app/src/main/res/layout-land/item_host.xml b/app/src/main/res/layout-land/item_host.xml
index 9cde624..cbccd91 100644
--- a/app/src/main/res/layout-land/item_host.xml
+++ b/app/src/main/res/layout-land/item_host.xml
@@ -18,8 +18,9 @@
*/
-->
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout
android:id="@android:id/content"
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dip"
@@ -27,38 +28,38 @@
<ImageView
android:id="@android:id/icon"
- android:src="@drawable/connected"
- android:contentDescription="@string/image_description_connected"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
+ android:contentDescription="@string/image_description_connected"
android:paddingTop="5dip"
+ android:src="@drawable/connected"
/>
<LinearLayout
- android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
+ android:orientation="horizontal"
>
- <TextView
- android:id="@android:id/text1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:singleLine="true"
- android:ellipsize="end"
- android:textAppearance="?android:attr/textAppearanceLarge"
- />
+ <TextView
+ android:id="@android:id/text1"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:singleLine="true"
+ android:textAppearance="?android:attr/textAppearanceLarge"
+ />
+
+ <TextView
+ android:id="@android:id/text2"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:paddingLeft="10dip"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ />
- <TextView
- android:id="@android:id/text2"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:paddingLeft="10dip"
- android:textAppearance="?android:attr/textAppearanceSmall"
- />
-
</LinearLayout>
</RelativeLayout> \ No newline at end of file
diff --git a/app/src/main/res/layout-large/act_console.xml b/app/src/main/res/layout-large/act_console.xml
new file mode 100644
index 0000000..66f3d83
--- /dev/null
+++ b/app/src/main/res/layout-large/act_console.xml
@@ -0,0 +1,342 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * ConnectBot: simple, powerful, open-source SSH client for Android
+ * Copyright 2007 Kenny Root, Jeffrey Sharkey
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<RelativeLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:background="#ff000000">
+
+ <android.support.v7.widget.Toolbar
+ android:id="@+id/toolbar"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:theme="@style/Theme.AppCompat.Light.DarkActionBar"/>
+
+ <android.support.design.widget.TabLayout
+ android:id="@+id/tabs"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="?attr/colorPrimary"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ app:tabMode="scrollable"
+ app:tabContentStart="60dp"
+ app:tabIndicatorColor="@android:color/white"/>
+
+ <TextView
+ android:id="@android:id/empty"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:layout_below="@id/toolbar"
+ android:gravity="center"
+ android:text="@string/terminal_no_hosts_connected"
+ android:textAppearance="?android:attr/textAppearanceMedium"/>
+
+ <android.support.v4.view.ViewPager
+ android:id="@+id/console_flip"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:layout_below="@id/toolbar"
+ />
+
+ <RelativeLayout
+ android:id="@+id/console_password_group"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:layout_alignParentBottom="true"
+ android:background="#80000000"
+ android:fadingEdge="horizontal"
+ android:fadingEdgeLength="25dip"
+ android:padding="5dip"
+ android:visibility="gone"
+ >
+
+ <TextView
+ android:id="@+id/console_password_instructions"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="5dip"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:visibility="gone"
+ />
+
+ <EditText
+ android:id="@+id/console_password"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@+id/console_password_instructions"
+ android:password="true"
+ android:singleLine="true"
+ />
+
+ </RelativeLayout>
+
+ <RelativeLayout
+ android:id="@+id/console_boolean_group"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:layout_alignParentBottom="true"
+ android:background="#80000000"
+ android:fadingEdge="horizontal"
+ android:fadingEdgeLength="25dip"
+ android:padding="5dip"
+ android:visibility="gone"
+ >
+
+ <TextView
+ android:id="@+id/console_prompt"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ />
+
+ <Button
+ android:id="@+id/console_prompt_no"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentEnd="true"
+ android:layout_alignParentRight="true"
+ android:layout_below="@+id/console_prompt"
+ android:clickable="false"
+ android:paddingBottom="10dip"
+ android:paddingLeft="40dip"
+ android:paddingRight="40dip"
+ android:paddingTop="5dip"
+ android:text="@string/button_no"
+ />
+
+ <Button
+ android:id="@+id/console_prompt_yes"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@+id/console_prompt"
+ android:layout_toLeftOf="@+id/console_prompt_no"
+ android:paddingBottom="10dip"
+ android:paddingLeft="40dip"
+ android:paddingRight="40dip"
+ android:paddingTop="5dip"
+ android:text="@string/button_yes"
+ />
+
+ </RelativeLayout>
+
+ <LinearLayout
+ android:id="@+id/keyboard_group"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:layout_alignParentBottom="true"
+ android:background="#55000000"
+ android:orientation="horizontal"
+ android:padding="0dip"
+ android:visibility="gone">
+
+ <HorizontalScrollView
+ android:id="@+id/keyboard_hscroll"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="1"
+ android:padding="0dp"
+ android:scrollbars="none">
+
+ <LinearLayout
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:orientation="horizontal"
+ android:padding="0dp">
+
+ <Button
+ android:id="@+id/button_ctrl"
+ style="@style/KeyboardButton"
+ android:contentDescription="@string/image_description_toggle_control_character"
+ android:text="@string/button_key_ctrl"/>
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_esc"
+ style="@style/KeyboardButton"
+ android:contentDescription="@string/image_description_send_escape_character"
+ android:text="@string/button_key_esc"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_tab"
+ style="@style/KeyboardButton"
+ android:contentDescription="@string/image_description_send_tab_character"
+ android:text="@string/button_key_tab"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_up"
+ style="@style/KeyboardButton"
+ android:contentDescription="@string/image_description_up"
+ android:text="@string/button_key_up"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_down"
+ style="@style/KeyboardButton"
+ android:contentDescription="@string/image_description_down"
+ android:text="@string/button_key_down"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_left"
+ style="@style/KeyboardButton"
+ android:contentDescription="@string/image_description_left"
+ android:text="@string/button_key_left"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_right"
+ style="@style/KeyboardButton"
+ android:contentDescription="@string/image_description_right"
+ android:text="@string/button_key_right"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_home"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_home"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_end"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_end"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_pgup"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_pgup"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_pgdn"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_pgdn"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_f1"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_f1"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_f2"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_f2"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_f3"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_f3"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_f4"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_f4"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_f5"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_f5"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_f6"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_f6"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_f7"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_f7"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_f8"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_f8"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_f9"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_f9"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_f10"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_f10"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_f11"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_f11"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_f12"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_f12"/>
+ </LinearLayout>
+ </HorizontalScrollView>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <ImageView
+ android:id="@+id/button_keyboard"
+ style="@style/KeyboardKey"
+ android:background="#55b0b0f0"
+ android:contentDescription="@string/image_description_show_keyboard"
+ android:src="@drawable/button_keyboard"/>
+ </LinearLayout>
+
+</RelativeLayout>
diff --git a/app/src/main/res/layout-port/item_host.xml b/app/src/main/res/layout-port/item_host.xml
index 24d34ba..7ee7f0a 100644
--- a/app/src/main/res/layout-port/item_host.xml
+++ b/app/src/main/res/layout-port/item_host.xml
@@ -18,8 +18,8 @@
*/
-->
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@android:id/content"
+<RelativeLayout android:id="@android:id/content"
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dip"
@@ -27,31 +27,31 @@
<ImageView
android:id="@android:id/icon"
- android:src="@drawable/connected"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
- android:paddingTop="5dip"
android:contentDescription="@string/image_description_connected"
+ android:paddingTop="5dip"
+ android:src="@drawable/connected"
/>
-
+
<TextView
- android:id="@android:id/text1"
+ android:id="@android:id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:ellipsize="end"
android:paddingRight="20dip"
android:singleLine="true"
- android:ellipsize="end"
android:textAppearance="?android:attr/textAppearanceLarge"
/>
<TextView
- android:id="@android:id/text2"
+ android:id="@android:id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_below="@android:id/text1"
+ android:textAppearance="?android:attr/textAppearanceSmall"
/>
-
+
</RelativeLayout> \ No newline at end of file
diff --git a/app/src/main/res/layout/act_colors.xml b/app/src/main/res/layout/act_colors.xml
index 53f492c..9081e05 100644
--- a/app/src/main/res/layout/act_colors.xml
+++ b/app/src/main/res/layout/act_colors.xml
@@ -24,49 +24,43 @@
android:layout_height="fill_parent">
<LinearLayout
- android:orientation="horizontal"
+ android:id="@+id/spinners"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
- android:id="@+id/spinners">
+ android:orientation="horizontal">
<Spinner
android:id="@+id/fg"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_alignParentStart="true"
- android:layout_alignParentLeft="true"
- android:minHeight="60dp"
android:layout_weight="1"
android:gravity="center"
+ android:minHeight="60dp"
/>
<Spinner
android:id="@+id/bg"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_alignTop="@id/fg"
- android:layout_alignParentEnd="true"
- android:layout_alignParentRight="true"
- android:layout_toRightOf="@id/fg"
- android:minHeight="60dp"
android:layout_weight="1"
android:gravity="center"
+ android:minHeight="60dp"
/>
</LinearLayout>
<GridView
android:id="@+id/color_grid"
- android:layout_height="fill_parent"
android:layout_width="fill_parent"
- android:padding="10dp"
- android:verticalSpacing="10dp"
- android:horizontalSpacing="10dp"
- android:numColumns="auto_fit"
+ android:layout_height="fill_parent"
+ android:layout_below="@+id/spinners"
android:columnWidth="60dp"
- android:stretchMode="columnWidth"
android:gravity="center"
+ android:horizontalSpacing="10dp"
android:minHeight="60dp"
- android:layout_below="@+id/spinners"
+ android:numColumns="auto_fit"
+ android:padding="10dp"
+ android:stretchMode="columnWidth"
+ android:verticalSpacing="10dp"
/>
</RelativeLayout>
diff --git a/app/src/main/res/layout/act_console.xml b/app/src/main/res/layout/act_console.xml
index b2c0d08..4bc5ccb 100644
--- a/app/src/main/res/layout/act_console.xml
+++ b/app/src/main/res/layout/act_console.xml
@@ -18,20 +18,20 @@
*/
-->
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
- android:background="#ff000000"
- >
+ android:background="#ff000000">
<TextView
android:id="@android:id/empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
- android:text="@string/terminal_no_hosts_connected"
- android:textAppearance="?android:attr/textAppearanceMedium"
android:gravity="center"
- />
+ android:text="@string/terminal_no_hosts_connected"
+ android:textAppearance="?android:attr/textAppearanceMedium"/>
<android.support.v4.view.ViewPager
android:id="@+id/console_flip"
@@ -44,29 +44,29 @@
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
- android:padding="5dip"
android:background="#80000000"
android:fadingEdge="horizontal"
android:fadingEdgeLength="25dip"
+ android:padding="5dip"
android:visibility="gone"
>
<TextView
android:id="@+id/console_password_instructions"
+ android:layout_width="fill_parent"
android:layout_height="wrap_content"
+ android:layout_marginBottom="5dip"
android:textAppearance="?android:attr/textAppearanceMedium"
- android:layout_width="fill_parent"
android:visibility="gone"
- android:layout_marginBottom="5dip"
/>
<EditText
android:id="@+id/console_password"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
+ android:layout_below="@+id/console_password_instructions"
android:password="true"
android:singleLine="true"
- android:layout_below="@+id/console_password_instructions"
/>
</RelativeLayout>
@@ -76,46 +76,46 @@
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
- android:padding="5dip"
android:background="#80000000"
android:fadingEdge="horizontal"
android:fadingEdgeLength="25dip"
+ android:padding="5dip"
android:visibility="gone"
>
<TextView
android:id="@+id/console_prompt"
- android:layout_height="wrap_content"
android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
<Button
android:id="@+id/console_prompt_no"
- android:text="@string/button_no"
- android:paddingTop="5dip"
- android:paddingBottom="10dip"
- android:paddingLeft="40dip"
- android:paddingRight="40dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/console_prompt"
android:clickable="false"
+ android:paddingBottom="10dip"
+ android:paddingLeft="40dip"
+ android:paddingRight="40dip"
+ android:paddingTop="5dip"
+ android:text="@string/button_no"
/>
<Button
android:id="@+id/console_prompt_yes"
- android:text="@string/button_yes"
- android:paddingTop="5dip"
- android:paddingBottom="10dip"
- android:paddingLeft="40dip"
- android:paddingRight="40dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_toLeftOf="@+id/console_prompt_no"
android:layout_below="@+id/console_prompt"
+ android:layout_toLeftOf="@+id/console_prompt_no"
+ android:paddingBottom="10dip"
+ android:paddingLeft="40dip"
+ android:paddingRight="40dip"
+ android:paddingTop="5dip"
+ android:text="@string/button_yes"
/>
</RelativeLayout>
@@ -126,155 +126,201 @@
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="#55000000"
+ android:orientation="horizontal"
android:padding="0dip"
android:visibility="gone">
- <Button
- android:id="@+id/button_ctrl"
- android:layout_width="0px"
+ <HorizontalScrollView
+ android:id="@+id/keyboard_hscroll"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
android:layout_weight="1"
- android:layout_height="30dip"
- android:layout_margin="0dp"
- android:background="#55f0f0f0"
- android:contentDescription="@string/image_description_toggle_control_character"
android:padding="0dp"
- android:text="@string/button_key_ctrl"
- android:textSize="10dip"
- />
+ android:scrollbars="none">
- <View
- android:layout_width="1dp"
- android:layout_height="match_parent"
- android:background="#90000000"
- />
+ <LinearLayout
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:orientation="horizontal"
+ android:padding="0dp">
- <Button
- android:id="@+id/button_esc"
- android:layout_width="0px"
- android:layout_weight="1"
- android:layout_height="30dip"
- android:layout_margin="0dp"
- android:background="#55f0f0f0"
- android:contentDescription="@string/image_description_send_escape_character"
- android:padding="0dp"
- android:text="@string/button_key_esc"
- android:textSize="10dip"
- />
+ <Button
+ android:id="@+id/button_ctrl"
+ style="@style/KeyboardButton"
+ android:contentDescription="@string/image_description_toggle_control_character"
+ android:text="@string/button_key_ctrl"/>
- <View
- android:layout_width="1dp"
- android:layout_height="match_parent"
- android:background="#90000000"
- />
+ <View style="@style/KeyboardSeparator"/>
- <Button
- android:id="@+id/button_tab"
- android:layout_width="0px"
- android:layout_weight="1"
- android:layout_height="30dip"
- android:layout_margin="0dp"
- android:background="#55f0f0f0"
- android:contentDescription="@string/image_description_send_tab_character"
- android:padding="0dp"
- android:text="@string/button_key_tab"
- android:textSize="10dip"
- />
+ <Button
+ android:id="@+id/button_esc"
+ style="@style/KeyboardButton"
+ android:contentDescription="@string/image_description_send_escape_character"
+ android:text="@string/button_key_esc"/>
- <View
- android:layout_width="1dp"
- android:layout_height="match_parent"
- android:background="#90000000"
- />
+ <View style="@style/KeyboardSeparator"/>
- <Button
- android:id="@+id/button_up"
- android:layout_width="0px"
- android:layout_weight="1"
- android:layout_height="30dip"
- android:layout_margin="0dp"
- android:background="#55f0f0f0"
- android:contentDescription="@string/image_description_up"
- android:padding="0dp"
- android:text="@string/button_key_up"
- android:textSize="10dip"
- />
+ <Button
+ android:id="@+id/button_tab"
+ style="@style/KeyboardButton"
+ android:contentDescription="@string/image_description_send_tab_character"
+ android:text="@string/button_key_tab"/>
- <View
- android:layout_width="1dp"
- android:layout_height="match_parent"
- android:background="#90000000"
- />
+ <View style="@style/KeyboardSeparator"/>
- <Button
- android:id="@+id/button_down"
- android:layout_width="0px"
- android:layout_weight="1"
- android:layout_height="30dip"
- android:layout_margin="0dp"
- android:background="#55f0f0f0"
- android:contentDescription="@string/image_description_down"
- android:padding="0dp"
- android:text="@string/button_key_down"
- android:textSize="10dip"
- />
+ <Button
+ android:id="@+id/button_up"
+ style="@style/KeyboardButton"
+ android:contentDescription="@string/image_description_up"
+ android:text="@string/button_key_up"/>
- <View
- android:layout_width="1dp"
- android:layout_height="match_parent"
- android:background="#90000000"
- />
+ <View style="@style/KeyboardSeparator"/>
- <Button
- android:id="@+id/button_left"
- android:layout_width="0px"
- android:layout_weight="1"
- android:layout_height="30dip"
- android:layout_margin="0dp"
- android:background="#55f0f0f0"
- android:contentDescription="@string/image_description_left"
- android:padding="0dp"
- android:text="@string/button_key_left"
- android:textSize="10dip"
- />
+ <Button
+ android:id="@+id/button_down"
+ style="@style/KeyboardButton"
+ android:contentDescription="@string/image_description_down"
+ android:text="@string/button_key_down"/>
- <View
- android:layout_width="1dp"
- android:layout_height="match_parent"
- android:background="#90000000"
- />
+ <View style="@style/KeyboardSeparator"/>
- <Button
- android:id="@+id/button_right"
- android:layout_width="0px"
- android:layout_weight="1"
- android:layout_height="30dip"
- android:layout_margin="0dp"
- android:background="#55f0f0f0"
- android:contentDescription="@string/image_description_right"
- android:padding="0dp"
- android:text="@string/button_key_right"
- android:textSize="10dip"
- />
+ <Button
+ android:id="@+id/button_left"
+ style="@style/KeyboardButton"
+ android:contentDescription="@string/image_description_left"
+ android:text="@string/button_key_left"/>
- <View
- android:layout_width="1dp"
- android:layout_height="match_parent"
- android:background="#90000000"
- />
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_right"
+ style="@style/KeyboardButton"
+ android:contentDescription="@string/image_description_right"
+ android:text="@string/button_key_right"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_home"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_home"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_end"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_end"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_pgup"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_pgup"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_pgdn"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_pgdn"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_f1"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_f1"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_f2"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_f2"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_f3"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_f3"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_f4"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_f4"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_f5"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_f5"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_f6"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_f6"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_f7"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_f7"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_f8"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_f8"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_f9"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_f9"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_f10"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_f10"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_f11"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_f11"/>
+
+ <View style="@style/KeyboardSeparator"/>
+
+ <Button
+ android:id="@+id/button_f12"
+ style="@style/KeyboardButton"
+ android:text="@string/button_key_f12"/>
+ </LinearLayout>
+ </HorizontalScrollView>
+
+ <View style="@style/KeyboardSeparator"/>
<ImageView
android:id="@+id/button_keyboard"
- android:layout_width="0px"
- android:layout_weight="1"
- android:layout_height="30dip"
- android:layout_margin="0dp"
+ style="@style/KeyboardKey"
+ android:background="#55b0b0f0"
android:contentDescription="@string/image_description_show_keyboard"
- android:padding="0dp"
- android:src="@drawable/button_keyboard"
- android:background="#55f0f0f0"
- android:textSize="10dip"
- />
-
+ android:src="@drawable/button_keyboard"/>
</LinearLayout>
+
</RelativeLayout>
diff --git a/app/src/main/res/layout/act_eula.xml b/app/src/main/res/layout/act_eula.xml
new file mode 100644
index 0000000..f70188b
--- /dev/null
+++ b/app/src/main/res/layout/act_eula.xml
@@ -0,0 +1,90 @@
+<!--
+ ~ ConnectBot: simple, powerful, open-source SSH client for Android
+ ~ Copyright 2015 Kenny Root, Jeffrey Sharkey
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:context="org.connectbot.EulaActivity">
+
+ <ScrollView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ >
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:padding="10dip"
+ >
+
+ <TextView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="ConnectBot is a simple, powerful, open-source Secure Shell (SSH) client for your Android device."
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ />
+
+ <TextView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="10dip"
+ android:text="It can manage several SSH sessions, create secure tunnels, and copy/paste between other apps."
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ />
+
+ <TextView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:autoLink="web"
+ android:paddingTop="10dip"
+ android:text="@string/copyright_info"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ />
+
+ <TextView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="10dip"
+ android:text="About and Credits"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ />
+
+ <TextView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:autoLink="web"
+ android:paddingTop="10dip"
+ android:text="Copyright \u00a9 2007-2008 Kenny Root http://the-b.org, Jeffrey Sharkey http://jsharkey.org\n\nBased in part on the Trilead SSH2 client, provided under a BSD-style license. Copyright \u00a9 2007 Trilead AG. http://www.trilead.com\n\nAlso based on JTA Telnet/SSH client, provided under the GPLv2 license. Copyright \u00a9 Matthias L. Jugel, Marcus Meiner 1996-2005. http://www.javassh.org\n\nAlso based in part on the JSOCKS library, provided under the GNU LGPL license. http://jsocks.sourceforge.net\n\nAlso based in part on JZlib provided under a BSD-style license. Copyright \u00a9 JCraft, Inc., 2000-2004 http://www.jcraft.com"
+ android:textColor="#bebebe"
+ android:textSize="14sp"
+ />
+
+ <TextView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="10dip"
+ android:text="@string/msg_version"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ />
+
+ </LinearLayout>
+
+ </ScrollView>
+
+</RelativeLayout>
diff --git a/app/src/main/res/layout/act_generatepubkey.xml b/app/src/main/res/layout/act_generatepubkey.xml
index f10b80b..feb0ed9 100644
--- a/app/src/main/res/layout/act_generatepubkey.xml
+++ b/app/src/main/res/layout/act_generatepubkey.xml
@@ -20,166 +20,171 @@
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="fill_parent"
android:layout_height="wrap_content"
- android:scrollbars="vertical"
- android:layout_width="fill_parent">
+ android:scrollbars="vertical">
<TableLayout
- android:orientation="vertical"
+ android:layout_width="fill_parent"
android:layout_height="wrap_content"
+ android:orientation="vertical"
android:paddingLeft="10dip"
android:paddingRight="10dip"
- android:scrollbars="vertical"
- android:layout_width="fill_parent">
+ android:scrollbars="vertical">
<TableRow>
+
<TextView
- android:text="@string/prompt_nickname"
- android:paddingRight="10dip"
android:gravity="end|center_vertical"
- android:textAppearance="?android:attr/textAppearanceMedium" />
+ android:paddingRight="10dip"
+ android:text="@string/prompt_nickname"
+ android:textAppearance="?android:attr/textAppearanceMedium"/>
<EditText
android:id="@+id/nickname"
- android:hint="@string/prompt_nickname_hint_pubkey"
android:layout_height="wrap_content"
- android:singleLine="true"
- android:layout_weight="1" />
+ android:layout_weight="1"
+ android:hint="@string/prompt_nickname_hint_pubkey"
+ android:singleLine="true"/>
</TableRow>
<TableRow>
+
<TextView
- android:text="@string/prompt_type"
- android:paddingRight="10dip"
- android:textAppearance="?android:attr/textAppearanceMedium"
+ android:layout_gravity="center_vertical"
android:gravity="bottom|end"
- android:layout_gravity="center_vertical" />
+ android:paddingRight="10dip"
+ android:text="@string/prompt_type"
+ android:textAppearance="?android:attr/textAppearanceMedium"/>
<RadioGroup
android:id="@+id/key_type"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:checkedButton="@+id/rsa">
+ android:checkedButton="@+id/rsa"
+ android:orientation="horizontal">
<RadioButton
android:id="@+id/rsa"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="RSA"
- android:paddingRight="3dip"/>
+ android:paddingRight="3dip"
+ android:text="RSA"/>
<RadioButton
android:id="@+id/dsa"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="DSA"
- android:paddingRight="3dip"/>
+ android:paddingRight="3dip"
+ android:text="DSA"/>
<RadioButton
android:id="@+id/ec"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="EC" />
+ android:text="EC"/>
</RadioGroup>
</TableRow>
<TableRow>
+
<TextView
- android:text="@string/prompt_bits"
+ android:gravity="end|center_vertical"
android:paddingRight="10dip"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:gravity="end|center_vertical" />
+ android:text="@string/prompt_bits"
+ android:textAppearance="?android:attr/textAppearanceMedium"/>
<EditText
android:id="@+id/bits"
- android:inputType="number"
android:layout_height="wrap_content"
- android:text="1024"
+ android:layout_weight="1"
+ android:inputType="number"
android:singleLine="true"
- android:layout_weight="1" />
+ android:text="1024"/>
</TableRow>
<SeekBar
- android:layout_height="wrap_content"
android:id="@+id/bits_slider"
android:layout_width="fill_parent"
- android:paddingBottom="10dip"
+ android:layout_height="wrap_content"
android:max="3328"
- android:progress="256" />
+ android:paddingBottom="10dip"
+ android:progress="256"/>
<TextView
- android:text="@string/prompt_password_can_be_blank"
- android:gravity="start"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_width="wrap_content" />
+ android:gravity="start"
+ android:text="@string/prompt_password_can_be_blank"/>
<TableRow>
+
<TextView
- android:paddingRight="10dip"
- android:gravity="end|center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:text="@string/prompt_password" />
+ android:gravity="end|center_vertical"
+ android:paddingRight="10dip"
+ android:text="@string/prompt_password"
+ android:textAppearance="?android:attr/textAppearanceMedium"/>
<EditText
android:id="@+id/password1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:layout_weight="1"
android:password="true"
- android:singleLine="true"
- android:layout_weight="1" />
+ android:singleLine="true"/>
</TableRow>
<TableRow android:paddingBottom="6dip">
+
<LinearLayout
- android:paddingRight="10dip"
+ android:gravity="end|center_vertical"
android:orientation="vertical"
- android:gravity="end|center_vertical">
+ android:paddingRight="10dip">
<TextView
- android:gravity="end|bottom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:text="@string/prompt_password" />
+ android:gravity="end|bottom"
+ android:text="@string/prompt_password"
+ android:textAppearance="?android:attr/textAppearanceMedium"/>
<TextView
- android:gravity="end|top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceSmall"
- android:text="@string/prompt_again" />
+ android:gravity="end|top"
+ android:text="@string/prompt_again"
+ android:textAppearance="?android:attr/textAppearanceSmall"/>
</LinearLayout>
<EditText
android:id="@+id/password2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:layout_weight="1"
android:password="true"
- android:singleLine="true"
- android:layout_weight="1" />
+ android:singleLine="true"/>
</TableRow>
<CheckBox
+ android:id="@+id/unlock_at_startup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:id="@+id/unlock_at_startup"
- android:text="@string/pubkey_load_on_start" />
+ android:text="@string/pubkey_load_on_start"/>
<CheckBox
+ android:id="@+id/confirm_use"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:id="@+id/confirm_use"
- android:text="@string/pubkey_confirm_use" />
+ android:text="@string/pubkey_confirm_use"/>
<Button
+ android:id="@+id/save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:id="@+id/save"
- android:text="@string/pubkey_generate"
+ android:layout_marginTop="6dip"
android:enabled="false"
- android:layout_marginTop="6dip"/>
+ android:text="@string/pubkey_generate"/>
</TableLayout>
</ScrollView>
diff --git a/app/src/main/res/layout/act_help.xml b/app/src/main/res/layout/act_help.xml
index adf17f3..b4bb808 100644
--- a/app/src/main/res/layout/act_help.xml
+++ b/app/src/main/res/layout/act_help.xml
@@ -27,29 +27,29 @@
<LinearLayout
android:id="@+id/topics"
- android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
+ android:orientation="vertical"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
- android:text="@string/msg_version"
- android:paddingTop="2dip"
- android:textAppearance="?android:attr/textAppearanceSmall"
android:gravity="end"
android:paddingRight="2dip"
+ android:paddingTop="2dip"
+ android:text="@string/msg_version"
+ android:textAppearance="?android:attr/textAppearanceSmall"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
- android:text="@string/help_intro"
+ android:gravity="center_horizontal"
android:paddingTop="2dip"
+ android:text="@string/help_intro"
android:textAppearance="?android:attr/textAppearanceMedium"
- android:gravity="center_horizontal"
/>
</LinearLayout>
diff --git a/app/src/main/res/layout/act_help_topic.xml b/app/src/main/res/layout/act_help_topic.xml
index 7123d63..f02e35e 100644
--- a/app/src/main/res/layout/act_help_topic.xml
+++ b/app/src/main/res/layout/act_help_topic.xml
@@ -19,9 +19,9 @@
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
+ android:orientation="vertical"
>
<org.connectbot.util.HelpTopicView
diff --git a/app/src/main/res/layout/act_hostlist.xml b/app/src/main/res/layout/act_hostlist.xml
index a0214d4..647563c 100644
--- a/app/src/main/res/layout/act_hostlist.xml
+++ b/app/src/main/res/layout/act_hostlist.xml
@@ -20,36 +20,36 @@
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
+ android:orientation="vertical"
>
<LinearLayout
android:id="@+id/quickconnect"
- android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
- android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true"
+ android:orientation="horizontal"
>
<Spinner
android:id="@+id/transport_selection"
- android:layout_height="wrap_content"
android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
/>
<EditText
android:id="@+id/front_quickconnect"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:focusableInTouchMode="true"
android:hint="username@hostname:port"
android:inputType="textEmailAddress"
android:maxLines="1"
- android:ellipsize="end"
- android:focusableInTouchMode="true"
android:singleLine="true"/>
</LinearLayout>
@@ -65,10 +65,10 @@
android:id="@android:id/empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
+ android:layout_above="@+id/quickconnect"
+ android:gravity="center"
android:text="@string/list_host_empty"
android:textAppearance="?android:attr/textAppearanceMedium"
- android:gravity="center"
- android:layout_above="@+id/quickconnect"
/>
</RelativeLayout>
diff --git a/app/src/main/res/layout/act_portforwardlist.xml b/app/src/main/res/layout/act_portforwardlist.xml
index b8589d0..46393ae 100644
--- a/app/src/main/res/layout/act_portforwardlist.xml
+++ b/app/src/main/res/layout/act_portforwardlist.xml
@@ -19,22 +19,24 @@
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
+ android:orientation="vertical"
>
- <ListView android:id="@android:id/list"
+ <ListView
+ android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
/>
- <TextView android:id="@android:id/empty"
+ <TextView
+ android:id="@android:id/empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
+ android:gravity="center"
android:text="@string/portforward_list_empty"
android:textAppearance="?android:attr/textAppearanceMedium"
- android:gravity="center"
/>
</LinearLayout>
diff --git a/app/src/main/res/layout/act_pubkeylist.xml b/app/src/main/res/layout/act_pubkeylist.xml
index ceabb52..0737d05 100644
--- a/app/src/main/res/layout/act_pubkeylist.xml
+++ b/app/src/main/res/layout/act_pubkeylist.xml
@@ -19,22 +19,24 @@
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
+ android:orientation="vertical"
>
- <ListView android:id="@android:id/list"
+ <ListView
+ android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
/>
- <TextView android:id="@android:id/empty"
+ <TextView
+ android:id="@android:id/empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
+ android:gravity="center"
android:text="@string/pubkey_list_empty"
android:textAppearance="?android:attr/textAppearanceMedium"
- android:gravity="center"
/>
</LinearLayout>
diff --git a/app/src/main/res/layout/act_wizard.xml b/app/src/main/res/layout/act_wizard.xml
deleted file mode 100644
index 97205b9..0000000
--- a/app/src/main/res/layout/act_wizard.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
- * ConnectBot: simple, powerful, open-source SSH client for Android
- * Copyright 2007 Kenny Root, Jeffrey Sharkey
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:gravity="end"
- >
-
- <ViewFlipper
- android:id="@+id/wizard_flipper"
- android:layout_width="fill_parent"
- android:layout_height="0dip"
- android:layout_weight="1"
- />
-
- <LinearLayout
- android:orientation="horizontal"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:padding="5dip"
- >
-
- <Button
- android:id="@+id/action_prev"
- android:layout_width="120dip"
- android:layout_height="wrap_content"
- android:drawableLeft="@drawable/ic_btn_back"
- android:text="Cancel"
- android:gravity="center"
- />
-
- <Button
- android:id="@+id/action_next"
- android:layout_width="120dip"
- android:layout_height="wrap_content"
- android:drawableRight="@drawable/ic_btn_next"
- android:text="Agree"
- android:gravity="center"
- />
-
- </LinearLayout>
-
-</LinearLayout>
diff --git a/app/src/main/res/layout/dia_changepassword.xml b/app/src/main/res/layout/dia_changepassword.xml
index fe5f1dc..7f0d5b2 100644
--- a/app/src/main/res/layout/dia_changepassword.xml
+++ b/app/src/main/res/layout/dia_changepassword.xml
@@ -26,64 +26,67 @@
>
<TableRow android:id="@+id/old_password_prompt">
+
<TextView
- android:text="@string/prompt_old_password"
- android:paddingRight="10dip"
+ android:layout_width="wrap_content"
android:gravity="end|center_vertical"
+ android:paddingRight="10dip"
+ android:text="@string/prompt_old_password"
android:textAppearance="?android:attr/textAppearanceMedium"
- android:layout_width="wrap_content"
/>
<EditText
android:id="@+id/old_password"
android:layout_width="200dip"
android:layout_height="wrap_content"
- android:singleLine="true"
android:password="true"
+ android:singleLine="true"
/>
</TableRow>
<TableRow>
+
<TextView
- android:text="@string/prompt_password"
- android:paddingRight="10dip"
+ android:layout_width="wrap_content"
android:gravity="end|center_vertical"
+ android:paddingRight="10dip"
+ android:text="@string/prompt_password"
android:textAppearance="?android:attr/textAppearanceMedium"
- android:layout_width="wrap_content"
/>
<EditText
android:id="@+id/password1"
android:layout_width="200dip"
android:layout_height="wrap_content"
- android:singleLine="true"
android:password="true"
+ android:singleLine="true"
/>
</TableRow>
<TableRow>
+
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:orientation="vertical"
android:gravity="end"
+ android:orientation="vertical"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="@string/prompt_password"
- android:paddingRight="10dip"
android:gravity="end|bottom"
+ android:paddingRight="10dip"
+ android:text="@string/prompt_password"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="@string/prompt_again"
- android:paddingRight="10dip"
android:gravity="end|top"
+ android:paddingRight="10dip"
+ android:text="@string/prompt_again"
android:textAppearance="?android:attr/textAppearanceSmall"
/>
</LinearLayout>
@@ -92,8 +95,8 @@
android:id="@+id/password2"
android:layout_width="200dip"
android:layout_height="wrap_content"
- android:singleLine="true"
android:password="true"
+ android:singleLine="true"
/>
</TableRow>
</TableLayout>
diff --git a/app/src/main/res/layout/dia_gatherentropy.xml b/app/src/main/res/layout/dia_gatherentropy.xml
index 8c7153a..2fc4a60 100644
--- a/app/src/main/res/layout/dia_gatherentropy.xml
+++ b/app/src/main/res/layout/dia_gatherentropy.xml
@@ -19,9 +19,9 @@
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:orientation="vertical"
android:paddingLeft="10dip"
android:paddingRight="10dip"
>
@@ -29,16 +29,16 @@
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
+ android:gravity="center"
android:text="@string/pubkey_touch_hint"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:gravity="center"/>
+ android:textAppearance="?android:attr/textAppearanceMedium"/>
<org.connectbot.util.EntropyView
android:id="@+id/entropy"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
- android:background="#666666ff"
android:layout_marginBottom="10dip"
android:layout_marginTop="10dip"
+ android:background="#666666ff"
android:drawingCacheQuality="auto"/>
</LinearLayout>
diff --git a/app/src/main/res/layout/dia_keyboard_shortcuts.xml b/app/src/main/res/layout/dia_keyboard_shortcuts.xml
new file mode 100644
index 0000000..b6fb589
--- /dev/null
+++ b/app/src/main/res/layout/dia_keyboard_shortcuts.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ ConnectBot: simple, powerful, open-source SSH client for Android
+ ~ Copyright 2015 Kenny Root, Jeffrey Sharkey
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+ <ScrollView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content">
+
+ <TableLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:padding="24dip"
+ android:stretchColumns="1">
+ <TableRow>
+ <TextView
+ android:text="Ctrl-Shift-V"
+ android:padding="3dip"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ />
+ <TextView
+ android:text="@string/console_menu_paste"
+ android:padding="3dip"
+ android:gravity="end"
+ android:layout_weight="1"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ />
+ </TableRow>
+
+ <TableRow>
+ <TextView
+ android:text="Ctrl and +"
+ android:padding="3dip"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ />
+ <TextView
+ android:text="@string/increase_font_size"
+ android:padding="3dip"
+ android:layout_weight="1"
+ android:gravity="end"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ />
+ </TableRow>
+
+ <TableRow>
+ <TextView
+ android:text="Ctrl and -"
+ android:padding="3dip"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ />
+ <TextView
+ android:text="@string/decrease_font_size"
+ android:padding="3dip"
+ android:gravity="end"
+ android:layout_weight="1"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ />
+ </TableRow>
+
+ </TableLayout>
+
+ </ScrollView>
+</RelativeLayout>
diff --git a/app/src/main/res/layout/dia_password.xml b/app/src/main/res/layout/dia_password.xml
index 599af83..148e197 100644
--- a/app/src/main/res/layout/dia_password.xml
+++ b/app/src/main/res/layout/dia_password.xml
@@ -28,10 +28,10 @@
<EditText
android:id="@android:id/text1"
android:layout_width="250dip"
- android:singleLine="true"
android:layout_height="wrap_content"
+ android:hint="@string/prompt_password"
android:password="true"
- android:hint="Password"
+ android:singleLine="true"
/>
</LinearLayout>
diff --git a/app/src/main/res/layout/dia_portforward.xml b/app/src/main/res/layout/dia_portforward.xml
index ed6aa40..f2ef3ed 100644
--- a/app/src/main/res/layout/dia_portforward.xml
+++ b/app/src/main/res/layout/dia_portforward.xml
@@ -19,8 +19,8 @@
-->
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_height="fill_parent"
android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
android:scrollbars="vertical"
>
@@ -32,72 +32,77 @@
>
<TableRow>
+
<TextView
- android:text="@string/prompt_nickname"
- android:paddingRight="10dip"
android:gravity="end|center_vertical"
+ android:paddingRight="10dip"
+ android:text="@string/prompt_nickname"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
<EditText
android:id="@+id/nickname"
- android:hint="Internal Webserver"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
- android:singleLine="true"
android:layout_weight="1"
+ android:hint="Internal Webserver"
+ android:singleLine="true"
/>
</TableRow>
<TableRow>
+
<TextView
- android:text="@string/prompt_type"
- android:paddingRight="10dip"
android:gravity="end|center_vertical"
+ android:paddingRight="10dip"
+ android:text="@string/prompt_type"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
- <Spinner android:id="@+id/portforward_type"
+ <Spinner
+ android:id="@+id/portforward_type"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
+ android:layout_weight="1"
android:entries="@array/list_portforward_types"
android:prompt="@string/prompt_type"
- android:layout_weight="1"
/>
</TableRow>
<TableRow>
+
<TextView
- android:text="@string/prompt_source_port"
- android:paddingRight="10dip"
android:gravity="end|center_vertical"
+ android:paddingRight="10dip"
+ android:text="@string/prompt_source_port"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
<EditText
android:id="@+id/portforward_source"
- android:hint="8080"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
+ android:hint="8080"
android:inputType="number"
/>
</TableRow>
<TableRow>
+
<TextView
- android:text="@string/prompt_destination"
- android:paddingRight="10dip"
android:gravity="end|center_vertical"
+ android:paddingRight="10dip"
+ android:text="@string/prompt_destination"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
<EditText
android:id="@+id/portforward_destination"
- android:hint="localhost:80"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
+ android:hint="localhost:80"
android:inputType="textEmailAddress"
/>
</TableRow>
diff --git a/app/src/main/res/layout/dia_resize.xml b/app/src/main/res/layout/dia_resize.xml
index 781243d..e31d58e 100644
--- a/app/src/main/res/layout/dia_resize.xml
+++ b/app/src/main/res/layout/dia_resize.xml
@@ -19,9 +19,9 @@
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:orientation="horizontal"
android:paddingLeft="10dip"
android:paddingRight="10dip"
>
@@ -30,17 +30,17 @@
android:id="@+id/width"
android:layout_width="100dip"
android:layout_height="wrap_content"
- android:singleLine="true"
android:numeric="integer"
+ android:singleLine="true"
android:text="80"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="x"
+ android:gravity="end|bottom"
android:paddingLeft="10dip"
android:paddingRight="10dip"
- android:gravity="end|bottom"
+ android:text="x"
android:textAppearance="?android:attr/textAppearanceLarge"
/>
@@ -49,7 +49,7 @@
android:id="@+id/height"
android:layout_width="100dip"
android:layout_height="wrap_content"
- android:singleLine="true"
android:numeric="integer"
+ android:singleLine="true"
android:text="25"/>
</LinearLayout>
diff --git a/app/src/main/res/layout/item_portforward.xml b/app/src/main/res/layout/item_portforward.xml
index 105ef58..f2214a7 100644
--- a/app/src/main/res/layout/item_portforward.xml
+++ b/app/src/main/res/layout/item_portforward.xml
@@ -19,10 +19,10 @@
-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="fill_parent"
android:layout_height="wrap_content"
- android:orientation="vertical"
android:gravity="start|center_vertical"
- android:layout_width="fill_parent"
+ android:orientation="vertical"
android:padding="10dip"
>
@@ -30,20 +30,20 @@
android:id="@android:id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceLarge"
- android:text="Tunnel Nickname"
- android:layout_alignParentTop="true"
- android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true"
+ android:layout_alignParentTop="true"
+ android:text="Tunnel Nickname"
+ android:textAppearance="?android:attr/textAppearanceLarge"
/>
<TextView
android:id="@android:id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceSmall"
- android:text="Local port 8080 to 192.168.1.1:80"
android:layout_below="@android:id/text1"
+ android:text="Local port 8080 to 192.168.1.1:80"
+ android:textAppearance="?android:attr/textAppearanceSmall"
/>
</RelativeLayout>
diff --git a/app/src/main/res/layout/item_pubkey.xml b/app/src/main/res/layout/item_pubkey.xml
index 34a7330..ed0c7d2 100644
--- a/app/src/main/res/layout/item_pubkey.xml
+++ b/app/src/main/res/layout/item_pubkey.xml
@@ -18,8 +18,9 @@
*/
-->
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout
android:id="@android:id/content"
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dip">
@@ -28,29 +29,31 @@
android:id="@android:id/icon1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:src="@drawable/pubkey"
- android:contentDescription="@string/image_description_key_is_locked"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
- android:layout_marginLeft="10dip"/>
+ android:layout_marginLeft="10dip"
+ android:contentDescription="@string/image_description_key_is_locked"
+ android:src="@drawable/pubkey"/>
<TextView
android:id="@android:id/text1"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceLarge"
- android:text="Key Example"
- android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
- android:bufferType="normal" android:layout_width="wrap_content" android:layout_toLeftOf="@android:id/icon1"/>
+ android:layout_alignParentStart="true"
+ android:layout_toLeftOf="@android:id/icon1"
+ android:bufferType="normal"
+ android:text="Key Example"
+ android:textAppearance="?android:attr/textAppearanceLarge"/>
<TextView
android:id="@android:id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceSmall"
- android:text="DSA 1024-bit"
android:layout_below="@android:id/text1"
+ android:text="DSA 1024-bit"
+ android:textAppearance="?android:attr/textAppearanceSmall"
/>
</RelativeLayout>
diff --git a/app/src/main/res/layout/item_terminal.xml b/app/src/main/res/layout/item_terminal.xml
index 9a8ff19..b34c800 100644
--- a/app/src/main/res/layout/item_terminal.xml
+++ b/app/src/main/res/layout/item_terminal.xml
@@ -28,10 +28,10 @@
android:id="@+id/terminal_overlay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceLarge"
+ android:layout_centerInParent="true"
android:background="#aa000000"
android:padding="10dip"
- android:layout_centerInParent="true"
+ android:textAppearance="?android:attr/textAppearanceLarge"
/>
</RelativeLayout>
diff --git a/app/src/main/res/layout/wiz_eula.xml b/app/src/main/res/layout/wiz_eula.xml
deleted file mode 100644
index 228befe..0000000
--- a/app/src/main/res/layout/wiz_eula.xml
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
- * ConnectBot: simple, powerful, open-source SSH client for Android
- * Copyright 2007 Kenny Root, Jeffrey Sharkey
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
--->
-
-<ScrollView
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- >
-
- <LinearLayout
- android:orientation="vertical"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:padding="10dip"
- >
-
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="ConnectBot is a simple, powerful, open-source Secure Shell (SSH) client for your Android device."
- android:textAppearance="?android:attr/textAppearanceMedium"
- />
-
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:paddingTop="10dip"
- android:text="It can manage several SSH sessions, create secure tunnels, and copy/paste between other apps."
- android:textAppearance="?android:attr/textAppearanceMedium"
- />
-
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:paddingTop="10dip"
- android:autoLink="web"
- android:text="@string/copyright_info"
- android:textAppearance="?android:attr/textAppearanceSmall"
- />
-
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:paddingTop="10dip"
- android:text="About and Credits"
- android:textAppearance="?android:attr/textAppearanceMedium"
- />
-
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:paddingTop="10dip"
- android:autoLink="web"
- android:text="Copyright \u00a9 2007-2008 Kenny Root http://the-b.org, Jeffrey Sharkey http://jsharkey.org\n\nBased in part on the Trilead SSH2 client, provided under a BSD-style license. Copyright \u00a9 2007 Trilead AG. http://www.trilead.com\n\nAlso based on JTA Telnet/SSH client, provided under the GPLv2 license. Copyright \u00a9 Matthias L. Jugel, Marcus Meiner 1996-2005. http://www.javassh.org\n\nAlso based in part on the JSOCKS library, provided under the GNU LGPL license. http://jsocks.sourceforge.net\n\nAlso based in part on JZlib provided under a BSD-style license. Copyright \u00a9 JCraft, Inc., 2000-2004 http://www.jcraft.com"
- android:textSize="14sp"
- android:textColor="#bebebe"
- />
-
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:paddingTop="10dip"
- android:text="@string/msg_version"
- android:textAppearance="?android:attr/textAppearanceSmall"
- />
-
- </LinearLayout>
-
-</ScrollView>
diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml
index d19430f..bc6f6db 100644
--- a/app/src/main/res/values-ca/strings.xml
+++ b/app/src/main/res/values-ca/strings.xml
@@ -171,9 +171,6 @@
<string name="delete_message">Estas segur que vols esborrar \'%1$s\'?</string>
<string name="delete_pos">Sí, esborra</string>
<string name="delete_neg">Cancel·la</string>
- <string name="wizard_agree">Accepto</string>
- <string name="wizard_next">Següent</string>
- <string name="wizard_back">Enrere</string>
<string name="terminal_no_hosts_connected">No hi ha servidors connectats actualment</string>
<string name="terminal_connecting">Connectant a %1$s:%2$d via %3$s</string>
<string name="terminal_sucess">Clau de servidor \'%1$s\' verificada: %2$s</string>
diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml
index 1d38c19..18d80b4 100644
--- a/app/src/main/res/values-cs/strings.xml
+++ b/app/src/main/res/values-cs/strings.xml
@@ -166,9 +166,6 @@
<string name="delete_message">Určitě chcete smazat \'%1$s\'?</string>
<string name="delete_pos">Ano, smazat</string>
<string name="delete_neg">Zrušit</string>
- <string name="wizard_agree">Souhlasím</string>
- <string name="wizard_next">Další</string>
- <string name="wizard_back">Zpět</string>
<string name="terminal_no_hosts_connected">Žádný host není připojený</string>
<string name="terminal_connecting">Připojování k %1$s:%2$d přes %3$s</string>
<string name="terminal_failed">Selhalo ověření klíče hosta</string>
diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml
index 5cd6da7..1b98e6b 100644
--- a/app/src/main/res/values-da/strings.xml
+++ b/app/src/main/res/values-da/strings.xml
@@ -169,9 +169,6 @@
<string name="delete_message">Er du sikker på at du vil slette \'%1$s\'?</string>
<string name="delete_pos">Ja, slet</string>
<string name="delete_neg">Afbryd</string>
- <string name="wizard_agree">Godkend</string>
- <string name="wizard_next">Næste</string>
- <string name="wizard_back">Tilbage</string>
<string name="terminal_no_hosts_connected">Ingen forbindelser aktive i øjeblikket</string>
<string name="terminal_connecting">Forbinder til %1$s:%2$d via %3$s</string>
<string name="terminal_sucess">Verificeret vært \'%1$s\' nøgle: %2$s</string>
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index d9dcc40..1cda6a7 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -171,9 +171,6 @@
<string name="delete_message">Soll \'%1$s\' wirklich gelöscht werden?</string>
<string name="delete_pos">Ja, löschen</string>
<string name="delete_neg">Abbrechen</string>
- <string name="wizard_agree">Zustimmung</string>
- <string name="wizard_next">Weiter</string>
- <string name="wizard_back">Zurück</string>
<string name="terminal_no_hosts_connected">Zur Zeit keine Hosts verbunden</string>
<string name="terminal_connecting">Verbinde mit %1$s:%2$d mittels %3$s</string>
<string name="terminal_sucess">Host \'%1$s\' Schlüssel: %2$s bestätigt</string>
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index c0d8471..0ab0094 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -170,9 +170,6 @@
<string name="delete_message">¿Está seguro de que quiere eliminar \'%1$s\'?</string>
<string name="delete_pos">Sí, eliminar</string>
<string name="delete_neg">Cancelar</string>
- <string name="wizard_agree">De acuerdo</string>
- <string name="wizard_next">Siguiente</string>
- <string name="wizard_back">Atrás</string>
<string name="terminal_no_hosts_connected">No hay equipos conectados ahora</string>
<string name="terminal_connecting">Conectando a %1$s:%2$d via %3$s</string>
<string name="terminal_sucess">Host (equipo anfitrion) \'%1$s\' clave: %2$s verifiado.</string>
diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml
index a8462fc..19aac2f 100644
--- a/app/src/main/res/values-eu/strings.xml
+++ b/app/src/main/res/values-eu/strings.xml
@@ -172,9 +172,6 @@
<string name="delete_message">Ziur zaude \'%1$s\' ezabatu nahi duzula?</string>
<string name="delete_pos">Bai, ezabatu</string>
<string name="delete_neg">Utzi</string>
- <string name="wizard_agree">Ados</string>
- <string name="wizard_next">Hurrengoa</string>
- <string name="wizard_back">Atzera</string>
<string name="terminal_no_hosts_connected">Ez dago ostalaririk konektatuta une honetan</string>
<string name="terminal_connecting">%1$s:%2$d-ra konektatzen %3$s bidez</string>
<string name="terminal_sucess">Egiaztatutako ostalaria \'%1$s\' gakoa: %2$s</string>
diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml
index d17bd22..2311edf 100644
--- a/app/src/main/res/values-fi/strings.xml
+++ b/app/src/main/res/values-fi/strings.xml
@@ -168,9 +168,6 @@
<string name="delete_message">Oletko varma että haluat poistaa: \'%1$s\'?</string>
<string name="delete_pos">Kyllä, poista</string>
<string name="delete_neg">Peru</string>
- <string name="wizard_agree">Hyväksy</string>
- <string name="wizard_next">Seuraava</string>
- <string name="wizard_back">Edellinen</string>
<string name="terminal_no_hosts_connected">Yhteenkään palvelimeen ei ole yhdistetty</string>
<string name="terminal_connecting">Muodostetaan %3$s-yhteys palvelimeen %1$s:%2$d</string>
<string name="terminal_sucess">Varmennettiin palvelin \'%1$s\' avain: %2$s</string>
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 6c34f56..28afe2b 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -179,9 +179,6 @@
<string name="delete_message">Êtes-vous sûr de vouloir supprimer \'%1$s\' ?</string>
<string name="delete_pos">Oui, supprimer</string>
<string name="delete_neg">Annuler</string>
- <string name="wizard_agree">Accepter</string>
- <string name="wizard_next">Suivant</string>
- <string name="wizard_back">Précédent</string>
<string name="terminal_no_hosts_connected">Aucun hôte actuellement connecté</string>
<string name="terminal_connecting">Connexion à %1$s:%2$d via %3$s</string>
<string name="terminal_sucess">Clé de vérification de l\'hôte \'%1$s\' : %2$s</string>
diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml
index 10c0623..aae25e2 100644
--- a/app/src/main/res/values-he/strings.xml
+++ b/app/src/main/res/values-he/strings.xml
@@ -170,9 +170,6 @@
<string name="delete_message">האם אכן למחוק את \'%1$s\'?</string>
<string name="delete_pos">כן, למחוק</string>
<string name="delete_neg">ביטול</string>
- <string name="wizard_agree">מוסכם</string>
- <string name="wizard_next">הבא</string>
- <string name="wizard_back">הקודם</string>
<string name="terminal_no_hosts_connected">אין מארחים מחוברים כרגע</string>
<string name="terminal_connecting">מתבצעת התחברות אל %1$s:%2$d דרך %3$s</string>
<string name="terminal_sucess">מפתח של המארח המאומת \'%1$s\'‏: %2$s</string>
diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml
index 61becd0..9e71521 100644
--- a/app/src/main/res/values-hu/strings.xml
+++ b/app/src/main/res/values-hu/strings.xml
@@ -169,9 +169,6 @@
<string name="delete_message">Biztosan törli a \'%1$s\'-t?</string>
<string name="delete_pos">Igen, törlés</string>
<string name="delete_neg">Mégsem</string>
- <string name="wizard_agree">Elfogad</string>
- <string name="wizard_next">Következő</string>
- <string name="wizard_back">Vissza</string>
<string name="terminal_no_hosts_connected">Nincs csatlakozva</string>
<string name="terminal_connecting">Csatlakozás %1$s:%2$d a %3$s protokollon</string>
<string name="terminal_sucess">Azonosított \'%1$s\' gépnév kulcsa: %2$s</string>
diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml
index c8d93c9..6d89a84 100644
--- a/app/src/main/res/values-id/strings.xml
+++ b/app/src/main/res/values-id/strings.xml
@@ -168,9 +168,6 @@
<string name="delete_message">Apakah anda yakin ingin menghapus %1$s?</string>
<string name="delete_pos">Ya, hapus</string>
<string name="delete_neg">Batal</string>
- <string name="wizard_agree">Setuju</string>
- <string name="wizard_next">Selanjutnya</string>
- <string name="wizard_back">Sebelumnya</string>
<string name="terminal_no_hosts_connected">Tidak ada host yang saat ini terhubung</string>
<string name="terminal_connecting">Menyambungkan ke %1$s:%2$d melalui %3$s</string>
<string name="terminal_sucess">Host terverifikasi \'%1$s\' kunci: %2$s</string>
diff --git a/app/src/main/res/values-is/strings.xml b/app/src/main/res/values-is/strings.xml
index 174849a..81ccb65 100644
--- a/app/src/main/res/values-is/strings.xml
+++ b/app/src/main/res/values-is/strings.xml
@@ -148,9 +148,6 @@
<string name="delete_message">Ert þú viss um að þú viljir eyða \'%1$s\'?</string>
<string name="delete_pos">Já, eyða</string>
<string name="delete_neg">Hætta við</string>
- <string name="wizard_agree">Samþykkja</string>
- <string name="wizard_next">Næsta</string>
- <string name="wizard_back">Til baka</string>
<string name="terminal_no_hosts_connected">Engir þjónar tengdir í augnablikinu</string>
<string name="terminal_connecting">Tengist við %1$s:%2$d með %3$s</string>
<string name="terminal_failed">Ekki tókst að staðfesta lykil þjóns.</string>
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index abc690a..cfd0e2c 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -171,9 +171,6 @@
<string name="delete_message">Sei sicuro di voler eliminare \'%1$s\'?</string>
<string name="delete_pos">Sì, elimina</string>
<string name="delete_neg">Annulla</string>
- <string name="wizard_agree">Accetto</string>
- <string name="wizard_next">Successiva</string>
- <string name="wizard_back">Precedente</string>
<string name="terminal_no_hosts_connected">Nessun host attualmente connesso</string>
<string name="terminal_connecting">Connessione a %1$s:%2$d via %3$s</string>
<string name="terminal_sucess">Host verificato \'%1$s\' chiave: %2$s</string>
diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml
index b44efa8..34adda8 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -184,9 +184,6 @@
<string name="delete_message">\'%1$s\'を削除してよろしいですか?</string>
<string name="delete_pos">はい、削除します</string>
<string name="delete_neg">キャンセル</string>
- <string name="wizard_agree">同意します</string>
- <string name="wizard_next">次へ</string>
- <string name="wizard_back">戻る</string>
<string name="terminal_no_hosts_connected">接続済みのホストはありません.</string>
<string name="terminal_connecting">%1$s:%2$dに%3$sで接続しています</string>
<string name="terminal_sucess">ホスト\'%1$s\' キー%2$s を検証しました</string>
diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml
index 54d7d30..a350b18 100644
--- a/app/src/main/res/values-ko/strings.xml
+++ b/app/src/main/res/values-ko/strings.xml
@@ -156,9 +156,6 @@
<string name="list_delkey_del">삭제</string>
<string name="delete_pos">예, 삭제</string>
<string name="delete_neg">취소</string>
- <string name="wizard_agree">동의</string>
- <string name="wizard_next">다음</string>
- <string name="wizard_back">뒤로</string>
<string name="terminal_no_hosts_connected">현재 연결된 호스트가 없음</string>
<string name="terminal_connecting">%3$s(으)로 %1$s:%2$d에 연결 중</string>
<string name="terminal_failed">호스트 키를 확인할 수 없습니다.</string>
diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml
index 50ce19e..af4e09b 100644
--- a/app/src/main/res/values-nb/strings.xml
+++ b/app/src/main/res/values-nb/strings.xml
@@ -169,9 +169,6 @@
<string name="delete_message">Er du sikker på at du vil slette \'%1$s\'?</string>
<string name="delete_pos">Ja, slett</string>
<string name="delete_neg">Avbryt</string>
- <string name="wizard_agree">Godta</string>
- <string name="wizard_next">Neste</string>
- <string name="wizard_back">Tilbake</string>
<string name="terminal_no_hosts_connected">Ingen verter tilkoblet for øyeblikket</string>
<string name="terminal_connecting">Kobler til %1$s:%2$d via %3$s</string>
<string name="terminal_sucess">Verifiserte vert \'%1$s\' sin nøkkel: %2$s</string>
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index 1488b3a..93f5c02 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -169,9 +169,6 @@
<string name="delete_message">Weet je zeker dat je \'%1$s\' wilt verwijderen?</string>
<string name="delete_pos">Ja, verwijder</string>
<string name="delete_neg">Annuleren</string>
- <string name="wizard_agree">Ga akkoord</string>
- <string name="wizard_next">Volgende</string>
- <string name="wizard_back">Terug</string>
<string name="terminal_no_hosts_connected">Momenteel geen hosts verbonden</string>
<string name="terminal_connecting">Bezig met verbinden naar %1$s:%2$d via %3$s</string>
<string name="terminal_sucess">Gecontroleerde host \'%1$s\' sleutel: %2$s</string>
diff --git a/app/src/main/res/values-oc/strings.xml b/app/src/main/res/values-oc/strings.xml
index 9dcad52..a506fa1 100644
--- a/app/src/main/res/values-oc/strings.xml
+++ b/app/src/main/res/values-oc/strings.xml
@@ -71,9 +71,6 @@
<string name="list_delkey_backspace">Retorn enrèire</string>
<string name="list_delkey_del">Suprimir</string>
<string name="delete_neg">Anullar</string>
- <string name="wizard_agree">Acceptar</string>
- <string name="wizard_next">Seguent</string>
- <string name="wizard_back">Precedent</string>
<string name="terminal_connecting">Connexion a %1$s:%2$d via %3$s</string>
<string name="no">Non</string>
<string name="with_confirmation">Aprèp confirmacion</string>
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index 37c92f4..b605ae1 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -171,9 +171,6 @@
<string name="delete_message">Jesteś pewien, że chcesz usunąć \'%1$s\'?</string>
<string name="delete_pos">Tak, usuń</string>
<string name="delete_neg">Anuluj</string>
- <string name="wizard_agree">Akceptuj</string>
- <string name="wizard_next">Dalej</string>
- <string name="wizard_back">Wróć</string>
<string name="terminal_no_hosts_connected">Żaden host nie jest obecnie połączony</string>
<string name="terminal_connecting">Łączenie z hostem %1$s:%2$d przez %3$s</string>
<string name="terminal_sucess">Host \'%1$s \' zweryfikowany kluczem: %2$s</string>
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index 7aadeaa..a7e9570 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -171,9 +171,6 @@
<string name="delete_message">Certeza que quer deletar \'%1$s\' ?</string>
<string name="delete_pos">Sim, apagar</string>
<string name="delete_neg">Cancelar</string>
- <string name="wizard_agree">Aceito</string>
- <string name="wizard_next">Próximo</string>
- <string name="wizard_back">Voltar</string>
<string name="terminal_no_hosts_connected">Sem host conectado atualmente</string>
<string name="terminal_connecting">Conectando no %1$s:%2$d via %3$s</string>
<string name="terminal_sucess">"Anfitrião comprovado \'%1$s\' chave: %2$s"</string>
diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml
index 70be69b..d1fc2cd 100644
--- a/app/src/main/res/values-pt/strings.xml
+++ b/app/src/main/res/values-pt/strings.xml
@@ -169,9 +169,6 @@
<string name="delete_message">Tem a certeza que deseja eliminar \'%1$s\'?</string>
<string name="delete_pos">Sim, apagar</string>
<string name="delete_neg">Cancelar</string>
- <string name="wizard_agree">Aceitar</string>
- <string name="wizard_next">Seguinte</string>
- <string name="wizard_back">Retroceder</string>
<string name="terminal_no_hosts_connected">Nenhum anfitrião ligado actualmente</string>
<string name="terminal_connecting">A ligar a %1$s:%2$d via %3$s</string>
<string name="terminal_sucess">Verificado anfitrião \'%1$s\' chave: %2$s</string>
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 6eae2ba..a3fa802 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -172,9 +172,6 @@
<string name="delete_message">Вы уверены, что хотите удалить \'%1$s\'?</string>
<string name="delete_pos">Да, удалить</string>
<string name="delete_neg">Отменить</string>
- <string name="wizard_agree">Соглашаюсь</string>
- <string name="wizard_next">Далее</string>
- <string name="wizard_back">Назад</string>
<string name="terminal_no_hosts_connected">Нет подключенных узлов</string>
<string name="terminal_connecting">Подключение к %1$s:%2$d через %3$s</string>
<string name="terminal_sucess">Проверенный узел \'%1$s\' ключ: %2$s</string>
diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml
index 47f4aea..60e0b87 100644
--- a/app/src/main/res/values-sk/strings.xml
+++ b/app/src/main/res/values-sk/strings.xml
@@ -169,9 +169,6 @@
<string name="delete_message">Naozaj chcete zmazať \'%1$s\'?</string>
<string name="delete_pos">Áno, vymazať</string>
<string name="delete_neg">Zrušiť</string>
- <string name="wizard_agree">Súhlasím</string>
- <string name="wizard_next">Ďalej</string>
- <string name="wizard_back">Späť</string>
<string name="terminal_no_hosts_connected">Žiadny hostiteľ nie je pripijený</string>
<string name="terminal_connecting">Pripájanie k %1$s:%2$d cez %3$s</string>
<string name="terminal_sucess">Hostiteľ overený \'%1$s\' kľúč: %2$s</string>
diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml
index 6adca1d..28d97d4 100644
--- a/app/src/main/res/values-sl/strings.xml
+++ b/app/src/main/res/values-sl/strings.xml
@@ -156,9 +156,6 @@
<string name="delete_message">Ali ste prepričani, da želite izbrisati \'%1$s\'?</string>
<string name="delete_pos">Da, izbriši.</string>
<string name="delete_neg">Prekliči</string>
- <string name="wizard_agree">Se strinjam</string>
- <string name="wizard_next">Naprej</string>
- <string name="wizard_back">Nazaj</string>
<string name="terminal_no_hosts_connected">Trenutno ni noben gostitelj povezan</string>
<string name="terminal_connecting">Povezujem se na %1$s:%2$d preko %3$s</string>
<string name="terminal_sucess">Preverjen gostitelj \'%1$s\' ključ: %2$s</string>
diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml
index c0613fb..a3430c5 100644
--- a/app/src/main/res/values-sr/strings.xml
+++ b/app/src/main/res/values-sr/strings.xml
@@ -184,9 +184,6 @@
<string name="delete_message">Желите ли заиста да обришете „%1$s“?</string>
<string name="delete_pos">Да, обриши</string>
<string name="delete_neg">Одустани</string>
- <string name="wizard_agree">Прихваћам</string>
- <string name="wizard_next">Следеће</string>
- <string name="wizard_back">Назад</string>
<string name="terminal_no_hosts_connected">Нема повезаних домаћина тренутно</string>
<string name="terminal_connecting">Повезујем се са %1$s:%2$d преко %3$s</string>
<string name="terminal_sucess">Verified host \'%1$s\' key: %2$s</string>
diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml
index 5151a14..5ea2a55 100644
--- a/app/src/main/res/values-sv/strings.xml
+++ b/app/src/main/res/values-sv/strings.xml
@@ -169,9 +169,6 @@
<string name="delete_message">Är du säker att du vill ta bort \'%1$s\'?</string>
<string name="delete_pos">Ja, ta bort</string>
<string name="delete_neg">Avbryt</string>
- <string name="wizard_agree">Godkänn</string>
- <string name="wizard_next">Nästa</string>
- <string name="wizard_back">Tillbaka</string>
<string name="terminal_no_hosts_connected">Inga värdar anslutna</string>
<string name="terminal_connecting">Ansluter till %1$s:%2$d via %3$s</string>
<string name="terminal_sucess">Verifierad värd \'%1$s\' nyckel: %2$s</string>
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
index dd9cfed..41cc553 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -171,9 +171,6 @@
<string name="delete_message">\'%1$s\' silinecek onaylıyor musunuz?</string>
<string name="delete_pos">Evet, sil</string>
<string name="delete_neg">İptal Et</string>
- <string name="wizard_agree">Kabul et</string>
- <string name="wizard_next">İleri</string>
- <string name="wizard_back">Geri dön</string>
<string name="terminal_no_hosts_connected">Hiçbir sunucuya bağlanılmadı</string>
<string name="terminal_connecting">%3$s ile %1$s:%2$d bağlanıyor</string>
<string name="terminal_sucess">Host doğrulaması \'%1$s\' anahtar: %2$s</string>
diff --git a/app/src/main/res/values-v14/styles.xml b/app/src/main/res/values-v14/styles.xml
deleted file mode 100644
index 3969010..0000000
--- a/app/src/main/res/values-v14/styles.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
- * ConnectBot: simple, powerful, open-source SSH client for Android
- * Copyright 2007 Kenny Root, Jeffrey Sharkey
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
--->
-<resources>
- <style name="NoTitle" parent="android:Theme.DeviceDefault">
- <item name="android:windowContentOverlay">@null</item>
- <item name="android:actionBarStyle">@style/SolidActionBar</item>
- </style>
-
- <style name="SolidActionBar" parent="android:Widget.Holo.ActionBar">
- <item name="android:background">#222222</item>
- </style>
-</resources>
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index cab5816..9e10f66 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -184,9 +184,6 @@
<string name="delete_message">确定要删除\'%1$s\'吗?</string>
<string name="delete_pos">是,删除</string>
<string name="delete_neg">取消</string>
- <string name="wizard_agree">同意</string>
- <string name="wizard_next">下一页</string>
- <string name="wizard_back">返回</string>
<string name="terminal_no_hosts_connected">当前没有连接主机</string>
<string name="terminal_connecting">正在通过%3$s连接到 %1$s:%2$d</string>
<string name="terminal_sucess">验证主机 %1$s 键值: %2$s</string>
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 1dd6541..4c4d541 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -184,9 +184,6 @@
<string name="delete_message">您確定要刪除 \'%1$s\'</string>
<string name="delete_pos">是,刪除</string>
<string name="delete_neg">取消</string>
- <string name="wizard_agree">同意</string>
- <string name="wizard_next">下一步</string>
- <string name="wizard_back">返回</string>
<string name="terminal_no_hosts_connected">目前沒有已連線主機</string>
<string name="terminal_connecting">連接到 %1$s:%2$d,通過 %3$s</string>
<string name="terminal_sucess">驗證主機 \'%1$s\' 金鑰: %2$s</string>
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index 4721490..23bb1d9 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -123,12 +123,6 @@
<item>@string/portforward_dynamic</item>
</string-array>
- <string-array name="list_wizard_topics" translatable="false">
- <item>Hints</item>
- <item>PhysicalKeyboard</item>
- <item>VirtualKeyboard</item>
- </string-array>
-
<string-array name="list_delkey" translatable="false">
<item>@string/list_delkey_del</item>
<item>@string/list_delkey_backspace</item>
diff --git a/app/src/main/res/values/notrans.xml b/app/src/main/res/values/notrans.xml
index 5dacca6..4311e3b 100644
--- a/app/src/main/res/values/notrans.xml
+++ b/app/src/main/res/values/notrans.xml
@@ -20,7 +20,7 @@
<resources>
<string name="app_name" translatable="false">ConnectBot</string>
- <string name="copyright_info" translatable="false">Before we get started, we need to get some legal information out of the way. ConnectBot is provided under the Apache License, Version 2.0 (the &#x201C;License&#x201D;). Here are a few key points:\n\nYou may not use this program except in compliance with the License. You may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &#x201C;AS IS&#x201D; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.</string>
+ <string name="copyright_info" translatable="false">ConnectBot is provided under the Apache License, Version 2.0 (the &#x201C;License&#x201D;). Here are a few key points:\n\nYou may not use this program except in compliance with the License. You may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &#x201C;AS IS&#x201D; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.</string>
<!-- "Up" button in virtual keyboard. -->
<string name="button_key_up">\u25B2</string>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index e08dbd4..c6086da 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -18,8 +18,8 @@
*/
-->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"
- xmlns:tools="http://schemas.android.com/tools">
+<resources xmlns:tools="http://schemas.android.com/tools"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Summary of what ConnectBot is; used as a short description in the Android running apps list -->
<string name="app_desc">"Simple, powerful, open-source SSH client."</string>
@@ -53,6 +53,16 @@
<string name="help_about">"About ConnectBot"</string>
<string name="help_keyboard">"Keyboard"</string>
+ <!-- Title for the help page with the terms & conditions of the app. -->
+ <string name="terms_and_conditions">"Terms &amp; Conditions"</string>
+
+ <!-- Title for the help dialog showing keyboard shortcuts. -->
+ <string name="keyboard_shortcuts">"Keyboard Shortcuts"</string>
+ <!-- Text in a keyboard shortcuts list lined up to keys which increase the terminal font-size. -->
+ <string name="increase_font_size">"Increase Font Size"</string>
+ <!-- Text in a keyboard shortcuts list lined up to keys which decrease the terminal font-size. -->
+ <string name="decrease_font_size">"Decrease Font Size"</string>
+
<string name="pubkey_generate">"Generate"</string>
<string name="pubkey_import">"Import"</string>
<string name="pubkey_delete">"Delete key"</string>
@@ -429,13 +439,6 @@
<string name="disconnect_all_pos">"Yes, disconnect"</string>
<string name="disconnect_all_neg">"Cancel"</string>
- <!-- Button to agree to license terms. -->
- <string name="wizard_agree">"Agree"</string>
- <!-- Button to go to the next page in the first time start-up wizard. -->
- <string name="wizard_next">"Next"</string>
- <!-- Button to go to the previous page in the first time start-up wizard. -->
- <string name="wizard_back">"Back"</string>
-
<string name="terminal_no_hosts_connected">"No hosts currently connected"</string>
<!-- Displayed in terminal when attempting to connect to a host. The first two
@@ -552,4 +555,37 @@
<string name="button_key_ctrl">Ctrl</string>
<!-- Text for the "Tab" button in virtual keyboard. -->
<string name="button_key_tab">Tab</string>
+
+ <!-- Text for the "Home" button in virtual keyboard. -->
+ <string name="button_key_home">Home</string>
+ <!-- Text for the "End" button in virtual keyboard. -->
+ <string name="button_key_end">End</string>
+ <!-- Text for the "Page Up" button in virtual keyboard. -->
+ <string name="button_key_pgup">PgUp</string>
+ <!-- Text for the "Page Down" button in virtual keyboard. -->
+ <string name="button_key_pgdn">PgDn</string>
+ <!-- Text for the "F1" button in virtual keyboard. -->
+ <string name="button_key_f1">F1</string>
+ <!-- Text for the "F2" button in virtual keyboard. -->
+ <string name="button_key_f2">F2</string>
+ <!-- Text for the "F3" button in virtual keyboard. -->
+ <string name="button_key_f3">F3</string>
+ <!-- Text for the "F4" button in virtual keyboard. -->
+ <string name="button_key_f4">F4</string>
+ <!-- Text for the "F5" button in virtual keyboard. -->
+ <string name="button_key_f5">F5</string>
+ <!-- Text for the "F6" button in virtual keyboard. -->
+ <string name="button_key_f6">F6</string>
+ <!-- Text for the "F7" button in virtual keyboard. -->
+ <string name="button_key_f7">F7</string>
+ <!-- Text for the "F8" button in virtual keyboard. -->
+ <string name="button_key_f8">F8</string>
+ <!-- Text for the "F9" button in virtual keyboard. -->
+ <string name="button_key_f9">F9</string>
+ <!-- Text for the "F10" button in virtual keyboard. -->
+ <string name="button_key_f10">F10</string>
+ <!-- Text for the "F11" button in virtual keyboard. -->
+ <string name="button_key_f11">F11</string>
+ <!-- Text for the "F12" button in virtual keyboard. -->
+ <string name="button_key_f12">F12</string>
</resources>
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 22e830b..3ad5fc0 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -18,8 +18,24 @@
*/
-->
<resources>
- <style name="NoTitle" parent="android:Theme">
- <item name="android:windowNoTitle">true</item>
- <item name="android:windowContentOverlay">@null</item>
+
+ <style name="KeyboardKey">
+ <item name="android:layout_width">45dip</item>
+ <item name="android:layout_height">30dip</item>
+ <item name="android:layout_margin">0dp</item>
+ <item name="android:padding">0dp</item>
+ <item name="android:textSize">10sp</item>
+ </style>
+
+
+ <style name="KeyboardButton" parent="KeyboardKey">
+ <item name="android:background">#55f0f0f0</item>
+ </style>
+
+
+ <style name="KeyboardSeparator">
+ <item name="android:layout_width">1dip</item>
+ <item name="android:layout_height">match_parent</item>
+ <item name="android:background">#90000000</item>
</style>
</resources>