Merge "Emulator cleanup in ClipboardService.java (send/receive)"

This commit is contained in:
Roman Kiryanov
2021-03-26 00:42:31 +00:00
committed by Gerrit Code Review

View File

@@ -117,6 +117,18 @@ class HostClipboardMonitor implements Runnable {
} }
} }
private byte[] receiveMessage() throws IOException {
final int size = Integer.reverseBytes(mPipe.readInt());
final byte[] receivedData = new byte[size];
mPipe.readFully(receivedData);
return receivedData;
}
private void sendMessage(byte[] message) throws IOException {
mPipe.writeInt(Integer.reverseBytes(message.length));
mPipe.write(message);
}
public HostClipboardMonitor(HostClipboardCallback cb) { public HostClipboardMonitor(HostClipboardCallback cb) {
mHostClipboardCallback = cb; mHostClipboardCallback = cb;
} }
@@ -131,10 +143,8 @@ class HostClipboardMonitor implements Runnable {
while ((mPipe == null) && !openPipe()) { while ((mPipe == null) && !openPipe()) {
Thread.sleep(100); Thread.sleep(100);
} }
int size = mPipe.readInt();
size = Integer.reverseBytes(size); final byte[] receivedData = receiveMessage();
byte[] receivedData = new byte[size];
mPipe.readFully(receivedData);
mHostClipboardCallback.onHostClipboardUpdated( mHostClipboardCallback.onHostClipboardUpdated(
new String(receivedData)); new String(receivedData));
} catch (IOException e) { } catch (IOException e) {
@@ -146,8 +156,7 @@ class HostClipboardMonitor implements Runnable {
public void setHostClipboard(String content) { public void setHostClipboard(String content) {
try { try {
if (mPipe != null) { if (mPipe != null) {
mPipe.writeInt(Integer.reverseBytes(content.getBytes().length)); sendMessage(content.getBytes());
mPipe.write(content.getBytes());
} }
} catch(IOException e) { } catch(IOException e) {
Slog.e("HostClipboardMonitor", Slog.e("HostClipboardMonitor",