aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorsatok <satok@google.com>2010-06-03 14:54:35 +0900
committersatok <satok@google.com>2010-06-03 15:25:18 +0900
commit4ff7bbcb97a6b71d84c927e3e4a30dd4dd2494b9 (patch)
tree50bd81f3826f769257a626229a729bb42e317090 /java
parent219d9d52e54571dbc974083d6a57e405fd94153b (diff)
downloadlatinime-4ff7bbcb97a6b71d84c927e3e4a30dd4dd2494b9.tar.gz
latinime-4ff7bbcb97a6b71d84c927e3e4a30dd4dd2494b9.tar.xz
latinime-4ff7bbcb97a6b71d84c927e3e4a30dd4dd2494b9.zip
Fix a bug that force closing happens even when SUPPRESS_EXCEPTION flag is on.
Change-Id: I927b11da1e62b147813fbbf01e2afce5915aed73
Diffstat (limited to 'java')
-rw-r--r--java/src/com/android/inputmethod/latin/KeyboardSwitcher.java16
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java2
-rw-r--r--java/src/com/android/inputmethod/latin/LatinImeLogger.java15
3 files changed, 21 insertions, 12 deletions
diff --git a/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java
index 3eb135ebe..948fe5aa6 100644
--- a/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java
@@ -197,8 +197,14 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
void setKeyboardMode(int mode, int imeOptions, boolean enableVoice) {
mSymbolsModeState = SYMBOLS_MODE_STATE_NONE;
mPreferSymbols = mode == MODE_SYMBOLS;
- setKeyboardMode(mode == MODE_SYMBOLS ? MODE_TEXT : mode, imeOptions, enableVoice,
- mPreferSymbols);
+ if (mode == MODE_SYMBOLS) {
+ mode = MODE_TEXT;
+ }
+ try {
+ setKeyboardMode(mode, imeOptions, enableVoice, mPreferSymbols);
+ } catch (RuntimeException e) {
+ LatinImeLogger.logOnException(mode + "," + imeOptions + "," + mPreferSymbols, e);
+ }
}
void setKeyboardMode(int mode, int imeOptions, boolean enableVoice, boolean isSymbols) {
@@ -213,11 +219,7 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
mInputView.setPreviewEnabled(true);
KeyboardId id = getKeyboardId(mode, imeOptions, isSymbols);
LatinKeyboard keyboard = null;
- try {
- keyboard = getKeyboard(id);
- } catch (RuntimeException e) {
- LatinImeLogger.logOnException(mode + "," + imeOptions + "," + isSymbols, e);
- }
+ keyboard = getKeyboard(id);
if (mode == MODE_PHONE) {
mInputView.setPhoneKeyboard(keyboard);
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 46fca372c..edc2e087f 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -275,6 +275,7 @@ public class LatinIME extends InputMethodService
};
@Override public void onCreate() {
+ LatinImeLogger.init(this);
super.onCreate();
//setStatusIcon(R.drawable.ime_qwerty);
mResources = getResources();
@@ -311,7 +312,6 @@ public class LatinIME extends InputMethodService
});
}
prefs.registerOnSharedPreferenceChangeListener(this);
- LatinImeLogger.init(this);
}
private void initSuggest(String locale) {
diff --git a/java/src/com/android/inputmethod/latin/LatinImeLogger.java b/java/src/com/android/inputmethod/latin/LatinImeLogger.java
index 7ad0ec63b..474281058 100644
--- a/java/src/com/android/inputmethod/latin/LatinImeLogger.java
+++ b/java/src/com/android/inputmethod/latin/LatinImeLogger.java
@@ -39,7 +39,7 @@ public class LatinImeLogger implements SharedPreferences.OnSharedPreferenceChang
private static final boolean DBG = true;
private static boolean sLOGPRINT = false;
// SUPPRESS_EXCEPTION should be true when released to public.
- private static final boolean SUPPRESS_EXCEPTION = false;
+ private static final boolean SUPPRESS_EXCEPTION = true;
// DEFAULT_LOG_ENABLED should be false when released to public.
private static final boolean DEFAULT_LOG_ENABLED = true;
@@ -48,6 +48,8 @@ public class LatinImeLogger implements SharedPreferences.OnSharedPreferenceChang
private static final long MINIMUMSENDSIZE = 40;
private static final char SEPARATER = ';';
private static final char NULL_CHAR = '\uFFFC';
+ private static final int EXCEPTION_MAX_LENGTH = 400;
+
private static final int ID_MANUALSUGGESTION = 0;
private static final int ID_AUTOSUGGESTIONCANCELLED = 1;
private static final int ID_AUTOSUGGESTION = 2;
@@ -368,7 +370,9 @@ public class LatinImeLogger implements SharedPreferences.OnSharedPreferenceChang
}
private void commitInternalAndStopSelf() {
- Log.e(TAG, "Exception was caused and let's die.");
+ if (DBG) {
+ Log.e(TAG, "Exception was thrown and let's die.");
+ }
commitInternal();
LatinIME ime = ((LatinIME) mContext);
ime.hideWindow();
@@ -539,10 +543,13 @@ public class LatinImeLogger implements SharedPreferences.OnSharedPreferenceChang
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(baos);
e.printStackTrace(ps);
- String exceptionString = new String(baos.toByteArray());
+ String exceptionString = new String(baos.toByteArray(), 0,
+ Math.min(EXCEPTION_MAX_LENGTH, baos.size()));
sLatinImeLogger.sendLogToDropBox(
ID_EXCEPTION, new String[] {metaData, exceptionString});
- Log.e(TAG, "Exception: " + exceptionString);
+ if (DBG) {
+ Log.e(TAG, "Exception: " + new String(baos.toByteArray()));
+ }
if (SUPPRESS_EXCEPTION) {
sLatinImeLogger.commitInternalAndStopSelf();
} else {