Refactor MoreKeysKeyboardView to use Key class
This can make MoreSuggestionsView to use extended Key class to hold a index of a suggested word. Change-Id: I54d03d2447b04e3caf3e19e7cadcd391cbf58dd5main
parent
06dd0ef877
commit
5fc1510bc1
|
@ -130,7 +130,7 @@ public class MoreKeysKeyboardView extends KeyboardView implements MoreKeysPanel
|
||||||
public void onUpEvent(final int x, final int y, final int pointerId, final long eventTime) {
|
public void onUpEvent(final int x, final int y, final int pointerId, final long eventTime) {
|
||||||
if (mCurrentKey != null && mActivePointerId == pointerId) {
|
if (mCurrentKey != null && mActivePointerId == pointerId) {
|
||||||
updateReleaseKeyGraphics(mCurrentKey);
|
updateReleaseKeyGraphics(mCurrentKey);
|
||||||
onCodeInput(mCurrentKey.getCode(), x, y);
|
onKeyInput(mCurrentKey, x, y);
|
||||||
mCurrentKey = null;
|
mCurrentKey = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -138,7 +138,8 @@ public class MoreKeysKeyboardView extends KeyboardView implements MoreKeysPanel
|
||||||
/**
|
/**
|
||||||
* Performs the specific action for this panel when the user presses a key on the panel.
|
* Performs the specific action for this panel when the user presses a key on the panel.
|
||||||
*/
|
*/
|
||||||
protected void onCodeInput(final int code, final int x, final int y) {
|
protected void onKeyInput(final Key key, final int x, final int y) {
|
||||||
|
final int code = key.getCode();
|
||||||
if (code == Constants.CODE_OUTPUT_TEXT) {
|
if (code == Constants.CODE_OUTPUT_TEXT) {
|
||||||
mListener.onTextInput(mCurrentKey.getOutputText());
|
mListener.onTextInput(mCurrentKey.getOutputText());
|
||||||
} else if (code != Constants.CODE_UNSPECIFIED) {
|
} else if (code != Constants.CODE_UNSPECIFIED) {
|
||||||
|
|
|
@ -27,14 +27,13 @@ import com.android.inputmethod.keyboard.KeyboardActionListener;
|
||||||
import com.android.inputmethod.keyboard.internal.KeyboardBuilder;
|
import com.android.inputmethod.keyboard.internal.KeyboardBuilder;
|
||||||
import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
|
import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
|
||||||
import com.android.inputmethod.keyboard.internal.KeyboardParams;
|
import com.android.inputmethod.keyboard.internal.KeyboardParams;
|
||||||
|
import com.android.inputmethod.latin.Constants;
|
||||||
import com.android.inputmethod.latin.R;
|
import com.android.inputmethod.latin.R;
|
||||||
import com.android.inputmethod.latin.SuggestedWords;
|
import com.android.inputmethod.latin.SuggestedWords;
|
||||||
import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
|
import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
|
||||||
import com.android.inputmethod.latin.utils.TypefaceUtils;
|
import com.android.inputmethod.latin.utils.TypefaceUtils;
|
||||||
|
|
||||||
public final class MoreSuggestions extends Keyboard {
|
public final class MoreSuggestions extends Keyboard {
|
||||||
public static final int SUGGESTION_CODE_BASE = 1024;
|
|
||||||
|
|
||||||
public final SuggestedWords mSuggestedWords;
|
public final SuggestedWords mSuggestedWords;
|
||||||
|
|
||||||
public static abstract class MoreSuggestionsListener extends KeyboardActionListener.Adapter {
|
public static abstract class MoreSuggestionsListener extends KeyboardActionListener.Adapter {
|
||||||
|
@ -178,7 +177,7 @@ public final class MoreSuggestions extends Keyboard {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean isIndexSubjectToAutoCorrection(final SuggestedWords suggestedWords,
|
static boolean isIndexSubjectToAutoCorrection(final SuggestedWords suggestedWords,
|
||||||
final int index) {
|
final int index) {
|
||||||
return suggestedWords.mWillAutoCorrect && index == SuggestedWords.INDEX_OF_AUTO_CORRECTION;
|
return suggestedWords.mWillAutoCorrect && index == SuggestedWords.INDEX_OF_AUTO_CORRECTION;
|
||||||
}
|
}
|
||||||
|
@ -226,11 +225,7 @@ public final class MoreSuggestions extends Keyboard {
|
||||||
word = mSuggestedWords.getLabel(index);
|
word = mSuggestedWords.getLabel(index);
|
||||||
info = mSuggestedWords.getDebugString(index);
|
info = mSuggestedWords.getDebugString(index);
|
||||||
}
|
}
|
||||||
final int indexInMoreSuggestions = index + SUGGESTION_CODE_BASE;
|
final Key key = new MoreSuggestionKey(word, info, index, params);
|
||||||
final Key key = new Key(word, KeyboardIconsSet.ICON_UNDEFINED,
|
|
||||||
indexInMoreSuggestions, null /* outputText */, info, 0 /* labelFlags */,
|
|
||||||
Key.BACKGROUND_TYPE_NORMAL, x, y, width, params.mDefaultRowHeight,
|
|
||||||
params.mHorizontalGap, params.mVerticalGap);
|
|
||||||
params.markAsEdgeKey(key, index);
|
params.markAsEdgeKey(key, index);
|
||||||
params.onAddKey(key);
|
params.onAddKey(key);
|
||||||
final int columnNumber = params.getColumnNumber(index);
|
final int columnNumber = params.getColumnNumber(index);
|
||||||
|
@ -245,6 +240,19 @@ public final class MoreSuggestions extends Keyboard {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static final class MoreSuggestionKey extends Key {
|
||||||
|
public final int mSuggestedWordIndex;
|
||||||
|
|
||||||
|
public MoreSuggestionKey(final String word, final String info, final int index,
|
||||||
|
final MoreSuggestionsParam params) {
|
||||||
|
super(word /* label */, KeyboardIconsSet.ICON_UNDEFINED, Constants.CODE_OUTPUT_TEXT,
|
||||||
|
word /* outputText */, info, 0 /* labelFlags */, Key.BACKGROUND_TYPE_NORMAL,
|
||||||
|
params.getX(index), params.getY(index), params.getWidth(index),
|
||||||
|
params.mDefaultRowHeight, params.mHorizontalGap, params.mVerticalGap);
|
||||||
|
mSuggestedWordIndex = index;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static final class Divider extends Key.Spacer {
|
private static final class Divider extends Key.Spacer {
|
||||||
private final Drawable mIcon;
|
private final Drawable mIcon;
|
||||||
|
|
||||||
|
|
|
@ -20,10 +20,12 @@ import android.content.Context;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import com.android.inputmethod.keyboard.Key;
|
||||||
import com.android.inputmethod.keyboard.Keyboard;
|
import com.android.inputmethod.keyboard.Keyboard;
|
||||||
import com.android.inputmethod.keyboard.MoreKeysKeyboardView;
|
import com.android.inputmethod.keyboard.MoreKeysKeyboardView;
|
||||||
import com.android.inputmethod.latin.R;
|
import com.android.inputmethod.latin.R;
|
||||||
import com.android.inputmethod.latin.SuggestedWords;
|
import com.android.inputmethod.latin.SuggestedWords;
|
||||||
|
import com.android.inputmethod.latin.suggestions.MoreSuggestions.MoreSuggestionKey;
|
||||||
import com.android.inputmethod.latin.suggestions.MoreSuggestions.MoreSuggestionsListener;
|
import com.android.inputmethod.latin.suggestions.MoreSuggestions.MoreSuggestionsListener;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -59,7 +61,12 @@ public final class MoreSuggestionsView extends MoreKeysKeyboardView {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCodeInput(final int code, final int x, final int y) {
|
protected void onKeyInput(final Key key, final int x, final int y) {
|
||||||
|
if (!(key instanceof MoreSuggestionKey)) {
|
||||||
|
Log.e(TAG, "Expected key is MoreSuggestionKey, but found "
|
||||||
|
+ key.getClass().getName());
|
||||||
|
return;
|
||||||
|
}
|
||||||
final Keyboard keyboard = getKeyboard();
|
final Keyboard keyboard = getKeyboard();
|
||||||
if (!(keyboard instanceof MoreSuggestions)) {
|
if (!(keyboard instanceof MoreSuggestions)) {
|
||||||
Log.e(TAG, "Expected keyboard is MoreSuggestions, but found "
|
Log.e(TAG, "Expected keyboard is MoreSuggestions, but found "
|
||||||
|
@ -67,7 +74,7 @@ public final class MoreSuggestionsView extends MoreKeysKeyboardView {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
final SuggestedWords suggestedWords = ((MoreSuggestions)keyboard).mSuggestedWords;
|
final SuggestedWords suggestedWords = ((MoreSuggestions)keyboard).mSuggestedWords;
|
||||||
final int index = code - MoreSuggestions.SUGGESTION_CODE_BASE;
|
final int index = ((MoreSuggestionKey)key).mSuggestedWordIndex;
|
||||||
if (index < 0 || index >= suggestedWords.size()) {
|
if (index < 0 || index >= suggestedWords.size()) {
|
||||||
Log.e(TAG, "Selected suggestion has an illegal index: " + index);
|
Log.e(TAG, "Selected suggestion has an illegal index: " + index);
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue