summaryrefslogtreecommitdiff
path: root/framework/java
diff options
context:
space:
mode:
authorIan Kasprzak <iankaz@google.com>2019-08-31 21:28:50 +0000
committerIan Kasprzak <iankaz@google.com>2019-08-31 21:28:50 +0000
commit3d30e625e338d452c2a9e91dc2ad477e8500e5eb (patch)
tree884816ad93cb0e414287dffec8226caf949acd8c /framework/java
parent0388ad1f72c70ca96cabc8b1a4a107877752b187 (diff)
Revert "Remove a misleading "flush" function."
This reverts commit 0388ad1f72c70ca96cabc8b1a4a107877752b187. Reason for revert: Driodcop: aosp-master test-mapping showing multiple failures (b/140336855). Change-Id: If44e273dd111802db8b44db1e5a67a4628c72e3c
Diffstat (limited to 'framework/java')
-rw-r--r--framework/java/android/bluetooth/BluetoothOutputStream.java12
-rw-r--r--framework/java/android/bluetooth/BluetoothSocket.java14
2 files changed, 26 insertions, 0 deletions
diff --git a/framework/java/android/bluetooth/BluetoothOutputStream.java b/framework/java/android/bluetooth/BluetoothOutputStream.java
index a0aa2dee9d..dfec4e102f 100644
--- a/framework/java/android/bluetooth/BluetoothOutputStream.java
+++ b/framework/java/android/bluetooth/BluetoothOutputStream.java
@@ -75,4 +75,16 @@ import java.io.OutputStream;
}
mSocket.write(b, offset, count);
}
+
+ /**
+ * Wait until the data in sending queue is emptied. A polling version
+ * for flush implementation. Use it to ensure the writing data afterwards will
+ * be packed in the new RFCOMM frame.
+ *
+ * @throws IOException if an i/o error occurs.
+ * @since Android 4.2.3
+ */
+ public void flush() throws IOException {
+ mSocket.flush();
+ }
}
diff --git a/framework/java/android/bluetooth/BluetoothSocket.java b/framework/java/android/bluetooth/BluetoothSocket.java
index 760166bfcc..a6e3153d6a 100644
--- a/framework/java/android/bluetooth/BluetoothSocket.java
+++ b/framework/java/android/bluetooth/BluetoothSocket.java
@@ -515,6 +515,20 @@ public final class BluetoothSocket implements Closeable {
return mSocketIS.available();
}
+ /**
+ * Wait until the data in sending queue is emptied. A polling version
+ * for flush implementation. Used to ensure the writing data afterwards will
+ * be packed in new RFCOMM frame.
+ *
+ * @throws IOException if an i/o error occurs.
+ */
+ @UnsupportedAppUsage
+ /*package*/ void flush() throws IOException {
+ if (mSocketOS == null) throw new IOException("flush is called on null OutputStream");
+ if (VDBG) Log.d(TAG, "flush: " + mSocketOS);
+ mSocketOS.flush();
+ }
+
/*package*/ int read(byte[] b, int offset, int length) throws IOException {
int ret = 0;
if (VDBG) Log.d(TAG, "read in: " + mSocketIS + " len: " + length);