From abac3b50bc1a720799274b7f80f9766e54215bdc Mon Sep 17 00:00:00 2001 From: Mihail Slavchev Date: Wed, 14 Sep 2016 14:49:35 +0300 Subject: [PATCH] send 'flush buffers' message to workaround the message receiving on Android 7/API24 --- src/debug-adapter/connection/androidConnection.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/debug-adapter/connection/androidConnection.ts b/src/debug-adapter/connection/androidConnection.ts index 9354dd8..3855c5c 100644 --- a/src/debug-adapter/connection/androidConnection.ts +++ b/src/debug-adapter/connection/androidConnection.ts @@ -52,6 +52,8 @@ class ResReqNetSocket extends EventEmitter { private lastError: string; private callbacks: Callbacks; private isRunning: boolean; + private isMessageFlushLoopStarted = false; + private hasNewDataMessage = false; public attach(port: number, url: string, timeout: number = 10000) { var that = this; @@ -183,6 +185,17 @@ class ResReqNetSocket extends EventEmitter { if (this.connected) { Logger.log('To target: ' + data); this.conn.write('Content-Length: ' + data.length + '\r\n\r\n' + data); + this.hasNewDataMessage = true; + if (!this.isMessageFlushLoopStarted) { + this.isMessageFlushLoopStarted = true; + setInterval(() => { + if (this.hasNewDataMessage) { + let msg = 'FLUSH BUFFERS'; + this.conn.write('Content-Length: ' + msg.length + '\r\n\r\n' + msg); + this.hasNewDataMessage = false; + } + }, 200); + } } }