From 35b5f802c6f3616f261da775963851b9415e5a68 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Sat, 8 Jun 2024 21:46:16 +0900 Subject: [PATCH] Below than api24,use decodeFromString Change-Id: Idf1d4efb118b225cf0e0dd7443efbfa54fb191d5 --- .../core/network/demo/DemoNiaNetworkDataSource.kt | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/core/network/src/main/kotlin/com/google/samples/apps/nowinandroid/core/network/demo/DemoNiaNetworkDataSource.kt b/core/network/src/main/kotlin/com/google/samples/apps/nowinandroid/core/network/demo/DemoNiaNetworkDataSource.kt index b7c912c003..0f91e0337e 100644 --- a/core/network/src/main/kotlin/com/google/samples/apps/nowinandroid/core/network/demo/DemoNiaNetworkDataSource.kt +++ b/core/network/src/main/kotlin/com/google/samples/apps/nowinandroid/core/network/demo/DemoNiaNetworkDataSource.kt @@ -17,6 +17,7 @@ package com.google.samples.apps.nowinandroid.core.network.demo import JvmUnitTestDemoAssetManager +import android.os.Build import com.google.samples.apps.nowinandroid.core.network.Dispatcher import com.google.samples.apps.nowinandroid.core.network.NiaDispatchers.IO import com.google.samples.apps.nowinandroid.core.network.NiaNetworkDataSource @@ -28,6 +29,7 @@ import kotlinx.coroutines.withContext import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.json.Json import kotlinx.serialization.json.decodeFromStream +import okio.use import javax.inject.Inject /** @@ -42,13 +44,21 @@ class DemoNiaNetworkDataSource @Inject constructor( @OptIn(ExperimentalSerializationApi::class) override suspend fun getTopics(ids: List?): List = withContext(ioDispatcher) { - assets.open(TOPICS_ASSET).use(networkJson::decodeFromStream) + if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + assets.open(TOPICS_ASSET).use(networkJson::decodeFromStream) + } else { + networkJson.decodeFromString(assets.open(TOPICS_ASSET).toString()) + } } @OptIn(ExperimentalSerializationApi::class) override suspend fun getNewsResources(ids: List?): List = withContext(ioDispatcher) { - assets.open(NEWS_ASSET).use(networkJson::decodeFromStream) + if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + assets.open(NEWS_ASSET).use(networkJson::decodeFromStream) + } else { + networkJson.decodeFromString(assets.open(TOPICS_ASSET).toString()) + } } override suspend fun getTopicChangeList(after: Int?): List =