Merge "[IL131] Cleanup some cruft"
commit
c5bd35e45f
|
@ -36,25 +36,25 @@ public class Event {
|
||||||
// Should the types below be represented by separate classes instead? It would be cleaner
|
// Should the types below be represented by separate classes instead? It would be cleaner
|
||||||
// but probably a bit too much
|
// but probably a bit too much
|
||||||
// An event we don't handle in Latin IME, for example pressing Ctrl on a hardware keyboard.
|
// An event we don't handle in Latin IME, for example pressing Ctrl on a hardware keyboard.
|
||||||
final public static int EVENT_NOT_HANDLED = 0;
|
final public static int EVENT_TYPE_NOT_HANDLED = 0;
|
||||||
// A key press that is part of input, for example pressing an alphabetic character on a
|
// A key press that is part of input, for example pressing an alphabetic character on a
|
||||||
// hardware qwerty keyboard. It may be part of a sequence that will be re-interpreted later
|
// hardware qwerty keyboard. It may be part of a sequence that will be re-interpreted later
|
||||||
// through combination.
|
// through combination.
|
||||||
final public static int EVENT_INPUT_KEYPRESS = 1;
|
final public static int EVENT_TYPE_INPUT_KEYPRESS = 1;
|
||||||
// A toggle event is triggered by a key that affects the previous character. An example would
|
// A toggle event is triggered by a key that affects the previous character. An example would
|
||||||
// be a numeric key on a 10-key keyboard, which would toggle between 1 - a - b - c with
|
// be a numeric key on a 10-key keyboard, which would toggle between 1 - a - b - c with
|
||||||
// repeated presses.
|
// repeated presses.
|
||||||
final public static int EVENT_TOGGLE = 2;
|
final public static int EVENT_TYPE_TOGGLE = 2;
|
||||||
// A mode event instructs the combiner to change modes. The canonical example would be the
|
// A mode event instructs the combiner to change modes. The canonical example would be the
|
||||||
// hankaku/zenkaku key on a Japanese keyboard, or even the caps lock key on a qwerty keyboard
|
// hankaku/zenkaku key on a Japanese keyboard, or even the caps lock key on a qwerty keyboard
|
||||||
// if handled at the combiner level.
|
// if handled at the combiner level.
|
||||||
final public static int EVENT_MODE_KEY = 3;
|
final public static int EVENT_TYPE_MODE_KEY = 3;
|
||||||
// An event corresponding to a gesture.
|
// An event corresponding to a gesture.
|
||||||
final public static int EVENT_GESTURE = 4;
|
final public static int EVENT_TYPE_GESTURE = 4;
|
||||||
// An event corresponding to the manual pick of a suggestion.
|
// An event corresponding to the manual pick of a suggestion.
|
||||||
final public static int EVENT_SUGGESTION_PICKED = 5;
|
final public static int EVENT_TYPE_SUGGESTION_PICKED = 5;
|
||||||
// An event corresponding to a string generated by some software process.
|
// An event corresponding to a string generated by some software process.
|
||||||
final public static int EVENT_SOFTWARE_GENERATED_STRING = 6;
|
final public static int EVENT_TYPE_SOFTWARE_GENERATED_STRING = 6;
|
||||||
|
|
||||||
// 0 is a valid code point, so we use -1 here.
|
// 0 is a valid code point, so we use -1 here.
|
||||||
final public static int NOT_A_CODE_POINT = -1;
|
final public static int NOT_A_CODE_POINT = -1;
|
||||||
|
@ -66,7 +66,7 @@ public class Event {
|
||||||
// or dead-abovering.
|
// or dead-abovering.
|
||||||
final private static int FLAG_DEAD = 0x1;
|
final private static int FLAG_DEAD = 0x1;
|
||||||
|
|
||||||
final private int mType; // The type of event - one of the constants above
|
final private int mEventType; // The type of event - one of the constants above
|
||||||
// The code point associated with the event, if relevant. This is a unicode code point, and
|
// The code point associated with the event, if relevant. This is a unicode code point, and
|
||||||
// has nothing to do with other representations of the key. It is only relevant if this event
|
// has nothing to do with other representations of the key. It is only relevant if this event
|
||||||
// is of KEYPRESS type, but for a mode key like hankaku/zenkaku or ctrl, there is no code point
|
// is of KEYPRESS type, but for a mode key like hankaku/zenkaku or ctrl, there is no code point
|
||||||
|
@ -94,7 +94,7 @@ public class Event {
|
||||||
// Some flags that can't go into the key code. It's a bit field of FLAG_*
|
// Some flags that can't go into the key code. It's a bit field of FLAG_*
|
||||||
final private int mFlags;
|
final private int mFlags;
|
||||||
|
|
||||||
// If this is of type EVENT_SUGGESTION_PICKED, this must not be null (and must be null in
|
// If this is of type EVENT_TYPE_SUGGESTION_PICKED, this must not be null (and must be null in
|
||||||
// other cases).
|
// other cases).
|
||||||
final public SuggestedWordInfo mSuggestedWordInfo;
|
final public SuggestedWordInfo mSuggestedWordInfo;
|
||||||
|
|
||||||
|
@ -105,7 +105,7 @@ public class Event {
|
||||||
private Event(final int type, final CharSequence text, final int codePoint, final int keyCode,
|
private Event(final int type, final CharSequence text, final int codePoint, final int keyCode,
|
||||||
final int x, final int y, final SuggestedWordInfo suggestedWordInfo, final int flags,
|
final int x, final int y, final SuggestedWordInfo suggestedWordInfo, final int flags,
|
||||||
final Event next) {
|
final Event next) {
|
||||||
mType = type;
|
mEventType = type;
|
||||||
mText = text;
|
mText = text;
|
||||||
mCodePoint = codePoint;
|
mCodePoint = codePoint;
|
||||||
mKeyCode = keyCode;
|
mKeyCode = keyCode;
|
||||||
|
@ -116,7 +116,7 @@ public class Event {
|
||||||
mNextEvent = next;
|
mNextEvent = next;
|
||||||
// Sanity checks
|
// Sanity checks
|
||||||
// mSuggestedWordInfo is non-null if and only if the type is SUGGESTION_PICKED
|
// mSuggestedWordInfo is non-null if and only if the type is SUGGESTION_PICKED
|
||||||
if (EVENT_SUGGESTION_PICKED == mType) {
|
if (EVENT_TYPE_SUGGESTION_PICKED == mEventType) {
|
||||||
if (null == mSuggestedWordInfo) {
|
if (null == mSuggestedWordInfo) {
|
||||||
throw new RuntimeException("Wrong event: SUGGESTION_PICKED event must have a "
|
throw new RuntimeException("Wrong event: SUGGESTION_PICKED event must have a "
|
||||||
+ "non-null SuggestedWordInfo");
|
+ "non-null SuggestedWordInfo");
|
||||||
|
@ -131,13 +131,13 @@ public class Event {
|
||||||
|
|
||||||
public static Event createSoftwareKeypressEvent(final int codePoint, final int keyCode,
|
public static Event createSoftwareKeypressEvent(final int codePoint, final int keyCode,
|
||||||
final int x, final int y) {
|
final int x, final int y) {
|
||||||
return new Event(EVENT_INPUT_KEYPRESS, null /* text */, codePoint, keyCode, x, y,
|
return new Event(EVENT_TYPE_INPUT_KEYPRESS, null /* text */, codePoint, keyCode, x, y,
|
||||||
null /* suggestedWordInfo */, FLAG_NONE, null);
|
null /* suggestedWordInfo */, FLAG_NONE, null /* next */);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Event createHardwareKeypressEvent(final int codePoint, final int keyCode,
|
public static Event createHardwareKeypressEvent(final int codePoint, final int keyCode,
|
||||||
final Event next) {
|
final Event next) {
|
||||||
return new Event(EVENT_INPUT_KEYPRESS, null /* text */, codePoint, keyCode,
|
return new Event(EVENT_TYPE_INPUT_KEYPRESS, null /* text */, codePoint, keyCode,
|
||||||
Constants.EXTERNAL_KEYBOARD_COORDINATE, Constants.EXTERNAL_KEYBOARD_COORDINATE,
|
Constants.EXTERNAL_KEYBOARD_COORDINATE, Constants.EXTERNAL_KEYBOARD_COORDINATE,
|
||||||
null /* suggestedWordInfo */, FLAG_NONE, next);
|
null /* suggestedWordInfo */, FLAG_NONE, next);
|
||||||
}
|
}
|
||||||
|
@ -145,7 +145,7 @@ public class Event {
|
||||||
// This creates an input event for a dead character. @see {@link #FLAG_DEAD}
|
// This creates an input event for a dead character. @see {@link #FLAG_DEAD}
|
||||||
public static Event createDeadEvent(final int codePoint, final int keyCode, final Event next) {
|
public static Event createDeadEvent(final int codePoint, final int keyCode, final Event next) {
|
||||||
// TODO: add an argument or something if we ever create a software layout with dead keys.
|
// TODO: add an argument or something if we ever create a software layout with dead keys.
|
||||||
return new Event(EVENT_INPUT_KEYPRESS, null /* text */, codePoint, keyCode,
|
return new Event(EVENT_TYPE_INPUT_KEYPRESS, null /* text */, codePoint, keyCode,
|
||||||
Constants.EXTERNAL_KEYBOARD_COORDINATE, Constants.EXTERNAL_KEYBOARD_COORDINATE,
|
Constants.EXTERNAL_KEYBOARD_COORDINATE, Constants.EXTERNAL_KEYBOARD_COORDINATE,
|
||||||
null /* suggestedWordInfo */, FLAG_DEAD, next);
|
null /* suggestedWordInfo */, FLAG_DEAD, next);
|
||||||
}
|
}
|
||||||
|
@ -159,7 +159,7 @@ public class Event {
|
||||||
*/
|
*/
|
||||||
public static Event createEventForCodePointFromUnknownSource(final int codePoint) {
|
public static Event createEventForCodePointFromUnknownSource(final int codePoint) {
|
||||||
// TODO: should we have a different type of event for this? After all, it's not a key press.
|
// TODO: should we have a different type of event for this? After all, it's not a key press.
|
||||||
return new Event(EVENT_INPUT_KEYPRESS, null /* text */, codePoint, NOT_A_KEY_CODE,
|
return new Event(EVENT_TYPE_INPUT_KEYPRESS, null /* text */, codePoint, NOT_A_KEY_CODE,
|
||||||
Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE,
|
Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE,
|
||||||
null /* suggestedWordInfo */, FLAG_NONE, null /* next */);
|
null /* suggestedWordInfo */, FLAG_NONE, null /* next */);
|
||||||
}
|
}
|
||||||
|
@ -175,8 +175,8 @@ public class Event {
|
||||||
public static Event createEventForCodePointFromAlreadyTypedText(final int codePoint,
|
public static Event createEventForCodePointFromAlreadyTypedText(final int codePoint,
|
||||||
final int x, final int y) {
|
final int x, final int y) {
|
||||||
// TODO: should we have a different type of event for this? After all, it's not a key press.
|
// TODO: should we have a different type of event for this? After all, it's not a key press.
|
||||||
return new Event(EVENT_INPUT_KEYPRESS, null /* text */, codePoint, NOT_A_KEY_CODE, x, y,
|
return new Event(EVENT_TYPE_INPUT_KEYPRESS, null /* text */, codePoint, NOT_A_KEY_CODE,
|
||||||
null /* suggestedWordInfo */, FLAG_NONE, null /* next */);
|
x, y, null /* suggestedWordInfo */, FLAG_NONE, null /* next */);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -184,10 +184,10 @@ public class Event {
|
||||||
* @return an event for this suggestion pick.
|
* @return an event for this suggestion pick.
|
||||||
*/
|
*/
|
||||||
public static Event createSuggestionPickedEvent(final SuggestedWordInfo suggestedWordInfo) {
|
public static Event createSuggestionPickedEvent(final SuggestedWordInfo suggestedWordInfo) {
|
||||||
return new Event(EVENT_SUGGESTION_PICKED, suggestedWordInfo.mWord,
|
return new Event(EVENT_TYPE_SUGGESTION_PICKED, suggestedWordInfo.mWord,
|
||||||
NOT_A_CODE_POINT, NOT_A_KEY_CODE,
|
NOT_A_CODE_POINT, NOT_A_KEY_CODE,
|
||||||
Constants.SUGGESTION_STRIP_COORDINATE, Constants.SUGGESTION_STRIP_COORDINATE,
|
Constants.SUGGESTION_STRIP_COORDINATE, Constants.SUGGESTION_STRIP_COORDINATE,
|
||||||
suggestedWordInfo, FLAG_NONE, null);
|
suggestedWordInfo, FLAG_NONE, null /* next */);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -199,13 +199,26 @@ public class Event {
|
||||||
* @return an event for this text.
|
* @return an event for this text.
|
||||||
*/
|
*/
|
||||||
public static Event createSoftwareTextEvent(final CharSequence text, final int keyCode) {
|
public static Event createSoftwareTextEvent(final CharSequence text, final int keyCode) {
|
||||||
return new Event(EVENT_SOFTWARE_GENERATED_STRING, text, NOT_A_CODE_POINT, keyCode,
|
return new Event(EVENT_TYPE_SOFTWARE_GENERATED_STRING, text, NOT_A_CODE_POINT, keyCode,
|
||||||
Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE,
|
Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE,
|
||||||
null /* suggestedWordInfo */, FLAG_NONE, null /* next */);
|
null /* suggestedWordInfo */, FLAG_NONE, null /* next */);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates an input event representing the manual pick of a punctuation suggestion.
|
||||||
|
* @return an event for this suggestion pick.
|
||||||
|
*/
|
||||||
|
public static Event createPunctuationSuggestionPickedEvent(
|
||||||
|
final SuggestedWordInfo suggestedWordInfo) {
|
||||||
|
final int primaryCode = suggestedWordInfo.mWord.charAt(0);
|
||||||
|
return new Event(EVENT_TYPE_SUGGESTION_PICKED, suggestedWordInfo.mWord, primaryCode,
|
||||||
|
NOT_A_KEY_CODE, Constants.SUGGESTION_STRIP_COORDINATE,
|
||||||
|
Constants.SUGGESTION_STRIP_COORDINATE, suggestedWordInfo, FLAG_NONE,
|
||||||
|
null /* next */);
|
||||||
|
}
|
||||||
|
|
||||||
public static Event createNotHandledEvent() {
|
public static Event createNotHandledEvent() {
|
||||||
return new Event(EVENT_NOT_HANDLED, null /* text */, NOT_A_CODE_POINT, NOT_A_KEY_CODE,
|
return new Event(EVENT_TYPE_NOT_HANDLED, null /* text */, NOT_A_CODE_POINT, NOT_A_KEY_CODE,
|
||||||
Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE,
|
Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE,
|
||||||
null /* suggestedWordInfo */, FLAG_NONE, null);
|
null /* suggestedWordInfo */, FLAG_NONE, null);
|
||||||
}
|
}
|
||||||
|
@ -218,25 +231,26 @@ public class Event {
|
||||||
// Returns whether this is a fake key press from the suggestion strip. This happens with
|
// Returns whether this is a fake key press from the suggestion strip. This happens with
|
||||||
// punctuation signs selected from the suggestion strip.
|
// punctuation signs selected from the suggestion strip.
|
||||||
public boolean isSuggestionStripPress() {
|
public boolean isSuggestionStripPress() {
|
||||||
return EVENT_INPUT_KEYPRESS == mType && Constants.SUGGESTION_STRIP_COORDINATE == mX;
|
return EVENT_TYPE_SUGGESTION_PICKED == mEventType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isHandled() {
|
public boolean isHandled() {
|
||||||
return EVENT_NOT_HANDLED != mType;
|
return EVENT_TYPE_NOT_HANDLED != mEventType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public CharSequence getTextToCommit() {
|
public CharSequence getTextToCommit() {
|
||||||
switch (mType) {
|
switch (mEventType) {
|
||||||
case EVENT_MODE_KEY:
|
case EVENT_TYPE_MODE_KEY:
|
||||||
case EVENT_NOT_HANDLED:
|
case EVENT_TYPE_NOT_HANDLED:
|
||||||
case EVENT_TOGGLE:
|
case EVENT_TYPE_TOGGLE:
|
||||||
return "";
|
return "";
|
||||||
case EVENT_INPUT_KEYPRESS:
|
case EVENT_TYPE_INPUT_KEYPRESS:
|
||||||
return StringUtils.newSingleCodePointString(mCodePoint);
|
return StringUtils.newSingleCodePointString(mCodePoint);
|
||||||
case EVENT_GESTURE:
|
case EVENT_TYPE_GESTURE:
|
||||||
case EVENT_SOFTWARE_GENERATED_STRING:
|
case EVENT_TYPE_SOFTWARE_GENERATED_STRING:
|
||||||
|
case EVENT_TYPE_SUGGESTION_PICKED:
|
||||||
return mText;
|
return mText;
|
||||||
}
|
}
|
||||||
throw new RuntimeException("Unknown event type: " + mType);
|
throw new RuntimeException("Unknown event type: " + mEventType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -210,15 +210,7 @@ public final class InputLogic {
|
||||||
// So, LatinImeLogger logs "" as a user's input.
|
// So, LatinImeLogger logs "" as a user's input.
|
||||||
LatinImeLogger.logOnManualSuggestion("", suggestion, index, suggestedWords);
|
LatinImeLogger.logOnManualSuggestion("", suggestion, index, suggestedWords);
|
||||||
// Rely on onCodeInput to do the complicated swapping/stripping logic consistently.
|
// Rely on onCodeInput to do the complicated swapping/stripping logic consistently.
|
||||||
final int primaryCode = suggestion.charAt(0);
|
final Event event = Event.createPunctuationSuggestionPickedEvent(suggestionInfo);
|
||||||
// TODO: we should be using createSuggestionPickedEvent here, but for legacy reasons,
|
|
||||||
// onCodeInput is expected a software keypress event for a suggested punctuation
|
|
||||||
// because the current code is descended from a time where this information used not
|
|
||||||
// to be available. Fix this.
|
|
||||||
final Event event = Event.createSoftwareKeypressEvent(primaryCode,
|
|
||||||
Event.NOT_A_KEY_CODE /* keyCode*/,
|
|
||||||
Constants.SUGGESTION_STRIP_COORDINATE /* x */,
|
|
||||||
Constants.SUGGESTION_STRIP_COORDINATE /* y */);
|
|
||||||
if (ProductionFlag.USES_DEVELOPMENT_ONLY_DIAGNOSTICS) {
|
if (ProductionFlag.USES_DEVELOPMENT_ONLY_DIAGNOSTICS) {
|
||||||
ResearchLogger.latinIME_punctuationSuggestion(index, suggestion,
|
ResearchLogger.latinIME_punctuationSuggestion(index, suggestion,
|
||||||
false /* isBatchMode */, suggestedWords.mIsPrediction);
|
false /* isBatchMode */, suggestedWords.mIsPrediction);
|
||||||
|
|
Loading…
Reference in New Issue