1717package com.google.samples.apps.nowinandroid.core.network.demo
1818
1919import JvmUnitTestDemoAssetManager
20+ import android.os.Build
2021import com.google.samples.apps.nowinandroid.core.network.Dispatcher
2122import com.google.samples.apps.nowinandroid.core.network.NiaDispatchers.IO
2223import com.google.samples.apps.nowinandroid.core.network.NiaNetworkDataSource
@@ -28,6 +29,7 @@ import kotlinx.coroutines.withContext
2829import kotlinx.serialization.ExperimentalSerializationApi
2930import kotlinx.serialization.json.Json
3031import kotlinx.serialization.json.decodeFromStream
32+ import okio.use
3133import javax.inject.Inject
3234
3335/* *
@@ -42,13 +44,21 @@ class DemoNiaNetworkDataSource @Inject constructor(
4244 @OptIn(ExperimentalSerializationApi ::class )
4345 override suspend fun getTopics (ids : List <String >? ): List <NetworkTopic > =
4446 withContext(ioDispatcher) {
45- assets.open(TOPICS_ASSET ).use(networkJson::decodeFromStream)
47+ if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .N ) {
48+ assets.open(TOPICS_ASSET ).use(networkJson::decodeFromStream)
49+ } else {
50+ networkJson.decodeFromString(assets.open(TOPICS_ASSET ).toString())
51+ }
4652 }
4753
4854 @OptIn(ExperimentalSerializationApi ::class )
4955 override suspend fun getNewsResources (ids : List <String >? ): List <NetworkNewsResource > =
5056 withContext(ioDispatcher) {
51- assets.open(NEWS_ASSET ).use(networkJson::decodeFromStream)
57+ if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .N ) {
58+ assets.open(NEWS_ASSET ).use(networkJson::decodeFromStream)
59+ } else {
60+ networkJson.decodeFromString(assets.open(TOPICS_ASSET ).toString())
61+ }
5262 }
5363
5464 override suspend fun getTopicChangeList (after : Int? ): List <NetworkChangeList > =
0 commit comments