diff --git a/app/src/main/java/foundation/e/apps/data/AppSourcesContainer.kt b/app/src/main/java/foundation/e/apps/data/AppSourcesContainer.kt new file mode 100644 index 0000000000000000000000000000000000000000..f6735a11749f4014c82554c7e6d6d2d5995a6c12 --- /dev/null +++ b/app/src/main/java/foundation/e/apps/data/AppSourcesContainer.kt @@ -0,0 +1,33 @@ +/* + * Copyright MURENA SAS 2024 + * Apps Quickly and easily install Android apps onto your device! + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +package foundation.e.apps.data + +import foundation.e.apps.data.cleanapk.repositories.CleanApkRepository +import foundation.e.apps.data.playstore.PlayStoreRepository +import javax.inject.Inject +import javax.inject.Named +import javax.inject.Singleton + +@Singleton +class AppSourcesContainer @Inject constructor( + @Named("gplayRepository") val gplayRepo: PlayStoreRepository, + @Named("cleanApkAppsRepository") val cleanApkAppsRepo: CleanApkRepository, + @Named("cleanApkPWARepository") val cleanApkPWARepo: CleanApkRepository +) diff --git a/app/src/main/java/foundation/e/apps/data/application/apps/AppsApiImpl.kt b/app/src/main/java/foundation/e/apps/data/application/apps/AppsApiImpl.kt index 15ac3e6bfd00de930c179a6fe6becc33c5d90bfa..ebb9d311158a3920f9161c53b06b3305a051758d 100644 --- a/app/src/main/java/foundation/e/apps/data/application/apps/AppsApiImpl.kt +++ b/app/src/main/java/foundation/e/apps/data/application/apps/AppsApiImpl.kt @@ -22,30 +22,27 @@ import android.content.Context import com.aurora.gplayapi.data.models.App import com.aurora.gplayapi.data.models.AuthData import dagger.hilt.android.qualifiers.ApplicationContext +import foundation.e.apps.data.AppSourcesContainer import foundation.e.apps.data.application.ApplicationDataManager import foundation.e.apps.data.application.data.Application -import foundation.e.apps.data.cleanapk.data.app.Application as CleanApkApplication import foundation.e.apps.data.application.utils.toApplication import foundation.e.apps.data.cleanapk.data.search.Search -import foundation.e.apps.data.cleanapk.repositories.CleanApkRepository import foundation.e.apps.data.enums.FilterLevel import foundation.e.apps.data.enums.Origin import foundation.e.apps.data.enums.ResultStatus import foundation.e.apps.data.enums.Status import foundation.e.apps.data.enums.isUnFiltered import foundation.e.apps.data.handleNetworkResult -import foundation.e.apps.data.playstore.PlayStoreRepository import foundation.e.apps.data.preference.AppLoungePreference import foundation.e.apps.ui.applicationlist.ApplicationDiffUtil import retrofit2.Response import javax.inject.Inject -import javax.inject.Named +import foundation.e.apps.data.cleanapk.data.app.Application as CleanApkApplication class AppsApiImpl @Inject constructor( @ApplicationContext private val context: Context, private val appLoungePreference: AppLoungePreference, - @Named("gplayRepository") private val gplayRepository: PlayStoreRepository, - @Named("cleanApkAppsRepository") private val cleanApkAppsRepository: CleanApkRepository, + private val appSources: AppSourcesContainer, private val applicationDataManager: ApplicationDataManager ) : AppsApi { @@ -56,15 +53,15 @@ class AppsApiImpl @Inject constructor( override suspend fun getCleanapkAppDetails(packageName: String): Pair { var application = Application() val result = handleNetworkResult { - val result = cleanApkAppsRepository.getSearchResult( + val result = appSources.cleanApkAppsRepo.getSearchResult( packageName, KEY_SEARCH_PACKAGE_NAME ).body() if (result?.hasSingleResult() == true) { application = - (cleanApkAppsRepository.getAppDetails(result.apps[0]._id) as Response) - .body()?.app ?: Application() + (appSources.cleanApkAppsRepo.getAppDetails(result.apps[0]._id) + as Response).body()?.app ?: Application() } application.updateFilterLevel(null) @@ -135,7 +132,7 @@ class AppsApiImpl @Inject constructor( val applicationList = mutableListOf() val result = handleNetworkResult { - gplayRepository.getAppsDetails(packageNameList).forEach { app -> + appSources.gplayRepo.getAppsDetails(packageNameList).forEach { app -> handleFilteredApps(app, authData, applicationList) } } @@ -168,7 +165,7 @@ class AppsApiImpl @Inject constructor( packageName: String, applicationList: MutableList ) = handleNetworkResult { - cleanApkAppsRepository.getSearchResult( + appSources.cleanApkAppsRepo.getSearchResult( packageName, KEY_SEARCH_PACKAGE_NAME ).body()?.run { @@ -201,9 +198,10 @@ class AppsApiImpl @Inject constructor( val result = handleNetworkResult { application = if (origin == Origin.CLEANAPK) { - (cleanApkAppsRepository.getAppDetails(id) as Response).body()?.app + (appSources.cleanApkAppsRepo.getAppDetails(id) + as Response).body()?.app } else { - val app = gplayRepository.getAppDetails(packageName) as App? + val app = appSources.gplayRepo.getAppDetails(packageName) as App? app?.toApplication(context) } diff --git a/app/src/main/java/foundation/e/apps/data/application/category/CategoryApiImpl.kt b/app/src/main/java/foundation/e/apps/data/application/category/CategoryApiImpl.kt index c7062248745de2659fdce8997b214346ba341f20..07a84b5e9200b5954f17736478922e0ad7c8f972 100644 --- a/app/src/main/java/foundation/e/apps/data/application/category/CategoryApiImpl.kt +++ b/app/src/main/java/foundation/e/apps/data/application/category/CategoryApiImpl.kt @@ -24,6 +24,7 @@ import com.aurora.gplayapi.data.models.AuthData import com.aurora.gplayapi.data.models.StreamCluster import dagger.hilt.android.qualifiers.ApplicationContext import foundation.e.apps.R +import foundation.e.apps.data.AppSourcesContainer import foundation.e.apps.data.ResultSupreme import foundation.e.apps.data.application.ApplicationDataManager import foundation.e.apps.data.application.data.Application @@ -33,23 +34,18 @@ import foundation.e.apps.data.application.utils.CategoryUtils import foundation.e.apps.data.application.utils.toApplication import foundation.e.apps.data.application.utils.toCategory import foundation.e.apps.data.cleanapk.data.categories.Categories -import foundation.e.apps.data.cleanapk.repositories.CleanApkRepository import foundation.e.apps.data.enums.AppTag import foundation.e.apps.data.enums.ResultStatus import foundation.e.apps.data.enums.Source import foundation.e.apps.data.enums.isUnFiltered import foundation.e.apps.data.handleNetworkResult -import foundation.e.apps.data.playstore.PlayStoreRepository import foundation.e.apps.data.preference.AppLoungePreference import javax.inject.Inject -import javax.inject.Named class CategoryApiImpl @Inject constructor( @ApplicationContext private val context: Context, private val appLoungePreference: AppLoungePreference, - @Named("gplayRepository") private val gplayRepository: PlayStoreRepository, - @Named("cleanApkAppsRepository") private val cleanApkAppsRepository: CleanApkRepository, - @Named("cleanApkPWARepository") private val cleanApkPWARepository: CleanApkRepository, + private val appSources: AppSourcesContainer, private val applicationDataManager: ApplicationDataManager ) : CategoryApi { @@ -113,7 +109,7 @@ class CategoryApiImpl @Inject constructor( ): Pair, ResultStatus> { val categoryList = mutableListOf() val result = handleNetworkResult { - val playResponse = gplayRepository.getCategories(type).map { gplayCategory -> + val playResponse = appSources.gplayRepo.getCategories(type).map { gplayCategory -> val category = gplayCategory.toCategory() category.drawable = CategoryUtils.provideAppsCategoryIconResource( @@ -140,12 +136,12 @@ class CategoryApiImpl @Inject constructor( val categories = when (source) { Source.OPEN -> { tag = AppTag.OpenSource(context.getString(R.string.open_source)) - cleanApkAppsRepository.getCategories().body() + appSources.cleanApkAppsRepo.getCategories().body() } Source.PWA -> { tag = AppTag.PWA(context.getString(R.string.pwa)) - cleanApkPWARepository.getCategories().body() + appSources.cleanApkPWARepo.getCategories().body() } else -> null @@ -185,7 +181,7 @@ class CategoryApiImpl @Inject constructor( return handleNetworkResult { val streamCluster = - gplayRepository.getAppsByCategory(category, pageUrl) as StreamCluster + appSources.gplayRepo.getAppsByCategory(category, pageUrl) as StreamCluster val filteredAppList = filterRestrictedGPlayApps(authData, streamCluster.clusterAppList) filteredAppList.data?.let { @@ -258,11 +254,11 @@ class CategoryApiImpl @Inject constructor( category: String ) = when (source) { Source.OPEN -> { - cleanApkAppsRepository.getAppsByCategory(category).body() + appSources.cleanApkAppsRepo.getAppsByCategory(category).body() } Source.PWA -> { - cleanApkPWARepository.getAppsByCategory(category).body() + appSources.cleanApkPWARepo.getAppsByCategory(category).body() } else -> null diff --git a/app/src/main/java/foundation/e/apps/data/application/downloadInfo/DownloadInfoApiImpl.kt b/app/src/main/java/foundation/e/apps/data/application/downloadInfo/DownloadInfoApiImpl.kt index 06126cc3007ff9b932768b36508b722738c29ae2..29f06a99911bb1c6470fbd5ba5610518363aca09 100644 --- a/app/src/main/java/foundation/e/apps/data/application/downloadInfo/DownloadInfoApiImpl.kt +++ b/app/src/main/java/foundation/e/apps/data/application/downloadInfo/DownloadInfoApiImpl.kt @@ -18,17 +18,14 @@ package foundation.e.apps.data.application.downloadInfo +import foundation.e.apps.data.AppSourcesContainer import foundation.e.apps.data.cleanapk.CleanApkDownloadInfoFetcher -import foundation.e.apps.data.cleanapk.repositories.CleanApkRepository import foundation.e.apps.data.enums.Origin import foundation.e.apps.data.fusedDownload.models.FusedDownload -import foundation.e.apps.data.playstore.PlayStoreRepository import javax.inject.Inject -import javax.inject.Named class DownloadInfoApiImpl @Inject constructor( - @Named("gplayRepository") private val gplayRepository: PlayStoreRepository, - @Named("cleanApkAppsRepository") private val cleanApkAppsRepository: CleanApkRepository + private val appSources: AppSourcesContainer ) : DownloadInfoApi { override suspend fun getOnDemandModule( @@ -37,7 +34,7 @@ class DownloadInfoApiImpl @Inject constructor( versionCode: Int, offerType: Int ): String? { - val list = gplayRepository.getOnDemandModule( + val list = appSources.gplayRepo.getOnDemandModule( packageName, moduleName, versionCode, @@ -76,7 +73,7 @@ class DownloadInfoApiImpl @Inject constructor( list: MutableList ) { val downloadList = - gplayRepository.getDownloadInfo( + appSources.gplayRepo.getDownloadInfo( fusedDownload.packageName, fusedDownload.versionCode, fusedDownload.offerType @@ -90,13 +87,13 @@ class DownloadInfoApiImpl @Inject constructor( list: MutableList ) { val downloadInfo = - (cleanApkAppsRepository as CleanApkDownloadInfoFetcher).getDownloadInfo( - fusedDownload.id - ).body() + (appSources.cleanApkAppsRepo as CleanApkDownloadInfoFetcher) + .getDownloadInfo(fusedDownload.id).body() downloadInfo?.download_data?.download_link?.let { list.add(it) } fusedDownload.signature = downloadInfo?.download_data?.signature ?: "" } override suspend fun getOSSDownloadInfo(id: String, version: String?) = - (cleanApkAppsRepository as CleanApkDownloadInfoFetcher).getDownloadInfo(id, version) + (appSources.cleanApkAppsRepo as CleanApkDownloadInfoFetcher) + .getDownloadInfo(id, version) } diff --git a/app/src/main/java/foundation/e/apps/data/application/home/HomeApiImpl.kt b/app/src/main/java/foundation/e/apps/data/application/home/HomeApiImpl.kt index 7a262ab0d174a248df590d201c2f9387b8f1462d..d8b91b1734f2fbd610a89a1e01b087ae39fa71b5 100644 --- a/app/src/main/java/foundation/e/apps/data/application/home/HomeApiImpl.kt +++ b/app/src/main/java/foundation/e/apps/data/application/home/HomeApiImpl.kt @@ -25,6 +25,7 @@ import com.aurora.gplayapi.data.models.App import com.aurora.gplayapi.data.models.AuthData import dagger.hilt.android.qualifiers.ApplicationContext import foundation.e.apps.R +import foundation.e.apps.data.AppSourcesContainer import foundation.e.apps.data.ResultSupreme import foundation.e.apps.data.application.ApplicationDataManager import foundation.e.apps.data.application.data.Home @@ -32,12 +33,10 @@ import foundation.e.apps.data.application.search.FusedHomeDeferred import foundation.e.apps.data.application.search.SearchApi import foundation.e.apps.data.application.utils.toApplication import foundation.e.apps.data.cleanapk.data.home.HomeScreen -import foundation.e.apps.data.cleanapk.repositories.CleanApkRepository import foundation.e.apps.data.enums.ResultStatus import foundation.e.apps.data.enums.Source import foundation.e.apps.data.handleNetworkResult import foundation.e.apps.data.login.AuthObject -import foundation.e.apps.data.playstore.PlayStoreRepository import foundation.e.apps.data.preference.AppLoungePreference import foundation.e.apps.utils.eventBus.AppEvent import foundation.e.apps.utils.eventBus.EventBus @@ -48,15 +47,12 @@ import kotlinx.coroutines.launch import retrofit2.Response import timber.log.Timber import javax.inject.Inject -import javax.inject.Named import foundation.e.apps.data.cleanapk.data.home.Home as CleanApkHome class HomeApiImpl @Inject constructor( @ApplicationContext private val context: Context, private val appLoungePreference: AppLoungePreference, - @Named("gplayRepository") private val gplayRepository: PlayStoreRepository, - @Named("cleanApkAppsRepository") private val cleanApkAppsRepository: CleanApkRepository, - @Named("cleanApkPWARepository") private val cleanApkPWARepository: CleanApkRepository, + private val appSources: AppSourcesContainer, private val applicationDataManager: ApplicationDataManager ) : HomeApi { @@ -143,9 +139,9 @@ class HomeApiImpl @Inject constructor( appType: String ): MutableList { val response = if (appType == SearchApi.APP_TYPE_OPEN) { - (cleanApkAppsRepository.getHomeScreenData() as Response).body() + (appSources.cleanApkAppsRepo.getHomeScreenData() as Response).body() } else { - (cleanApkPWARepository.getHomeScreenData() as Response).body() + (appSources.cleanApkPWARepo.getHomeScreenData() as Response).body() } response?.home?.let { @@ -182,11 +178,19 @@ class HomeApiImpl @Inject constructor( } "popular_apps_in_last_24_hours" -> { - applicationDataManager.prepareApps(home.popular_apps_in_last_24_hours, list, value) + applicationDataManager.prepareApps( + home.popular_apps_in_last_24_hours, + list, + value + ) } "popular_games_in_last_24_hours" -> { - applicationDataManager.prepareApps(home.popular_games_in_last_24_hours, list, value) + applicationDataManager.prepareApps( + home.popular_games_in_last_24_hours, + list, + value + ) } "discover" -> { @@ -230,7 +234,8 @@ class HomeApiImpl @Inject constructor( priorList: MutableList ): List { val list = mutableListOf() - val gplayHomeData = gplayRepository.getHomeScreenData() as Map> + val gplayHomeData = + appSources.gplayRepo.getHomeScreenData() as Map> gplayHomeData.map { val fusedApps = it.value.map { app -> app.toApplication(context).apply { diff --git a/app/src/main/java/foundation/e/apps/data/application/search/SearchApiImpl.kt b/app/src/main/java/foundation/e/apps/data/application/search/SearchApiImpl.kt index be63b44e63468f6b0ef42c7a190bca0bcea1347a..0a64ad81c48cc35769014ae2626f20e84402aee0 100644 --- a/app/src/main/java/foundation/e/apps/data/application/search/SearchApiImpl.kt +++ b/app/src/main/java/foundation/e/apps/data/application/search/SearchApiImpl.kt @@ -24,6 +24,7 @@ import com.aurora.gplayapi.data.models.App import com.aurora.gplayapi.data.models.AuthData import com.aurora.gplayapi.data.models.SearchBundle import dagger.hilt.android.qualifiers.ApplicationContext +import foundation.e.apps.data.AppSourcesContainer import foundation.e.apps.data.ResultSupreme import foundation.e.apps.data.application.ApplicationDataManager import foundation.e.apps.data.application.apps.AppsApi @@ -33,12 +34,10 @@ import foundation.e.apps.data.application.search.SearchApi.Companion.APP_TYPE_PW import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.application.data.Home import foundation.e.apps.data.application.utils.toApplication -import foundation.e.apps.data.cleanapk.repositories.CleanApkRepository import foundation.e.apps.data.enums.Origin import foundation.e.apps.data.enums.ResultStatus import foundation.e.apps.data.handleNetworkResult import foundation.e.apps.data.login.AuthObject -import foundation.e.apps.data.playstore.PlayStoreRepository import foundation.e.apps.data.preference.AppLoungePreference import foundation.e.apps.utils.eventBus.AppEvent import foundation.e.apps.utils.eventBus.EventBus @@ -47,7 +46,6 @@ import kotlinx.coroutines.MainScope import kotlinx.coroutines.launch import timber.log.Timber import javax.inject.Inject -import javax.inject.Named import javax.inject.Singleton typealias FusedHomeDeferred = Deferred>> @@ -56,9 +54,7 @@ typealias FusedHomeDeferred = Deferred>> class SearchApiImpl @Inject constructor( private val appsApi: AppsApi, private val appLoungePreference: AppLoungePreference, - @Named("gplayRepository") private val gplayRepository: PlayStoreRepository, - @Named("cleanApkAppsRepository") private val cleanApkAppsRepository: CleanApkRepository, - @Named("cleanApkPWARepository") private val cleanApkPWARepository: CleanApkRepository, + private val appSources: AppSourcesContainer, private val applicationDataManager: ApplicationDataManager ) : SearchApi { @@ -133,7 +129,7 @@ class SearchApiImpl @Inject constructor( val pwaApps: MutableList = mutableListOf() val result = handleNetworkResult { val apps = - cleanApkPWARepository.getSearchResult(query).body()?.apps + appSources.cleanApkPWARepo.getSearchResult(query).body()?.apps apps?.forEach { applicationDataManager.updateStatus(it) it.updateType() @@ -287,7 +283,7 @@ class SearchApiImpl @Inject constructor( private suspend fun getCleanApkSearchResult(packageName: String): ResultSupreme { var application = Application() val result = handleNetworkResult { - val result = cleanApkAppsRepository.getSearchResult( + val result = appSources.cleanApkAppsRepo.getSearchResult( packageName, "package_name" ).body() @@ -303,7 +299,7 @@ class SearchApiImpl @Inject constructor( override suspend fun getSearchSuggestions(query: String): List { var searchSuggesions = listOf() handleNetworkResult { - searchSuggesions = gplayRepository.getSearchSuggestions(query) + searchSuggesions = appSources.gplayRepo.getSearchSuggestions(query) } return searchSuggesions @@ -314,7 +310,7 @@ class SearchApiImpl @Inject constructor( ): List { val list = mutableListOf() val response = - cleanApkAppsRepository.getSearchResult(keyword).body()?.apps + appSources.cleanApkAppsRepo.getSearchResult(keyword).body()?.apps response?.forEach { applicationDataManager.updateStatus(it) @@ -332,7 +328,7 @@ class SearchApiImpl @Inject constructor( ): GplaySearchResult { return handleNetworkResult { val searchResults = - gplayRepository.getSearchResult(query, nextPageSubBundle?.toMutableSet()) + appSources.gplayRepo.getSearchResult(query, nextPageSubBundle?.toMutableSet()) if (!appLoungePreference.isGplaySelected()) { return@handleNetworkResult Pair( @@ -358,7 +354,7 @@ class SearchApiImpl @Inject constructor( if (appList.isNullOrEmpty()) { // Call search api with a common keyword (ex: facebook) // to ensure Gplay is returning empty as search result for other keywords as well - val searchResult = gplayRepository.getSearchResult(KEYWORD_TEST_SEARCH, null) + val searchResult = appSources.gplayRepo.getSearchResult(KEYWORD_TEST_SEARCH, null) if (searchResult.first.isEmpty()) { Timber.w("Limited result for search is found...") refreshToken() @@ -372,7 +368,7 @@ class SearchApiImpl @Inject constructor( */ private suspend fun replaceWithFDroid(gPlayApp: App): Application { val gPlayFusedApp = gPlayApp.toApplication(context) - val response = cleanApkAppsRepository.getAppDetails(gPlayApp.packageName) + val response = appSources.cleanApkAppsRepo.getAppDetails(gPlayApp.packageName) if (response != null) { val fdroidApp = getCleanApkPackageResult(gPlayFusedApp.package_name)?.apply { this.updateSource(context) diff --git a/app/src/test/java/foundation/e/apps/apps/AppsApiTest.kt b/app/src/test/java/foundation/e/apps/apps/AppsApiTest.kt index 49eaaa2eda5ec3c3e4975a3a43a7954708485e7d..f86f01f6fbe39c229ea44ebe6a3834aa7978c4da 100644 --- a/app/src/test/java/foundation/e/apps/apps/AppsApiTest.kt +++ b/app/src/test/java/foundation/e/apps/apps/AppsApiTest.kt @@ -25,6 +25,7 @@ import com.aurora.gplayapi.Constants import com.aurora.gplayapi.data.models.App import com.aurora.gplayapi.data.models.AuthData import foundation.e.apps.FakeAppLoungePreference +import foundation.e.apps.data.AppSourcesContainer import foundation.e.apps.data.cleanapk.repositories.CleanApkRepository import foundation.e.apps.data.enums.FilterLevel import foundation.e.apps.data.enums.Origin @@ -77,6 +78,9 @@ class AppsApiTest { @Mock private lateinit var cleanApkAppsRepository: CleanApkRepository + @Mock + private lateinit var cleanApkPWARepository: CleanApkRepository + @Mock private lateinit var gPlayAPIRepository: PlayStoreRepository @@ -99,13 +103,13 @@ class AppsApiTest { preferenceManagerModule = FakeAppLoungePreference(context) applicationDataManager = ApplicationDataManager(gPlayAPIRepository, appLoungePackageManager, pwaManager) - + val appSourcesContainer = + AppSourcesContainer(gPlayAPIRepository, cleanApkAppsRepository, cleanApkPWARepository) appsApi = AppsApiImpl( context, preferenceManagerModule, - gPlayAPIRepository, - cleanApkAppsRepository, - applicationDataManager, + appSourcesContainer, + applicationDataManager ) } @@ -222,15 +226,30 @@ class AppsApiTest { ) ) - Mockito.`when`(appLoungePackageManager.getPackageStatus(eq("foundation.e.demoone"), eq(123))) + Mockito.`when`( + appLoungePackageManager.getPackageStatus( + eq("foundation.e.demoone"), + eq(123) + ) + ) .thenReturn( Status.UNAVAILABLE ) - Mockito.`when`(appLoungePackageManager.getPackageStatus(eq("foundation.e.demotwo"), eq(123))) + Mockito.`when`( + appLoungePackageManager.getPackageStatus( + eq("foundation.e.demotwo"), + eq(123) + ) + ) .thenReturn( Status.UNAVAILABLE ) - Mockito.`when`(appLoungePackageManager.getPackageStatus(eq("foundation.e.demothree"), eq(123))) + Mockito.`when`( + appLoungePackageManager.getPackageStatus( + eq("foundation.e.demothree"), + eq(123) + ) + ) .thenReturn( Status.UNAVAILABLE ) @@ -265,15 +284,30 @@ class AppsApiTest { ) ) - Mockito.`when`(appLoungePackageManager.getPackageStatus(eq("foundation.e.demoone"), eq(123))) + Mockito.`when`( + appLoungePackageManager.getPackageStatus( + eq("foundation.e.demoone"), + eq(123) + ) + ) .thenReturn( Status.UNAVAILABLE ) - Mockito.`when`(appLoungePackageManager.getPackageStatus(eq("foundation.e.demotwo"), eq(123))) + Mockito.`when`( + appLoungePackageManager.getPackageStatus( + eq("foundation.e.demotwo"), + eq(123) + ) + ) .thenReturn( Status.INSTALLED ) - Mockito.`when`(appLoungePackageManager.getPackageStatus(eq("foundation.e.demothree"), eq(123))) + Mockito.`when`( + appLoungePackageManager.getPackageStatus( + eq("foundation.e.demothree"), + eq(123) + ) + ) .thenReturn( Status.UNAVAILABLE ) @@ -308,15 +342,30 @@ class AppsApiTest { ) ) - Mockito.`when`(appLoungePackageManager.getPackageStatus(eq("foundation.e.demoone"), eq(123))) + Mockito.`when`( + appLoungePackageManager.getPackageStatus( + eq("foundation.e.demoone"), + eq(123) + ) + ) .thenReturn( Status.UNAVAILABLE ) - Mockito.`when`(appLoungePackageManager.getPackageStatus(eq("foundation.e.demotwo"), eq(123))) + Mockito.`when`( + appLoungePackageManager.getPackageStatus( + eq("foundation.e.demotwo"), + eq(123) + ) + ) .thenReturn( Status.INSTALLED ) - Mockito.`when`(appLoungePackageManager.getPackageStatus(eq("foundation.e.demothree"), eq(123))) + Mockito.`when`( + appLoungePackageManager.getPackageStatus( + eq("foundation.e.demothree"), + eq(123) + ) + ) .thenReturn( Status.UNAVAILABLE ) diff --git a/app/src/test/java/foundation/e/apps/category/CategoryApiTest.kt b/app/src/test/java/foundation/e/apps/category/CategoryApiTest.kt index 26451db61473a9c9d0a5d47d7eca80bec452c7d1..e6a96d7e2257c0e059a69b4d70b40ab335376c3b 100644 --- a/app/src/test/java/foundation/e/apps/category/CategoryApiTest.kt +++ b/app/src/test/java/foundation/e/apps/category/CategoryApiTest.kt @@ -23,6 +23,7 @@ import androidx.arch.core.executor.testing.InstantTaskExecutorRule import com.aurora.gplayapi.data.models.Category import foundation.e.apps.FakeAppLoungePreference import foundation.e.apps.R +import foundation.e.apps.data.AppSourcesContainer import foundation.e.apps.data.application.ApplicationDataManager import foundation.e.apps.data.application.category.CategoryApi import foundation.e.apps.data.application.category.CategoryApiImpl @@ -87,12 +88,12 @@ class CategoryApiTest { preferenceManagerModule = FakeAppLoungePreference(context) val applicationDataManager = ApplicationDataManager(gPlayAPIRepository, appLoungePackageManager, pwaManager) + val appSourcesContainer = + AppSourcesContainer(gPlayAPIRepository, cleanApkAppsRepository, cleanApkPWARepository) categoryApi = CategoryApiImpl( context, preferenceManagerModule, - gPlayAPIRepository, - cleanApkAppsRepository, - cleanApkPWARepository, + appSourcesContainer, applicationDataManager ) } diff --git a/app/src/test/java/foundation/e/apps/fused/SearchApiImplTest.kt b/app/src/test/java/foundation/e/apps/fused/SearchApiImplTest.kt index c63435755f53695d4fc6b9ade94752cc869148a1..ffceefeccbf0c02681c873eebc04dd698beebf8b 100644 --- a/app/src/test/java/foundation/e/apps/fused/SearchApiImplTest.kt +++ b/app/src/test/java/foundation/e/apps/fused/SearchApiImplTest.kt @@ -24,6 +24,7 @@ import com.aurora.gplayapi.data.models.App import com.aurora.gplayapi.data.models.AuthData import com.aurora.gplayapi.data.models.SearchBundle import foundation.e.apps.FakeAppLoungePreference +import foundation.e.apps.data.AppSourcesContainer import foundation.e.apps.data.cleanapk.data.search.Search import foundation.e.apps.data.cleanapk.repositories.CleanApkRepository import foundation.e.apps.data.enums.Origin @@ -111,21 +112,19 @@ class SearchApiImplTest { preferenceManagerModule = FakeAppLoungePreference(context) applicationDataManager = ApplicationDataManager(gPlayAPIRepository, appLoungePackageManager, pwaManager) - + val appSourcesContainer = + AppSourcesContainer(gPlayAPIRepository, cleanApkAppsRepository, cleanApkPWARepository) appsApi = AppsApiImpl( context, preferenceManagerModule, - gPlayAPIRepository, - cleanApkAppsRepository, + appSourcesContainer, applicationDataManager, ) fusedAPIImpl = SearchApiImpl( appsApi, preferenceManagerModule, - gPlayAPIRepository, - cleanApkAppsRepository, - cleanApkPWARepository, + appSourcesContainer, applicationDataManager ) } diff --git a/app/src/test/java/foundation/e/apps/home/HomeApiTest.kt b/app/src/test/java/foundation/e/apps/home/HomeApiTest.kt index 27ba23e72963aca476aa5a04640980cb40e54152..82e5595bf55d4fd7c9d3e2d79edbf3d0c2b7aa3c 100644 --- a/app/src/test/java/foundation/e/apps/home/HomeApiTest.kt +++ b/app/src/test/java/foundation/e/apps/home/HomeApiTest.kt @@ -24,6 +24,7 @@ import androidx.arch.core.executor.testing.InstantTaskExecutorRule import com.aurora.gplayapi.data.models.App import com.aurora.gplayapi.data.models.AuthData import foundation.e.apps.FakeAppLoungePreference +import foundation.e.apps.data.AppSourcesContainer import foundation.e.apps.data.application.ApplicationDataManager import foundation.e.apps.data.application.home.HomeApi import foundation.e.apps.data.application.home.HomeApiImpl @@ -98,12 +99,12 @@ class HomeApiTest { preferenceManagerModule = FakeAppLoungePreference(context) applicationDataManager = ApplicationDataManager(gPlayAPIRepository, appLoungePackageManager, pwaManager) + val appSourcesContainer = + AppSourcesContainer(gPlayAPIRepository, cleanApkAppsRepository, cleanApkPWARepository) homeApi = HomeApiImpl( context, preferenceManagerModule, - gPlayAPIRepository, - cleanApkAppsRepository, - cleanApkPWARepository, + appSourcesContainer, applicationDataManager ) }