diff options
| author | 2019-01-03 17:16:12 +0000 | |
|---|---|---|
| committer | 2019-01-03 17:16:12 +0000 | |
| commit | f15c48160431e4b55a0d08cfe8d5e06b74cac1c2 (patch) | |
| tree | 64e11b74808720f24c0b94ca3eefc590b6bded77 | |
| parent | dc0d7b0ccc7d7578c9b54043628126672e938777 (diff) | |
| parent | ac13265ed13cfd081cba37ceefd9ec6b0f9d6562 (diff) | |
Merge "Moved buffer for VIEW_TEXT_CHANGED events to MainContentCaptureSession."
| -rw-r--r-- | core/java/android/view/contentcapture/MainContentCaptureSession.java | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/core/java/android/view/contentcapture/MainContentCaptureSession.java b/core/java/android/view/contentcapture/MainContentCaptureSession.java index ea6f2fe16ef6..92e0187f5b0f 100644 --- a/core/java/android/view/contentcapture/MainContentCaptureSession.java +++ b/core/java/android/view/contentcapture/MainContentCaptureSession.java @@ -258,14 +258,27 @@ public final class MainContentCaptureSession extends ContentCaptureSession { } mEvents = new ArrayList<>(MAX_BUFFER_SIZE); } - mEvents.add(event); + + if (!mEvents.isEmpty() && event.getType() == TYPE_VIEW_TEXT_CHANGED) { + final ContentCaptureEvent lastEvent = mEvents.get(mEvents.size() - 1); + + // TODO(b/121045053): check if flags match + if (lastEvent.getType() == TYPE_VIEW_TEXT_CHANGED + && lastEvent.getId().equals(event.getId())) { + if (VERBOSE) { + Log.v(mTag, "Buffering VIEW_TEXT_CHANGED event, updated text = " + + event.getText()); + } + lastEvent.setText(event.getText()); + } else { + mEvents.add(event); + } + } else { + mEvents.add(event); + } final int numberEvents = mEvents.size(); - // TODO(b/120784831): need to optimize it so we buffer changes until a number of X are - // buffered (either total or per autofillid). For - // example, if the user typed "a", "b", "c" and the threshold is 3, we should buffer - // "a" and "b" then send "abc". final boolean bufferEvent = numberEvents < MAX_BUFFER_SIZE; if (bufferEvent && !forceFlush) { |