diff --git a/build.gradle b/build.gradle index 7fd981b..0c7d489 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.1.3-2' + ext.kotlin_version = '1.1.4' repositories { google() jcenter() diff --git a/data/src/main/java/org/buffer/android/boilerplate/data/BufferooDataRepository.kt b/data/src/main/java/org/buffer/android/boilerplate/data/BufferooDataRepository.kt index a13d5cf..d78cdd1 100644 --- a/data/src/main/java/org/buffer/android/boilerplate/data/BufferooDataRepository.kt +++ b/data/src/main/java/org/buffer/android/boilerplate/data/BufferooDataRepository.kt @@ -15,7 +15,7 @@ import javax.inject.Inject * data sources */ class BufferooDataRepository @Inject constructor(private val factory: BufferooDataStoreFactory, - private val bufferooMapper: BufferooMapper): + private val bufferooMapper: BufferooMapper) : BufferooRepository { override fun clearBufferoos(): Completable { @@ -23,26 +23,28 @@ class BufferooDataRepository @Inject constructor(private val factory: BufferooDa } override fun saveBufferoos(bufferoos: List): Completable { - val bufferooEntities = mutableListOf() - bufferoos.map { bufferooEntities.add(bufferooMapper.mapToEntity(it)) } - return factory.retrieveCacheDataStore().saveBufferoos(bufferooEntities) + val bufferooEntities = bufferoos.map { bufferooMapper.mapToEntity(it) } + return saveBufferooEntities(bufferooEntities) + } + + private fun saveBufferooEntities(bufferoos: List): Completable { + return factory.retrieveCacheDataStore().saveBufferoos(bufferoos) } override fun getBufferoos(): Single> { val dataStore = factory.retrieveDataStore() return dataStore.getBufferoos() - .flatMap { - val bufferoos = mutableListOf() - it.map { bufferoos.add(bufferooMapper.mapFromEntity(it)) } - Single.just(bufferoos) - } .flatMap { if (dataStore is BufferooRemoteDataStore) { - saveBufferoos(it).toSingle { it } + saveBufferooEntities(it).toSingle { it } } else { Single.just(it) } } + .map { list -> + list.map { listItem -> + bufferooMapper.mapFromEntity(listItem) + } + } } - } \ No newline at end of file diff --git a/remote/src/main/java/org/buffer/android/boilerplate/remote/BufferooRemoteImpl.kt b/remote/src/main/java/org/buffer/android/boilerplate/remote/BufferooRemoteImpl.kt index 0356883..5fee42a 100644 --- a/remote/src/main/java/org/buffer/android/boilerplate/remote/BufferooRemoteImpl.kt +++ b/remote/src/main/java/org/buffer/android/boilerplate/remote/BufferooRemoteImpl.kt @@ -12,7 +12,7 @@ import javax.inject.Inject * operations in which data store implementation layers can carry out. */ class BufferooRemoteImpl @Inject constructor(private val bufferooService: BufferooService, - private val entityMapper: BufferooEntityMapper): + private val entityMapper: BufferooEntityMapper) : BufferooRemote { /** @@ -22,9 +22,9 @@ class BufferooRemoteImpl @Inject constructor(private val bufferooService: Buffer return bufferooService.getBufferoos() .map { it.team } .map { - val entities = mutableListOf() - it.forEach { entities.add(entityMapper.mapFromRemote(it)) } - entities + it.map { listItem -> + entityMapper.mapFromRemote(listItem) + } } }