summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Adam He <adamhe@google.com> 2019-01-03 17:16:12 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2019-01-03 17:16:12 +0000
commitf15c48160431e4b55a0d08cfe8d5e06b74cac1c2 (patch)
tree64e11b74808720f24c0b94ca3eefc590b6bded77
parentdc0d7b0ccc7d7578c9b54043628126672e938777 (diff)
parentac13265ed13cfd081cba37ceefd9ec6b0f9d6562 (diff)
Merge "Moved buffer for VIEW_TEXT_CHANGED events to MainContentCaptureSession."
-rw-r--r--core/java/android/view/contentcapture/MainContentCaptureSession.java23
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) {