From 19374bced574dee370a8f5e11eb3836074b39db1 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Sat, 8 Jun 2024 23:44:53 +0900 Subject: [PATCH] Take capability below API 24, and add comment. Change-Id: I86d99fa9e74a8475c0b2bad202cfb4697ab1016b --- .../core/network/demo/DemoNiaNetworkDataSource.kt | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 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 203a1e0c5..eaeafa12d 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 @@ -48,20 +48,26 @@ class DemoNiaNetworkDataSource @Inject constructor( @OptIn(ExperimentalSerializationApi::class) override suspend fun getTopics(ids: List?): List = withContext(ioDispatcher) { - if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { assets.open(TOPICS_ASSET).use(networkJson::decodeFromStream) } else { - networkJson.decodeFromString(assets.open(TOPICS_ASSET).toString()) + // Use decodeFromString to capability with API 24 below. + // https://github.com/Kotlin/kotlinx.serialization/issues/2457#issuecomment-1786923342 + val topicsJsonString = convertStreamToString(assets.open(TOPICS_ASSET)) + networkJson.decodeFromString(topicsJsonString) } } @OptIn(ExperimentalSerializationApi::class) override suspend fun getNewsResources(ids: List?): List = withContext(ioDispatcher) { - if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { assets.open(NEWS_ASSET).use(networkJson::decodeFromStream) } else { - networkJson.decodeFromString(assets.open(TOPICS_ASSET).toString()) + // Use decodeFromString to capability with API 24 below. + // https://github.com/Kotlin/kotlinx.serialization/issues/2457#issuecomment-1786923342 + val newsJsonString = convertStreamToString(assets.open(NEWS_ASSET)) + networkJson.decodeFromString(newsJsonString) } }