diff --git a/app/src/main/java/info/nightscout/android/USB/UsbHidDriver.java b/app/src/main/java/info/nightscout/android/USB/UsbHidDriver.java index ea63fa44d6f6f2019bfae1345156a09cd1a114ab..f7f1007adf8cf3c7bdc22e95a94a30cf1f0b481f 100644 --- a/app/src/main/java/info/nightscout/android/USB/UsbHidDriver.java +++ b/app/src/main/java/info/nightscout/android/USB/UsbHidDriver.java @@ -9,8 +9,6 @@ import android.util.Log; import java.io.IOException; -//import com.hoho.android.usbserial.driver.UsbId; - /** * USB HID Driver implementation. * @@ -89,14 +87,10 @@ public class UsbHidDriver extends CommonUsbDriver { int readAmt = Math.min(dest.length, mReadBuffer.length); numBytesRead = mConnection.bulkTransfer(mReadEndpoint, mReadBuffer, readAmt, timeoutMillis); - if (numBytesRead < 0) { - // This sucks: we get -1 on timeout, not 0 as preferred. - // We *should* use UsbRequest, except it has a bug/api oversight - // where there is no way to determine the number of bytes read - // in response :\ -- http://b.android.com/28023 - return 0; + if (numBytesRead > 0) { + System.arraycopy(mReadBuffer, 0, dest, 0, numBytesRead); } - System.arraycopy(mReadBuffer, 0, dest, 0, numBytesRead); + mConnection.releaseInterface(mInterface); } return numBytesRead;