From ad14818de87fc60ee2d5aa244ad9f21b26b9d545 Mon Sep 17 00:00:00 2001 From: Ax333l Date: Fri, 19 May 2023 21:01:33 +0200 Subject: [PATCH] refactor(net apis): remove unnecessary interfaces Having interfaces like that is only really useful if you have unit tests, which we don't. Other similar compose projects don't make interfaces either. Not having them is more readable. --- .../manager/compose/di/RepositoryModule.kt | 4 ++-- .../manager/compose/di/ServiceModule.kt | 3 +-- .../domain/repository/ReVancedRepository.kt | 22 +++++-------------- .../manager/compose/network/api/ManagerAPI.kt | 4 ++-- .../network/service/ReVancedService.kt | 18 +++++---------- 5 files changed, 15 insertions(+), 36 deletions(-) diff --git a/app/src/main/java/app/revanced/manager/compose/di/RepositoryModule.kt b/app/src/main/java/app/revanced/manager/compose/di/RepositoryModule.kt index 0ac85977..5376f80a 100644 --- a/app/src/main/java/app/revanced/manager/compose/di/RepositoryModule.kt +++ b/app/src/main/java/app/revanced/manager/compose/di/RepositoryModule.kt @@ -1,13 +1,13 @@ package app.revanced.manager.compose.di -import app.revanced.manager.compose.domain.repository.ReVancedRepositoryImpl +import app.revanced.manager.compose.domain.repository.ReVancedRepository import app.revanced.manager.compose.network.api.ManagerAPI import app.revanced.manager.compose.patcher.data.repository.PatchesRepository import org.koin.core.module.dsl.singleOf import org.koin.dsl.module val repositoryModule = module { - singleOf(::ReVancedRepositoryImpl) + singleOf(::ReVancedRepository) singleOf(::ManagerAPI) singleOf(::PatchesRepository) } \ No newline at end of file diff --git a/app/src/main/java/app/revanced/manager/compose/di/ServiceModule.kt b/app/src/main/java/app/revanced/manager/compose/di/ServiceModule.kt index 3a08842d..353e6a2a 100644 --- a/app/src/main/java/app/revanced/manager/compose/di/ServiceModule.kt +++ b/app/src/main/java/app/revanced/manager/compose/di/ServiceModule.kt @@ -2,7 +2,6 @@ package app.revanced.manager.compose.di import app.revanced.manager.compose.network.service.HttpService import app.revanced.manager.compose.network.service.ReVancedService -import app.revanced.manager.compose.network.service.ReVancedServiceImpl import org.koin.core.module.dsl.singleOf import org.koin.dsl.module @@ -10,7 +9,7 @@ val serviceModule = module { fun provideReVancedService( client: HttpService, ): ReVancedService { - return ReVancedServiceImpl( + return ReVancedService( client = client, ) } diff --git a/app/src/main/java/app/revanced/manager/compose/domain/repository/ReVancedRepository.kt b/app/src/main/java/app/revanced/manager/compose/domain/repository/ReVancedRepository.kt index 9e5aaaf7..8824ac24 100644 --- a/app/src/main/java/app/revanced/manager/compose/domain/repository/ReVancedRepository.kt +++ b/app/src/main/java/app/revanced/manager/compose/domain/repository/ReVancedRepository.kt @@ -1,25 +1,13 @@ package app.revanced.manager.compose.domain.repository -import app.revanced.manager.compose.network.api.PatchesAsset -import app.revanced.manager.compose.network.dto.ReVancedReleases -import app.revanced.manager.compose.network.dto.ReVancedRepositories import app.revanced.manager.compose.network.service.ReVancedService -import app.revanced.manager.compose.network.utils.APIResponse -interface ReVancedRepository { - suspend fun getAssets(): APIResponse - - suspend fun getContributors(): APIResponse - - suspend fun findAsset(repo: String, file: String): PatchesAsset -} - -class ReVancedRepositoryImpl( +class ReVancedRepository( private val service: ReVancedService -) : ReVancedRepository { - override suspend fun getAssets() = service.getAssets() +) { + suspend fun getAssets() = service.getAssets() - override suspend fun getContributors() = service.getContributors() + suspend fun getContributors() = service.getContributors() - override suspend fun findAsset(repo: String, file: String) = service.findAsset(repo, file) + suspend fun findAsset(repo: String, file: String) = service.findAsset(repo, file) } \ No newline at end of file diff --git a/app/src/main/java/app/revanced/manager/compose/network/api/ManagerAPI.kt b/app/src/main/java/app/revanced/manager/compose/network/api/ManagerAPI.kt index 78056c4c..1f19ffb4 100644 --- a/app/src/main/java/app/revanced/manager/compose/network/api/ManagerAPI.kt +++ b/app/src/main/java/app/revanced/manager/compose/network/api/ManagerAPI.kt @@ -5,7 +5,7 @@ import android.util.Log import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue -import app.revanced.manager.compose.domain.repository.ReVancedRepositoryImpl +import app.revanced.manager.compose.domain.repository.ReVancedRepository import app.revanced.manager.compose.util.ghIntegrations import app.revanced.manager.compose.util.ghPatches import app.revanced.manager.compose.util.tag @@ -21,7 +21,7 @@ import java.io.File class ManagerAPI( private val app: Application, private val client: HttpClient, - private val revancedRepository: ReVancedRepositoryImpl + private val revancedRepository: ReVancedRepository ) { var downloadProgress: Float? by mutableStateOf(null) diff --git a/app/src/main/java/app/revanced/manager/compose/network/service/ReVancedService.kt b/app/src/main/java/app/revanced/manager/compose/network/service/ReVancedService.kt index f7c3bf7d..e6d65606 100644 --- a/app/src/main/java/app/revanced/manager/compose/network/service/ReVancedService.kt +++ b/app/src/main/java/app/revanced/manager/compose/network/service/ReVancedService.kt @@ -11,18 +11,10 @@ import io.ktor.client.request.* import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext -interface ReVancedService { - suspend fun getAssets(): APIResponse - - suspend fun getContributors(): APIResponse - - suspend fun findAsset(repo: String, file: String): PatchesAsset -} - -class ReVancedServiceImpl( +class ReVancedService( private val client: HttpService, -) : ReVancedService { - override suspend fun getAssets(): APIResponse { +) { + suspend fun getAssets(): APIResponse { return withContext(Dispatchers.IO) { client.request { url("$apiUrl/tools") @@ -30,7 +22,7 @@ class ReVancedServiceImpl( } } - override suspend fun getContributors(): APIResponse { + suspend fun getContributors(): APIResponse { return withContext(Dispatchers.IO) { client.request { url("$apiUrl/contributors") @@ -38,7 +30,7 @@ class ReVancedServiceImpl( } } - override suspend fun findAsset(repo: String, file: String): PatchesAsset { + suspend fun findAsset(repo: String, file: String): PatchesAsset { val releases = getAssets().getOrNull() ?: throw Exception("Cannot retrieve assets") val asset = releases.tools.find { asset -> (asset.name.contains(file) && asset.repository.contains(repo))