aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--AndroidManifest.xml3
-rw-r--r--build.xml3
-rw-r--r--res/layout/wiz_eula.xml5
-rw-r--r--res/values/strings.xml1
-rw-r--r--res/values/styles.xml5
-rw-r--r--res/xml/preferences.xml10
-rw-r--r--src/org/connectbot/ConsoleActivity.java3
-rw-r--r--src/org/connectbot/TerminalView.java2
-rw-r--r--src/org/connectbot/service/TerminalBridge.java42
9 files changed, 60 insertions, 14 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 374c452..7292c7b 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -31,7 +31,7 @@
<service android:name="org.connectbot.service.TerminalManager" android:configChanges="keyboardHidden|orientation" />
- <activity android:name=".ConsoleActivity" android:configChanges="keyboardHidden|orientation">
+ <activity android:name=".ConsoleActivity" android:configChanges="keyboardHidden|orientation" android:theme="@style/NoTitle">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
@@ -43,6 +43,7 @@
</application>
<uses-permission android:name="android.permission.INTERNET" />
+ <uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
diff --git a/build.xml b/build.xml
index 9b41a63..37a3fbc 100644
--- a/build.xml
+++ b/build.xml
@@ -282,7 +282,7 @@
</exec>
<loadfile property="android.manifest" srcFile="${basedir}/AndroidManifest.xml" encoding="${encoding}" />
-
+<!--
<taskdef resource="net/sf/antcontrib/antlib.xml" classpath="${lib.dir}/ant/ant-contrib.jar"/>
<propertyregex property="version.number" input="${android.manifest}" select="\1"
regexp='android:versionName="([0-9\.]+)"'
@@ -296,6 +296,7 @@
replace='\1${ant.project.name} ${version.number} (r${svn.revision} ${build.date})\2' />
<echo>Updated "msg_version" to: ${ant.project.name} ${version.number} (r${svn.revision} ${build.date})</echo>
+-->
</target>
</project>
diff --git a/res/layout/wiz_eula.xml b/res/layout/wiz_eula.xml
index dc3911b..e0df10b 100644
--- a/res/layout/wiz_eula.xml
+++ b/res/layout/wiz_eula.xml
@@ -34,7 +34,6 @@
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:paddingTop="10dip"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
@@ -77,7 +76,7 @@
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-20004 http://www.jcraft.com"
+ 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-20004 http://www.jcraft.com"
android:textSize="14sp"
android:textColor="#bebebe"
/>
@@ -93,4 +92,4 @@
</LinearLayout>
-</ScrollView> \ No newline at end of file
+</ScrollView>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index da920cb..91bd96a 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -90,6 +90,7 @@
<string name="pref_lastchecked">lastchecked</string>
<string name="pref_fullscreen">fullscreen</string>
<string name="pref_wifilock">wifilock</string>
+ <string name="pref_bumpyarrows">bumpyarrows</string>
<string name="list_keymode_right">Use right-side keys</string>
<string name="list_keymode_left">Use left-side keys</string>
diff --git a/res/values/styles.xml b/res/values/styles.xml
new file mode 100644
index 0000000..459ee80
--- /dev/null
+++ b/res/values/styles.xml
@@ -0,0 +1,5 @@
+<resources>
+ <style name="NoTitle" parent="android:Theme">
+ <item name="android:windowNoTitle">true</item>
+ </style>
+</resources>
diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml
index 8b6da2c..676d866 100644
--- a/res/xml/preferences.xml
+++ b/res/xml/preferences.xml
@@ -106,6 +106,14 @@
android:summary="Prevent Wi-Fi from turning off when a session is active"
android:defaultValue="true"
/>
+
+ <CheckBoxPreference
+ android:key="@string/pref_bumpyarrows"
+ android:title="Bumpy arrow keys"
+ android:summary="Vibrate when sending arrow keys from trackball, useful for laggy connections"
+ android:defaultValue="true"
+ />
+
</PreferenceCategory>
-</PreferenceScreen> \ No newline at end of file
+</PreferenceScreen>
diff --git a/src/org/connectbot/ConsoleActivity.java b/src/org/connectbot/ConsoleActivity.java
index f4e1bf8..8e7f771 100644
--- a/src/org/connectbot/ConsoleActivity.java
+++ b/src/org/connectbot/ConsoleActivity.java
@@ -281,7 +281,6 @@ public class ConsoleActivity extends Activity {
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
- requestWindowFeature(Window.FEATURE_NO_TITLE);
this.setContentView(R.layout.act_console);
clipboard = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
@@ -434,10 +433,12 @@ public class ConsoleActivity extends Activity {
// otherwise consume as pgup/pgdown for every 5 lines
if(moved > 5) {
((vt320)terminal.bridge.buffer).keyPressed(vt320.KEY_PAGE_DOWN, ' ', 0);
+ terminal.bridge.tryKeyVibrate();
totalY = 0;
return true;
} else if(moved < -5) {
((vt320)terminal.bridge.buffer).keyPressed(vt320.KEY_PAGE_UP, ' ', 0);
+ terminal.bridge.tryKeyVibrate();
totalY = 0;
return true;
}
diff --git a/src/org/connectbot/TerminalView.java b/src/org/connectbot/TerminalView.java
index dfcd6f8..f7da203 100644
--- a/src/org/connectbot/TerminalView.java
+++ b/src/org/connectbot/TerminalView.java
@@ -39,7 +39,7 @@ import android.widget.Toast;
public class TerminalView extends View {
private final Context context;
- protected final TerminalBridge bridge;
+ public final TerminalBridge bridge;
private final Paint paint;
private final Paint cursorPaint;
diff --git a/src/org/connectbot/service/TerminalBridge.java b/src/org/connectbot/service/TerminalBridge.java
index 60156eb..746cda3 100644
--- a/src/org/connectbot/service/TerminalBridge.java
+++ b/src/org/connectbot/service/TerminalBridge.java
@@ -49,6 +49,8 @@ import android.view.KeyCharacterMap;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnKeyListener;
+import android.os.Vibrator;
+import android.content.Context;
import com.trilead.ssh2.ChannelCondition;
import com.trilead.ssh2.Connection;
@@ -142,9 +144,7 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener, InteractiveCal
protected KeyCharacterMap keymap = KeyCharacterMap.load(KeyCharacterMap.BUILT_IN_KEYBOARD);
public int charWidth = -1;
-
public int charHeight = -1;
-
private int charDescent = -1;
private float fontSize = -1;
@@ -675,6 +675,11 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener, InteractiveCal
public void refreshKeymode() {
keymode = manager.getKeyMode();
}
+
+ private boolean bumpyArrows = false;
+ public Vibrator vibrator = null;
+
+ public static final long VIBRATE_DURATION = 30;
/**
* Handle onKey() events coming down from a {@link TerminalView} above us.
@@ -822,10 +827,26 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener, InteractiveCal
case KeyEvent.KEYCODE_DEL: stdin.write(0x08); return true;
case KeyEvent.KEYCODE_ENTER: ((vt320)buffer).keyTyped(vt320.KEY_ENTER, ' ', event.getMetaState()); return true;
- case KeyEvent.KEYCODE_DPAD_LEFT: ((vt320)buffer).keyPressed(vt320.KEY_LEFT, ' ', event.getMetaState()); return true;
- case KeyEvent.KEYCODE_DPAD_UP: ((vt320)buffer).keyPressed(vt320.KEY_UP, ' ', event.getMetaState()); return true;
- case KeyEvent.KEYCODE_DPAD_DOWN: ((vt320)buffer).keyPressed(vt320.KEY_DOWN, ' ', event.getMetaState()); return true;
- case KeyEvent.KEYCODE_DPAD_RIGHT: ((vt320)buffer).keyPressed(vt320.KEY_RIGHT, ' ', event.getMetaState()); return true;
+ case KeyEvent.KEYCODE_DPAD_LEFT:
+ ((vt320)buffer).keyPressed(vt320.KEY_LEFT, ' ', event.getMetaState());
+ this.tryKeyVibrate();
+ return true;
+
+ case KeyEvent.KEYCODE_DPAD_UP:
+ ((vt320)buffer).keyPressed(vt320.KEY_UP, ' ', event.getMetaState());
+ this.tryKeyVibrate();
+ return true;
+
+ case KeyEvent.KEYCODE_DPAD_DOWN:
+ ((vt320)buffer).keyPressed(vt320.KEY_DOWN, ' ', event.getMetaState());
+ this.tryKeyVibrate();
+ return true;
+
+ case KeyEvent.KEYCODE_DPAD_RIGHT:
+ ((vt320)buffer).keyPressed(vt320.KEY_RIGHT, ' ', event.getMetaState());
+ this.tryKeyVibrate();
+ return true;
+
case KeyEvent.KEYCODE_DPAD_CENTER:
// TODO: Add some visual indication of Ctrl state
if (ctrlPressed) {
@@ -853,6 +874,10 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener, InteractiveCal
return false;
}
+ public void tryKeyVibrate() {
+ if(bumpyArrows && vibrator != null)
+ vibrator.vibrate(VIBRATE_DURATION);
+ }
/**
* Request a different font size. Will make call to parentChanged() to make
@@ -886,6 +911,11 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener, InteractiveCal
int width = parent.getWidth();
int height = parent.getHeight();
+ this.bumpyArrows = manager.prefs.getBoolean(manager.res.getString(R.string.pref_bumpyarrows), true);
+ if(parent != null) {
+ this.vibrator = (Vibrator) parent.getContext().getSystemService(Context.VIBRATOR_SERVICE);
+ }
+
if (!forcedSize) {
// recalculate buffer size
int newTermWidth, newTermHeight;