From 98534dc065a828525129dc23aaca3ebd8834514c Mon Sep 17 00:00:00 2001 From: Ken Wakasa Date: Fri, 28 Feb 2014 16:13:51 +0900 Subject: [PATCH] Add missing null checks for getOwnerInstance() It may just return null. Change-Id: I778fb48262ef8af28a4af50b70bb94ace75a488c --- .../android/inputmethod/latin/LatinIME.java | 44 ++++++++++++++----- 1 file changed, 33 insertions(+), 11 deletions(-) diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 8ab1bb6a1..bfc578082 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -172,7 +172,11 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen } public void onCreate() { - final Resources res = getOwnerInstance().getResources(); + final LatinIME latinIme = getOwnerInstance(); + if (latinIme == null) { + return; + } + final Resources res = latinIme.getResources(); mDelayUpdateSuggestions = res.getInteger(R.integer.config_delay_update_suggestions); mDelayUpdateShiftState = res.getInteger(R.integer.config_delay_update_shift_state); mDoubleSpacePeriodTimeout = @@ -182,6 +186,9 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen @Override public void handleMessage(final Message msg) { final LatinIME latinIme = getOwnerInstance(); + if (latinIme == null) { + return; + } final KeyboardSwitcher switcher = latinIme.mKeyboardSwitcher; switch (msg.what) { case MSG_UPDATE_SUGGESTION_STRIP: @@ -239,7 +246,11 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen } public void postResumeSuggestions() { - if (!getOwnerInstance().mSettings.getCurrent().isSuggestionStripVisible()) { + final LatinIME latinIme = getOwnerInstance(); + if (latinIme == null) { + return; + } + if (!latinIme.mSettings.getCurrent().isSuggestionStripVisible()) { return; } removeMessages(MSG_RESUME_SUGGESTIONS); @@ -326,6 +337,9 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen resetPendingImsCallback(); mIsOrientationChanging = true; final LatinIME latinIme = getOwnerInstance(); + if (latinIme == null) { + return; + } if (latinIme.isInputViewShown()) { latinIme.mKeyboardSwitcher.saveKeyboardState(); } @@ -362,8 +376,10 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen mPendingSuccessiveImsCallback = true; } final LatinIME latinIme = getOwnerInstance(); - executePendingImsCallback(latinIme, editorInfo, restarting); - latinIme.onStartInputInternal(editorInfo, restarting); + if (latinIme != null) { + executePendingImsCallback(latinIme, editorInfo, restarting); + latinIme.onStartInputInternal(editorInfo, restarting); + } } } @@ -381,9 +397,11 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen PENDING_IMS_CALLBACK_DURATION); } final LatinIME latinIme = getOwnerInstance(); - executePendingImsCallback(latinIme, editorInfo, restarting); - latinIme.onStartInputViewInternal(editorInfo, restarting); - mAppliedEditorInfo = editorInfo; + if (latinIme != null) { + executePendingImsCallback(latinIme, editorInfo, restarting); + latinIme.onStartInputViewInternal(editorInfo, restarting); + mAppliedEditorInfo = editorInfo; + } } } @@ -393,8 +411,10 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen mHasPendingFinishInputView = true; } else { final LatinIME latinIme = getOwnerInstance(); - latinIme.onFinishInputViewInternal(finishingInput); - mAppliedEditorInfo = null; + if (latinIme != null) { + latinIme.onFinishInputViewInternal(finishingInput); + mAppliedEditorInfo = null; + } } } @@ -404,8 +424,10 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen mHasPendingFinishInput = true; } else { final LatinIME latinIme = getOwnerInstance(); - executePendingImsCallback(latinIme, null, false); - latinIme.onFinishInputInternal(); + if (latinIme != null) { + executePendingImsCallback(latinIme, null, false); + latinIme.onFinishInputInternal(); + } } } }