diff --git a/java/AndroidManifest.xml b/java/AndroidManifest.xml index 105eb042a89fb46e40ee976b23ee3bfcd4964cb7..d1b56c26c9276741f481e9ad0eb1ae8122336db8 100755 --- a/java/AndroidManifest.xml +++ b/java/AndroidManifest.xml @@ -1,7 +1,7 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.google.android.inputmethod.latin" android:versionCode="9" - android:versionName="0.15"> + android:versionName="0.16"> <uses-sdk android:minSdkVersion="8"></uses-sdk> diff --git a/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java index ef3fb8e1e6c722734925e864f2cfda225e329d17..a8be2fd44c5220c482b857cea3e74685ac18a98a 100644 --- a/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java +++ b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java @@ -392,7 +392,7 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha try { mInputView = (LatinKeyboardView) mInputMethodService.getLayoutInflater().inflate( LAYOUTS[newLayout], null); - } catch (RuntimeException e) { + } catch (OutOfMemoryError e) { LatinImeLogger.logOnException(mLayoutId + "," + newLayout, e); } mInputView.setExtentionLayoutResId(LAYOUTS[newLayout]); diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 5209745806444f39b3ad8a776083f1e9add49e27..6d620968adb81863364e5f39e0d61bb132c7c2f5 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -291,7 +291,11 @@ public class LatinIME extends InputMethodService if (inputLanguage == null) { inputLanguage = conf.locale.toString(); } - initSuggest(inputLanguage); + try { + initSuggest(inputLanguage); + } catch (OutOfMemoryError e) { + LatinImeLogger.logOnException(inputLanguage, e); + } mOrientation = conf.orientation; initSuggestPuncList(); diff --git a/java/src/com/android/inputmethod/latin/LatinImeLogger.java b/java/src/com/android/inputmethod/latin/LatinImeLogger.java index 83a791c130a25aab3443805f0c1430451d0cf87b..5a8b61dbcd219d779eac24ebfc2fb50ef612a69a 100644 --- a/java/src/com/android/inputmethod/latin/LatinImeLogger.java +++ b/java/src/com/android/inputmethod/latin/LatinImeLogger.java @@ -550,7 +550,7 @@ public class LatinImeLogger implements SharedPreferences.OnSharedPreferenceChang } } - public static void logOnException(String metaData, RuntimeException e) { + public static void logOnException(String metaData, Throwable e) { if (sLogEnabled) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); PrintStream ps = new PrintStream(baos); @@ -566,7 +566,11 @@ public class LatinImeLogger implements SharedPreferences.OnSharedPreferenceChang sLatinImeLogger.commitInternalAndStopSelf(); } else { sLatinImeLogger.commitInternal(); - throw e; + if (e instanceof RuntimeException) { + throw (RuntimeException) e; + } else if (e instanceof Error) { + throw (Error) e; + } } } } diff --git a/java/src/com/android/inputmethod/latin/LatinKeyboardView.java b/java/src/com/android/inputmethod/latin/LatinKeyboardView.java index 46f04b8a2c5c149760cab9968f358451edf723d0..014d773abe359b8ece5fdbd337e6d5c5e8fc553b 100644 --- a/java/src/com/android/inputmethod/latin/LatinKeyboardView.java +++ b/java/src/com/android/inputmethod/latin/LatinKeyboardView.java @@ -474,7 +474,7 @@ public class LatinKeyboardView extends KeyboardView { public void draw(Canvas c) { try { super.draw(c); - } catch (RuntimeException e) { + } catch (OutOfMemoryError e) { LatinImeLogger.logOnException("draw in LatinKeybaordView", e); } if (DEBUG_AUTO_PLAY) {