Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cc278700 authored by Dianne Hackborn's avatar Dianne Hackborn
Browse files

Fix issue #2097313: Latin IME crashes first use

Change-Id: I50c48b66aff5aff42e71058591d20775eba73fed
parent fb16e5cc
Loading
Loading
Loading
Loading
+24 −12
Original line number Diff line number Diff line
@@ -516,7 +516,11 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
        synchronized (mMethodMap) {
            if (!mSystemReady) {
                mSystemReady = true;
                try {
                    startInputInnerLocked();
                } catch (RuntimeException e) {
                    Log.w(TAG, "Unexpected exception", e);
                }
            }
        }
    }
@@ -749,7 +753,7 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
        if (!mSystemReady) {
            // If the system is not yet ready, we shouldn't be running third
            // party code.
            return new InputBindResult(null, mCurId, mCurSeq);
            return new InputBindResult(null, mCurMethodId, mCurSeq);
        }
        
        InputMethodInfo info = mMethodMap.get(mCurMethodId);
@@ -802,7 +806,11 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
        synchronized (mMethodMap) {
            if (mCurIntent != null && name.equals(mCurIntent.getComponent())) {
                mCurMethod = IInputMethod.Stub.asInterface(service);
                if (mCurClient != null) {
                if (mCurToken == null) {
                    Log.w(TAG, "Service connected without a token!");
                    unbindCurrentMethodLocked(false);
                    return;
                }
                if (DEBUG) Log.v(TAG, "Initiating attach with token: " + mCurToken);
                executeOrSendMessage(mCurMethod, mCaller.obtainMessageOO(
                        MSG_ATTACH_TOKEN, mCurMethod, mCurToken));
@@ -816,7 +824,6 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
            }
        }
    }
    }

    void onSessionCreated(IInputMethod method, IInputMethodSession session) {
        synchronized (mMethodMap) {
@@ -1002,6 +1009,11 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
            mShowExplicitlyRequested = true;
            mShowForced = true;
        }
        
        if (!mSystemReady) {
            return false;
        }
        
        boolean res = false;
        if (mCurMethod != null) {
            executeOrSendMessage(mCurMethod, mCaller.obtainMessageIOO(
@@ -1637,7 +1649,7 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
                    + " mShowExplicitlyRequested=" + mShowExplicitlyRequested
                    + " mShowForced=" + mShowForced
                    + " mInputShown=" + mInputShown);
            p.println("  mScreenOn=" + mScreenOn);
            p.println("  mSystemReady=" + mSystemReady + " mScreenOn=" + mScreenOn);
        }
        
        if (client != null) {