From a97dcd4a22b230fdd7749d7f5c4e71892c5f9fa4 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 0ac8597..5376f80 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 3a08842..353e6a2 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 9e5aaaf..8824ac2 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 78056c4..1f19ffb 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 f7c3bf7..e6d6560 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))