Implement filtering in the sample Autofill Keyboard.
Inline suggestion filtering implemented in ag/10271909. Test: manual Change-Id: I9129de847c3e16f032d2c933c95b94997429baf2
This commit is contained in:
@@ -144,7 +144,8 @@ public class AutofillImeService extends InputMethodService {
|
|||||||
Log.d(TAG, "updateSuggestionViews() called");
|
Log.d(TAG, "updateSuggestionViews() called");
|
||||||
mSuggestionViews = Arrays.asList(suggestionViews);
|
mSuggestionViews = Arrays.asList(suggestionViews);
|
||||||
mSuggestionViewSizes = Arrays.asList(sizes);
|
mSuggestionViewSizes = Arrays.asList(sizes);
|
||||||
updateInlineSuggestionVisibility(true, true);
|
final boolean visible = !mSuggestionViews.isEmpty();
|
||||||
|
updateInlineSuggestionVisibility(visible, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onInlineSuggestionsResponseInternal(InlineSuggestionsResponse response) {
|
private void onInlineSuggestionsResponseInternal(InlineSuggestionsResponse response) {
|
||||||
@@ -157,6 +158,10 @@ public class AutofillImeService extends InputMethodService {
|
|||||||
final View[] suggestionViews = new View[totalSuggestionsCount];
|
final View[] suggestionViews = new View[totalSuggestionsCount];
|
||||||
final Size[] sizes = new Size[totalSuggestionsCount];
|
final Size[] sizes = new Size[totalSuggestionsCount];
|
||||||
|
|
||||||
|
if (totalSuggestionsCount == 0) {
|
||||||
|
updateSuggestionViews(suggestionViews, sizes);
|
||||||
|
return;
|
||||||
|
}
|
||||||
for (int i=0; i<totalSuggestionsCount; i++) {
|
for (int i=0; i<totalSuggestionsCount; i++) {
|
||||||
final int index = i;
|
final int index = i;
|
||||||
InlineSuggestion inlineSuggestion = inlineSuggestions.get(index);
|
InlineSuggestion inlineSuggestion = inlineSuggestions.get(index);
|
||||||
@@ -183,7 +188,6 @@ public class AutofillImeService extends InputMethodService {
|
|||||||
|
|
||||||
void handle(String data) {
|
void handle(String data) {
|
||||||
Log.d(TAG, "handle() called: [" + data + "]");
|
Log.d(TAG, "handle() called: [" + data + "]");
|
||||||
mDecoder.decode(data);
|
mDecoder.decodeAndApply(data);
|
||||||
updateInlineSuggestionVisibility(mDecoder.isEmpty(), false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ final class Decoder {
|
|||||||
this.mInputConnection = inputConnection;
|
this.mInputConnection = inputConnection;
|
||||||
}
|
}
|
||||||
|
|
||||||
void decode(String data) {
|
void decodeAndApply(String data) {
|
||||||
if ("DEL".equals(data)) {
|
if ("DEL".equals(data)) {
|
||||||
mInputConnection.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DEL));
|
mInputConnection.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DEL));
|
||||||
} else if ("ENT".equals(data)) {
|
} else if ("ENT".equals(data)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user