am b084da2a: Merge changes I5092942a,I931c553f
* commit 'b084da2ae6622488779ddb3a66081610bfe96a66': [IL80] Reverse a test for clarity. [IL79] Some refactoringmain
commit
a8b37414f8
|
@ -912,7 +912,13 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
||||||
composingSpanEnd, mInputLogic.mConnection);
|
composingSpanEnd, mInputLogic.mConnection);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mInputLogic.onUpdateSelection(mSettings.getCurrent(), oldSelStart, oldSelEnd,
|
// If the keyboard is not visible, we don't need to do all the housekeeping work, as it
|
||||||
|
// will be reset when the keyboard shows up anyway.
|
||||||
|
// TODO: revisit this when LatinIME supports hardware keyboards.
|
||||||
|
// NOTE: the test harness subclasses LatinIME and overrides isInputViewShown().
|
||||||
|
// TODO: find a better way to simulate actual execution.
|
||||||
|
if (isInputViewShown() &&
|
||||||
|
mInputLogic.onUpdateSelection(mSettings.getCurrent(), oldSelStart, oldSelEnd,
|
||||||
newSelStart, newSelEnd, composingSpanStart, composingSpanEnd)) {
|
newSelStart, newSelEnd, composingSpanStart, composingSpanEnd)) {
|
||||||
mKeyboardSwitcher.updateShiftState();
|
mKeyboardSwitcher.updateShiftState();
|
||||||
}
|
}
|
||||||
|
|
|
@ -195,24 +195,9 @@ public final class InputLogic {
|
||||||
final int oldSelStart, final int oldSelEnd,
|
final int oldSelStart, final int oldSelEnd,
|
||||||
final int newSelStart, final int newSelEnd,
|
final int newSelStart, final int newSelEnd,
|
||||||
final int composingSpanStart, final int composingSpanEnd) {
|
final int composingSpanStart, final int composingSpanEnd) {
|
||||||
final boolean selectionChanged = oldSelStart != newSelStart || oldSelEnd != newSelEnd;
|
if (mConnection.isBelatedExpectedUpdate(oldSelStart, newSelStart, oldSelEnd, newSelEnd)) {
|
||||||
|
return false;
|
||||||
// if composingSpanStart and composingSpanEnd are -1, it means there is no composing
|
}
|
||||||
// span in the view - we can use that to narrow down whether the cursor was moved
|
|
||||||
// by us or not. If we are composing a word but there is no composing span, then
|
|
||||||
// we know for sure the cursor moved while we were composing and we should reset
|
|
||||||
// the state. TODO: rescind this policy: the framework never removes the composing
|
|
||||||
// span on its own accord while editing. This test is useless.
|
|
||||||
final boolean noComposingSpan = composingSpanStart == -1 && composingSpanEnd == -1;
|
|
||||||
|
|
||||||
// If the keyboard is not visible, we don't need to do all the housekeeping work, as it
|
|
||||||
// will be reset when the keyboard shows up anyway.
|
|
||||||
// TODO: revisit this when LatinIME supports hardware keyboards.
|
|
||||||
// NOTE: the test harness subclasses LatinIME and overrides isInputViewShown().
|
|
||||||
// TODO: find a better way to simulate actual execution.
|
|
||||||
// TODO: remove the #isInputViewShown() call from here.
|
|
||||||
if (mLatinIME.isInputViewShown() && !mConnection.isBelatedExpectedUpdate(oldSelStart,
|
|
||||||
newSelStart, oldSelEnd, newSelEnd)) {
|
|
||||||
// TODO: the following is probably better done in resetEntireInputState().
|
// TODO: the following is probably better done in resetEntireInputState().
|
||||||
// it should only happen when the cursor moved, and the very purpose of the
|
// it should only happen when the cursor moved, and the very purpose of the
|
||||||
// test below is to narrow down whether this happened or not. Likewise with
|
// test below is to narrow down whether this happened or not. Likewise with
|
||||||
|
@ -221,11 +206,19 @@ public final class InputLogic {
|
||||||
// state-related special processing to kick in.
|
// state-related special processing to kick in.
|
||||||
mSpaceState = SpaceState.NONE;
|
mSpaceState = SpaceState.NONE;
|
||||||
|
|
||||||
|
// if composingSpanStart and composingSpanEnd are -1, it means there is no composing
|
||||||
|
// span in the view - we can use that to narrow down whether the cursor was moved
|
||||||
|
// by us or not. If we are composing a word but there is no composing span, then
|
||||||
|
// we know for sure the cursor moved while we were composing and we should reset
|
||||||
|
// the state. TODO: rescind this policy: the framework never removes the composing
|
||||||
|
// span on its own accord while editing. This test is useless.
|
||||||
|
final boolean noComposingSpan = composingSpanStart == -1 && composingSpanEnd == -1;
|
||||||
|
final boolean selectionChanged = oldSelStart != newSelStart || oldSelEnd != newSelEnd;
|
||||||
|
|
||||||
// TODO: is it still necessary to test for composingSpan related stuff?
|
// TODO: is it still necessary to test for composingSpan related stuff?
|
||||||
final boolean selectionChangedOrSafeToReset = selectionChanged
|
final boolean selectionChangedOrSafeToReset = selectionChanged
|
||||||
|| (!mWordComposer.isComposingWord()) || noComposingSpan;
|
|| (!mWordComposer.isComposingWord()) || noComposingSpan;
|
||||||
final boolean hasOrHadSelection = (oldSelStart != oldSelEnd
|
final boolean hasOrHadSelection = (oldSelStart != oldSelEnd || newSelStart != newSelEnd);
|
||||||
|| newSelStart != newSelEnd);
|
|
||||||
final int moveAmount = newSelStart - oldSelStart;
|
final int moveAmount = newSelStart - oldSelStart;
|
||||||
if (selectionChangedOrSafeToReset && (hasOrHadSelection
|
if (selectionChangedOrSafeToReset && (hasOrHadSelection
|
||||||
|| !mWordComposer.moveCursorByAndReturnIfInsideComposingWord(moveAmount))) {
|
|| !mWordComposer.moveCursorByAndReturnIfInsideComposingWord(moveAmount))) {
|
||||||
|
@ -254,8 +247,6 @@ public final class InputLogic {
|
||||||
mRecapitalizeStatus.deactivate();
|
mRecapitalizeStatus.deactivate();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* React to a code input. It may be a code point to insert, or a symbolic value that influences
|
* React to a code input. It may be a code point to insert, or a symbolic value that influences
|
||||||
|
|
Loading…
Reference in New Issue