Merge "Flush buffered data when session connects. Typically this data would have been flushed at the end of the first draw and there would otherwise be an extended delay before the data would be sent to the service." into rvc-dev

This commit is contained in:
Julian Odell
2020-05-19 22:22:30 +00:00
committed by Android (Google) Code Review
2 changed files with 8 additions and 1 deletions

View File

@@ -166,6 +166,8 @@ public abstract class ContentCaptureSession implements AutoCloseable {
public static final int FLUSH_REASON_IDLE_TIMEOUT = 5;
/** @hide */
public static final int FLUSH_REASON_TEXT_CHANGE_TIMEOUT = 6;
/** @hide */
public static final int FLUSH_REASON_SESSION_CONNECTED = 7;
/** @hide */
@IntDef(prefix = { "FLUSH_REASON_" }, value = {
@@ -174,7 +176,8 @@ public abstract class ContentCaptureSession implements AutoCloseable {
FLUSH_REASON_SESSION_STARTED,
FLUSH_REASON_SESSION_FINISHED,
FLUSH_REASON_IDLE_TIMEOUT,
FLUSH_REASON_TEXT_CHANGE_TIMEOUT
FLUSH_REASON_TEXT_CHANGE_TIMEOUT,
FLUSH_REASON_SESSION_CONNECTED
})
@Retention(RetentionPolicy.SOURCE)
public @interface FlushReason{}
@@ -609,6 +612,8 @@ public abstract class ContentCaptureSession implements AutoCloseable {
return "IDLE";
case FLUSH_REASON_TEXT_CHANGE_TIMEOUT:
return "TEXT_CHANGE";
case FLUSH_REASON_SESSION_CONNECTED:
return "CONNECTED";
default:
return "UNKOWN-" + reason;
}

View File

@@ -273,6 +273,8 @@ public final class MainContentCaptureSession extends ContentCaptureSession {
} else {
mState = resultCode;
mDisabled.set(false);
// Flush any pending data immediately as buffering forced until now.
flushIfNeeded(FLUSH_REASON_SESSION_CONNECTED);
}
if (sVerbose) {
Log.v(TAG, "handleSessionStarted() result: id=" + mId + " resultCode=" + resultCode