0

There is a class, it has observable fields. I want to update localData

when receiving remote data remoteData, for some reason I can not get data in localData, debugging does not go to a breakpoint even to getIdsInDatumsRemote (). The identifyDatumsForUpdate () method gets an empty Observable.

class DiskDatumDataStore {

    var remoteData: Observable<Data>? = null

    var localData: Observable<Data>? = null

    override fun sync() {
        remoteDatums = getChangedRemoteData(lastUpdated!!, 1000)!!
        localDatums = remoteDatums!!.map {
            getIdsInDatumsRemote(it)
        }.map {
            it.map {
                it.toLong()
            }
        }.flatMap {
            getOldLocalData(it)
        }


        identifyDatumsForUpdate(datumsForUpdateLocal, datumsForUpdateRemote)
    }

    override fun getOldLocalData(remoteDatumsIds: List<Long>): Observable<List<DataLayerTypesOfResponsibility>> {
        return Observable.fromCallable { repository.getOldDatum(remoteDatumsIds) }      
    }
}

1 Answers1

1

You're not subscribing to your Observable. You're just creating it.

localDatums = remoteDatums!!.map {
            getIdsInDatumsRemote(it)
        }.map {
            it.map {
                it.toLong()
            }
        }.flatMap {
            getOldLocalData(it)
        }.subscribe { it->
            //do something with the result `it`
        }

Bartek Lipinski
  • 30,698
  • 10
  • 94
  • 132