Fix an NPE.

Bug: 12397228
Change-Id: I7632931f0685fc8f0558946be66025b2bb2b5a3d
main
Jean Chalard 2014-01-10 13:07:30 +09:00
parent ee35e69eae
commit e1de87ae69
2 changed files with 31 additions and 3 deletions

View File

@ -69,7 +69,8 @@ public final class InputLogic {
// TODO : Remove this member when we can.
private final LatinIME mLatinIME;
private InputLogicHandler mInputLogicHandler;
// Never null.
private InputLogicHandler mInputLogicHandler = InputLogicHandler.NULL_HANDLER;
// TODO : make all these fields private as soon as possible.
// Current space state of the input method. This can be any of the above constants.
@ -105,7 +106,7 @@ public final class InputLogic {
mWordComposer = new WordComposer();
mEventInterpreter = new EventInterpreter(latinIME);
mConnection = new RichInputConnection(latinIME);
mInputLogicHandler = null;
mInputLogicHandler = InputLogicHandler.NULL_HANDLER;
}
/**
@ -145,7 +146,7 @@ public final class InputLogic {
}
resetComposingState(true /* alsoResetLastComposedWord */);
mInputLogicHandler.destroy();
mInputLogicHandler = null;
mInputLogicHandler = InputLogicHandler.NULL_HANDLER;
}
/**

View File

@ -40,6 +40,33 @@ public class InputLogicHandler implements Handler.Callback {
private static final int MSG_GET_SUGGESTED_WORDS = 1;
// A handler that never does anything. This is used for cases where events come before anything
// is initialized, though probably only the monkey can actually do this.
public static final InputLogicHandler NULL_HANDLER = new InputLogicHandler() {
@Override
public void destroy() {}
@Override
public boolean handleMessage(final Message msg) { return true; }
@Override
public void onStartBatchInput() {}
@Override
public void onUpdateBatchInput(final InputPointers batchPointers,
final int sequenceNumber) {}
@Override
public void onCancelBatchInput() {}
@Override
public void onEndBatchInput(final InputPointers batchPointers, final int sequenceNumber) {}
@Override
public void getSuggestedWords(final int sessionId, final int sequenceNumber,
final OnGetSuggestedWordsCallback callback) {}
};
private InputLogicHandler() {
mNonUIThreadHandler = null;
mLatinIME = null;
mInputLogic = null;
}
public InputLogicHandler(final LatinIME latinIME, final InputLogic inputLogic) {
final HandlerThread handlerThread = new HandlerThread(
InputLogicHandler.class.getSimpleName());