1

I'm having an issue where the following code is causing a NetworkOnMainThreadException.

    InternetConnectionUtil.isInternetOn()
            .flatMap { isInternetOn -> if (isInternetOn) RxFirebaseDatabase.observeValueEvent(vinylRef,{it.children.map { it.value as String }})   else Flowable.error(Exception("No internet connection")) }
            .flatMap {stylesList -> Flowable.fromIterable(stylesList) }
            .flatMap { style -> vinylRepository.getVinyls(style)}
            .toObservable()
            .subscribeOn(Schedulers.newThread())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(observer)

However when I mock a list of styles with:

    InternetConnectionUtil.isInternetOn()
            .flatMap { isInternetOn -> if (isInternetOn) Flowable.fromIterable(listOf("House"))   else Flowable.error(Exception("No internet connection")) }
            .flatMap { style -> vinylRepository.getVinyls(style)}
            .toObservable()
            .subscribeOn(Schedulers.newThread())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(observer)

I get an expected response... Any thoughts?

zachkirlew
  • 61
  • 1
  • 6
  • 1
    You might look at https://stackoverflow.com/questions/6343166/how-do-i-fix-android-os-networkonmainthreadexception – Hank D Feb 06 '18 at 02:39

0 Answers0