diff --git a/app/src/main/java/app/revanced/manager/di/HttpModule.kt b/app/src/main/java/app/revanced/manager/di/HttpModule.kt index c02c1dc..f7585c0 100644 --- a/app/src/main/java/app/revanced/manager/di/HttpModule.kt +++ b/app/src/main/java/app/revanced/manager/di/HttpModule.kt @@ -6,6 +6,7 @@ import com.vk.knet.cornet.CronetKnetEngine import com.vk.knet.cornet.config.CronetCache import com.vk.knet.cornet.config.CronetQuic import com.vk.knet.cornet.pool.buffer.CronetNativeByteBufferPool +import kotlinx.serialization.json.Json import org.koin.android.ext.koin.androidContext import org.koin.dsl.module import java.util.concurrent.TimeUnit @@ -36,7 +37,16 @@ val httpModule = module { } } + fun json() = Json { + encodeDefaults = true + isLenient = true + ignoreUnknownKeys = true + } + single { client(androidContext()) } + single { + json() + } } \ No newline at end of file diff --git a/app/src/main/java/app/revanced/manager/repository/GitHubRepository.kt b/app/src/main/java/app/revanced/manager/repository/GitHubRepository.kt index 47a8630..d090858 100644 --- a/app/src/main/java/app/revanced/manager/repository/GitHubRepository.kt +++ b/app/src/main/java/app/revanced/manager/repository/GitHubRepository.kt @@ -11,18 +11,18 @@ import kotlinx.coroutines.withContext import kotlinx.serialization.decodeFromString import kotlinx.serialization.json.Json -class GitHubRepository(cronet: CronetKnetEngine) { +class GitHubRepository(cronet: CronetKnetEngine, private val json: Json) { - val client = Knet.Build(cronet) + private val client = Knet.Build(cronet) suspend fun fetchAssets() = withContext(Dispatchers.Default) { val stream = client.execute(HttpRequest(HttpMethod.GET, "$apiUrl/tools")).body!!.asString() - Json.decodeFromString(stream) as Tools + json.decodeFromString(stream) as Tools } suspend fun fetchContributors() = withContext(Dispatchers.Default) { val stream = client.execute(HttpRequest(HttpMethod.GET,"$apiUrl/contributors")).body!!.asString() - Json.decodeFromString(stream) as Repositories + json.decodeFromString(stream) as Repositories } private companion object {