Guest User

Untitled

a guest
Apr 25th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1. return connection!!
  2. .subscribeOn(Schedulers.io())
  3. .flatMap {
  4. Observable.defer {
  5. val successValue = AtomicReference<ByteArray>()
  6. it.readCharacteristic("0222828d-1d28-4f2c-82e7-2e8f8740d29d")
  7. .doOnSuccess {
  8. successValue.lazySet(it)
  9. }
  10. .repeatWhen { flowable ->
  11. flowable.takeWhile {
  12. val bytes = successValue.get()
  13. val keepGoing = bytes.size != 1 || !bytes.get(0).equals(TERMINATOR)
  14. Timber.e("Keep going? $keepGoing")
  15. keepGoing
  16. }
  17. }
  18. .toObservable()
  19. }
  20. }
  21. .doOnNext {
  22. Timber.e("Read some bytes...")
  23. }
  24. .collectInto(ByteArrayOutputStream(), { buffer, byteArray ->
  25. buffer.write(byteArray)
  26. })
  27. .map {
  28. String(it.toByteArray())
  29. }
  30. .doOnSuccess {
  31. Timber.e("Read String: $it")
  32. }
Add Comment
Please, Sign In to add comment