Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- return connection!!
- .subscribeOn(Schedulers.io())
- .flatMap {
- Observable.defer {
- val successValue = AtomicReference<ByteArray>()
- it.readCharacteristic("0222828d-1d28-4f2c-82e7-2e8f8740d29d")
- .doOnSuccess {
- successValue.lazySet(it)
- }
- .repeatWhen { flowable ->
- flowable.takeWhile {
- val bytes = successValue.get()
- val keepGoing = bytes.size != 1 || !bytes.get(0).equals(TERMINATOR)
- Timber.e("Keep going? $keepGoing")
- keepGoing
- }
- }
- .toObservable()
- }
- }
- .doOnNext {
- Timber.e("Read some bytes...")
- }
- .collectInto(ByteArrayOutputStream(), { buffer, byteArray ->
- buffer.write(byteArray)
- })
- .map {
- String(it.toByteArray())
- }
- .doOnSuccess {
- Timber.e("Read String: $it")
- }
Add Comment
Please, Sign In to add comment