diff options
author | Kenny Root <kenny@the-b.org> | 2010-02-20 20:31:40 +0000 |
---|---|---|
committer | Kenny Root <kenny@the-b.org> | 2010-02-20 20:31:40 +0000 |
commit | 599f86ad71971189f00ad2e7f90e81d39356334b (patch) | |
tree | 12be37a6f1264050ad35f3c56df2802e302109b5 /src | |
parent | 8f71608665fb4feec37f3b68cfb660c3e358b87b (diff) | |
download | connectbot-599f86ad71971189f00ad2e7f90e81d39356334b.tar.gz connectbot-599f86ad71971189f00ad2e7f90e81d39356334b.tar.bz2 connectbot-599f86ad71971189f00ad2e7f90e81d39356334b.zip |
Make sure EastAsianWidth JNI is working before using it
git-svn-id: https://connectbot.googlecode.com/svn/trunk/connectbot@482 df292f66-193f-0410-a5fc-6d59da041ff2
Diffstat (limited to 'src')
-rw-r--r-- | src/org/connectbot/service/Relay.java | 2 | ||||
-rw-r--r-- | src/org/connectbot/util/EastAsianWidth.java | 15 |
2 files changed, 14 insertions, 3 deletions
diff --git a/src/org/connectbot/service/Relay.java b/src/org/connectbot/service/Relay.java index 6316159..18bf896 100644 --- a/src/org/connectbot/service/Relay.java +++ b/src/org/connectbot/service/Relay.java @@ -60,7 +60,7 @@ public class Relay implements Runnable { private char[] charArray; static { - useJNI = EastAsianWidth.available; + useJNI = EastAsianWidth.useJNI; } public Relay(TerminalBridge bridge, AbsTransport transport, vt320 buffer, String encoding) { diff --git a/src/org/connectbot/util/EastAsianWidth.java b/src/org/connectbot/util/EastAsianWidth.java index de2e175..b27cd48 100644 --- a/src/org/connectbot/util/EastAsianWidth.java +++ b/src/org/connectbot/util/EastAsianWidth.java @@ -17,12 +17,15 @@ package org.connectbot.util; +import android.util.Log; + /** * @author Kenny Root * */ public class EastAsianWidth { - public static boolean available = false; + public static boolean useJNI = false; + private static final String TAG = "ConnectBot.EastAsianWidth"; /** * @param charArray @@ -37,7 +40,15 @@ public class EastAsianWidth { static { try { System.loadLibrary("org_connectbot_util_EastAsianWidth"); - available = true; + + char[] testInput = {(char)0x4EBA}; + byte[] testResult = new byte[1]; + measure(testInput, 0, 1, testResult, true); + + if (testResult[0] == 1) + useJNI = true; + else + Log.d(TAG, "EastAsianWidth JNI measuring not available"); } catch (Exception e) { // Failure } catch (UnsatisfiedLinkError e1) { |