From 2c84d563a042d59bd4d0f3593840c425212bc49b Mon Sep 17 00:00:00 2001 From: Jonathan Klee Date: Tue, 24 Oct 2023 16:00:39 +0200 Subject: [PATCH 1/6] Rename Fused to Application --- .../fused/{FusedApi.kt => ApplicationApi.kt} | 2 +- ...{FusedApiImpl.kt => ApplicationApiImpl.kt} | 11 +++-- .../e/apps/data/fused/FusedAPIRepository.kt | 44 +++++++++---------- .../e/apps/data/updates/UpdatesManagerImpl.kt | 2 +- .../foundation/e/apps/di/RepositoryModule.kt | 6 +-- .../e/apps/install/pkg/PkgManagerModule.kt | 4 +- .../e/apps/UpdateManagerImptTest.kt | 8 ++-- ...iImplTest.kt => ApplicationApiImplTest.kt} | 9 ++-- ...est.kt => ApplicationApiRepositoryTest.kt} | 6 +-- 9 files changed, 45 insertions(+), 47 deletions(-) rename app/src/main/java/foundation/e/apps/data/fused/{FusedApi.kt => ApplicationApi.kt} (99%) rename app/src/main/java/foundation/e/apps/data/fused/{FusedApiImpl.kt => ApplicationApiImpl.kt} (96%) rename app/src/test/java/foundation/e/apps/fused/{FusedApiImplTest.kt => ApplicationApiImplTest.kt} (99%) rename app/src/test/java/foundation/e/apps/fused/{FusedApiRepositoryTest.kt => ApplicationApiRepositoryTest.kt} (92%) diff --git a/app/src/main/java/foundation/e/apps/data/fused/FusedApi.kt b/app/src/main/java/foundation/e/apps/data/fused/ApplicationApi.kt similarity index 99% rename from app/src/main/java/foundation/e/apps/data/fused/FusedApi.kt rename to app/src/main/java/foundation/e/apps/data/fused/ApplicationApi.kt index 6e9e473e1..c49c667f6 100644 --- a/app/src/main/java/foundation/e/apps/data/fused/FusedApi.kt +++ b/app/src/main/java/foundation/e/apps/data/fused/ApplicationApi.kt @@ -20,7 +20,7 @@ import retrofit2.Response typealias GplaySearchResult = ResultSupreme, Set>> -interface FusedApi { +interface ApplicationApi { companion object { const val APP_TYPE_ANY = "any" const val APP_TYPE_OPEN = "open" diff --git a/app/src/main/java/foundation/e/apps/data/fused/FusedApiImpl.kt b/app/src/main/java/foundation/e/apps/data/fused/ApplicationApiImpl.kt similarity index 96% rename from app/src/main/java/foundation/e/apps/data/fused/FusedApiImpl.kt rename to app/src/main/java/foundation/e/apps/data/fused/ApplicationApiImpl.kt index 1b3162982..c151c2a26 100644 --- a/app/src/main/java/foundation/e/apps/data/fused/FusedApiImpl.kt +++ b/app/src/main/java/foundation/e/apps/data/fused/ApplicationApiImpl.kt @@ -34,7 +34,6 @@ import dagger.hilt.android.qualifiers.ApplicationContext import foundation.e.apps.R import foundation.e.apps.data.ResultSupreme import foundation.e.apps.data.cleanapk.CleanApkDownloadInfoFetcher -import foundation.e.apps.data.cleanapk.CleanApkRetrofit import foundation.e.apps.data.cleanapk.data.app.Application import foundation.e.apps.data.cleanapk.data.categories.Categories import foundation.e.apps.data.cleanapk.data.home.Home @@ -49,9 +48,9 @@ import foundation.e.apps.data.enums.Source import foundation.e.apps.data.enums.Status import foundation.e.apps.data.enums.Type import foundation.e.apps.data.enums.isUnFiltered -import foundation.e.apps.data.fused.FusedApi.Companion.APP_TYPE_ANY -import foundation.e.apps.data.fused.FusedApi.Companion.APP_TYPE_OPEN -import foundation.e.apps.data.fused.FusedApi.Companion.APP_TYPE_PWA +import foundation.e.apps.data.fused.ApplicationApi.Companion.APP_TYPE_ANY +import foundation.e.apps.data.fused.ApplicationApi.Companion.APP_TYPE_OPEN +import foundation.e.apps.data.fused.ApplicationApi.Companion.APP_TYPE_PWA import foundation.e.apps.data.fused.data.FusedApp import foundation.e.apps.data.fused.data.FusedCategory import foundation.e.apps.data.fused.data.FusedHome @@ -82,7 +81,7 @@ import javax.inject.Singleton typealias FusedHomeDeferred = Deferred>> @Singleton -class FusedApiImpl @Inject constructor( +class ApplicationApiImpl @Inject constructor( private val pkgManagerModule: PkgManagerModule, private val pwaManagerModule: PWAManagerModule, private val preferenceManagerModule: PreferenceManagerModule, @@ -90,7 +89,7 @@ class FusedApiImpl @Inject constructor( @Named("cleanApkAppsRepository") private val cleanApkAppsRepository: CleanApkRepository, @Named("cleanApkPWARepository") private val cleanApkPWARepository: CleanApkRepository, @ApplicationContext private val context: Context -) : FusedApi { +) : ApplicationApi { companion object { private const val CATEGORY_TITLE_REPLACEABLE_CONJUNCTION = "&" diff --git a/app/src/main/java/foundation/e/apps/data/fused/FusedAPIRepository.kt b/app/src/main/java/foundation/e/apps/data/fused/FusedAPIRepository.kt index f88f197e5..7dccc3788 100644 --- a/app/src/main/java/foundation/e/apps/data/fused/FusedAPIRepository.kt +++ b/app/src/main/java/foundation/e/apps/data/fused/FusedAPIRepository.kt @@ -37,14 +37,14 @@ import javax.inject.Inject import javax.inject.Singleton @Singleton -class FusedAPIRepository @Inject constructor(private val fusedAPIImpl: FusedApi) { +class FusedAPIRepository @Inject constructor(private val applicationAPIImpl: ApplicationApi) { suspend fun getHomeScreenData(authData: AuthData): LiveData>> { - return fusedAPIImpl.getHomeScreenData(authData) + return applicationAPIImpl.getHomeScreenData(authData) } fun getApplicationCategoryPreference(): List { - return fusedAPIImpl.getApplicationCategoryPreference() + return applicationAPIImpl.getApplicationCategoryPreference() } suspend fun getApplicationDetails( @@ -52,11 +52,11 @@ class FusedAPIRepository @Inject constructor(private val fusedAPIImpl: FusedApi) authData: AuthData, origin: Origin ): Pair, ResultStatus> { - return fusedAPIImpl.getApplicationDetails(packageNameList, authData, origin) + return applicationAPIImpl.getApplicationDetails(packageNameList, authData, origin) } suspend fun getAppFilterLevel(fusedApp: FusedApp, authData: AuthData?): FilterLevel { - return fusedAPIImpl.getAppFilterLevel(fusedApp, authData) + return applicationAPIImpl.getAppFilterLevel(fusedApp, authData) } suspend fun getApplicationDetails( @@ -65,25 +65,25 @@ class FusedAPIRepository @Inject constructor(private val fusedAPIImpl: FusedApi) authData: AuthData, origin: Origin ): Pair { - return fusedAPIImpl.getApplicationDetails(id, packageName, authData, origin) + return applicationAPIImpl.getApplicationDetails(id, packageName, authData, origin) } suspend fun getCleanapkAppDetails(packageName: String): Pair { - return fusedAPIImpl.getCleanapkAppDetails(packageName) + return applicationAPIImpl.getCleanapkAppDetails(packageName) } suspend fun updateFusedDownloadWithDownloadingInfo( origin: Origin, fusedDownload: FusedDownload ) { - fusedAPIImpl.updateFusedDownloadWithDownloadingInfo( + applicationAPIImpl.updateFusedDownloadWithDownloadingInfo( origin, fusedDownload ) } suspend fun getOSSDownloadInfo(id: String, version: String? = null) = - fusedAPIImpl.getOSSDownloadInfo(id, version) + applicationAPIImpl.getOSSDownloadInfo(id, version) suspend fun getOnDemandModule( packageName: String, @@ -91,31 +91,31 @@ class FusedAPIRepository @Inject constructor(private val fusedAPIImpl: FusedApi) versionCode: Int, offerType: Int ): String? { - return fusedAPIImpl.getOnDemandModule(packageName, moduleName, versionCode, offerType) + return applicationAPIImpl.getOnDemandModule(packageName, moduleName, versionCode, offerType) } suspend fun getCategoriesList( type: CategoryType, ): Triple, String, ResultStatus> { - return fusedAPIImpl.getCategoriesList(type) + return applicationAPIImpl.getCategoriesList(type) } suspend fun getSearchSuggestions(query: String): List { - return fusedAPIImpl.getSearchSuggestions(query) + return applicationAPIImpl.getSearchSuggestions(query) } suspend fun getCleanApkSearchResults( query: String, authData: AuthData ): ResultSupreme, Boolean>> { - return fusedAPIImpl.getCleanApkSearchResults(query, authData) + return applicationAPIImpl.getCleanApkSearchResults(query, authData) } suspend fun getGplaySearchResults( query: String, nextPageSubBundle: Set? ): GplaySearchResult { - return fusedAPIImpl.getGplaySearchResult(query, nextPageSubBundle) + return applicationAPIImpl.getGplaySearchResult(query, nextPageSubBundle) } suspend fun getAppsListBasedOnCategory( @@ -125,28 +125,28 @@ class FusedAPIRepository @Inject constructor(private val fusedAPIImpl: FusedApi) source: Source ): ResultSupreme, String>> { return when (source) { - Source.OPEN -> fusedAPIImpl.getOpenSourceApps(category) - Source.PWA -> fusedAPIImpl.getPWAApps(category) - else -> fusedAPIImpl.getGplayAppsByCategory(authData, category, pageUrl) + Source.OPEN -> applicationAPIImpl.getOpenSourceApps(category) + Source.PWA -> applicationAPIImpl.getPWAApps(category) + else -> applicationAPIImpl.getGplayAppsByCategory(authData, category, pageUrl) } } fun getFusedAppInstallationStatus(fusedApp: FusedApp): Status { - return fusedAPIImpl.getFusedAppInstallationStatus(fusedApp) + return applicationAPIImpl.getFusedAppInstallationStatus(fusedApp) } fun isHomeDataUpdated( newHomeData: List, oldHomeData: List - ) = fusedAPIImpl.isHomeDataUpdated(newHomeData, oldHomeData) + ) = applicationAPIImpl.isHomeDataUpdated(newHomeData, oldHomeData) fun isAnyFusedAppUpdated( newFusedApps: List, oldFusedApps: List - ) = fusedAPIImpl.isAnyFusedAppUpdated(newFusedApps, oldFusedApps) + ) = applicationAPIImpl.isAnyFusedAppUpdated(newFusedApps, oldFusedApps) fun isAnyAppInstallStatusChanged(currentList: List) = - fusedAPIImpl.isAnyAppInstallStatusChanged(currentList) + applicationAPIImpl.isAnyAppInstallStatusChanged(currentList) - fun isOpenSourceSelected() = fusedAPIImpl.isOpenSourceSelected() + fun isOpenSourceSelected() = applicationAPIImpl.isOpenSourceSelected() } diff --git a/app/src/main/java/foundation/e/apps/data/updates/UpdatesManagerImpl.kt b/app/src/main/java/foundation/e/apps/data/updates/UpdatesManagerImpl.kt index 226b43bcb..0848ff084 100644 --- a/app/src/main/java/foundation/e/apps/data/updates/UpdatesManagerImpl.kt +++ b/app/src/main/java/foundation/e/apps/data/updates/UpdatesManagerImpl.kt @@ -31,7 +31,7 @@ import foundation.e.apps.data.enums.isUnFiltered import foundation.e.apps.data.faultyApps.FaultyAppRepository import foundation.e.apps.data.fdroid.FdroidRepository import foundation.e.apps.data.fused.FusedAPIRepository -import foundation.e.apps.data.fused.FusedApi.Companion.APP_TYPE_ANY +import foundation.e.apps.data.fused.ApplicationApi.Companion.APP_TYPE_ANY import foundation.e.apps.data.fused.data.FusedApp import foundation.e.apps.data.preference.PreferenceManagerModule import foundation.e.apps.install.pkg.PkgManagerModule diff --git a/app/src/main/java/foundation/e/apps/di/RepositoryModule.kt b/app/src/main/java/foundation/e/apps/di/RepositoryModule.kt index 0a1ac2714..5b95d9485 100644 --- a/app/src/main/java/foundation/e/apps/di/RepositoryModule.kt +++ b/app/src/main/java/foundation/e/apps/di/RepositoryModule.kt @@ -10,8 +10,8 @@ import foundation.e.apps.data.exodus.repositories.PrivacyScoreRepository import foundation.e.apps.data.exodus.repositories.PrivacyScoreRepositoryImpl import foundation.e.apps.data.fdroid.FdroidRepository import foundation.e.apps.data.fdroid.IFdroidRepository -import foundation.e.apps.data.fused.FusedApi -import foundation.e.apps.data.fused.FusedApiImpl +import foundation.e.apps.data.fused.ApplicationApi +import foundation.e.apps.data.fused.ApplicationApiImpl import foundation.e.apps.data.fusedDownload.FusedManagerImpl import foundation.e.apps.data.fusedDownload.IFusedManager import javax.inject.Singleton @@ -33,7 +33,7 @@ interface RepositoryModule { @Singleton @Binds - fun getFusedApi(fusedApiImpl: FusedApiImpl): FusedApi + fun getFusedApi(fusedApiImpl: ApplicationApiImpl): ApplicationApi @Singleton @Binds diff --git a/app/src/main/java/foundation/e/apps/install/pkg/PkgManagerModule.kt b/app/src/main/java/foundation/e/apps/install/pkg/PkgManagerModule.kt index 91e0d10d1..46a456351 100644 --- a/app/src/main/java/foundation/e/apps/install/pkg/PkgManagerModule.kt +++ b/app/src/main/java/foundation/e/apps/install/pkg/PkgManagerModule.kt @@ -34,7 +34,7 @@ import foundation.e.apps.OpenForTesting import foundation.e.apps.data.enums.Origin import foundation.e.apps.data.enums.Status import foundation.e.apps.data.enums.Type -import foundation.e.apps.data.fused.FusedApi +import foundation.e.apps.data.fused.ApplicationApi import foundation.e.apps.data.fusedDownload.models.FusedDownload import kotlinx.coroutines.DelicateCoroutinesApi import timber.log.Timber @@ -87,7 +87,7 @@ class PkgManagerModule @Inject constructor( * This method should be only used for native apps! * If you are using for any FusedApp, please consider that it can be a PWA! * - * Recommended to use: [FusedApi.getFusedAppInstallationStatus]. + * Recommended to use: [ApplicationApi.getFusedAppInstallationStatus]. */ fun getPackageStatus(packageName: String, versionCode: Int): Status { return if (isInstalled(packageName)) { diff --git a/app/src/test/java/foundation/e/apps/UpdateManagerImptTest.kt b/app/src/test/java/foundation/e/apps/UpdateManagerImptTest.kt index b7a4c8ed7..7fde9031e 100644 --- a/app/src/test/java/foundation/e/apps/UpdateManagerImptTest.kt +++ b/app/src/test/java/foundation/e/apps/UpdateManagerImptTest.kt @@ -28,7 +28,7 @@ import foundation.e.apps.data.enums.Status import foundation.e.apps.data.faultyApps.FaultyAppRepository import foundation.e.apps.data.fdroid.FdroidRepository import foundation.e.apps.data.fused.FusedAPIRepository -import foundation.e.apps.data.fused.FusedApi +import foundation.e.apps.data.fused.ApplicationApi import foundation.e.apps.data.fused.data.FusedApp import foundation.e.apps.data.updates.UpdatesManagerImpl import foundation.e.apps.util.MainCoroutineRule @@ -318,9 +318,9 @@ class UpdateManagerImptTest { openSourceUpdates: Pair, ResultStatus>, gplayUpdates: Pair, ResultStatus>, selectedApplicationSources: List = mutableListOf( - FusedApi.APP_TYPE_ANY, - FusedApi.APP_TYPE_OPEN, - FusedApi.APP_TYPE_PWA + ApplicationApi.APP_TYPE_ANY, + ApplicationApi.APP_TYPE_OPEN, + ApplicationApi.APP_TYPE_PWA ) ) { Mockito.`when`( diff --git a/app/src/test/java/foundation/e/apps/fused/FusedApiImplTest.kt b/app/src/test/java/foundation/e/apps/fused/ApplicationApiImplTest.kt similarity index 99% rename from app/src/test/java/foundation/e/apps/fused/FusedApiImplTest.kt rename to app/src/test/java/foundation/e/apps/fused/ApplicationApiImplTest.kt index 6cd386df4..da41eb05e 100644 --- a/app/src/test/java/foundation/e/apps/fused/FusedApiImplTest.kt +++ b/app/src/test/java/foundation/e/apps/fused/ApplicationApiImplTest.kt @@ -34,7 +34,7 @@ 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.fused.FusedApiImpl +import foundation.e.apps.data.fused.ApplicationApiImpl import foundation.e.apps.data.fused.data.FusedApp import foundation.e.apps.data.fused.data.FusedHome import foundation.e.apps.data.fused.utils.CategoryType @@ -46,7 +46,6 @@ import foundation.e.apps.util.getOrAwaitValue import foundation.e.apps.utils.eventBus.EventBus import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.delay -import kotlinx.coroutines.flow.first import kotlinx.coroutines.launch import kotlinx.coroutines.test.runTest import okhttp3.ResponseBody @@ -69,7 +68,7 @@ import org.mockito.kotlin.eq import retrofit2.Response @OptIn(ExperimentalCoroutinesApi::class) -class FusedApiImplTest { +class ApplicationApiImplTest { // Run tasks synchronously @Rule @@ -81,7 +80,7 @@ class FusedApiImplTest { @get:Rule var mainCoroutineRule = MainCoroutineRule() - private lateinit var fusedAPIImpl: FusedApiImpl + private lateinit var fusedAPIImpl: ApplicationApiImpl @Mock private lateinit var pwaManagerModule: PWAManagerModule @@ -114,7 +113,7 @@ class FusedApiImplTest { MockitoAnnotations.openMocks(this) formatterMocked = Mockito.mockStatic(Formatter::class.java) preferenceManagerModule = FakePreferenceModule(context) - fusedAPIImpl = FusedApiImpl( + fusedAPIImpl = ApplicationApiImpl( pkgManagerModule, pwaManagerModule, preferenceManagerModule, diff --git a/app/src/test/java/foundation/e/apps/fused/FusedApiRepositoryTest.kt b/app/src/test/java/foundation/e/apps/fused/ApplicationApiRepositoryTest.kt similarity index 92% rename from app/src/test/java/foundation/e/apps/fused/FusedApiRepositoryTest.kt rename to app/src/test/java/foundation/e/apps/fused/ApplicationApiRepositoryTest.kt index 801ae4437..b7347d541 100644 --- a/app/src/test/java/foundation/e/apps/fused/FusedApiRepositoryTest.kt +++ b/app/src/test/java/foundation/e/apps/fused/ApplicationApiRepositoryTest.kt @@ -18,7 +18,7 @@ package foundation.e.apps.fused import foundation.e.apps.data.fused.FusedAPIRepository -import foundation.e.apps.data.fused.FusedApiImpl +import foundation.e.apps.data.fused.ApplicationApiImpl import org.junit.Assert.assertTrue import org.junit.Before import org.junit.Test @@ -27,10 +27,10 @@ import org.mockito.Mockito import org.mockito.MockitoAnnotations import org.mockito.kotlin.any -class FusedApiRepositoryTest { +class ApplicationApiRepositoryTest { private lateinit var fusedApiRepository: FusedAPIRepository @Mock - private lateinit var fusedAPIImpl: FusedApiImpl + private lateinit var fusedAPIImpl: ApplicationApiImpl @Before fun setup() { -- GitLab From eca48a98dcd0763c99c4e15fc9b8dc6657ae9388 Mon Sep 17 00:00:00 2001 From: Jonathan Klee Date: Tue, 24 Oct 2023 16:29:51 +0200 Subject: [PATCH 2/6] Rename FusedApp to Application --- .../data/cleanapk/data/app/Application.kt | 4 +- .../e/apps/data/cleanapk/data/home/Home.kt | 16 +- .../apps/data/cleanapk/data/search/Search.kt | 4 +- .../AppPrivacyInfoRepositoryImpl.kt | 46 ++-- .../repositories/IAppPrivacyInfoRepository.kt | 4 +- .../repositories/PrivacyScoreRepository.kt | 4 +- .../PrivacyScoreRepositoryImpl.kt | 14 +- .../data/faultyApps/FaultyAppRepository.kt | 6 +- .../e/apps/data/fdroid/FdroidRepository.kt | 14 +- .../e/apps/data/fdroid/IFdroidRepository.kt | 4 +- .../e/apps/data/fused/ApplicationApi.kt | 30 +-- .../e/apps/data/fused/ApplicationApiImpl.kt | 212 +++++++++--------- .../e/apps/data/fused/ApplicationInstaller.kt | 6 +- .../e/apps/data/fused/FusedAPIRepository.kt | 28 +-- .../e/apps/data/fused/UpdatesDao.kt | 8 +- .../data/{FusedApp.kt => Application.kt} | 2 +- .../e/apps/data/fused/data/FusedHome.kt | 2 +- .../fusedDownload/FusedManagerRepository.kt | 20 +- .../e/apps/data/updates/UpdatesManagerImpl.kt | 26 +-- .../data/updates/UpdatesManagerRepository.kt | 6 +- .../e/apps/install/pkg/PWAManagerModule.kt | 18 +- .../e/apps/install/updates/UpdatesWorker.kt | 8 +- .../workmanager/AppInstallProcessor.kt | 34 +-- .../e/apps/ui/AppInfoFetchViewModel.kt | 16 +- .../e/apps/ui/AppProgressViewModel.kt | 6 +- .../e/apps/ui/MainActivityViewModel.kt | 32 +-- .../e/apps/ui/PrivacyInfoViewModel.kt | 36 +-- .../ui/application/ApplicationFragment.kt | 108 ++++----- .../ui/application/ApplicationViewModel.kt | 18 +- .../ui/applicationlist/ApplicationDiffUtil.kt | 8 +- .../ApplicationListFragment.kt | 28 +-- .../ApplicationListRVAdapter.kt | 46 ++-- .../ApplicationListViewModel.kt | 16 +- .../foundation/e/apps/ui/home/HomeFragment.kt | 16 +- .../e/apps/ui/home/HomeViewModel.kt | 4 +- .../home/model/HomeChildFusedAppDiffUtil.kt | 8 +- .../apps/ui/home/model/HomeChildRVAdapter.kt | 24 +- .../apps/ui/home/model/HomeParentRVAdapter.kt | 4 +- .../e/apps/ui/search/SearchFragment.kt | 18 +- .../e/apps/ui/search/SearchViewModel.kt | 12 +- .../e/apps/ui/updates/UpdatesFragment.kt | 16 +- .../e/apps/ui/updates/UpdatesViewModel.kt | 4 +- .../foundation/e/apps/FakePkgManagerModule.kt | 4 +- .../e/apps/UpdateManagerImptTest.kt | 26 +-- .../AppPrivacyInfoRepositoryImplTest.kt | 14 +- .../exodus/PrivacyScoreRepositoryImplTest.kt | 14 +- .../e/apps/fused/ApplicationApiImplTest.kt | 108 ++++----- 47 files changed, 551 insertions(+), 551 deletions(-) rename app/src/main/java/foundation/e/apps/data/fused/data/{FusedApp.kt => Application.kt} (96%) diff --git a/app/src/main/java/foundation/e/apps/data/cleanapk/data/app/Application.kt b/app/src/main/java/foundation/e/apps/data/cleanapk/data/app/Application.kt index e3b039721..f314b03f3 100644 --- a/app/src/main/java/foundation/e/apps/data/cleanapk/data/app/Application.kt +++ b/app/src/main/java/foundation/e/apps/data/cleanapk/data/app/Application.kt @@ -18,9 +18,9 @@ package foundation.e.apps.data.cleanapk.data.app -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application as AppLoungeApplication data class Application( - val app: FusedApp = FusedApp(), + val app: AppLoungeApplication = AppLoungeApplication(), val success: Boolean = false ) diff --git a/app/src/main/java/foundation/e/apps/data/cleanapk/data/home/Home.kt b/app/src/main/java/foundation/e/apps/data/cleanapk/data/home/Home.kt index be01d9440..4a0f30cfa 100644 --- a/app/src/main/java/foundation/e/apps/data/cleanapk/data/home/Home.kt +++ b/app/src/main/java/foundation/e/apps/data/cleanapk/data/home/Home.kt @@ -19,15 +19,15 @@ package foundation.e.apps.data.cleanapk.data.home import foundation.e.apps.data.enums.Origin -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application data class Home( - val top_updated_apps: List = emptyList(), - val top_updated_games: List = emptyList(), - val popular_apps: List = emptyList(), - val popular_games: List = emptyList(), - val popular_apps_in_last_24_hours: List = emptyList(), - val popular_games_in_last_24_hours: List = emptyList(), - val discover: List = emptyList(), + val top_updated_apps: List = emptyList(), + val top_updated_games: List = emptyList(), + val popular_apps: List = emptyList(), + val popular_games: List = emptyList(), + val popular_apps_in_last_24_hours: List = emptyList(), + val popular_games_in_last_24_hours: List = emptyList(), + val discover: List = emptyList(), var origin: Origin = Origin.CLEANAPK // Origin ) diff --git a/app/src/main/java/foundation/e/apps/data/cleanapk/data/search/Search.kt b/app/src/main/java/foundation/e/apps/data/cleanapk/data/search/Search.kt index 97dc3c330..c8e37b215 100644 --- a/app/src/main/java/foundation/e/apps/data/cleanapk/data/search/Search.kt +++ b/app/src/main/java/foundation/e/apps/data/cleanapk/data/search/Search.kt @@ -18,10 +18,10 @@ package foundation.e.apps.data.cleanapk.data.search -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application data class Search( - val apps: List = emptyList(), + val apps: List = emptyList(), val numberOfResults: Int = -1, val pages: Int = -1, val success: Boolean = false diff --git a/app/src/main/java/foundation/e/apps/data/exodus/repositories/AppPrivacyInfoRepositoryImpl.kt b/app/src/main/java/foundation/e/apps/data/exodus/repositories/AppPrivacyInfoRepositoryImpl.kt index b3df01c3b..935a040ef 100644 --- a/app/src/main/java/foundation/e/apps/data/exodus/repositories/AppPrivacyInfoRepositoryImpl.kt +++ b/app/src/main/java/foundation/e/apps/data/exodus/repositories/AppPrivacyInfoRepositoryImpl.kt @@ -25,7 +25,7 @@ import foundation.e.apps.data.exodus.Report import foundation.e.apps.data.exodus.Tracker import foundation.e.apps.data.exodus.TrackerDao import foundation.e.apps.data.exodus.models.AppPrivacyInfo -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.getResult import foundation.e.apps.di.CommonUtilsModule.LIST_OF_NULL import foundation.e.apps.utils.getFormattedString @@ -48,58 +48,58 @@ class AppPrivacyInfoRepositoryImpl @Inject constructor( private var trackers: List = listOf() override suspend fun getAppPrivacyInfo( - fusedApp: FusedApp, + application: Application, appHandle: String ): Result { - if (fusedApp.trackers.isNotEmpty() && fusedApp.permsFromExodus.isNotEmpty()) { - val appInfo = AppPrivacyInfo(fusedApp.trackers, fusedApp.permsFromExodus, fusedApp.reportId) + if (application.trackers.isNotEmpty() && application.permsFromExodus.isNotEmpty()) { + val appInfo = AppPrivacyInfo(application.trackers, application.permsFromExodus, application.reportId) return Result.success(appInfo) } val appTrackerInfoResult = getResult { exodusTrackerApi.getTrackerInfoOfApp( appHandle, - fusedApp.latest_version_code, + application.latest_version_code, ) } if (appTrackerInfoResult.isSuccess()) { - return parsePrivacyInfo(fusedApp, appTrackerInfoResult) + return parsePrivacyInfo(application, appTrackerInfoResult) } return Result.error(extractErrorMessage(appTrackerInfoResult)) } private suspend fun parsePrivacyInfo( - fusedApp: FusedApp, + application: Application, appTrackerInfoResult: Result> ): Result { val appPrivacyPrivacyInfoResult = - handleAppPrivacyInfoResultSuccess(fusedApp, appTrackerInfoResult) + handleAppPrivacyInfoResultSuccess(application, appTrackerInfoResult) - updateFusedApp(fusedApp, appPrivacyPrivacyInfoResult) + updateFusedApp(application, appPrivacyPrivacyInfoResult) return appPrivacyPrivacyInfoResult } private fun updateFusedApp( - fusedApp: FusedApp, + application: Application, appPrivacyPrivacyInfoResult: Result ) { - fusedApp.trackers = appPrivacyPrivacyInfoResult.data?.trackerList ?: LIST_OF_NULL - fusedApp.permsFromExodus = appPrivacyPrivacyInfoResult.data?.permissionList ?: LIST_OF_NULL - fusedApp.reportId = appPrivacyPrivacyInfoResult.data?.reportId ?: -1L - if (fusedApp.permsFromExodus != LIST_OF_NULL) { - fusedApp.perms = fusedApp.permsFromExodus + application.trackers = appPrivacyPrivacyInfoResult.data?.trackerList ?: LIST_OF_NULL + application.permsFromExodus = appPrivacyPrivacyInfoResult.data?.permissionList ?: LIST_OF_NULL + application.reportId = appPrivacyPrivacyInfoResult.data?.reportId ?: -1L + if (application.permsFromExodus != LIST_OF_NULL) { + application.perms = application.permsFromExodus } } private suspend fun handleAppPrivacyInfoResultSuccess( - fusedApp: FusedApp, + application: Application, appTrackerResult: Result>, ): Result { if (trackers.isEmpty()) { generateTrackerList() } - return createAppPrivacyInfo(fusedApp, appTrackerResult) + return createAppPrivacyInfo(application, appTrackerResult) } private suspend fun generateTrackerList() { @@ -128,17 +128,17 @@ class AppPrivacyInfoRepositoryImpl @Inject constructor( } private fun createAppPrivacyInfo( - fusedApp: FusedApp, + application: Application, appTrackerResult: Result>, ): Result { appTrackerResult.data?.let { - return Result.success(getAppPrivacyInfo(fusedApp, it)) + return Result.success(getAppPrivacyInfo(application, it)) } return Result.error(extractErrorMessage(appTrackerResult)) } private fun getAppPrivacyInfo( - fusedApp: FusedApp, + application: Application, appTrackerData: List, ): AppPrivacyInfo { /* @@ -154,7 +154,7 @@ class AppPrivacyInfoRepositoryImpl @Inject constructor( return AppPrivacyInfo(LIST_OF_NULL, LIST_OF_NULL) } - val latestTrackerData = getLatestTrackerData(fusedApp, appTrackerData) + val latestTrackerData = getLatestTrackerData(application, appTrackerData) ?: return AppPrivacyInfo(LIST_OF_NULL, LIST_OF_NULL) val appTrackers = extractAppTrackers(latestTrackerData) @@ -163,10 +163,10 @@ class AppPrivacyInfoRepositoryImpl @Inject constructor( } private fun getLatestTrackerData( - fusedApp: FusedApp, + application: Application, appTrackerData: List ): Report? { - val source = if (fusedApp.origin == Origin.CLEANAPK) SOURCE_FDROID else SOURCE_GOOGLE + val source = if (application.origin == Origin.CLEANAPK) SOURCE_FDROID else SOURCE_GOOGLE val filteredAppTrackerData = appTrackerData.filter { it.source == source } if (filteredAppTrackerData.isEmpty()) { return null diff --git a/app/src/main/java/foundation/e/apps/data/exodus/repositories/IAppPrivacyInfoRepository.kt b/app/src/main/java/foundation/e/apps/data/exodus/repositories/IAppPrivacyInfoRepository.kt index 6f4e9d82c..d03f23f12 100644 --- a/app/src/main/java/foundation/e/apps/data/exodus/repositories/IAppPrivacyInfoRepository.kt +++ b/app/src/main/java/foundation/e/apps/data/exodus/repositories/IAppPrivacyInfoRepository.kt @@ -2,8 +2,8 @@ package foundation.e.apps.data.exodus.repositories import foundation.e.apps.data.Result import foundation.e.apps.data.exodus.models.AppPrivacyInfo -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application interface IAppPrivacyInfoRepository { - suspend fun getAppPrivacyInfo(fusedApp: FusedApp, appHandle: String): Result + suspend fun getAppPrivacyInfo(application: Application, appHandle: String): Result } diff --git a/app/src/main/java/foundation/e/apps/data/exodus/repositories/PrivacyScoreRepository.kt b/app/src/main/java/foundation/e/apps/data/exodus/repositories/PrivacyScoreRepository.kt index 347eb2ead..11549bcf8 100644 --- a/app/src/main/java/foundation/e/apps/data/exodus/repositories/PrivacyScoreRepository.kt +++ b/app/src/main/java/foundation/e/apps/data/exodus/repositories/PrivacyScoreRepository.kt @@ -18,9 +18,9 @@ package foundation.e.apps.data.exodus.repositories -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application interface PrivacyScoreRepository { - fun calculatePrivacyScore(fusedApp: FusedApp): Int + fun calculatePrivacyScore(application: Application): Int } diff --git a/app/src/main/java/foundation/e/apps/data/exodus/repositories/PrivacyScoreRepositoryImpl.kt b/app/src/main/java/foundation/e/apps/data/exodus/repositories/PrivacyScoreRepositoryImpl.kt index 871e82640..b92c127ea 100644 --- a/app/src/main/java/foundation/e/apps/data/exodus/repositories/PrivacyScoreRepositoryImpl.kt +++ b/app/src/main/java/foundation/e/apps/data/exodus/repositories/PrivacyScoreRepositoryImpl.kt @@ -18,7 +18,7 @@ package foundation.e.apps.data.exodus.repositories -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.di.CommonUtilsModule import javax.inject.Inject import javax.inject.Singleton @@ -28,14 +28,14 @@ import kotlin.math.round @Singleton class PrivacyScoreRepositoryImpl @Inject constructor() : PrivacyScoreRepository { - override fun calculatePrivacyScore(fusedApp: FusedApp): Int { - if (fusedApp.permsFromExodus == CommonUtilsModule.LIST_OF_NULL) { + override fun calculatePrivacyScore(application: Application): Int { + if (application.permsFromExodus == CommonUtilsModule.LIST_OF_NULL) { return -1 } - val calculateTrackersScore = calculateTrackersScore(fusedApp.trackers.size) + val calculateTrackersScore = calculateTrackersScore(application.trackers.size) val calculatePermissionsScore = calculatePermissionsScore( - countAndroidPermissions(fusedApp) + countAndroidPermissions(application) ) return calculateTrackersScore + calculatePermissionsScore } @@ -44,8 +44,8 @@ class PrivacyScoreRepositoryImpl @Inject constructor() : PrivacyScoreRepository return if (numberOfTrackers > THRESHOLD_OF_NON_ZERO_TRACKER_SCORE) MIN_TRACKER_SCORE else MAX_TRACKER_SCORE - numberOfTrackers } - private fun countAndroidPermissions(fusedApp: FusedApp) = - fusedApp.permsFromExodus.filter { it.contains("android.permission") }.size + private fun countAndroidPermissions(application: Application) = + application.permsFromExodus.filter { it.contains("android.permission") }.size private fun calculatePermissionsScore(numberOfPermission: Int): Int { return if (numberOfPermission > THRESHOLD_OF_NON_ZERO_PERMISSION_SCORE) MIN_PERMISSION_SCORE else round( diff --git a/app/src/main/java/foundation/e/apps/data/faultyApps/FaultyAppRepository.kt b/app/src/main/java/foundation/e/apps/data/faultyApps/FaultyAppRepository.kt index 31a5059c7..ae330067c 100644 --- a/app/src/main/java/foundation/e/apps/data/faultyApps/FaultyAppRepository.kt +++ b/app/src/main/java/foundation/e/apps/data/faultyApps/FaultyAppRepository.kt @@ -21,7 +21,7 @@ package foundation.e.apps.data.faultyApps import foundation.e.apps.OpenForTesting -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import javax.inject.Inject import javax.inject.Singleton @@ -42,8 +42,8 @@ class FaultyAppRepository @Inject constructor(private val faultyAppDao: FaultyAp faultyAppDao.deleteFaultyAppByPackageName(packageName) } - suspend fun removeFaultyApps(fusedApps: List): List { + suspend fun removeFaultyApps(applications: List): List { val faultyAppsPackageNames = getAllFaultyApps().map { it.packageName } - return fusedApps.filter { !faultyAppsPackageNames.contains(it.package_name) } + return applications.filter { !faultyAppsPackageNames.contains(it.package_name) } } } diff --git a/app/src/main/java/foundation/e/apps/data/fdroid/FdroidRepository.kt b/app/src/main/java/foundation/e/apps/data/fdroid/FdroidRepository.kt index 237592fae..cc34e1af3 100644 --- a/app/src/main/java/foundation/e/apps/data/fdroid/FdroidRepository.kt +++ b/app/src/main/java/foundation/e/apps/data/fdroid/FdroidRepository.kt @@ -5,7 +5,7 @@ import foundation.e.apps.data.cleanapk.ApkSignatureManager import foundation.e.apps.data.enums.Origin import foundation.e.apps.data.fdroid.models.BuildInfo import foundation.e.apps.data.fdroid.models.FdroidEntity -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import javax.inject.Inject import javax.inject.Singleton @@ -40,15 +40,15 @@ class FdroidRepository @Inject constructor( return fdroidApi.getFdroidInfoForPackage(packageName).body()?.builds } - override suspend fun getAuthorName(fusedApp: FusedApp): String { - if (fusedApp.author != UNKNOWN || fusedApp.origin != Origin.CLEANAPK) { - return fusedApp.author.ifEmpty { UNKNOWN } + override suspend fun getAuthorName(application: Application): String { + if (application.author != UNKNOWN || application.origin != Origin.CLEANAPK) { + return application.author.ifEmpty { UNKNOWN } } - var result = fdroidEntries[fusedApp.package_name] + var result = fdroidEntries[application.package_name] if (result == null) { - result = getFdroidInfo(fusedApp.package_name)?.also { - fdroidEntries[fusedApp.package_name] = it + result = getFdroidInfo(application.package_name)?.also { + fdroidEntries[application.package_name] = it } } return result?.authorName ?: FdroidEntity.DEFAULT_FDROID_AUTHOR_NAME diff --git a/app/src/main/java/foundation/e/apps/data/fdroid/IFdroidRepository.kt b/app/src/main/java/foundation/e/apps/data/fdroid/IFdroidRepository.kt index d93926d5e..ba6a215f9 100644 --- a/app/src/main/java/foundation/e/apps/data/fdroid/IFdroidRepository.kt +++ b/app/src/main/java/foundation/e/apps/data/fdroid/IFdroidRepository.kt @@ -20,7 +20,7 @@ package foundation.e.apps.data.fdroid import android.content.Context import foundation.e.apps.data.fdroid.models.FdroidEntity -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application interface IFdroidRepository { /** @@ -31,7 +31,7 @@ interface IFdroidRepository { */ suspend fun getFdroidInfo(packageName: String): FdroidEntity? - suspend fun getAuthorName(fusedApp: FusedApp): String + suspend fun getAuthorName(application: Application): String suspend fun isFdroidApplicationSigned( context: Context, diff --git a/app/src/main/java/foundation/e/apps/data/fused/ApplicationApi.kt b/app/src/main/java/foundation/e/apps/data/fused/ApplicationApi.kt index c49c667f6..7a6f4ce1c 100644 --- a/app/src/main/java/foundation/e/apps/data/fused/ApplicationApi.kt +++ b/app/src/main/java/foundation/e/apps/data/fused/ApplicationApi.kt @@ -11,14 +11,14 @@ 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.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.fused.data.FusedCategory import foundation.e.apps.data.fused.data.FusedHome import foundation.e.apps.data.fused.utils.CategoryType import foundation.e.apps.data.fusedDownload.models.FusedDownload import retrofit2.Response -typealias GplaySearchResult = ResultSupreme, Set>> +typealias GplaySearchResult = ResultSupreme, Set>> interface ApplicationApi { companion object { @@ -58,7 +58,7 @@ interface ApplicationApi { suspend fun getCleanApkSearchResults( query: String, authData: AuthData - ): ResultSupreme, Boolean>> + ): ResultSupreme, Boolean>> suspend fun getGplaySearchResult( query: String, @@ -81,9 +81,9 @@ interface ApplicationApi { suspend fun getOSSDownloadInfo(id: String, version: String?): Response - suspend fun getPWAApps(category: String): ResultSupreme, String>> + suspend fun getPWAApps(category: String): ResultSupreme, String>> - suspend fun getOpenSourceApps(category: String): ResultSupreme, String>> + suspend fun getOpenSourceApps(category: String): ResultSupreme, String>> /* * Function to search cleanapk using package name. @@ -91,13 +91,13 @@ interface ApplicationApi { * * Issue: https://gitlab.e.foundation/e/backlog/-/issues/5509 */ - suspend fun getCleanapkAppDetails(packageName: String): Pair + suspend fun getCleanapkAppDetails(packageName: String): Pair suspend fun getApplicationDetails( packageNameList: List, authData: AuthData, origin: Origin - ): Pair, ResultStatus> + ): Pair, ResultStatus> /** * Filter out apps which are restricted, whose details cannot be fetched. @@ -113,13 +113,13 @@ interface ApplicationApi { suspend fun filterRestrictedGPlayApps( authData: AuthData, appList: List, - ): ResultSupreme> + ): ResultSupreme> /** * Get different filter levels. * Issue: https://gitlab.e.foundation/e/backlog/-/issues/5720 */ - suspend fun getAppFilterLevel(fusedApp: FusedApp, authData: AuthData?): FilterLevel + suspend fun getAppFilterLevel(application: Application, authData: AuthData?): FilterLevel /* * Similar to above method but uses Aurora OSS data class "App". @@ -131,7 +131,7 @@ interface ApplicationApi { packageName: String, authData: AuthData, origin: Origin - ): Pair + ): Pair /** * Get fused app installation status. @@ -139,7 +139,7 @@ interface ApplicationApi { * * Recommended to use this instead of [PkgManagerModule.getPackageStatus]. */ - fun getFusedAppInstallationStatus(fusedApp: FusedApp): Status + fun getFusedAppInstallationStatus(application: Application): Status /** * @return true, if any change is found, otherwise false @@ -153,12 +153,12 @@ interface ApplicationApi { * @return returns true if there is changes in data, otherwise false */ fun isAnyFusedAppUpdated( - newFusedApps: List, - oldFusedApps: List + newApplications: List, + oldApplications: List ): Boolean - fun isAnyAppInstallStatusChanged(currentList: List): Boolean + fun isAnyAppInstallStatusChanged(currentList: List): Boolean fun isOpenSourceSelected(): Boolean - suspend fun getGplayAppsByCategory(authData: AuthData, category: String, pageUrl: String?): ResultSupreme, String>> + suspend fun getGplayAppsByCategory(authData: AuthData, category: String, pageUrl: String?): ResultSupreme, String>> } diff --git a/app/src/main/java/foundation/e/apps/data/fused/ApplicationApiImpl.kt b/app/src/main/java/foundation/e/apps/data/fused/ApplicationApiImpl.kt index c151c2a26..e1559dee5 100644 --- a/app/src/main/java/foundation/e/apps/data/fused/ApplicationApiImpl.kt +++ b/app/src/main/java/foundation/e/apps/data/fused/ApplicationApiImpl.kt @@ -34,7 +34,7 @@ import dagger.hilt.android.qualifiers.ApplicationContext import foundation.e.apps.R import foundation.e.apps.data.ResultSupreme import foundation.e.apps.data.cleanapk.CleanApkDownloadInfoFetcher -import foundation.e.apps.data.cleanapk.data.app.Application +import foundation.e.apps.data.cleanapk.data.app.Application as CleanApkApplication import foundation.e.apps.data.cleanapk.data.categories.Categories import foundation.e.apps.data.cleanapk.data.home.Home import foundation.e.apps.data.cleanapk.data.home.HomeScreen @@ -51,7 +51,7 @@ import foundation.e.apps.data.enums.isUnFiltered import foundation.e.apps.data.fused.ApplicationApi.Companion.APP_TYPE_ANY import foundation.e.apps.data.fused.ApplicationApi.Companion.APP_TYPE_OPEN import foundation.e.apps.data.fused.ApplicationApi.Companion.APP_TYPE_PWA -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.fused.data.FusedCategory import foundation.e.apps.data.fused.data.FusedHome import foundation.e.apps.data.fused.data.Ratings @@ -229,26 +229,26 @@ class ApplicationApiImpl @Inject constructor( * Fetches search results from cleanAPK and GPlay servers and returns them * @param query Query * @param authData [AuthData] - * @return A livedata Pair of list of non-nullable [FusedApp] and + * @return A livedata Pair of list of non-nullable [Application] and * a Boolean signifying if more search results are being loaded. * Observe this livedata to display new apps as they are fetched from the network. */ override suspend fun getCleanApkSearchResults( query: String, authData: AuthData - ): ResultSupreme, Boolean>> { + ): ResultSupreme, Boolean>> { /* * Returning livedata to improve performance, so that we do not have to wait forever * for all results to be fetched from network before showing them. * Issue: https://gitlab.e.foundation/e/backlog/-/issues/5171 */ - val packageSpecificResults = ArrayList() - var finalSearchResult: ResultSupreme, Boolean>> = ResultSupreme.Error() + val packageSpecificResults = ArrayList() + var finalSearchResult: ResultSupreme, Boolean>> = ResultSupreme.Error() fetchPackageSpecificResult(authData, query, packageSpecificResults) - val searchResult = mutableListOf() - val cleanApkResults = mutableListOf() + val searchResult = mutableListOf() + val cleanApkResults = mutableListOf() if (preferenceManagerModule.isOpenSourceSelected()) { finalSearchResult = fetchOpenSourceSearchResult( @@ -271,10 +271,10 @@ class ApplicationApiImpl @Inject constructor( private suspend fun fetchPWASearchResult( query: String, - searchResult: MutableList, - packageSpecificResults: ArrayList - ): ResultSupreme, Boolean>> { - val pwaApps: MutableList = mutableListOf() + searchResult: MutableList, + packageSpecificResults: ArrayList + ): ResultSupreme, Boolean>> { + val pwaApps: MutableList = mutableListOf() val result = handleNetworkResult { val apps = cleanApkPWARepository.getSearchResult(query).body()?.apps @@ -304,11 +304,11 @@ class ApplicationApiImpl @Inject constructor( } private suspend fun fetchOpenSourceSearchResult( - cleanApkResults: MutableList, + cleanApkResults: MutableList, query: String, - searchResult: MutableList, - packageSpecificResults: ArrayList - ): ResultSupreme, Boolean>> { + searchResult: MutableList, + packageSpecificResults: ArrayList + ): ResultSupreme, Boolean>> { val result = handleNetworkResult { cleanApkResults.addAll(getCleanAPKSearchResults(query)) cleanApkResults @@ -334,10 +334,10 @@ class ApplicationApiImpl @Inject constructor( private suspend fun fetchPackageSpecificResult( authData: AuthData, query: String, - packageSpecificResults: MutableList - ): ResultSupreme, Boolean>> { - var gplayPackageResult: FusedApp? = null - var cleanapkPackageResult: FusedApp? = null + packageSpecificResults: MutableList + ): ResultSupreme, Boolean>> { + var gplayPackageResult: Application? = null + var cleanapkPackageResult: Application? = null val result = handleNetworkResult { if (preferenceManagerModule.isGplaySelected()) { @@ -359,7 +359,7 @@ class ApplicationApiImpl @Inject constructor( } if (preferenceManagerModule.isGplaySelected()) { - packageSpecificResults.add(FusedApp(isPlaceHolder = true)) + packageSpecificResults.add(Application(isPlaceHolder = true)) } /* @@ -384,17 +384,17 @@ class ApplicationApiImpl @Inject constructor( * We also filter out apps which are already present in packageSpecificResults list. */ private fun filterWithKeywordSearch( - list: List, - packageSpecificResults: List, + list: List, + packageSpecificResults: List, query: String - ): List { + ): List { val filteredResults = list.distinctBy { it.package_name } .filter { packageSpecificResults.isEmpty() || it.package_name != query } val finalList = (packageSpecificResults + filteredResults).toMutableList() finalList.removeIf { it.isPlaceHolder } if (preferenceManagerModule.isGplaySelected()) { - finalList.add(FusedApp(isPlaceHolder = true)) + finalList.add(Application(isPlaceHolder = true)) } return finalList @@ -402,7 +402,7 @@ class ApplicationApiImpl @Inject constructor( private suspend fun getCleanApkPackageResult( query: String, - ): FusedApp? { + ): Application? { getCleanapkSearchResult(query).let { if (it.isSuccess() && it.data!!.package_name.isNotBlank()) { return it.data!! @@ -414,7 +414,7 @@ class ApplicationApiImpl @Inject constructor( private suspend fun getGplayPackagResult( query: String, authData: AuthData, - ): FusedApp? { + ): Application? { try { getApplicationDetails(query, query, authData, Origin.GPLAY).let { if (it.second == ResultStatus.OK && it.first.package_name.isNotEmpty()) { @@ -435,8 +435,8 @@ class ApplicationApiImpl @Inject constructor( * * Issue: https://gitlab.e.foundation/e/backlog/-/issues/2629 */ - private suspend fun getCleanapkSearchResult(packageName: String): ResultSupreme { - var fusedApp = FusedApp() + private suspend fun getCleanapkSearchResult(packageName: String): ResultSupreme { + var application = Application() val result = handleNetworkResult { val result = cleanApkAppsRepository.getSearchResult( packageName, @@ -444,10 +444,10 @@ class ApplicationApiImpl @Inject constructor( ).body() if (result?.apps?.isNotEmpty() == true && result.numberOfResults == 1) { - fusedApp = result.apps[0] + application = result.apps[0] } } - return ResultSupreme.create(result.getResultStatus(), fusedApp) + return ResultSupreme.create(result.getResultStatus(), application) } override suspend fun getSearchSuggestions(query: String): List { @@ -512,8 +512,8 @@ class ApplicationApiImpl @Inject constructor( override suspend fun getOSSDownloadInfo(id: String, version: String?) = (cleanApkAppsRepository as CleanApkDownloadInfoFetcher).getDownloadInfo(id, version) - override suspend fun getPWAApps(category: String): ResultSupreme, String>> { - val list = mutableListOf() + override suspend fun getPWAApps(category: String): ResultSupreme, String>> { + val list = mutableListOf() val result = handleNetworkResult { val response = getPWAAppsResponse(category) response?.apps?.forEach { @@ -526,8 +526,8 @@ class ApplicationApiImpl @Inject constructor( return ResultSupreme.create(result.getResultStatus(), Pair(list, "")) } - override suspend fun getOpenSourceApps(category: String): ResultSupreme, String>> { - val list = mutableListOf() + override suspend fun getOpenSourceApps(category: String): ResultSupreme, String>> { + val list = mutableListOf() val result = handleNetworkResult { val response = getOpenSourceAppsResponse(category) response?.apps?.forEach { @@ -546,8 +546,8 @@ class ApplicationApiImpl @Inject constructor( * * Issue: https://gitlab.e.foundation/e/backlog/-/issues/5509 */ - override suspend fun getCleanapkAppDetails(packageName: String): Pair { - var fusedApp = FusedApp() + override suspend fun getCleanapkAppDetails(packageName: String): Pair { + var application = Application() val result = handleNetworkResult { val result = cleanApkAppsRepository.getSearchResult( packageName, @@ -555,13 +555,13 @@ class ApplicationApiImpl @Inject constructor( ).body() if (result?.apps?.isNotEmpty() == true && result.numberOfResults == 1) { - fusedApp = - (cleanApkAppsRepository.getAppDetails(result.apps[0]._id) as Response).body()?.app - ?: FusedApp() + application = + (cleanApkAppsRepository.getAppDetails(result.apps[0]._id) as Response).body()?.app + ?: Application() } - fusedApp.updateFilterLevel(null) + application.updateFilterLevel(null) } - return Pair(fusedApp, result.getResultStatus()) + return Pair(application, result.getResultStatus()) } // Warning - GPlay results may not have proper geo-restriction information. @@ -569,10 +569,10 @@ class ApplicationApiImpl @Inject constructor( packageNameList: List, authData: AuthData, origin: Origin - ): Pair, ResultStatus> { - val list = mutableListOf() + ): Pair, ResultStatus> { + val list = mutableListOf() - val response: Pair, ResultStatus> = + val response: Pair, ResultStatus> = if (origin == Origin.CLEANAPK) { getAppDetailsListFromCleanapk(packageNameList) } else { @@ -597,9 +597,9 @@ class ApplicationApiImpl @Inject constructor( */ private suspend fun getAppDetailsListFromCleanapk( packageNameList: List, - ): Pair, ResultStatus> { + ): Pair, ResultStatus> { var status = ResultStatus.OK - val fusedAppList = mutableListOf() + val applicationList = mutableListOf() /* * Fetch result of each cleanapk search with separate timeout, @@ -612,7 +612,7 @@ class ApplicationApiImpl @Inject constructor( "package_name" ).body()?.run { if (apps.isNotEmpty() && numberOfResults == 1) { - fusedAppList.add( + applicationList.add( apps[0].apply { updateFilterLevel(null) } @@ -627,11 +627,11 @@ class ApplicationApiImpl @Inject constructor( * If status is not ok, immediately return. */ if (status != ResultStatus.OK) { - return Pair(fusedAppList, status) + return Pair(applicationList, status) } } - return Pair(fusedAppList, status) + return Pair(applicationList, status) } /* @@ -641,8 +641,8 @@ class ApplicationApiImpl @Inject constructor( private suspend fun getAppDetailsListFromGPlay( packageNameList: List, authData: AuthData, - ): Pair, ResultStatus> { - val fusedAppList = mutableListOf() + ): Pair, ResultStatus> { + val applicationList = mutableListOf() /* * Old code moved from getApplicationDetails() @@ -657,7 +657,7 @@ class ApplicationApiImpl @Inject constructor( */ val filter = getAppFilterLevel(app, authData) if (filter.isUnFiltered()) { - fusedAppList.add( + applicationList.add( app.transformToFusedApp().apply { filterLevel = filter } @@ -666,7 +666,7 @@ class ApplicationApiImpl @Inject constructor( } } - return Pair(fusedAppList, result.getResultStatus()) + return Pair(applicationList, result.getResultStatus()) } /** @@ -683,20 +683,20 @@ class ApplicationApiImpl @Inject constructor( override suspend fun filterRestrictedGPlayApps( authData: AuthData, appList: List, - ): ResultSupreme> { - val filteredFusedApps = mutableListOf() + ): ResultSupreme> { + val filteredApplications = mutableListOf() return handleNetworkResult { appList.forEach { val filter = getAppFilterLevel(it, authData) if (filter.isUnFiltered()) { - filteredFusedApps.add( + filteredApplications.add( it.transformToFusedApp().apply { this.filterLevel = filter } ) } } - filteredFusedApps + filteredApplications } } @@ -704,16 +704,16 @@ class ApplicationApiImpl @Inject constructor( * Get different filter levels. * Issue: https://gitlab.e.foundation/e/backlog/-/issues/5720 */ - override suspend fun getAppFilterLevel(fusedApp: FusedApp, authData: AuthData?): FilterLevel { + override suspend fun getAppFilterLevel(application: Application, authData: AuthData?): FilterLevel { return when { - fusedApp.package_name.isBlank() -> FilterLevel.UNKNOWN - !fusedApp.isFree && fusedApp.price.isBlank() -> FilterLevel.UI - fusedApp.origin == Origin.CLEANAPK -> FilterLevel.NONE - !isRestricted(fusedApp) -> FilterLevel.NONE + application.package_name.isBlank() -> FilterLevel.UNKNOWN + !application.isFree && application.price.isBlank() -> FilterLevel.UI + application.origin == Origin.CLEANAPK -> FilterLevel.NONE + !isRestricted(application) -> FilterLevel.NONE authData == null -> FilterLevel.UNKNOWN // cannot determine for gplay app - !isApplicationVisible(fusedApp) -> FilterLevel.DATA - fusedApp.originalSize == 0L -> FilterLevel.UI - !isDownloadable(fusedApp) -> FilterLevel.UI + !isApplicationVisible(application) -> FilterLevel.DATA + application.originalSize == 0L -> FilterLevel.UI + !isDownloadable(application) -> FilterLevel.UI else -> FilterLevel.NONE } } @@ -722,26 +722,26 @@ class ApplicationApiImpl @Inject constructor( * Some apps are simply not visible. * Example: com.skype.m2 */ - private suspend fun isApplicationVisible(fusedApp: FusedApp): Boolean { - return kotlin.runCatching { gplayRepository.getAppDetails(fusedApp.package_name) }.isSuccess + private suspend fun isApplicationVisible(application: Application): Boolean { + return kotlin.runCatching { gplayRepository.getAppDetails(application.package_name) }.isSuccess } /** * Some apps are visible but not downloadable. * Example: com.riotgames.league.wildrift */ - private suspend fun isDownloadable(fusedApp: FusedApp): Boolean { + private suspend fun isDownloadable(application: Application): Boolean { return kotlin.runCatching { gplayRepository.getDownloadInfo( - fusedApp.package_name, - fusedApp.latest_version_code, - fusedApp.offer_type, + application.package_name, + application.latest_version_code, + application.offer_type, ) }.isSuccess } - private fun isRestricted(fusedApp: FusedApp): Boolean { - return fusedApp.restriction != Constants.Restriction.NOT_RESTRICTED + private fun isRestricted(application: Application): Boolean { + return application.restriction != Constants.Restriction.NOT_RESTRICTED } /* @@ -754,7 +754,7 @@ class ApplicationApiImpl @Inject constructor( /* * Handy method to run on an instance of FusedApp to update its filter level. */ - private suspend fun FusedApp.updateFilterLevel(authData: AuthData?) { + private suspend fun Application.updateFilterLevel(authData: AuthData?) { this.filterLevel = getAppFilterLevel(this, authData) } @@ -763,13 +763,13 @@ class ApplicationApiImpl @Inject constructor( packageName: String, authData: AuthData, origin: Origin - ): Pair { + ): Pair { - var response: FusedApp? = null + var response: Application? = null val result = handleNetworkResult { response = if (origin == Origin.CLEANAPK) { - (cleanApkAppsRepository.getAppDetails(id) as Response).body()?.app + (cleanApkAppsRepository.getAppDetails(id) as Response).body()?.app } else { val app = gplayRepository.getAppDetails(packageName) as App? app?.transformToFusedApp() @@ -783,7 +783,7 @@ class ApplicationApiImpl @Inject constructor( response } - return Pair(result.data ?: FusedApp(), result.getResultStatus()) + return Pair(result.data ?: Application(), result.getResultStatus()) } /* @@ -994,8 +994,8 @@ class ApplicationApiImpl @Inject constructor( private suspend fun getCleanAPKSearchResults( keyword: String - ): List { - val list = mutableListOf() + ): List { + val list = mutableListOf() val response = cleanApkAppsRepository.getSearchResult(keyword).body()?.apps @@ -1017,7 +1017,7 @@ class ApplicationApiImpl @Inject constructor( gplayRepository.getSearchResult(query, nextPageSubBundle?.toMutableSet()) if (!preferenceManagerModule.isGplaySelected()) { - return@handleNetworkResult Pair(listOf(), setOf()) + return@handleNetworkResult Pair(listOf(), setOf()) } val fusedAppList = @@ -1026,14 +1026,14 @@ class ApplicationApiImpl @Inject constructor( handleLimitedResult(fusedAppList) if (searchResults.second.isNotEmpty()) { - fusedAppList.add(FusedApp(isPlaceHolder = true)) + fusedAppList.add(Application(isPlaceHolder = true)) } return@handleNetworkResult Pair(fusedAppList.toList(), searchResults.second.toSet()) } } - private suspend fun handleLimitedResult(appList: List?) { + private suspend fun handleLimitedResult(appList: List?) { 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 @@ -1049,7 +1049,7 @@ class ApplicationApiImpl @Inject constructor( * This function will replace a GPlay app with F-Droid app if exists, * else will show the GPlay app itself. */ - private suspend fun replaceWithFDroid(gPlayApp: App): FusedApp { + private suspend fun replaceWithFDroid(gPlayApp: App): Application { val gPlayFusedApp = gPlayApp.transformToFusedApp() val response = cleanApkAppsRepository.getAppDetails(gPlayApp.packageName) if (response != null) { @@ -1209,8 +1209,8 @@ class ApplicationApiImpl @Inject constructor( * FusedApp-related internal extensions and functions */ - private fun App.transformToFusedApp(): FusedApp { - val app = FusedApp( + private fun App.transformToFusedApp(): Application { + val app = Application( _id = this.id.toString(), author = this.developerName, category = this.categoryName, @@ -1250,25 +1250,25 @@ class ApplicationApiImpl @Inject constructor( * * Recommended to use this instead of [PkgManagerModule.getPackageStatus]. */ - override fun getFusedAppInstallationStatus(fusedApp: FusedApp): Status { - return if (fusedApp.is_pwa) { - pwaManagerModule.getPwaStatus(fusedApp) + override fun getFusedAppInstallationStatus(application: Application): Status { + return if (application.is_pwa) { + pwaManagerModule.getPwaStatus(application) } else { - pkgManagerModule.getPackageStatus(fusedApp.package_name, fusedApp.latest_version_code) + pkgManagerModule.getPackageStatus(application.package_name, application.latest_version_code) } } - private fun FusedApp.updateStatus() { + private fun Application.updateStatus() { if (this.status != Status.INSTALLATION_ISSUE) { this.status = getFusedAppInstallationStatus(this) } } - private fun FusedApp.updateType() { + private fun Application.updateType() { this.type = if (this.is_pwa) Type.PWA else Type.NATIVE } - private fun FusedApp.updateSource() { + private fun Application.updateSource() { this.apply { source = if (origin == Origin.CLEANAPK && is_pwa) context.getString(R.string.pwa) else if (origin == Origin.CLEANAPK) context.getString(R.string.open_source) @@ -1327,24 +1327,24 @@ class ApplicationApiImpl @Inject constructor( * @return returns true if there is changes in data, otherwise false */ override fun isAnyFusedAppUpdated( - newFusedApps: List, - oldFusedApps: List + newApplications: List, + oldApplications: List ): Boolean { val fusedAppDiffUtil = HomeChildFusedAppDiffUtil() - if (newFusedApps.size != oldFusedApps.size) { + if (newApplications.size != oldApplications.size) { return true } - newFusedApps.forEach { - val indexOfNewFusedApp = newFusedApps.indexOf(it) - if (!fusedAppDiffUtil.areContentsTheSame(it, oldFusedApps[indexOfNewFusedApp])) { + newApplications.forEach { + val indexOfNewFusedApp = newApplications.indexOf(it) + if (!fusedAppDiffUtil.areContentsTheSame(it, oldApplications[indexOfNewFusedApp])) { return true } } return false } - override fun isAnyAppInstallStatusChanged(currentList: List): Boolean { + override fun isAnyAppInstallStatusChanged(currentList: List): Boolean { currentList.forEach { if (it.status == Status.INSTALLATION_ISSUE) { return@forEach @@ -1363,8 +1363,8 @@ class ApplicationApiImpl @Inject constructor( authData: AuthData, category: String, pageUrl: String? - ): ResultSupreme, String>> { - var fusedAppList: MutableList = mutableListOf() + ): ResultSupreme, String>> { + var applicationList: MutableList = mutableListOf() var nextPageUrl = "" return handleNetworkResult { @@ -1373,14 +1373,14 @@ class ApplicationApiImpl @Inject constructor( val filteredAppList = filterRestrictedGPlayApps(authData, streamCluster.clusterAppList) filteredAppList.data?.let { - fusedAppList = it.toMutableList() + applicationList = it.toMutableList() } nextPageUrl = streamCluster.clusterNextPageUrl if (!nextPageUrl.isNullOrEmpty()) { - fusedAppList.add(FusedApp(isPlaceHolder = true)) + applicationList.add(Application(isPlaceHolder = true)) } - Pair(fusedAppList, nextPageUrl) + Pair(applicationList, nextPageUrl) } } } diff --git a/app/src/main/java/foundation/e/apps/data/fused/ApplicationInstaller.kt b/app/src/main/java/foundation/e/apps/data/fused/ApplicationInstaller.kt index a17e792b2..cb3cb1c7e 100644 --- a/app/src/main/java/foundation/e/apps/data/fused/ApplicationInstaller.kt +++ b/app/src/main/java/foundation/e/apps/data/fused/ApplicationInstaller.kt @@ -18,11 +18,11 @@ package foundation.e.apps.data.fused -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application interface ApplicationInstaller { - fun installApplication(app: FusedApp) + fun installApplication(app: Application) - fun cancelDownload(app: FusedApp) + fun cancelDownload(app: Application) } diff --git a/app/src/main/java/foundation/e/apps/data/fused/FusedAPIRepository.kt b/app/src/main/java/foundation/e/apps/data/fused/FusedAPIRepository.kt index 7dccc3788..9b0417f98 100644 --- a/app/src/main/java/foundation/e/apps/data/fused/FusedAPIRepository.kt +++ b/app/src/main/java/foundation/e/apps/data/fused/FusedAPIRepository.kt @@ -28,7 +28,7 @@ import foundation.e.apps.data.enums.Origin import foundation.e.apps.data.enums.ResultStatus import foundation.e.apps.data.enums.Source import foundation.e.apps.data.enums.Status -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.fused.data.FusedCategory import foundation.e.apps.data.fused.data.FusedHome import foundation.e.apps.data.fused.utils.CategoryType @@ -51,12 +51,12 @@ class FusedAPIRepository @Inject constructor(private val applicationAPIImpl: App packageNameList: List, authData: AuthData, origin: Origin - ): Pair, ResultStatus> { + ): Pair, ResultStatus> { return applicationAPIImpl.getApplicationDetails(packageNameList, authData, origin) } - suspend fun getAppFilterLevel(fusedApp: FusedApp, authData: AuthData?): FilterLevel { - return applicationAPIImpl.getAppFilterLevel(fusedApp, authData) + suspend fun getAppFilterLevel(application: Application, authData: AuthData?): FilterLevel { + return applicationAPIImpl.getAppFilterLevel(application, authData) } suspend fun getApplicationDetails( @@ -64,11 +64,11 @@ class FusedAPIRepository @Inject constructor(private val applicationAPIImpl: App packageName: String, authData: AuthData, origin: Origin - ): Pair { + ): Pair { return applicationAPIImpl.getApplicationDetails(id, packageName, authData, origin) } - suspend fun getCleanapkAppDetails(packageName: String): Pair { + suspend fun getCleanapkAppDetails(packageName: String): Pair { return applicationAPIImpl.getCleanapkAppDetails(packageName) } @@ -107,7 +107,7 @@ class FusedAPIRepository @Inject constructor(private val applicationAPIImpl: App suspend fun getCleanApkSearchResults( query: String, authData: AuthData - ): ResultSupreme, Boolean>> { + ): ResultSupreme, Boolean>> { return applicationAPIImpl.getCleanApkSearchResults(query, authData) } @@ -123,7 +123,7 @@ class FusedAPIRepository @Inject constructor(private val applicationAPIImpl: App category: String, pageUrl: String?, source: Source - ): ResultSupreme, String>> { + ): ResultSupreme, String>> { return when (source) { Source.OPEN -> applicationAPIImpl.getOpenSourceApps(category) Source.PWA -> applicationAPIImpl.getPWAApps(category) @@ -131,8 +131,8 @@ class FusedAPIRepository @Inject constructor(private val applicationAPIImpl: App } } - fun getFusedAppInstallationStatus(fusedApp: FusedApp): Status { - return applicationAPIImpl.getFusedAppInstallationStatus(fusedApp) + fun getFusedAppInstallationStatus(application: Application): Status { + return applicationAPIImpl.getFusedAppInstallationStatus(application) } fun isHomeDataUpdated( @@ -141,11 +141,11 @@ class FusedAPIRepository @Inject constructor(private val applicationAPIImpl: App ) = applicationAPIImpl.isHomeDataUpdated(newHomeData, oldHomeData) fun isAnyFusedAppUpdated( - newFusedApps: List, - oldFusedApps: List - ) = applicationAPIImpl.isAnyFusedAppUpdated(newFusedApps, oldFusedApps) + newApplications: List, + oldApplications: List + ) = applicationAPIImpl.isAnyFusedAppUpdated(newApplications, oldApplications) - fun isAnyAppInstallStatusChanged(currentList: List) = + fun isAnyAppInstallStatusChanged(currentList: List) = applicationAPIImpl.isAnyAppInstallStatusChanged(currentList) fun isOpenSourceSelected() = applicationAPIImpl.isOpenSourceSelected() diff --git a/app/src/main/java/foundation/e/apps/data/fused/UpdatesDao.kt b/app/src/main/java/foundation/e/apps/data/fused/UpdatesDao.kt index 65e5edc9f..b21cefbc3 100644 --- a/app/src/main/java/foundation/e/apps/data/fused/UpdatesDao.kt +++ b/app/src/main/java/foundation/e/apps/data/fused/UpdatesDao.kt @@ -17,17 +17,17 @@ package foundation.e.apps.data.fused -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.fusedDownload.models.FusedDownload object UpdatesDao { - private val _appsAwaitingForUpdate: MutableList = mutableListOf() - val appsAwaitingForUpdate: List = _appsAwaitingForUpdate + private val _appsAwaitingForUpdate: MutableList = mutableListOf() + val appsAwaitingForUpdate: List = _appsAwaitingForUpdate private val _successfulUpdatedApps = mutableListOf() val successfulUpdatedApps: List = _successfulUpdatedApps - fun addItemsForUpdate(appsNeedUpdate: List) { + fun addItemsForUpdate(appsNeedUpdate: List) { _appsAwaitingForUpdate.clear() _appsAwaitingForUpdate.addAll(appsNeedUpdate) } diff --git a/app/src/main/java/foundation/e/apps/data/fused/data/FusedApp.kt b/app/src/main/java/foundation/e/apps/data/fused/data/Application.kt similarity index 96% rename from app/src/main/java/foundation/e/apps/data/fused/data/FusedApp.kt rename to app/src/main/java/foundation/e/apps/data/fused/data/Application.kt index bda418240..48a86c073 100644 --- a/app/src/main/java/foundation/e/apps/data/fused/data/FusedApp.kt +++ b/app/src/main/java/foundation/e/apps/data/fused/data/Application.kt @@ -25,7 +25,7 @@ import foundation.e.apps.data.enums.Status import foundation.e.apps.data.enums.Type import foundation.e.apps.di.CommonUtilsModule.LIST_OF_NULL -data class FusedApp( +data class Application( val _id: String = String(), val author: String = String(), val category: String = String(), diff --git a/app/src/main/java/foundation/e/apps/data/fused/data/FusedHome.kt b/app/src/main/java/foundation/e/apps/data/fused/data/FusedHome.kt index e876c3be0..f1cf80c8c 100644 --- a/app/src/main/java/foundation/e/apps/data/fused/data/FusedHome.kt +++ b/app/src/main/java/foundation/e/apps/data/fused/data/FusedHome.kt @@ -20,6 +20,6 @@ package foundation.e.apps.data.fused.data data class FusedHome( val title: String = String(), - val list: List = emptyList(), + val list: List = emptyList(), var source: String = String() ) diff --git a/app/src/main/java/foundation/e/apps/data/fusedDownload/FusedManagerRepository.kt b/app/src/main/java/foundation/e/apps/data/fusedDownload/FusedManagerRepository.kt index 89e3572ab..10470199c 100644 --- a/app/src/main/java/foundation/e/apps/data/fusedDownload/FusedManagerRepository.kt +++ b/app/src/main/java/foundation/e/apps/data/fusedDownload/FusedManagerRepository.kt @@ -7,7 +7,7 @@ import androidx.lifecycle.LiveData import foundation.e.apps.OpenForTesting import foundation.e.apps.data.enums.Status import foundation.e.apps.data.fdroid.FdroidRepository -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.fusedDownload.models.FusedDownload import foundation.e.apps.install.download.data.DownloadProgress import foundation.e.apps.install.workmanager.InstallWorkManager @@ -108,10 +108,10 @@ class FusedManagerRepository @Inject constructor( fusedDownload.packageName.isNotEmpty() && fusedDownload.downloadURLList.isNotEmpty() suspend fun calculateProgress( - fusedApp: FusedApp?, + application: Application?, progress: DownloadProgress ): Int { - fusedApp?.let { app -> + application?.let { app -> val appDownload = getDownloadList() .singleOrNull { it.id.contentEquals(app._id) && it.packageName.contentEquals(app.package_name) } ?: return 0 @@ -120,7 +120,7 @@ class FusedManagerRepository @Inject constructor( return@let } - if (!isProgressValidForApp(fusedApp, progress)) { + if (!isProgressValidForApp(application, progress)) { return -1 } @@ -142,11 +142,11 @@ class FusedManagerRepository @Inject constructor( } private suspend fun isProgressValidForApp( - fusedApp: FusedApp, + application: Application, downloadProgress: DownloadProgress ): Boolean { val download = getFusedDownload(downloadProgress.downloadId) - return download.id == fusedApp._id + return download.id == application._id } fun handleRatingFormat(rating: Double): String { @@ -157,8 +157,8 @@ class FusedManagerRepository @Inject constructor( } } - suspend fun getCalculateProgressWithTotalSize(fusedApp: FusedApp?, progress: DownloadProgress): Pair { - fusedApp?.let { app -> + suspend fun getCalculateProgressWithTotalSize(application: Application?, progress: DownloadProgress): Pair { + application?.let { app -> val appDownload = getDownloadList() .singleOrNull { it.id.contentEquals(app._id) } val downloadingMap = progress.totalSizeBytes.filter { item -> @@ -174,8 +174,8 @@ class FusedManagerRepository @Inject constructor( return Pair(1, 0) } - fun getDownloadingItemStatus(fusedApp: FusedApp?, downloadList: List): Status? { - fusedApp?.let { app -> + fun getDownloadingItemStatus(application: Application?, downloadList: List): Status? { + application?.let { app -> val downloadingItem = downloadList.find { it.origin == app.origin && (it.packageName == app.package_name || it.id == app.package_name) } return downloadingItem?.status diff --git a/app/src/main/java/foundation/e/apps/data/updates/UpdatesManagerImpl.kt b/app/src/main/java/foundation/e/apps/data/updates/UpdatesManagerImpl.kt index 0848ff084..40c5fed46 100644 --- a/app/src/main/java/foundation/e/apps/data/updates/UpdatesManagerImpl.kt +++ b/app/src/main/java/foundation/e/apps/data/updates/UpdatesManagerImpl.kt @@ -32,7 +32,7 @@ import foundation.e.apps.data.faultyApps.FaultyAppRepository import foundation.e.apps.data.fdroid.FdroidRepository import foundation.e.apps.data.fused.FusedAPIRepository import foundation.e.apps.data.fused.ApplicationApi.Companion.APP_TYPE_ANY -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.preference.PreferenceManagerModule import foundation.e.apps.install.pkg.PkgManagerModule import kotlinx.coroutines.Dispatchers @@ -62,8 +62,8 @@ class UpdatesManagerImpl @Inject constructor( private val userApplications: List get() = pkgManagerModule.getAllUserApps() - suspend fun getUpdates(authData: AuthData): Pair, ResultStatus> { - val updateList = mutableListOf() + suspend fun getUpdates(authData: AuthData): Pair, ResultStatus> { + val updateList = mutableListOf() var status = ResultStatus.OK val openSourceInstalledApps = getOpenSourceInstalledApps().toMutableList() @@ -125,8 +125,8 @@ class UpdatesManagerImpl @Inject constructor( return Pair(nonFaultyUpdateList, status) } - suspend fun getUpdatesOSS(): Pair, ResultStatus> { - val updateList = mutableListOf() + suspend fun getUpdatesOSS(): Pair, ResultStatus> { + val updateList = mutableListOf() var status = ResultStatus.OK val openSourceInstalledApps = getOpenSourceInstalledApps().toMutableList() @@ -213,8 +213,8 @@ class UpdatesManagerImpl @Inject constructor( * @return ResultStatus from calling [apiFunction]. */ private suspend fun getUpdatesFromApi( - apiFunction: suspend () -> Pair, ResultStatus>, - updateAccumulationList: MutableList, + apiFunction: suspend () -> Pair, ResultStatus>, + updateAccumulationList: MutableList, ): ResultStatus { val apiResult = apiFunction() val updatableApps = apiResult.first.filter { @@ -233,7 +233,7 @@ class UpdatesManagerImpl @Inject constructor( private suspend fun getGPlayUpdates( packageNames: List, authData: AuthData - ): Pair, ResultStatus> { + ): Pair, ResultStatus> { val appsResults = coroutineScope { val deferredResults = packageNames.map { packageName -> @@ -282,18 +282,18 @@ class UpdatesManagerImpl @Inject constructor( return appsAndSignatures } - private suspend fun getPgpSignature(cleanApkFusedApp: FusedApp): String { - val installedVersionSignature = calculateSignatureVersion(cleanApkFusedApp) + private suspend fun getPgpSignature(cleanApkApplication: Application): String { + val installedVersionSignature = calculateSignatureVersion(cleanApkApplication) val downloadInfo = fusedAPIRepository - .getOSSDownloadInfo(cleanApkFusedApp._id, installedVersionSignature) + .getOSSDownloadInfo(cleanApkApplication._id, installedVersionSignature) .body()?.download_data val pgpSignature = downloadInfo?.signature ?: "" Timber.i( - "Signature calculated for : ${cleanApkFusedApp.package_name}, " + + "Signature calculated for : ${cleanApkApplication.package_name}, " + "signature version: $installedVersionSignature, " + "is sig blank: ${pgpSignature.isBlank()}" ) @@ -339,7 +339,7 @@ class UpdatesManagerImpl @Inject constructor( * Index of version 7 from top is 3 (index of version 10 is 0). * So the corresponding signature version will be "update_(33-3)" = "update_30" */ - private suspend fun calculateSignatureVersion(latestCleanapkApp: FusedApp): String { + private suspend fun calculateSignatureVersion(latestCleanapkApp: Application): String { val packageName = latestCleanapkApp.package_name val latestSignatureVersion = latestCleanapkApp.latest_downloaded_version diff --git a/app/src/main/java/foundation/e/apps/data/updates/UpdatesManagerRepository.kt b/app/src/main/java/foundation/e/apps/data/updates/UpdatesManagerRepository.kt index 07dfe63b7..0d9aa3d1d 100644 --- a/app/src/main/java/foundation/e/apps/data/updates/UpdatesManagerRepository.kt +++ b/app/src/main/java/foundation/e/apps/data/updates/UpdatesManagerRepository.kt @@ -21,14 +21,14 @@ package foundation.e.apps.data.updates import com.aurora.gplayapi.data.models.AuthData import foundation.e.apps.data.enums.ResultStatus import foundation.e.apps.data.fused.UpdatesDao -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import javax.inject.Inject class UpdatesManagerRepository @Inject constructor( private val updatesManagerImpl: UpdatesManagerImpl ) { - suspend fun getUpdates(authData: AuthData): Pair, ResultStatus> { + suspend fun getUpdates(authData: AuthData): Pair, ResultStatus> { if (UpdatesDao.hasAnyAppsForUpdate()) { return Pair(UpdatesDao.appsAwaitingForUpdate, ResultStatus.OK) } @@ -39,7 +39,7 @@ class UpdatesManagerRepository @Inject constructor( } } - suspend fun getUpdatesOSS(): Pair, ResultStatus> { + suspend fun getUpdatesOSS(): Pair, ResultStatus> { return updatesManagerImpl.getUpdatesOSS() } diff --git a/app/src/main/java/foundation/e/apps/install/pkg/PWAManagerModule.kt b/app/src/main/java/foundation/e/apps/install/pkg/PWAManagerModule.kt index 56e27c74f..83d92bb72 100644 --- a/app/src/main/java/foundation/e/apps/install/pkg/PWAManagerModule.kt +++ b/app/src/main/java/foundation/e/apps/install/pkg/PWAManagerModule.kt @@ -13,7 +13,7 @@ import androidx.core.graphics.drawable.IconCompat import dagger.hilt.android.qualifiers.ApplicationContext import foundation.e.apps.OpenForTesting import foundation.e.apps.data.enums.Status -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.fusedDownload.FusedDownloadRepository import foundation.e.apps.data.fusedDownload.models.FusedDownload import kotlinx.coroutines.delay @@ -51,13 +51,13 @@ class PWAManagerModule @Inject constructor( * Note that there is no pwa version. Also there is no "package_name". * * In this method, we get all the available PWAs from PWA Player and compare each of their url - * to the method argument [fusedApp]'s url. If an item (from the cursor) has url equal to + * to the method argument [application]'s url. If an item (from the cursor) has url equal to * that of pwa app, we return [Status.INSTALLED]. - * We also set [FusedApp.pwaPlayerDbId] for the [fusedApp]. + * We also set [Application.pwaPlayerDbId] for the [application]. * * As there is no concept of version, we cannot send [Status.UPDATABLE]. */ - fun getPwaStatus(fusedApp: FusedApp): Status { + fun getPwaStatus(application: Application): Status { context.contentResolver.query( Uri.parse(PWA_PLAYER), null, null, null, null @@ -68,8 +68,8 @@ class PWAManagerModule @Inject constructor( try { val pwaItemUrl = cursor.getString(cursor.columnNames.indexOf("url")) val pwaItemDbId = cursor.getLong(cursor.columnNames.indexOf("_id")) - if (fusedApp.url == pwaItemUrl) { - fusedApp.pwaPlayerDbId = pwaItemDbId + if (application.url == pwaItemUrl) { + application.pwaPlayerDbId = pwaItemDbId return Status.INSTALLED } } catch (e: Exception) { @@ -87,10 +87,10 @@ class PWAManagerModule @Inject constructor( /** * Launch PWA using PWA Player. */ - fun launchPwa(fusedApp: FusedApp) { + fun launchPwa(application: Application) { val launchIntent = Intent(VIEW_PWA).apply { - data = Uri.parse(fusedApp.url) - putExtra(PWA_ID, fusedApp.pwaPlayerDbId) + data = Uri.parse(application.url) + putExtra(PWA_ID, application.pwaPlayerDbId) addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT or Intent.FLAG_ACTIVITY_RETAIN_IN_RECENTS) } diff --git a/app/src/main/java/foundation/e/apps/install/updates/UpdatesWorker.kt b/app/src/main/java/foundation/e/apps/install/updates/UpdatesWorker.kt index f15a36841..5147c2549 100644 --- a/app/src/main/java/foundation/e/apps/install/updates/UpdatesWorker.kt +++ b/app/src/main/java/foundation/e/apps/install/updates/UpdatesWorker.kt @@ -19,7 +19,7 @@ import foundation.e.apps.data.ResultSupreme import foundation.e.apps.data.blockedApps.BlockedAppRepository import foundation.e.apps.data.enums.ResultStatus import foundation.e.apps.data.enums.User -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.login.AuthenticatorRepository import foundation.e.apps.data.preference.DataStoreManager import foundation.e.apps.data.updates.UpdatesManagerRepository @@ -104,7 +104,7 @@ class UpdatesWorker @AssistedInject constructor( private suspend fun checkForUpdates() { loadSettings() val isConnectedToUnMeteredNetwork = isConnectedToUnMeteredNetwork(applicationContext) - val appsNeededToUpdate = mutableListOf() + val appsNeededToUpdate = mutableListOf() val user = getUser() val authData = authenticatorRepository.getValidatedAuthData().data val resultStatus: ResultStatus @@ -180,7 +180,7 @@ class UpdatesWorker @AssistedInject constructor( private suspend fun triggerUpdateProcessOnSettings( isConnectedToUnmeteredNetwork: Boolean, - appsNeededToUpdate: List, + appsNeededToUpdate: List, authData: AuthData ) { if ((!isAutoUpdate || automaticInstallEnabled) && @@ -210,7 +210,7 @@ class UpdatesWorker @AssistedInject constructor( } private suspend fun startUpdateProcess( - appsNeededToUpdate: List, + appsNeededToUpdate: List, authData: AuthData ) { appsNeededToUpdate.forEach { fusedApp -> diff --git a/app/src/main/java/foundation/e/apps/install/workmanager/AppInstallProcessor.kt b/app/src/main/java/foundation/e/apps/install/workmanager/AppInstallProcessor.kt index e17278dde..e9bec2430 100644 --- a/app/src/main/java/foundation/e/apps/install/workmanager/AppInstallProcessor.kt +++ b/app/src/main/java/foundation/e/apps/install/workmanager/AppInstallProcessor.kt @@ -28,7 +28,7 @@ import foundation.e.apps.data.enums.Status import foundation.e.apps.data.enums.Type import foundation.e.apps.data.fused.FusedAPIRepository import foundation.e.apps.data.fused.UpdatesDao -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.fusedDownload.FusedDownloadRepository import foundation.e.apps.data.fusedDownload.FusedManagerRepository import foundation.e.apps.data.fusedDownload.models.FusedDownload @@ -63,34 +63,34 @@ class AppInstallProcessor @Inject constructor( } /** - * creates [FusedDownload] from [FusedApp] and enqueues into WorkManager to run install process. - * @param fusedApp represents the app info which will be installed + * creates [FusedDownload] from [Application] and enqueues into WorkManager to run install process. + * @param application represents the app info which will be installed * @param isAnUpdate indicates the app is requested for update or not * */ suspend fun initAppInstall( - fusedApp: FusedApp, + application: Application, isAnUpdate: Boolean = false ) { val fusedDownload = FusedDownload( - fusedApp._id, - fusedApp.origin, - fusedApp.status, - fusedApp.name, - fusedApp.package_name, + application._id, + application.origin, + application.status, + application.name, + application.package_name, mutableListOf(), mutableMapOf(), - fusedApp.status, - fusedApp.type, - fusedApp.icon_image_path, - fusedApp.latest_version_code, - fusedApp.offer_type, - fusedApp.isFree, - fusedApp.originalSize + application.status, + application.type, + application.icon_image_path, + application.latest_version_code, + application.offer_type, + application.isFree, + application.originalSize ) if (fusedDownload.type == Type.PWA) { - fusedDownload.downloadURLList = mutableListOf(fusedApp.url) + fusedDownload.downloadURLList = mutableListOf(application.url) } enqueueFusedDownload(fusedDownload, isAnUpdate) diff --git a/app/src/main/java/foundation/e/apps/ui/AppInfoFetchViewModel.kt b/app/src/main/java/foundation/e/apps/ui/AppInfoFetchViewModel.kt index 767ca5213..48840a8a6 100644 --- a/app/src/main/java/foundation/e/apps/ui/AppInfoFetchViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/AppInfoFetchViewModel.kt @@ -7,7 +7,7 @@ import dagger.hilt.android.lifecycle.HiltViewModel import foundation.e.apps.data.blockedApps.BlockedAppRepository import foundation.e.apps.data.faultyApps.FaultyAppRepository import foundation.e.apps.data.fdroid.FdroidRepository -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.playstore.PlayStoreRepository import javax.inject.Inject import javax.inject.Named @@ -23,12 +23,12 @@ class AppInfoFetchViewModel @Inject constructor( private val blockedAppRepository: BlockedAppRepository, ) : ViewModel() { - fun getAuthorName(fusedApp: FusedApp) = liveData { - val authorName = fdroidRepository.getAuthorName(fusedApp) + fun getAuthorName(application: Application) = liveData { + val authorName = fdroidRepository.getAuthorName(application) emit(authorName) } - fun isAppPurchased(app: FusedApp): LiveData { + fun isAppPurchased(app: Application): LiveData { return liveData { try { gplayRepository.getDownloadInfo( @@ -45,13 +45,13 @@ class AppInfoFetchViewModel @Inject constructor( } } - fun isAppInBlockedList(fusedApp: FusedApp): Boolean { - return blockedAppRepository.getBlockedAppPackages().contains(fusedApp.package_name) + fun isAppInBlockedList(application: Application): Boolean { + return blockedAppRepository.getBlockedAppPackages().contains(application.package_name) } - fun isAppFaulty(fusedApp: FusedApp) = liveData> { + fun isAppFaulty(application: Application) = liveData> { val faultyApp = faultyAppRepository.getAllFaultyApps() - .find { faultyApp -> faultyApp.packageName.contentEquals(fusedApp.package_name) } + .find { faultyApp -> faultyApp.packageName.contentEquals(application.package_name) } val faultyAppResult = Pair(faultyApp != null, faultyApp?.error ?: "") emit(faultyAppResult) } diff --git a/app/src/main/java/foundation/e/apps/ui/AppProgressViewModel.kt b/app/src/main/java/foundation/e/apps/ui/AppProgressViewModel.kt index 3ab4ce0d8..05f0625ea 100644 --- a/app/src/main/java/foundation/e/apps/ui/AppProgressViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/AppProgressViewModel.kt @@ -20,7 +20,7 @@ package foundation.e.apps.ui import androidx.lifecycle.ViewModel import dagger.hilt.android.lifecycle.HiltViewModel -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.fusedDownload.FusedManagerRepository import foundation.e.apps.install.download.data.DownloadProgress import foundation.e.apps.install.download.data.DownloadProgressLD @@ -35,9 +35,9 @@ class AppProgressViewModel @Inject constructor( val downloadProgress = downloadProgressLD suspend fun calculateProgress( - fusedApp: FusedApp?, + application: Application?, progress: DownloadProgress ): Int { - return fusedManagerRepository.calculateProgress(fusedApp, progress) + return fusedManagerRepository.calculateProgress(application, progress) } } diff --git a/app/src/main/java/foundation/e/apps/ui/MainActivityViewModel.kt b/app/src/main/java/foundation/e/apps/ui/MainActivityViewModel.kt index d88b91724..a585cfc93 100644 --- a/app/src/main/java/foundation/e/apps/ui/MainActivityViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/MainActivityViewModel.kt @@ -42,7 +42,7 @@ import foundation.e.apps.data.enums.User import foundation.e.apps.data.enums.isInitialized import foundation.e.apps.data.enums.isUnFiltered import foundation.e.apps.data.fused.FusedAPIRepository -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.fusedDownload.FusedManagerRepository import foundation.e.apps.data.fusedDownload.models.FusedDownload import foundation.e.apps.data.preference.DataStoreModule @@ -119,7 +119,7 @@ class MainActivityViewModel @Inject constructor( * * Issue: https://gitlab.e.foundation/e/os/backlog/-/issues/266 */ - fun shouldShowPaidAppsSnackBar(app: FusedApp): Boolean { + fun shouldShowPaidAppsSnackBar(app: Application): Boolean { if (!app.isFree && gPlayAuthData.isAnonymous) { _errorMessageStringResource.value = R.string.paid_app_anonymous_message return true @@ -129,7 +129,7 @@ class MainActivityViewModel @Inject constructor( /** * Handle various cases of unsupported apps here. - * Returns true if the [fusedApp] is not supported by App Lounge. + * Returns true if the [application] is not supported by App Lounge. * * Pass [alertDialogContext] as null to prevent an alert dialog from being shown to the user. * In that case, this method simply works as a validation. @@ -137,17 +137,17 @@ class MainActivityViewModel @Inject constructor( * Issue: https://gitlab.e.foundation/e/os/backlog/-/issues/178 */ fun checkUnsupportedApplication( - fusedApp: FusedApp, + application: Application, alertDialogContext: Context? = null ): Boolean { - if (!fusedApp.filterLevel.isUnFiltered()) { + if (!application.filterLevel.isUnFiltered()) { alertDialogContext?.let { context -> AlertDialog.Builder(context).apply { setTitle(R.string.unsupported_app_title) setMessage( context.getString( R.string.unsupported_app_unreleased, - fusedApp.name + application.name ) ) setPositiveButton(android.R.string.ok, null) @@ -162,15 +162,15 @@ class MainActivityViewModel @Inject constructor( * Fetch the filter level of an app and perform some action. * Issue: https://gitlab.e.foundation/e/backlog/-/issues/5720 */ - fun verifyUiFilter(fusedApp: FusedApp, method: () -> Unit) { + fun verifyUiFilter(application: Application, method: () -> Unit) { viewModelScope.launch { val authData = gPlayAuthData - if (fusedApp.filterLevel.isInitialized()) { + if (application.filterLevel.isInitialized()) { method() } else { - fusedAPIRepository.getAppFilterLevel(fusedApp, authData).run { + fusedAPIRepository.getAppFilterLevel(application, authData).run { if (isInitialized()) { - fusedApp.filterLevel = this + application.filterLevel = this method() } } @@ -178,7 +178,7 @@ class MainActivityViewModel @Inject constructor( } } - fun getApplication(app: FusedApp) { + fun getApplication(app: Application) { viewModelScope.launch { appInstallProcessor.initAppInstall(app) } @@ -200,7 +200,7 @@ class MainActivityViewModel @Inject constructor( fusedManagerRepository.updateUnavailable(fusedDownload) } - fun cancelDownload(app: FusedApp) { + fun cancelDownload(app: Application) { viewModelScope.launch { val fusedDownload = fusedManagerRepository.getFusedDownload(packageName = app.package_name) @@ -275,10 +275,10 @@ class MainActivityViewModel @Inject constructor( } fun updateStatusOfFusedApps( - fusedAppList: List, + applicationList: List, fusedDownloadList: List ) { - fusedAppList.forEach { + applicationList.forEach { val downloadingItem = fusedDownloadList.find { fusedDownload -> fusedDownload.origin == it.origin && (fusedDownload.packageName == it.package_name || fusedDownload.id == it._id) } @@ -301,7 +301,7 @@ class MainActivityViewModel @Inject constructor( return pkgManagerModule.getLaunchIntent(packageName) } - fun launchPwa(fusedApp: FusedApp) { - pwaManagerModule.launchPwa(fusedApp) + fun launchPwa(application: Application) { + pwaManagerModule.launchPwa(application) } } diff --git a/app/src/main/java/foundation/e/apps/ui/PrivacyInfoViewModel.kt b/app/src/main/java/foundation/e/apps/ui/PrivacyInfoViewModel.kt index fb7521da9..043112c39 100644 --- a/app/src/main/java/foundation/e/apps/ui/PrivacyInfoViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/PrivacyInfoViewModel.kt @@ -10,7 +10,7 @@ import foundation.e.apps.data.Result import foundation.e.apps.data.exodus.models.AppPrivacyInfo import foundation.e.apps.data.exodus.repositories.IAppPrivacyInfoRepository import foundation.e.apps.data.exodus.repositories.PrivacyScoreRepository -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import kotlinx.coroutines.launch import javax.inject.Inject @@ -23,23 +23,23 @@ class PrivacyInfoViewModel @Inject constructor( private val singularAppPrivacyInfoLiveData: MutableLiveData> = MutableLiveData() - fun getAppPrivacyInfoLiveData(fusedApp: FusedApp): LiveData> { + fun getAppPrivacyInfoLiveData(application: Application): LiveData> { return liveData { - emit(fetchEmitAppPrivacyInfo(fusedApp)) + emit(fetchEmitAppPrivacyInfo(application)) } } - fun getSingularAppPrivacyInfoLiveData(fusedApp: FusedApp?): LiveData> { - fetchPrivacyInfo(fusedApp) + fun getSingularAppPrivacyInfoLiveData(application: Application?): LiveData> { + fetchPrivacyInfo(application) return singularAppPrivacyInfoLiveData } - fun refreshAppPrivacyInfo(fusedApp: FusedApp?) { - fetchPrivacyInfo(fusedApp, true) + fun refreshAppPrivacyInfo(application: Application?) { + fetchPrivacyInfo(application, true) } - private fun fetchPrivacyInfo(fusedApp: FusedApp?, forced: Boolean = false) { - fusedApp?.let { + private fun fetchPrivacyInfo(application: Application?, forced: Boolean = false) { + application?.let { if (forced) { it.trackers = emptyList() it.permsFromExodus = emptyList() @@ -52,10 +52,10 @@ class PrivacyInfoViewModel @Inject constructor( } private suspend fun fetchEmitAppPrivacyInfo( - fusedApp: FusedApp + application: Application ): Result { val appPrivacyPrivacyInfoResult = - privacyInfoRepository.getAppPrivacyInfo(fusedApp, fusedApp.package_name) + privacyInfoRepository.getAppPrivacyInfo(application, application.package_name) return handleAppPrivacyInfoResult(appPrivacyPrivacyInfoResult) } @@ -67,8 +67,8 @@ class PrivacyInfoViewModel @Inject constructor( } else appPrivacyPrivacyInfoResult } - fun getTrackerListText(fusedApp: FusedApp?): String { - fusedApp?.let { + fun getTrackerListText(application: Application?): String { + application?.let { if (it.trackers.isNotEmpty()) { return it.trackers.joinToString(separator = "") { tracker -> "$tracker
" } } @@ -76,18 +76,18 @@ class PrivacyInfoViewModel @Inject constructor( return "" } - fun getPrivacyScore(fusedApp: FusedApp?): Int { - fusedApp?.let { + fun getPrivacyScore(application: Application?): Int { + application?.let { return privacyScoreRepository.calculatePrivacyScore(it) } return -1 } - fun shouldRequestExodusReport(fusedApp: FusedApp?): Boolean { - if (fusedApp?.isFree != true) { + fun shouldRequestExodusReport(application: Application?): Boolean { + if (application?.isFree != true) { return false } - return getPrivacyScore(fusedApp) < 0 + return getPrivacyScore(application) < 0 } } diff --git a/app/src/main/java/foundation/e/apps/ui/application/ApplicationFragment.kt b/app/src/main/java/foundation/e/apps/ui/application/ApplicationFragment.kt index 848650d56..fa4b56a1c 100644 --- a/app/src/main/java/foundation/e/apps/ui/application/ApplicationFragment.kt +++ b/app/src/main/java/foundation/e/apps/ui/application/ApplicationFragment.kt @@ -53,7 +53,7 @@ import foundation.e.apps.data.enums.ResultStatus import foundation.e.apps.data.enums.Status import foundation.e.apps.data.enums.User import foundation.e.apps.data.enums.isInitialized -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.login.AuthObject import foundation.e.apps.data.login.exceptions.GPlayLoginException import foundation.e.apps.databinding.FragmentApplicationBinding @@ -157,7 +157,7 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) { binding.applicationLayout.visibility = View.INVISIBLE - applicationViewModel.fusedApp.observe(viewLifecycleOwner) { resultPair -> + applicationViewModel.application.observe(viewLifecycleOwner) { resultPair -> updateUi(resultPair) } @@ -167,7 +167,7 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) { } private fun updateUi( - resultPair: Pair, + resultPair: Pair, ) { if (resultPair.second != ResultStatus.OK) { return @@ -220,7 +220,7 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) { stopLoadingUI() } - private fun showWarningMessage(it: FusedApp) { + private fun showWarningMessage(it: Application) { if (appInfoFetchViewModel.isAppInBlockedList(it)) { binding.snackbarLayout.visibility = View.VISIBLE } else if (args.isGplayReplaced && !applicationViewModel.isOpenSourceSelected()) { @@ -241,7 +241,7 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) { } } - private fun updateAppDescriptionText(it: FusedApp) { + private fun updateAppDescriptionText(it: Application) { binding.appDescription.text = Html.fromHtml(it.description, Html.FROM_HTML_MODE_COMPACT) @@ -275,11 +275,11 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) { } } - private fun buildTrackersString(fusedApp: FusedApp?): String { + private fun buildTrackersString(application: Application?): String { var trackers = - privacyInfoViewModel.getTrackerListText(fusedApp) + privacyInfoViewModel.getTrackerListText(application) - if (fusedApp?.trackers == LIST_OF_NULL) { + if (application?.trackers == LIST_OF_NULL) { trackers = getString(R.string.tracker_information_not_found) } else if (trackers.isNotEmpty()) { trackers += "

" + getString( @@ -294,7 +294,7 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) { } private fun updateAppInformation( - it: FusedApp, + it: Application, ) { binding.infoInclude.apply { appUpdatedOn.text = getString( @@ -315,7 +315,7 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) { } } - private fun updateAppRating(it: FusedApp) { + private fun updateAppRating(it: Application) { binding.ratingsInclude.apply { if (it.ratings.usageQualityScore != -1.0) { val rating = @@ -389,7 +389,7 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) { ).show(childFragmentManager, TAG) } - private fun updateAppTitlePanel(it: FusedApp) { + private fun updateAppTitlePanel(it: Application) { binding.titleInclude.apply { applicationIcon = appIcon appName.text = it.name @@ -411,7 +411,7 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) { } } - private fun updateCategoryTitle(app: FusedApp) { + private fun updateCategoryTitle(app: Application) { binding.titleInclude.apply { var catText = app.category.ifBlank { args.category } when { @@ -492,17 +492,17 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) { val installButton = binding.downloadInclude.installButton val downloadPB = binding.downloadInclude.progressLayout val appSize = binding.downloadInclude.appSize - val fusedApp = applicationViewModel.getFusedApp() ?: FusedApp() + val application = applicationViewModel.getFusedApp() ?: Application() - mainActivityViewModel.verifyUiFilter(fusedApp) { - if (!fusedApp.filterLevel.isInitialized()) { + mainActivityViewModel.verifyUiFilter(application) { + if (!application.filterLevel.isInitialized()) { return@verifyUiFilter } when (status) { Status.INSTALLED -> handleInstalled( installButton, view, - fusedApp, + application, downloadPB, appSize ) @@ -510,28 +510,28 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) { Status.UPDATABLE -> handleUpdatable( installButton, view, - fusedApp, + application, downloadPB, appSize ) Status.UNAVAILABLE -> handleUnavaiable( installButton, - fusedApp, + application, downloadPB, appSize ) Status.QUEUED, Status.AWAITING, Status.DOWNLOADED -> handleQueued( installButton, - fusedApp, + application, downloadPB, appSize ) Status.DOWNLOADING -> handleDownloading( installButton, - fusedApp, + application, downloadPB, appSize ) @@ -545,7 +545,7 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) { Status.BLOCKED -> handleBlocked(installButton, view) Status.INSTALLATION_ISSUE -> handleInstallingIssue( installButton, - fusedApp, + application, downloadPB, appSize ) @@ -560,7 +560,7 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) { private fun handleInstallingIssue( installButton: MaterialButton, - fusedApp: FusedApp, + application: Application, downloadPB: RelativeLayout, appSize: MaterialTextView ) { @@ -568,7 +568,7 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) { enableInstallButton(R.string.retry) setOnClickListener { applicationIcon?.let { - mainActivityViewModel.getApplication(fusedApp) + mainActivityViewModel.getApplication(application) } } } @@ -606,7 +606,7 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) { private fun handleDownloading( installButton: MaterialButton, - fusedApp: FusedApp, + application: Application, downloadPB: RelativeLayout, appSize: MaterialTextView ) { @@ -614,7 +614,7 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) { enableInstallButton(R.string.cancel) text = getString(R.string.cancel) setOnClickListener { - mainActivityViewModel.cancelDownload(fusedApp) + mainActivityViewModel.cancelDownload(application) } } downloadPB.visibility = View.VISIBLE @@ -628,7 +628,7 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) { private fun handleQueued( installButton: MaterialButton, - fusedApp: FusedApp, + application: Application, downloadPB: RelativeLayout, appSize: MaterialTextView ) { @@ -638,46 +638,46 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) { enableInstallButton(R.string.cancel) text = getString(R.string.cancel) setOnClickListener { - mainActivityViewModel.cancelDownload(fusedApp) + mainActivityViewModel.cancelDownload(application) } } } private fun handleUnavaiable( installButton: MaterialButton, - fusedApp: FusedApp, + application: Application, downloadPB: RelativeLayout, appSize: MaterialTextView ) { installButton.apply { enableInstallButton(R.string.install) text = when { - mainActivityViewModel.checkUnsupportedApplication(fusedApp) -> + mainActivityViewModel.checkUnsupportedApplication(application) -> getString(R.string.not_available) - fusedApp.isFree -> getString(R.string.install) - else -> fusedApp.price + application.isFree -> getString(R.string.install) + else -> application.price } setOnClickListener { - if (mainActivityViewModel.checkUnsupportedApplication(fusedApp, activity)) { + if (mainActivityViewModel.checkUnsupportedApplication(application, activity)) { return@setOnClickListener } applicationIcon?.let { - if (fusedApp.isFree) { + if (application.isFree) { disableInstallButton(R.string.cancel) - installApplication(fusedApp) + installApplication(application) } else { - if (!mainActivityViewModel.shouldShowPaidAppsSnackBar(fusedApp)) { + if (!mainActivityViewModel.shouldShowPaidAppsSnackBar(application)) { ApplicationDialogFragment( - title = getString(R.string.dialog_title_paid_app, fusedApp.name), + title = getString(R.string.dialog_title_paid_app, application.name), message = getString( R.string.dialog_paidapp_message, - fusedApp.name, - fusedApp.price + application.name, + application.price ), positiveButtonText = getString(R.string.dialog_confirm), positiveButtonAction = { - installApplication(fusedApp) + installApplication(application) }, cancelButtonText = getString(R.string.dialog_cancel), ).show(childFragmentManager, "ApplicationFragment") @@ -709,43 +709,43 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) { } private fun installApplication( - fusedApp: FusedApp + application: Application ) { - if (appInfoFetchViewModel.isAppInBlockedList(fusedApp)) { + if (appInfoFetchViewModel.isAppInBlockedList(application)) { ApplicationDialogFragment( title = getString(R.string.this_app_may_not_work_properly), message = getString(R.string.may_not_work_warning_message), positiveButtonText = getString(R.string.install_anyway), positiveButtonAction = { - mainActivityViewModel.getApplication(fusedApp) + mainActivityViewModel.getApplication(application) } ).show(childFragmentManager, "ApplicationFragment") } else { - mainActivityViewModel.getApplication(fusedApp) + mainActivityViewModel.getApplication(application) } } private fun handleUpdatable( installButton: MaterialButton, view: View, - fusedApp: FusedApp, + application: Application, downloadPB: RelativeLayout, appSize: MaterialTextView ) { installButton.apply { enableInstallButton(R.string.not_available) - text = if (mainActivityViewModel.checkUnsupportedApplication(fusedApp)) + text = if (mainActivityViewModel.checkUnsupportedApplication(application)) getString(R.string.not_available) else getString(R.string.update) setTextColor(Color.WHITE) backgroundTintList = ContextCompat.getColorStateList(view.context, R.color.colorAccent) setOnClickListener { - if (mainActivityViewModel.checkUnsupportedApplication(fusedApp, activity)) { + if (mainActivityViewModel.checkUnsupportedApplication(application, activity)) { return@setOnClickListener } applicationIcon?.let { - mainActivityViewModel.getApplication(fusedApp) + mainActivityViewModel.getApplication(application) } } } @@ -756,7 +756,7 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) { private fun handleInstalled( installButton: MaterialButton, view: View, - fusedApp: FusedApp, + application: Application, downloadPB: RelativeLayout, appSize: MaterialTextView ) { @@ -768,10 +768,10 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) { backgroundTintList = ContextCompat.getColorStateList(view.context, R.color.colorAccent) setOnClickListener { - if (fusedApp.is_pwa) { - pwaManagerModule.launchPwa(fusedApp) + if (application.is_pwa) { + pwaManagerModule.launchPwa(application) } else { - val launchIntent = pkgManagerModule.getLaunchIntent(fusedApp.package_name) + val launchIntent = pkgManagerModule.getLaunchIntent(application.package_name) launchIntent?.run { startActivity(this) } } } @@ -818,12 +818,12 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) { return EXODUS_URL } - val reportId = applicationViewModel.fusedApp.value!!.first.reportId + val reportId = applicationViewModel.application.value!!.first.reportId return "$EXODUS_REPORT_URL${Locale.getDefault().language}/reports/$reportId" } - private fun fetchAppTracker(fusedApp: FusedApp) { - privacyInfoViewModel.getSingularAppPrivacyInfoLiveData(fusedApp) + private fun fetchAppTracker(application: Application) { + privacyInfoViewModel.getSingularAppPrivacyInfoLiveData(application) .observe(viewLifecycleOwner) { updatePrivacyScore() } diff --git a/app/src/main/java/foundation/e/apps/ui/application/ApplicationViewModel.kt b/app/src/main/java/foundation/e/apps/ui/application/ApplicationViewModel.kt index 3f1889ae1..3a9523709 100644 --- a/app/src/main/java/foundation/e/apps/ui/application/ApplicationViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/application/ApplicationViewModel.kt @@ -28,7 +28,7 @@ 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.fused.FusedAPIRepository -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.fusedDownload.FusedManagerRepository import foundation.e.apps.data.fusedDownload.models.FusedDownload import foundation.e.apps.data.login.AuthObject @@ -48,7 +48,7 @@ class ApplicationViewModel @Inject constructor( private val fusedManagerRepository: FusedManagerRepository, ) : LoadingViewModel() { - val fusedApp: MutableLiveData> = MutableLiveData() + val application: MutableLiveData> = MutableLiveData() val appStatus: MutableLiveData = MutableLiveData() val downloadProgress = downloadProgressLD private val _errorMessageLiveData: MutableLiveData = MutableLiveData() @@ -103,7 +103,7 @@ class ApplicationViewModel @Inject constructor( authData, origin ) - fusedApp.postValue(appData) + application.postValue(appData) val status = appData.second @@ -141,7 +141,7 @@ class ApplicationViewModel @Inject constructor( if (this.first.package_name.isBlank()) { _errorMessageLiveData.postValue(R.string.app_not_found) } else { - fusedApp.postValue(this) + application.postValue(this) } } } catch (e: Exception) { @@ -152,7 +152,7 @@ class ApplicationViewModel @Inject constructor( fun transformPermsToString(): String { var permissionString = "" - fusedApp.value?.first?.let { + application.value?.first?.let { // Filter list to only keep platform permissions val filteredList = it.perms.filter { it.startsWith("android.permission.") @@ -167,19 +167,19 @@ class ApplicationViewModel @Inject constructor( return permissionString } - fun getFusedApp(): FusedApp? { - return fusedApp.value?.first + fun getFusedApp(): Application? { + return application.value?.first } fun handleRatingFormat(rating: Double): String { return fusedManagerRepository.handleRatingFormat(rating) } suspend fun calculateProgress(progress: DownloadProgress): Pair { - return fusedManagerRepository.getCalculateProgressWithTotalSize(fusedApp.value?.first, progress) + return fusedManagerRepository.getCalculateProgressWithTotalSize(application.value?.first, progress) } fun updateApplicationStatus(downloadList: List) { - fusedApp.value?.first?.let { app -> + application.value?.first?.let { app -> appStatus.value = fusedManagerRepository.getDownloadingItemStatus(app, downloadList) ?: fusedAPIRepository.getFusedAppInstallationStatus(app) } diff --git a/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationDiffUtil.kt b/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationDiffUtil.kt index 4013e7095..320d9e010 100644 --- a/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationDiffUtil.kt +++ b/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationDiffUtil.kt @@ -18,15 +18,15 @@ package foundation.e.apps.ui.applicationlist import androidx.recyclerview.widget.DiffUtil -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.di.CommonUtilsModule.LIST_OF_NULL -class ApplicationDiffUtil : DiffUtil.ItemCallback() { - override fun areItemsTheSame(oldItem: FusedApp, newItem: FusedApp): Boolean { +class ApplicationDiffUtil : DiffUtil.ItemCallback() { + override fun areItemsTheSame(oldItem: Application, newItem: Application): Boolean { return oldItem._id == newItem._id } - override fun areContentsTheSame(oldItem: FusedApp, newItem: FusedApp): Boolean { + override fun areContentsTheSame(oldItem: Application, newItem: Application): Boolean { return oldItem._id == newItem._id && oldItem.appSize.contentEquals(newItem.appSize) && oldItem.author.contentEquals(newItem.author) && diff --git a/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListFragment.kt b/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListFragment.kt index aad78058c..e840e1182 100644 --- a/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListFragment.kt +++ b/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListFragment.kt @@ -34,7 +34,7 @@ import foundation.e.apps.R import foundation.e.apps.data.ResultSupreme import foundation.e.apps.data.enums.Status import foundation.e.apps.data.fused.ApplicationInstaller -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.login.AuthObject import foundation.e.apps.data.login.exceptions.GPlayLoginException import foundation.e.apps.databinding.FragmentApplicationListBinding @@ -119,7 +119,7 @@ class ApplicationListFragment : private fun observeDownloadList( adapter: ApplicationListRVAdapter, - fusedAppResult: ResultSupreme> + applicationResult: ResultSupreme> ) { mainActivityViewModel.downloadList.removeObservers(viewLifecycleOwner) mainActivityViewModel.downloadList.observe(viewLifecycleOwner) { list -> @@ -127,7 +127,7 @@ class ApplicationListFragment : appList.let { mainActivityViewModel.updateStatusOfFusedApps(it, list) - if (isFusedAppsUpdated(fusedAppResult, listAdapter.currentList)) { + if (isFusedAppsUpdated(applicationResult, listAdapter.currentList)) { adapter.setData(it, args.translation) } } @@ -185,17 +185,17 @@ class ApplicationListFragment : } } - private fun showPaidAppMessage(fusedApp: FusedApp) { + private fun showPaidAppMessage(application: Application) { ApplicationDialogFragment( - title = getString(R.string.dialog_title_paid_app, fusedApp.name), + title = getString(R.string.dialog_title_paid_app, application.name), message = getString( R.string.dialog_paidapp_message, - fusedApp.name, - fusedApp.price + application.name, + application.price ), positiveButtonText = getString(R.string.dialog_confirm), positiveButtonAction = { - installApplication(fusedApp) + installApplication(application) }, cancelButtonText = getString(R.string.dialog_cancel), ).show(childFragmentManager, "HomeFragment") @@ -208,10 +208,10 @@ class ApplicationListFragment : } private fun isFusedAppsUpdated( - fusedAppResult: ResultSupreme>, - currentList: MutableList? - ) = currentList.isNullOrEmpty() || fusedAppResult.data != null && viewModel.isFusedAppUpdated( - fusedAppResult.data!!, + applicationResult: ResultSupreme>, + currentList: MutableList? + ) = currentList.isNullOrEmpty() || applicationResult.data != null && viewModel.isFusedAppUpdated( + applicationResult.data!!, currentList ) @@ -332,11 +332,11 @@ class ApplicationListFragment : super.onPause() } - override fun installApplication(app: FusedApp) { + override fun installApplication(app: Application) { mainActivityViewModel.getApplication(app) } - override fun cancelDownload(app: FusedApp) { + override fun cancelDownload(app: Application) { mainActivityViewModel.cancelDownload(app) } } diff --git a/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListRVAdapter.kt b/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListRVAdapter.kt index 61b0c46fb..cc51a5c53 100644 --- a/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListRVAdapter.kt +++ b/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListRVAdapter.kt @@ -40,7 +40,7 @@ import foundation.e.apps.data.enums.Origin import foundation.e.apps.data.enums.Status import foundation.e.apps.data.enums.User import foundation.e.apps.data.fused.ApplicationInstaller -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.databinding.ApplicationListItemBinding import foundation.e.apps.install.pkg.InstallerService import foundation.e.apps.ui.AppInfoFetchViewModel @@ -61,8 +61,8 @@ class ApplicationListRVAdapter( private val mainActivityViewModel: MainActivityViewModel, private val currentDestinationId: Int, private var lifecycleOwner: LifecycleOwner?, - private var paidAppHandler: ((FusedApp) -> Unit)? = null -) : ListAdapter(ApplicationDiffUtil()) { + private var paidAppHandler: ((Application) -> Unit)? = null +) : ListAdapter(ApplicationDiffUtil()) { private var optionalCategory = "" @@ -161,7 +161,7 @@ class ApplicationListRVAdapter( } private fun ApplicationListItemBinding.setAppIcon( - searchApp: FusedApp, + searchApp: Application, shimmerDrawable: ShimmerDrawable ) { when (searchApp.origin) { @@ -179,14 +179,14 @@ class ApplicationListRVAdapter( } } - private fun ApplicationListItemBinding.updateAppInfo(searchApp: FusedApp) { + private fun ApplicationListItemBinding.updateAppInfo(searchApp: Application) { appTitle.text = searchApp.name appInfoFetchViewModel.getAuthorName(searchApp).observe(lifecycleOwner!!) { appAuthor.text = it } } - private fun ApplicationListItemBinding.updateRating(searchApp: FusedApp) { + private fun ApplicationListItemBinding.updateRating(searchApp: Application) { if (searchApp.ratings.usageQualityScore != -1.0) { appRating.text = searchApp.ratings.usageQualityScore.toString() } else { @@ -195,7 +195,7 @@ class ApplicationListRVAdapter( } private fun ApplicationListItemBinding.updatePrivacyScore( - searchApp: FusedApp, + searchApp: Application, view: View ) { if (searchApp.ratings.privacyScore != -1.0) { @@ -206,7 +206,7 @@ class ApplicationListRVAdapter( } } - private fun ApplicationListItemBinding.updateSourceTag(searchApp: FusedApp) { + private fun ApplicationListItemBinding.updateSourceTag(searchApp: Application) { if (searchApp.source.isEmpty()) { sourceTag.visibility = View.INVISIBLE } else { @@ -216,7 +216,7 @@ class ApplicationListRVAdapter( } private fun handleAppItemClick( - searchApp: FusedApp, + searchApp: Application, view: View ) { val catText = searchApp.category.ifBlank { optionalCategory } @@ -260,7 +260,7 @@ class ApplicationListRVAdapter( } private fun ApplicationListItemBinding.setupInstallButton( - searchApp: FusedApp, + searchApp: Application, view: View, holder: ViewHolder ) { @@ -302,7 +302,7 @@ class ApplicationListRVAdapter( private fun ApplicationListItemBinding.handleInstallationIssue( view: View, - searchApp: FusedApp, + searchApp: Application, ) { progressBarInstall.visibility = View.GONE if (lifecycleOwner == null) { @@ -317,7 +317,7 @@ class ApplicationListRVAdapter( private fun ApplicationListItemBinding.updateInstallButton( faultyAppResult: Pair, view: View, - searchApp: FusedApp + searchApp: Application ) { installButton.apply { if (faultyAppResult.first) disableInstallButton() else enableInstallButton() @@ -358,7 +358,7 @@ class ApplicationListRVAdapter( } private fun ApplicationListItemBinding.showCalculatedPrivacyScoreData( - searchApp: FusedApp, + searchApp: Application, view: View ) { if (searchApp.privacyScore > -1) { @@ -369,7 +369,7 @@ class ApplicationListRVAdapter( } private fun ApplicationListItemBinding.showPrivacyScoreOnAvailableData( - searchApp: FusedApp, + searchApp: Application, view: View ) { showPrivacyScore() @@ -380,7 +380,7 @@ class ApplicationListRVAdapter( } private fun ApplicationListItemBinding.showPrivacyScoreAfterFetching( - searchApp: FusedApp, + searchApp: Application, view: View ) { if (lifecycleOwner == null) { @@ -420,7 +420,7 @@ class ApplicationListRVAdapter( } private fun ApplicationListItemBinding.handleDownloading( - searchApp: FusedApp, + searchApp: Application, ) { installButton.apply { enableInstallButton() @@ -434,7 +434,7 @@ class ApplicationListRVAdapter( } private fun ApplicationListItemBinding.handleUnavailable( - searchApp: FusedApp, + searchApp: Application, holder: ViewHolder, ) { installButton.apply { @@ -455,7 +455,7 @@ class ApplicationListRVAdapter( } private fun updateUIByPaymentType( - searchApp: FusedApp, + searchApp: Application, materialButton: MaterialButton, applicationListItemBinding: ApplicationListItemBinding, holder: ViewHolder @@ -492,7 +492,7 @@ class ApplicationListRVAdapter( } private fun ApplicationListItemBinding.handleUpdatable( - searchApp: FusedApp + searchApp: Application ) { installButton.apply { enableInstallButton(Status.UPDATABLE) @@ -510,7 +510,7 @@ class ApplicationListRVAdapter( } private fun ApplicationListItemBinding.handleInstalled( - searchApp: FusedApp, + searchApp: Application, ) { installButton.apply { enableInstallButton(Status.INSTALLED) @@ -530,7 +530,7 @@ class ApplicationListRVAdapter( progressBarInstall.visibility = View.GONE } - fun setData(newList: List, optionalCategory: String? = null) { + fun setData(newList: List, optionalCategory: String? = null) { optionalCategory?.let { this.optionalCategory = it } @@ -542,11 +542,11 @@ class ApplicationListRVAdapter( this.submitList(newList.map { it.copy() }) } - private fun installApplication(searchApp: FusedApp) { + private fun installApplication(searchApp: Application) { applicationInstaller.installApplication(searchApp) } - private fun cancelDownload(searchApp: FusedApp) { + private fun cancelDownload(searchApp: Application) { applicationInstaller.cancelDownload(searchApp) } diff --git a/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListViewModel.kt b/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListViewModel.kt index 86be6867d..f5835bde9 100644 --- a/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListViewModel.kt @@ -26,7 +26,7 @@ import foundation.e.apps.data.ResultSupreme import foundation.e.apps.data.enums.ResultStatus import foundation.e.apps.data.enums.Source import foundation.e.apps.data.fused.FusedAPIRepository -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.login.AuthObject import foundation.e.apps.data.login.exceptions.CleanApkException import foundation.e.apps.data.login.exceptions.GPlayException @@ -40,7 +40,7 @@ class ApplicationListViewModel @Inject constructor( private val fusedAPIRepository: FusedAPIRepository ) : LoadingViewModel() { - val appListLiveData: MutableLiveData>?> = MutableLiveData() + val appListLiveData: MutableLiveData>?> = MutableLiveData() private var isLoading = false @@ -111,7 +111,7 @@ class ApplicationListViewModel @Inject constructor( private fun getException( authData: AuthData, - result: ResultSupreme, String>> + result: ResultSupreme, String>> ) = if (authData.aasToken.isNotBlank() || authData.authToken.isNotBlank()) { GPlayException( result.isTimeout(), @@ -132,10 +132,10 @@ class ApplicationListViewModel @Inject constructor( * @return returns true if there is changes in data, otherwise false */ fun isFusedAppUpdated( - newFusedApps: List, - oldFusedApps: List + newApplications: List, + oldApplications: List ): Boolean { - return fusedAPIRepository.isAnyFusedAppUpdated(newFusedApps, oldFusedApps) + return fusedAPIRepository.isAnyFusedAppUpdated(newApplications, oldApplications) } fun loadMore(gPlayAuth: AuthObject?, category: String) { @@ -169,12 +169,12 @@ class ApplicationListViewModel @Inject constructor( } } - private fun appendAppList(it: Pair, String>): List? { + private fun appendAppList(it: Pair, String>): List? { val currentAppList = appListLiveData.value?.data?.toMutableList() currentAppList?.removeIf { item -> item.isPlaceHolder } return currentAppList?.plus(it.first) } - fun hasAnyAppInstallStatusChanged(currentList: List) = + fun hasAnyAppInstallStatusChanged(currentList: List) = fusedAPIRepository.isAnyAppInstallStatusChanged(currentList) } diff --git a/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt b/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt index 618db210b..47966e74a 100644 --- a/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt +++ b/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt @@ -32,7 +32,7 @@ import foundation.e.apps.R import foundation.e.apps.data.ResultSupreme import foundation.e.apps.data.enums.Status import foundation.e.apps.data.fused.ApplicationInstaller -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.fused.data.FusedHome import foundation.e.apps.data.login.AuthObject import foundation.e.apps.data.login.exceptions.GPlayException @@ -123,17 +123,17 @@ class HomeFragment : TimeoutFragment(R.layout.fragment_home), ApplicationInstall } } - private fun showPaidAppMessage(fusedApp: FusedApp) { + private fun showPaidAppMessage(application: Application) { ApplicationDialogFragment( - title = getString(R.string.dialog_title_paid_app, fusedApp.name), + title = getString(R.string.dialog_title_paid_app, application.name), message = getString( R.string.dialog_paidapp_message, - fusedApp.name, - fusedApp.price + application.name, + application.price ), positiveButtonText = getString(R.string.dialog_confirm), positiveButtonAction = { - installApplication(fusedApp) + installApplication(application) }, cancelButtonText = getString(R.string.dialog_cancel), ).show(childFragmentManager, "HomeFragment") @@ -283,11 +283,11 @@ class HomeFragment : TimeoutFragment(R.layout.fragment_home), ApplicationInstall homeParentRVAdapter = null } - override fun installApplication(app: FusedApp) { + override fun installApplication(app: Application) { mainActivityViewModel.getApplication(app) } - override fun cancelDownload(app: FusedApp) { + override fun cancelDownload(app: Application) { mainActivityViewModel.cancelDownload(app) } diff --git a/app/src/main/java/foundation/e/apps/ui/home/HomeViewModel.kt b/app/src/main/java/foundation/e/apps/ui/home/HomeViewModel.kt index 7714c2b9c..2c581f115 100644 --- a/app/src/main/java/foundation/e/apps/ui/home/HomeViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/home/HomeViewModel.kt @@ -25,7 +25,7 @@ import com.aurora.gplayapi.data.models.AuthData import dagger.hilt.android.lifecycle.HiltViewModel import foundation.e.apps.data.ResultSupreme import foundation.e.apps.data.fused.FusedAPIRepository -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.fused.data.FusedHome import foundation.e.apps.data.login.AuthObject import foundation.e.apps.data.login.exceptions.CleanApkException @@ -103,7 +103,7 @@ class HomeViewModel @Inject constructor( return false } - val appList = mutableListOf() + val appList = mutableListOf() currentList.forEach { appList.addAll(it.list) } return fusedAPIRepository.isAnyAppInstallStatusChanged(appList) } diff --git a/app/src/main/java/foundation/e/apps/ui/home/model/HomeChildFusedAppDiffUtil.kt b/app/src/main/java/foundation/e/apps/ui/home/model/HomeChildFusedAppDiffUtil.kt index 61bba5097..a590c04aa 100644 --- a/app/src/main/java/foundation/e/apps/ui/home/model/HomeChildFusedAppDiffUtil.kt +++ b/app/src/main/java/foundation/e/apps/ui/home/model/HomeChildFusedAppDiffUtil.kt @@ -18,14 +18,14 @@ package foundation.e.apps.ui.home.model import androidx.recyclerview.widget.DiffUtil -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application -class HomeChildFusedAppDiffUtil : DiffUtil.ItemCallback() { - override fun areItemsTheSame(oldItem: FusedApp, newItem: FusedApp): Boolean { +class HomeChildFusedAppDiffUtil : DiffUtil.ItemCallback() { + override fun areItemsTheSame(oldItem: Application, newItem: Application): Boolean { return oldItem == newItem } - override fun areContentsTheSame(oldItem: FusedApp, newItem: FusedApp): Boolean { + override fun areContentsTheSame(oldItem: Application, newItem: Application): Boolean { return oldItem._id == newItem._id && oldItem.appSize.contentEquals(newItem.appSize) && oldItem.author.contentEquals(newItem.author) && diff --git a/app/src/main/java/foundation/e/apps/ui/home/model/HomeChildRVAdapter.kt b/app/src/main/java/foundation/e/apps/ui/home/model/HomeChildRVAdapter.kt index 908507ac0..eaafb99c1 100644 --- a/app/src/main/java/foundation/e/apps/ui/home/model/HomeChildRVAdapter.kt +++ b/app/src/main/java/foundation/e/apps/ui/home/model/HomeChildRVAdapter.kt @@ -37,7 +37,7 @@ import foundation.e.apps.data.enums.Origin import foundation.e.apps.data.enums.Status import foundation.e.apps.data.enums.User import foundation.e.apps.data.fused.ApplicationInstaller -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.databinding.HomeChildListItemBinding import foundation.e.apps.ui.AppInfoFetchViewModel import foundation.e.apps.ui.MainActivityViewModel @@ -50,8 +50,8 @@ class HomeChildRVAdapter( private val appInfoFetchViewModel: AppInfoFetchViewModel, private val mainActivityViewModel: MainActivityViewModel, private var lifecycleOwner: LifecycleOwner?, - private var paidAppHandler: ((FusedApp) -> Unit)? = null -) : ListAdapter(HomeChildFusedAppDiffUtil()) { + private var paidAppHandler: ((Application) -> Unit)? = null +) : ListAdapter(HomeChildFusedAppDiffUtil()) { private val shimmer = Shimmer.ColorHighlightBuilder() .setDuration(500) @@ -129,7 +129,7 @@ class HomeChildRVAdapter( } private fun HomeChildListItemBinding.handleInstallationIssue( - homeApp: FusedApp + homeApp: Application ) { installButton.apply { enableInstallButton() @@ -167,7 +167,7 @@ class HomeChildRVAdapter( } private fun HomeChildListItemBinding.handleQueued( - homeApp: FusedApp + homeApp: Application ) { installButton.apply { enableInstallButton() @@ -188,7 +188,7 @@ class HomeChildRVAdapter( } private fun HomeChildListItemBinding.handleUnavailable( - homeApp: FusedApp, + homeApp: Application, holder: ViewHolder, ) { installButton.apply { @@ -209,7 +209,7 @@ class HomeChildRVAdapter( } private fun HomeChildListItemBinding.handleUpdatable( - homeApp: FusedApp + homeApp: Application ) { installButton.apply { enableInstallButton(Status.UPDATABLE) @@ -227,7 +227,7 @@ class HomeChildRVAdapter( } private fun HomeChildListItemBinding.handleInstalled( - homeApp: FusedApp + homeApp: Application ) { installButton.apply { enableInstallButton(Status.INSTALLED) @@ -248,7 +248,7 @@ class HomeChildRVAdapter( } private fun updateUIByPaymentType( - homeApp: FusedApp, + homeApp: Application, materialButton: MaterialButton, homeChildListItemBinding: HomeChildListItemBinding ) { @@ -278,15 +278,15 @@ class HomeChildRVAdapter( } } - fun setData(newList: List) { + fun setData(newList: List) { this.submitList(newList.map { it.copy() }) } - private fun installApplication(homeApp: FusedApp) { + private fun installApplication(homeApp: Application) { applicationInstaller?.installApplication(homeApp) } - private fun cancelDownload(homeApp: FusedApp) { + private fun cancelDownload(homeApp: Application) { applicationInstaller?.cancelDownload(homeApp) } diff --git a/app/src/main/java/foundation/e/apps/ui/home/model/HomeParentRVAdapter.kt b/app/src/main/java/foundation/e/apps/ui/home/model/HomeParentRVAdapter.kt index a1b2b23dc..ee7007a71 100644 --- a/app/src/main/java/foundation/e/apps/ui/home/model/HomeParentRVAdapter.kt +++ b/app/src/main/java/foundation/e/apps/ui/home/model/HomeParentRVAdapter.kt @@ -26,7 +26,7 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView import foundation.e.apps.data.fused.ApplicationInstaller -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.fused.data.FusedHome import foundation.e.apps.databinding.HomeParentListItemBinding import foundation.e.apps.ui.AppInfoFetchViewModel @@ -37,7 +37,7 @@ class HomeParentRVAdapter( private val mainActivityViewModel: MainActivityViewModel, private val appInfoFetchViewModel: AppInfoFetchViewModel, private var lifecycleOwner: LifecycleOwner?, - private val paidAppHandler: ((FusedApp) -> Unit)? = null + private val paidAppHandler: ((Application) -> Unit)? = null ) : ListAdapter(FusedHomeDiffUtil()) { private val viewPool = RecyclerView.RecycledViewPool() diff --git a/app/src/main/java/foundation/e/apps/ui/search/SearchFragment.kt b/app/src/main/java/foundation/e/apps/ui/search/SearchFragment.kt index ae53be63f..57b02f841 100644 --- a/app/src/main/java/foundation/e/apps/ui/search/SearchFragment.kt +++ b/app/src/main/java/foundation/e/apps/ui/search/SearchFragment.kt @@ -44,7 +44,7 @@ import dagger.hilt.android.AndroidEntryPoint import foundation.e.apps.R import foundation.e.apps.data.enums.Status import foundation.e.apps.data.fused.ApplicationInstaller -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.fusedDownload.models.FusedDownload import foundation.e.apps.data.login.AuthObject import foundation.e.apps.data.login.exceptions.GPlayLoginException @@ -198,7 +198,7 @@ class SearchFragment : */ private fun updateSearchResult( listAdapter: ApplicationListRVAdapter?, - appList: List, + appList: List, ): Boolean { val currentList = listAdapter?.currentList ?: listOf() if (!searchViewModel.isAnyAppUpdated(appList, currentList)) { @@ -260,17 +260,17 @@ class SearchFragment : searchView?.let { configureCloseButton(it) } } - private fun showPaidAppMessage(fusedApp: FusedApp) { + private fun showPaidAppMessage(application: Application) { ApplicationDialogFragment( - title = getString(R.string.dialog_title_paid_app, fusedApp.name), + title = getString(R.string.dialog_title_paid_app, application.name), message = getString( R.string.dialog_paidapp_message, - fusedApp.name, - fusedApp.price + application.name, + application.price ), positiveButtonText = getString(R.string.dialog_confirm), positiveButtonAction = { - installApplication(fusedApp) + installApplication(application) }, cancelButtonText = getString(R.string.dialog_cancel), ).show(childFragmentManager, "SearchFragment") @@ -476,11 +476,11 @@ class SearchFragment : searchView?.suggestionsAdapter?.changeCursor(cursor) } - override fun installApplication(app: FusedApp) { + override fun installApplication(app: Application) { mainActivityViewModel.getApplication(app) } - override fun cancelDownload(app: FusedApp) { + override fun cancelDownload(app: Application) { mainActivityViewModel.cancelDownload(app) } } diff --git a/app/src/main/java/foundation/e/apps/ui/search/SearchViewModel.kt b/app/src/main/java/foundation/e/apps/ui/search/SearchViewModel.kt index f006f4b42..5233d4bd8 100644 --- a/app/src/main/java/foundation/e/apps/ui/search/SearchViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/search/SearchViewModel.kt @@ -28,7 +28,7 @@ import dagger.hilt.android.lifecycle.HiltViewModel import foundation.e.apps.data.ResultSupreme import foundation.e.apps.data.fused.FusedAPIRepository import foundation.e.apps.data.fused.GplaySearchResult -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.login.AuthObject import foundation.e.apps.data.login.exceptions.CleanApkException import foundation.e.apps.data.login.exceptions.GPlayException @@ -48,7 +48,7 @@ class SearchViewModel @Inject constructor( val searchSuggest: MutableLiveData?> = MutableLiveData() - val searchResult: MutableLiveData, Boolean>>> = + val searchResult: MutableLiveData, Boolean>>> = MutableLiveData() private var lastAuthObjects: List? = null @@ -176,7 +176,7 @@ class SearchViewModel @Inject constructor( isLoading = false } - private fun updateCurrentAppList(gplaySearchResult: GplaySearchResult): List { + private fun updateCurrentAppList(gplaySearchResult: GplaySearchResult): List { val currentSearchResult = searchResult.value?.data val currentAppList = currentSearchResult?.first?.toMutableList() ?: mutableListOf() currentAppList.removeIf { item -> item.isPlaceHolder } @@ -193,9 +193,9 @@ class SearchViewModel @Inject constructor( * @return returns true if there is changes in data, otherwise false */ fun isAnyAppUpdated( - newFusedApps: List, - oldFusedApps: List - ) = fusedAPIRepository.isAnyFusedAppUpdated(newFusedApps, oldFusedApps) + newApplications: List, + oldApplications: List + ) = fusedAPIRepository.isAnyFusedAppUpdated(newApplications, oldApplications) fun isAuthObjectListSame(authObjectList: List?): Boolean { return lastAuthObjects == authObjectList diff --git a/app/src/main/java/foundation/e/apps/ui/updates/UpdatesFragment.kt b/app/src/main/java/foundation/e/apps/ui/updates/UpdatesFragment.kt index db21225a7..f9d772da4 100644 --- a/app/src/main/java/foundation/e/apps/ui/updates/UpdatesFragment.kt +++ b/app/src/main/java/foundation/e/apps/ui/updates/UpdatesFragment.kt @@ -37,7 +37,7 @@ import foundation.e.apps.data.ResultSupreme import foundation.e.apps.data.enums.ResultStatus import foundation.e.apps.data.enums.Status import foundation.e.apps.data.fused.ApplicationInstaller -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.fusedDownload.models.FusedDownload import foundation.e.apps.data.login.AuthObject import foundation.e.apps.data.login.exceptions.GPlayException @@ -151,7 +151,7 @@ class UpdatesFragment : TimeoutFragment(R.layout.fragment_updates), ApplicationI } } - private fun handleStateNoUpdates(list: List?) { + private fun handleStateNoUpdates(list: List?) { if (!list.isNullOrEmpty()) { binding.button.isEnabled = true initUpdataAllButton() @@ -212,15 +212,15 @@ class UpdatesFragment : TimeoutFragment(R.layout.fragment_updates), ApplicationI } } - private fun showPurchasedAppMessage(fusedApp: FusedApp) { + private fun showPurchasedAppMessage(application: Application) { ApplicationDialogFragment( - title = getString(R.string.dialog_title_paid_app, fusedApp.name), + title = getString(R.string.dialog_title_paid_app, application.name), message = getString( - R.string.dialog_paidapp_message, fusedApp.name, fusedApp.price + R.string.dialog_paidapp_message, application.name, application.price ), positiveButtonText = getString(R.string.dialog_confirm), positiveButtonAction = { - installApplication(fusedApp) + installApplication(application) }, cancelButtonText = getString(R.string.dialog_cancel), ).show(childFragmentManager, "UpdatesFragment") @@ -373,11 +373,11 @@ class UpdatesFragment : TimeoutFragment(R.layout.fragment_updates), ApplicationI _binding = null } - override fun installApplication(app: FusedApp) { + override fun installApplication(app: Application) { mainActivityViewModel.getApplication(app) } - override fun cancelDownload(app: FusedApp) { + override fun cancelDownload(app: Application) { mainActivityViewModel.cancelDownload(app) } diff --git a/app/src/main/java/foundation/e/apps/ui/updates/UpdatesViewModel.kt b/app/src/main/java/foundation/e/apps/ui/updates/UpdatesViewModel.kt index bf6998e17..79d85c2c8 100644 --- a/app/src/main/java/foundation/e/apps/ui/updates/UpdatesViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/updates/UpdatesViewModel.kt @@ -26,7 +26,7 @@ import dagger.hilt.android.lifecycle.HiltViewModel import foundation.e.apps.data.enums.ResultStatus import foundation.e.apps.data.enums.Status import foundation.e.apps.data.fused.FusedAPIRepository -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.login.AuthObject import foundation.e.apps.data.login.exceptions.CleanApkException import foundation.e.apps.data.login.exceptions.GPlayException @@ -43,7 +43,7 @@ class UpdatesViewModel @Inject constructor( private val preferenceManagerModule: PreferenceManagerModule ) : LoadingViewModel() { - val updatesList: MutableLiveData, ResultStatus?>> = MutableLiveData() + val updatesList: MutableLiveData, ResultStatus?>> = MutableLiveData() fun loadData( authObjectList: List, diff --git a/app/src/test/java/foundation/e/apps/FakePkgManagerModule.kt b/app/src/test/java/foundation/e/apps/FakePkgManagerModule.kt index b24f4af36..882267e2c 100644 --- a/app/src/test/java/foundation/e/apps/FakePkgManagerModule.kt +++ b/app/src/test/java/foundation/e/apps/FakePkgManagerModule.kt @@ -20,14 +20,14 @@ package foundation.e.apps import android.content.Context import android.content.pm.ApplicationInfo -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.updates.UpdatesManagerImpl.Companion.PACKAGE_NAME_ANDROID_VENDING import foundation.e.apps.data.updates.UpdatesManagerImpl.Companion.PACKAGE_NAME_F_DROID import foundation.e.apps.install.pkg.PkgManagerModule class FakePkgManagerModule( context: Context, - val gplayApps: List, + val gplayApps: List, ) : PkgManagerModule(context) { val applicationInfo = mutableListOf( diff --git a/app/src/test/java/foundation/e/apps/UpdateManagerImptTest.kt b/app/src/test/java/foundation/e/apps/UpdateManagerImptTest.kt index 7fde9031e..73eed8d15 100644 --- a/app/src/test/java/foundation/e/apps/UpdateManagerImptTest.kt +++ b/app/src/test/java/foundation/e/apps/UpdateManagerImptTest.kt @@ -29,7 +29,7 @@ import foundation.e.apps.data.faultyApps.FaultyAppRepository import foundation.e.apps.data.fdroid.FdroidRepository import foundation.e.apps.data.fused.FusedAPIRepository import foundation.e.apps.data.fused.ApplicationApi -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.updates.UpdatesManagerImpl import foundation.e.apps.util.MainCoroutineRule import kotlinx.coroutines.ExperimentalCoroutinesApi @@ -116,8 +116,8 @@ class UpdateManagerImptTest { assertEquals("fetchUpdate", 2, updateResult.first.size) } - private fun getGplayApps(status: Status = Status.UPDATABLE) = mutableListOf( - FusedApp( + private fun getGplayApps(status: Status = Status.UPDATABLE) = mutableListOf( + Application( _id = "111", status = status, name = "Demo One", @@ -125,7 +125,7 @@ class UpdateManagerImptTest { origin = Origin.GPLAY, filterLevel = FilterLevel.NONE ), - FusedApp( + Application( _id = "112", status = Status.INSTALLED, name = "Demo Two", @@ -204,7 +204,7 @@ class UpdateManagerImptTest { @Test fun getUpdateWhenFetchingOpenSourceIsFailed() = runTest { val gplayApps = getGplayApps(Status.UPDATABLE) - val openSourceApps = mutableListOf() + val openSourceApps = mutableListOf() val openSourceUpdates = Pair(openSourceApps, ResultStatus.TIMEOUT) val gplayUpdates = Pair(gplayApps, ResultStatus.OK) @@ -221,7 +221,7 @@ class UpdateManagerImptTest { @Test fun getUpdateWhenFetchingGplayIsFailed() = runTest { - val gplayApps = mutableListOf() + val gplayApps = mutableListOf() val openSourceApps = getOpenSourceApps(Status.UPDATABLE) val openSourceUpdates = Pair(openSourceApps, ResultStatus.OK) @@ -241,7 +241,7 @@ class UpdateManagerImptTest { @Test fun getUpdateWhenBothSourcesAreFailed() = runTest { - val gplayApps = mutableListOf() + val gplayApps = mutableListOf() val openSourceApps = getOpenSourceApps(Status.UPDATABLE) val openSourceUpdates = Pair(openSourceApps, ResultStatus.TIMEOUT) @@ -259,8 +259,8 @@ class UpdateManagerImptTest { assertEquals("fetchupdate", ResultStatus.TIMEOUT, updateResult.second) } - private fun getOpenSourceApps(status: Status = Status.UPDATABLE) = mutableListOf( - FusedApp( + private fun getOpenSourceApps(status: Status = Status.UPDATABLE) = mutableListOf( + Application( _id = "113", status = status, name = "Demo Three", @@ -301,7 +301,7 @@ class UpdateManagerImptTest { @Test fun getUpdatesOSSWhenOpenSourceIsFailed() = runTest { - val openSourceApps = mutableListOf() + val openSourceApps = mutableListOf() val gPlayApps = getGplayApps(Status.UPDATABLE) val openSourceUpdates = Pair(openSourceApps, ResultStatus.TIMEOUT) @@ -315,8 +315,8 @@ class UpdateManagerImptTest { } private suspend fun setupMockingForFetchingUpdates( - openSourceUpdates: Pair, ResultStatus>, - gplayUpdates: Pair, ResultStatus>, + openSourceUpdates: Pair, ResultStatus>, + gplayUpdates: Pair, ResultStatus>, selectedApplicationSources: List = mutableListOf( ApplicationApi.APP_TYPE_ANY, ApplicationApi.APP_TYPE_OPEN, @@ -354,7 +354,7 @@ class UpdateManagerImptTest { any(), eq(Origin.GPLAY) ) - ).thenReturn(Pair(FusedApp(), ResultStatus.TIMEOUT)) + ).thenReturn(Pair(Application(), ResultStatus.TIMEOUT)) } } } diff --git a/app/src/test/java/foundation/e/apps/exodus/AppPrivacyInfoRepositoryImplTest.kt b/app/src/test/java/foundation/e/apps/exodus/AppPrivacyInfoRepositoryImplTest.kt index 399aee6fb..90ffa5bd0 100644 --- a/app/src/test/java/foundation/e/apps/exodus/AppPrivacyInfoRepositoryImplTest.kt +++ b/app/src/test/java/foundation/e/apps/exodus/AppPrivacyInfoRepositoryImplTest.kt @@ -21,7 +21,7 @@ package foundation.e.apps.exodus import androidx.arch.core.executor.testing.InstantTaskExecutorRule import foundation.e.apps.data.enums.Status import foundation.e.apps.data.exodus.repositories.AppPrivacyInfoRepositoryImpl -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.util.MainCoroutineRule import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.runTest @@ -57,7 +57,7 @@ class AppPrivacyInfoRepositoryImplTest { @Test fun getAppPrivacyInfoWhenSuccess() = runTest { - val fusedApp = FusedApp( + val application = Application( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -65,14 +65,14 @@ class AppPrivacyInfoRepositoryImplTest { latest_version_code = 123, is_pwa = true, ) - val result = appPrivacyInfoRepository.getAppPrivacyInfo(fusedApp, fusedApp.package_name) + val result = appPrivacyInfoRepository.getAppPrivacyInfo(application, application.package_name) assertEquals("getAppPrivacyInfo", true, result.isSuccess()) assertEquals("getAppPrivacyInfo", 3, result.data?.trackerList?.size) } @Test fun getAppPrivacyInfoWhenError() = runTest { - val fusedApp = FusedApp( + val application = Application( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -80,13 +80,13 @@ class AppPrivacyInfoRepositoryImplTest { latest_version_code = 123, is_pwa = true, ) - val result = appPrivacyInfoRepository.getAppPrivacyInfo(fusedApp, fusedApp.package_name) + val result = appPrivacyInfoRepository.getAppPrivacyInfo(application, application.package_name) assertEquals("getAppPrivacyInfo", false, result.isSuccess()) } @Test fun getAppPrivacyInfoWhenTrackerDaoIsEmpty() = runTest { - val fusedApp = FusedApp( + val application = Application( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -95,7 +95,7 @@ class AppPrivacyInfoRepositoryImplTest { is_pwa = true, ) fakeTrackerDao.trackers.clear() - val result = appPrivacyInfoRepository.getAppPrivacyInfo(fusedApp, fusedApp.package_name) + val result = appPrivacyInfoRepository.getAppPrivacyInfo(application, application.package_name) assertEquals("getAppPrivacyInfo", 2, result.data?.trackerList?.size) } } diff --git a/app/src/test/java/foundation/e/apps/exodus/PrivacyScoreRepositoryImplTest.kt b/app/src/test/java/foundation/e/apps/exodus/PrivacyScoreRepositoryImplTest.kt index b6a8c25f8..82997fb1c 100644 --- a/app/src/test/java/foundation/e/apps/exodus/PrivacyScoreRepositoryImplTest.kt +++ b/app/src/test/java/foundation/e/apps/exodus/PrivacyScoreRepositoryImplTest.kt @@ -20,7 +20,7 @@ package foundation.e.apps.exodus import foundation.e.apps.data.enums.Status import foundation.e.apps.data.exodus.repositories.PrivacyScoreRepositoryImpl -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.di.CommonUtilsModule import org.junit.Assert import org.junit.Before @@ -37,7 +37,7 @@ class PrivacyScoreRepositoryImplTest { @Test fun calculatePrivacyScoreWhenNoTrackers() { - val fusedApp = FusedApp( + val application = Application( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -48,13 +48,13 @@ class PrivacyScoreRepositoryImplTest { perms = listOf(), trackers = listOf() ) - val privacyScore = privacyScoreRepository.calculatePrivacyScore(fusedApp) + val privacyScore = privacyScoreRepository.calculatePrivacyScore(application) Assert.assertEquals("failed to retrieve valid privacy score", 10, privacyScore) } @Test fun calculatePrivacyScoreWhenPermsAreNotAvailable() { - val fusedApp = FusedApp( + val application = Application( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -64,13 +64,13 @@ class PrivacyScoreRepositoryImplTest { perms = listOf(), trackers = listOf() ) - val privacyScore = privacyScoreRepository.calculatePrivacyScore(fusedApp) + val privacyScore = privacyScoreRepository.calculatePrivacyScore(application) Assert.assertEquals("failed to retrieve valid privacy score", -1, privacyScore) } @Test fun calculatePrivacyScoreWhenTrackersAreNotAvailable() { - val fusedApp = FusedApp( + val application = Application( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -81,7 +81,7 @@ class PrivacyScoreRepositoryImplTest { perms = listOf(), trackers = CommonUtilsModule.LIST_OF_NULL ) - val privacyScore = privacyScoreRepository.calculatePrivacyScore(fusedApp) + val privacyScore = privacyScoreRepository.calculatePrivacyScore(application) Assert.assertEquals("failed to retrieve valid privacy score", 9, privacyScore) } } diff --git a/app/src/test/java/foundation/e/apps/fused/ApplicationApiImplTest.kt b/app/src/test/java/foundation/e/apps/fused/ApplicationApiImplTest.kt index da41eb05e..dc1516f14 100644 --- a/app/src/test/java/foundation/e/apps/fused/ApplicationApiImplTest.kt +++ b/app/src/test/java/foundation/e/apps/fused/ApplicationApiImplTest.kt @@ -35,7 +35,7 @@ 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.fused.ApplicationApiImpl -import foundation.e.apps.data.fused.data.FusedApp +import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.fused.data.FusedHome import foundation.e.apps.data.fused.utils.CategoryType import foundation.e.apps.data.playstore.PlayStoreRepository @@ -131,20 +131,20 @@ class ApplicationApiImplTest { @Test fun `is any app updated when new list is empty`() { - val oldAppList = mutableListOf( - FusedApp( + val oldAppList = mutableListOf( + Application( _id = "111", status = Status.UNAVAILABLE, name = "Demo One", package_name = "foundation.e.demoone" ), - FusedApp( + Application( _id = "112", status = Status.INSTALLED, name = "Demo Two", package_name = "foundation.e.demotwo" ), - FusedApp( + Application( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -152,7 +152,7 @@ class ApplicationApiImplTest { ) ) - val newAppList = mutableListOf() + val newAppList = mutableListOf() val isFusedAppUpdated = fusedAPIImpl.isAnyFusedAppUpdated(newAppList, oldAppList) assertTrue("isAnyAppUpdated", isFusedAppUpdated) } @@ -165,20 +165,20 @@ class ApplicationApiImplTest { @Test fun `is any app updated when any app is uninstalled`() { - val oldAppList = mutableListOf( - FusedApp( + val oldAppList = mutableListOf( + Application( _id = "111", status = Status.UNAVAILABLE, name = "Demo One", package_name = "foundation.e.demoone" ), - FusedApp( + Application( _id = "112", status = Status.INSTALLED, name = "Demo Two", package_name = "foundation.e.demotwo" ), - FusedApp( + Application( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -186,20 +186,20 @@ class ApplicationApiImplTest { ) ) - val newAppList = mutableListOf( - FusedApp( + val newAppList = mutableListOf( + Application( _id = "111", status = Status.UNAVAILABLE, name = "Demo One", package_name = "foundation.e.demoone" ), - FusedApp( + Application( _id = "112", status = Status.UNAVAILABLE, name = "Demo Two", package_name = "foundation.e.demotwo" ), - FusedApp( + Application( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -213,22 +213,22 @@ class ApplicationApiImplTest { @Test fun `has any app install status changed when changed`() { - val oldAppList = mutableListOf( - FusedApp( + val oldAppList = mutableListOf( + Application( _id = "111", status = Status.UNAVAILABLE, name = "Demo One", package_name = "foundation.e.demoone", latest_version_code = 123 ), - FusedApp( + Application( _id = "112", status = Status.INSTALLED, name = "Demo Two", package_name = "foundation.e.demotwo", latest_version_code = 123 ), - FusedApp( + Application( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -256,22 +256,22 @@ class ApplicationApiImplTest { @Test fun `has any app install status changed when not changed`() { - val oldAppList = mutableListOf( - FusedApp( + val oldAppList = mutableListOf( + Application( _id = "111", status = Status.UNAVAILABLE, name = "Demo One", package_name = "foundation.e.demoone", latest_version_code = 123 ), - FusedApp( + Application( _id = "112", status = Status.INSTALLED, name = "Demo Two", package_name = "foundation.e.demotwo", latest_version_code = 123 ), - FusedApp( + Application( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -299,22 +299,22 @@ class ApplicationApiImplTest { @Test fun `has any app install status changed when installation_issue`() { - val oldAppList = mutableListOf( - FusedApp( + val oldAppList = mutableListOf( + Application( _id = "111", status = Status.INSTALLATION_ISSUE, name = "Demo One", package_name = "foundation.e.demoone", latest_version_code = 123 ), - FusedApp( + Application( _id = "112", status = Status.INSTALLED, name = "Demo Two", package_name = "foundation.e.demotwo", latest_version_code = 123 ), - FusedApp( + Application( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -342,22 +342,22 @@ class ApplicationApiImplTest { @Test fun isHomeDataUpdated() { - val oldAppList = mutableListOf( - FusedApp( + val oldAppList = mutableListOf( + Application( _id = "111", status = Status.INSTALLATION_ISSUE, name = "Demo One", package_name = "foundation.e.demoone", latest_version_code = 123 ), - FusedApp( + Application( _id = "112", status = Status.INSTALLED, name = "Demo Two", package_name = "foundation.e.demotwo", latest_version_code = 123 ), - FusedApp( + Application( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -366,22 +366,22 @@ class ApplicationApiImplTest { ) ) - val newAppList = mutableListOf( - FusedApp( + val newAppList = mutableListOf( + Application( _id = "111", status = Status.INSTALLATION_ISSUE, name = "Demo One", package_name = "foundation.e.demoone", latest_version_code = 123 ), - FusedApp( + Application( _id = "112", status = Status.UNAVAILABLE, name = "Demo Two", package_name = "foundation.e.demotwo", latest_version_code = 123 ), - FusedApp( + Application( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -413,8 +413,8 @@ class ApplicationApiImplTest { @Test fun `is home data updated when fusedapp list size is not same`() { - val oldAppList = mutableListOf(FusedApp(), FusedApp(), FusedApp()) - val newAppList = mutableListOf(FusedApp(), FusedApp()) + val oldAppList = mutableListOf(Application(), Application(), Application()) + val newAppList = mutableListOf(Application(), Application()) val oldHomeData = listOf(FusedHome("Top Free Apps", oldAppList), FusedHome("Top Free Games", oldAppList)) @@ -427,7 +427,7 @@ class ApplicationApiImplTest { @Test fun getFusedAppInstallationStatusWhenPWA() { - val fusedApp = FusedApp( + val application = Application( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -436,15 +436,15 @@ class ApplicationApiImplTest { is_pwa = true ) - Mockito.`when`(pwaManagerModule.getPwaStatus(fusedApp)).thenReturn(fusedApp.status) + Mockito.`when`(pwaManagerModule.getPwaStatus(application)).thenReturn(application.status) - val installationStatus = fusedAPIImpl.getFusedAppInstallationStatus(fusedApp) - assertEquals("getFusedAppInstallationStatusWhenPWA", fusedApp.status, installationStatus) + val installationStatus = fusedAPIImpl.getFusedAppInstallationStatus(application) + assertEquals("getFusedAppInstallationStatusWhenPWA", application.status, installationStatus) } @Test fun getFusedAppInstallationStatus() { - val fusedApp = FusedApp( + val application = Application( _id = "113", name = "Demo Three", package_name = "foundation.e.demothree", @@ -453,24 +453,24 @@ class ApplicationApiImplTest { Mockito.`when`( pkgManagerModule.getPackageStatus( - fusedApp.package_name, fusedApp.latest_version_code + application.package_name, application.latest_version_code ) ).thenReturn(Status.INSTALLED) - val installationStatus = fusedAPIImpl.getFusedAppInstallationStatus(fusedApp) + val installationStatus = fusedAPIImpl.getFusedAppInstallationStatus(application) assertEquals("getFusedAppInstallationStatusWhenPWA", Status.INSTALLED, installationStatus) } @Test fun `getAppFilterLevel when package name is empty`() = runTest { - val fusedApp = FusedApp( + val application = Application( _id = "113", name = "Demo Three", package_name = "", latest_version_code = 123, ) - val filterLevel = fusedAPIImpl.getAppFilterLevel(fusedApp, AUTH_DATA) + val filterLevel = fusedAPIImpl.getAppFilterLevel(application, AUTH_DATA) assertEquals("getAppFilterLevel", FilterLevel.UNKNOWN, filterLevel) } @@ -482,7 +482,7 @@ class ApplicationApiImplTest { assertEquals("getAppFilterLevel", FilterLevel.NONE, filterLevel) } - private fun getFusedAppForFilterLevelTest(isFree: Boolean = true) = FusedApp( + private fun getFusedAppForFilterLevelTest(isFree: Boolean = true) = Application( _id = "113", name = "Demo Three", package_name = "foundation.e.demothree", @@ -702,22 +702,22 @@ class ApplicationApiImplTest { @Ignore("Dependencies are not mockable") @Test fun `getSearchResult When all sources are selected`() = runTest { - val appList = mutableListOf( - FusedApp( + val appList = mutableListOf( + Application( _id = "111", status = Status.UNAVAILABLE, name = "Demo One", package_name = "foundation.e.demoone", latest_version_code = 123 ), - FusedApp( + Application( _id = "112", status = Status.UNAVAILABLE, name = "Demo Two", package_name = "foundation.e.demotwo", latest_version_code = 123 ), - FusedApp( + Application( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -794,22 +794,22 @@ class ApplicationApiImplTest { @Ignore("Dependencies are not mockable") @Test fun `getSearchResult When getApplicationDetailsThrowsException`() = runTest { - val appList = mutableListOf( - FusedApp( + val appList = mutableListOf( + Application( _id = "111", status = Status.UNAVAILABLE, name = "Demo One", package_name = "foundation.e.demoone", latest_version_code = 123 ), - FusedApp( + Application( _id = "112", status = Status.UNAVAILABLE, name = "Demo Two", package_name = "foundation.e.demotwo", latest_version_code = 123 ), - FusedApp( + Application( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", -- GitLab From 918ec5dc9c140396c6efd133752f99f68e41c500 Mon Sep 17 00:00:00 2001 From: Jonathan Klee Date: Tue, 24 Oct 2023 17:45:36 +0200 Subject: [PATCH 3/6] Rename FusedCategory as Category --- .../e/apps/data/fused/ApplicationApi.kt | 4 +- .../e/apps/data/fused/ApplicationApiImpl.kt | 44 +++++++++---------- .../e/apps/data/fused/FusedAPIRepository.kt | 4 +- .../data/{FusedCategory.kt => Category.kt} | 2 +- .../apps/ui/categories/CategoriesViewModel.kt | 4 +- .../ui/categories/model/CategoriesDiffUtil.kt | 6 +-- .../categories/model/CategoriesRVAdapter.kt | 6 +-- 7 files changed, 35 insertions(+), 35 deletions(-) rename app/src/main/java/foundation/e/apps/data/fused/data/{FusedCategory.kt => Category.kt} (95%) diff --git a/app/src/main/java/foundation/e/apps/data/fused/ApplicationApi.kt b/app/src/main/java/foundation/e/apps/data/fused/ApplicationApi.kt index 7a6f4ce1c..8209c191d 100644 --- a/app/src/main/java/foundation/e/apps/data/fused/ApplicationApi.kt +++ b/app/src/main/java/foundation/e/apps/data/fused/ApplicationApi.kt @@ -12,7 +12,7 @@ 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.fused.data.Application -import foundation.e.apps.data.fused.data.FusedCategory +import foundation.e.apps.data.fused.data.Category import foundation.e.apps.data.fused.data.FusedHome import foundation.e.apps.data.fused.utils.CategoryType import foundation.e.apps.data.fusedDownload.models.FusedDownload @@ -46,7 +46,7 @@ interface ApplicationApi { */ suspend fun getCategoriesList( type: CategoryType, - ): Triple, String, ResultStatus> + ): Triple, String, ResultStatus> /** * Fetches search results from cleanAPK and GPlay servers and returns them diff --git a/app/src/main/java/foundation/e/apps/data/fused/ApplicationApiImpl.kt b/app/src/main/java/foundation/e/apps/data/fused/ApplicationApiImpl.kt index e1559dee5..d3db756dd 100644 --- a/app/src/main/java/foundation/e/apps/data/fused/ApplicationApiImpl.kt +++ b/app/src/main/java/foundation/e/apps/data/fused/ApplicationApiImpl.kt @@ -27,7 +27,7 @@ import com.aurora.gplayapi.SearchSuggestEntry import com.aurora.gplayapi.data.models.App import com.aurora.gplayapi.data.models.Artwork import com.aurora.gplayapi.data.models.AuthData -import com.aurora.gplayapi.data.models.Category +import com.aurora.gplayapi.data.models.Category as GplayapiCategory import com.aurora.gplayapi.data.models.SearchBundle import com.aurora.gplayapi.data.models.StreamCluster import dagger.hilt.android.qualifiers.ApplicationContext @@ -52,7 +52,7 @@ import foundation.e.apps.data.fused.ApplicationApi.Companion.APP_TYPE_ANY import foundation.e.apps.data.fused.ApplicationApi.Companion.APP_TYPE_OPEN import foundation.e.apps.data.fused.ApplicationApi.Companion.APP_TYPE_PWA import foundation.e.apps.data.fused.data.Application -import foundation.e.apps.data.fused.data.FusedCategory +import foundation.e.apps.data.fused.data.Category import foundation.e.apps.data.fused.data.FusedHome import foundation.e.apps.data.fused.data.Ratings import foundation.e.apps.data.fused.utils.CategoryType @@ -209,8 +209,8 @@ class ApplicationApiImpl @Inject constructor( */ override suspend fun getCategoriesList( type: CategoryType, - ): Triple, String, ResultStatus> { - val categoriesList = mutableListOf() + ): Triple, String, ResultStatus> { + val categoriesList = mutableListOf() val preferredApplicationType = preferenceManagerModule.preferredApplicationType() var apiStatus: ResultStatus = ResultStatus.OK var applicationCategoryType = preferredApplicationType @@ -797,7 +797,7 @@ class ApplicationApiImpl @Inject constructor( * Issue: https://gitlab.e.foundation/e/backlog/-/issues/5413 */ private suspend fun handleAllSourcesCategories( - categoriesList: MutableList, + categoriesList: MutableList, type: CategoryType, ): Pair { var apiStatus = ResultStatus.OK @@ -831,8 +831,8 @@ class ApplicationApiImpl @Inject constructor( private suspend fun fetchGplayCategories( type: CategoryType, - ): ResultSupreme> { - val categoryList = mutableListOf() + ): ResultSupreme> { + val categoryList = mutableListOf() return handleNetworkResult { val playResponse = gplayRepository.getCategories(type).map { app -> @@ -847,8 +847,8 @@ class ApplicationApiImpl @Inject constructor( private suspend fun fetchPWACategories( type: CategoryType, - ): Triple, String> { - val fusedCategoriesList = mutableListOf() + ): Triple, String> { + val fusedCategoriesList = mutableListOf() val result = handleNetworkResult { getPWAsCategories()?.let { fusedCategoriesList.addAll( @@ -864,11 +864,11 @@ class ApplicationApiImpl @Inject constructor( private suspend fun fetchOpenSourceCategories( type: CategoryType, - ): Triple, String> { - val fusedCategoryList = mutableListOf() + ): Triple, String> { + val categoryList = mutableListOf() val result = handleNetworkResult { getOpenSourceCategories()?.let { - fusedCategoryList.addAll( + categoryList.addAll( getFusedCategoryBasedOnCategoryType( it, type, @@ -878,17 +878,17 @@ class ApplicationApiImpl @Inject constructor( } } - return Triple(result.getResultStatus(), fusedCategoryList, APP_TYPE_OPEN) + return Triple(result.getResultStatus(), categoryList, APP_TYPE_OPEN) } private fun updateCategoryDrawable( - category: FusedCategory, + category: Category, ) { category.drawable = getCategoryIconResource(getCategoryIconName(category)) } - private fun getCategoryIconName(category: FusedCategory): String { + private fun getCategoryIconName(category: Category): String { var categoryTitle = if (category.tag.getOperationalTag().contentEquals(AppTag.GPlay().getOperationalTag())) category.id else category.title @@ -903,7 +903,7 @@ class ApplicationApiImpl @Inject constructor( categories: Categories, categoryType: CategoryType, tag: AppTag - ): List { + ): List { return when (categoryType) { CategoryType.APPLICATION -> { getAppsCategoriesAsFusedCategory(categories, tag) @@ -918,7 +918,7 @@ class ApplicationApiImpl @Inject constructor( private fun getAppsCategoriesAsFusedCategory( categories: Categories, tag: AppTag - ): List { + ): List { return categories.apps.map { category -> createFusedCategoryFromCategory(category, categories, tag) } @@ -927,7 +927,7 @@ class ApplicationApiImpl @Inject constructor( private fun getGamesCategoriesAsFusedCategory( categories: Categories, tag: AppTag - ): List { + ): List { return categories.games.map { category -> createFusedCategoryFromCategory(category, categories, tag) } @@ -937,8 +937,8 @@ class ApplicationApiImpl @Inject constructor( category: String, categories: Categories, tag: AppTag - ): FusedCategory { - return FusedCategory( + ): Category { + return Category( id = category, title = getCategoryTitle(category, categories), drawable = getCategoryIconResource(category), @@ -978,9 +978,9 @@ class ApplicationApiImpl @Inject constructor( ).body() } - private fun Category.transformToFusedCategory(): FusedCategory { + private fun GplayapiCategory.transformToFusedCategory(): Category { val id = this.browseUrl.substringAfter("cat=").substringBefore("&c=") - return FusedCategory( + return Category( id = id.lowercase(), title = this.title, browseUrl = this.browseUrl, diff --git a/app/src/main/java/foundation/e/apps/data/fused/FusedAPIRepository.kt b/app/src/main/java/foundation/e/apps/data/fused/FusedAPIRepository.kt index 9b0417f98..70fc87944 100644 --- a/app/src/main/java/foundation/e/apps/data/fused/FusedAPIRepository.kt +++ b/app/src/main/java/foundation/e/apps/data/fused/FusedAPIRepository.kt @@ -29,7 +29,7 @@ import foundation.e.apps.data.enums.ResultStatus import foundation.e.apps.data.enums.Source import foundation.e.apps.data.enums.Status import foundation.e.apps.data.fused.data.Application -import foundation.e.apps.data.fused.data.FusedCategory +import foundation.e.apps.data.fused.data.Category import foundation.e.apps.data.fused.data.FusedHome import foundation.e.apps.data.fused.utils.CategoryType import foundation.e.apps.data.fusedDownload.models.FusedDownload @@ -96,7 +96,7 @@ class FusedAPIRepository @Inject constructor(private val applicationAPIImpl: App suspend fun getCategoriesList( type: CategoryType, - ): Triple, String, ResultStatus> { + ): Triple, String, ResultStatus> { return applicationAPIImpl.getCategoriesList(type) } diff --git a/app/src/main/java/foundation/e/apps/data/fused/data/FusedCategory.kt b/app/src/main/java/foundation/e/apps/data/fused/data/Category.kt similarity index 95% rename from app/src/main/java/foundation/e/apps/data/fused/data/FusedCategory.kt rename to app/src/main/java/foundation/e/apps/data/fused/data/Category.kt index 13a24cb5c..3beb69d40 100644 --- a/app/src/main/java/foundation/e/apps/data/fused/data/FusedCategory.kt +++ b/app/src/main/java/foundation/e/apps/data/fused/data/Category.kt @@ -21,7 +21,7 @@ package foundation.e.apps.data.fused.data import foundation.e.apps.data.enums.AppTag import java.util.UUID -data class FusedCategory( +data class Category( val id: String = UUID.randomUUID().toString(), val title: String = String(), val browseUrl: String = String(), diff --git a/app/src/main/java/foundation/e/apps/ui/categories/CategoriesViewModel.kt b/app/src/main/java/foundation/e/apps/ui/categories/CategoriesViewModel.kt index acf7c933c..4d918220d 100644 --- a/app/src/main/java/foundation/e/apps/ui/categories/CategoriesViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/categories/CategoriesViewModel.kt @@ -24,7 +24,7 @@ import com.aurora.gplayapi.data.models.AuthData import dagger.hilt.android.lifecycle.HiltViewModel import foundation.e.apps.data.enums.ResultStatus import foundation.e.apps.data.fused.FusedAPIRepository -import foundation.e.apps.data.fused.data.FusedCategory +import foundation.e.apps.data.fused.data.Category import foundation.e.apps.data.fused.utils.CategoryType import foundation.e.apps.data.login.AuthObject import foundation.e.apps.data.login.exceptions.CleanApkException @@ -38,7 +38,7 @@ class CategoriesViewModel @Inject constructor( private val fusedAPIRepository: FusedAPIRepository ) : LoadingViewModel() { - val categoriesList: MutableLiveData, String, ResultStatus>> = + val categoriesList: MutableLiveData, String, ResultStatus>> = MutableLiveData() fun loadData( diff --git a/app/src/main/java/foundation/e/apps/ui/categories/model/CategoriesDiffUtil.kt b/app/src/main/java/foundation/e/apps/ui/categories/model/CategoriesDiffUtil.kt index 23503db56..b00228a1d 100644 --- a/app/src/main/java/foundation/e/apps/ui/categories/model/CategoriesDiffUtil.kt +++ b/app/src/main/java/foundation/e/apps/ui/categories/model/CategoriesDiffUtil.kt @@ -19,11 +19,11 @@ package foundation.e.apps.ui.categories.model import androidx.recyclerview.widget.DiffUtil -import foundation.e.apps.data.fused.data.FusedCategory +import foundation.e.apps.data.fused.data.Category class CategoriesDiffUtil( - private val oldList: List, - private val newList: List + private val oldList: List, + private val newList: List ) : DiffUtil.Callback() { override fun getOldListSize(): Int { return oldList.size diff --git a/app/src/main/java/foundation/e/apps/ui/categories/model/CategoriesRVAdapter.kt b/app/src/main/java/foundation/e/apps/ui/categories/model/CategoriesRVAdapter.kt index c9d118290..220b74f8e 100644 --- a/app/src/main/java/foundation/e/apps/ui/categories/model/CategoriesRVAdapter.kt +++ b/app/src/main/java/foundation/e/apps/ui/categories/model/CategoriesRVAdapter.kt @@ -25,14 +25,14 @@ import androidx.navigation.findNavController import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.RecyclerView import coil.load -import foundation.e.apps.data.fused.data.FusedCategory +import foundation.e.apps.data.fused.data.Category import foundation.e.apps.databinding.CategoriesListItemBinding import foundation.e.apps.ui.categories.CategoriesFragmentDirections class CategoriesRVAdapter : RecyclerView.Adapter() { - private var oldList = listOf() + private var oldList = listOf() inner class ViewHolder(val binding: CategoriesListItemBinding) : RecyclerView.ViewHolder(binding.root) @@ -88,7 +88,7 @@ class CategoriesRVAdapter : return oldList.size } - fun setData(newList: List) { + fun setData(newList: List) { val diffUtil = CategoriesDiffUtil(oldList, newList) val diffResult = DiffUtil.calculateDiff(diffUtil) oldList = newList -- GitLab From fce72d774cca8e0aa88c16ff896445dbd0902a8a Mon Sep 17 00:00:00 2001 From: Jonathan Klee Date: Tue, 24 Oct 2023 17:48:35 +0200 Subject: [PATCH 4/6] Rename FusedHome to Home --- .../e/apps/data/fused/ApplicationApi.kt | 8 +-- .../e/apps/data/fused/ApplicationApiImpl.kt | 60 +++++++++---------- .../e/apps/data/fused/FusedAPIRepository.kt | 8 +-- .../data/fused/data/{FusedHome.kt => Home.kt} | 2 +- .../foundation/e/apps/ui/home/HomeFragment.kt | 6 +- .../e/apps/ui/home/HomeViewModel.kt | 10 ++-- .../e/apps/ui/home/model/FusedHomeDiffUtil.kt | 8 +-- .../apps/ui/home/model/HomeParentRVAdapter.kt | 16 ++--- .../e/apps/fused/ApplicationApiImplTest.kt | 16 ++--- 9 files changed, 67 insertions(+), 67 deletions(-) rename app/src/main/java/foundation/e/apps/data/fused/data/{FusedHome.kt => Home.kt} (95%) diff --git a/app/src/main/java/foundation/e/apps/data/fused/ApplicationApi.kt b/app/src/main/java/foundation/e/apps/data/fused/ApplicationApi.kt index 8209c191d..713687803 100644 --- a/app/src/main/java/foundation/e/apps/data/fused/ApplicationApi.kt +++ b/app/src/main/java/foundation/e/apps/data/fused/ApplicationApi.kt @@ -13,7 +13,7 @@ import foundation.e.apps.data.enums.ResultStatus import foundation.e.apps.data.enums.Status import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.fused.data.Category -import foundation.e.apps.data.fused.data.FusedHome +import foundation.e.apps.data.fused.data.Home import foundation.e.apps.data.fused.utils.CategoryType import foundation.e.apps.data.fusedDownload.models.FusedDownload import retrofit2.Response @@ -31,7 +31,7 @@ interface ApplicationApi { suspend fun getHomeScreenData( authData: AuthData, - ): LiveData>> + ): LiveData>> /* * Return three elements from the function. @@ -145,8 +145,8 @@ interface ApplicationApi { * @return true, if any change is found, otherwise false */ fun isHomeDataUpdated( - newHomeData: List, - oldHomeData: List + newHomeData: List, + oldHomeData: List ): Boolean /** diff --git a/app/src/main/java/foundation/e/apps/data/fused/ApplicationApiImpl.kt b/app/src/main/java/foundation/e/apps/data/fused/ApplicationApiImpl.kt index d3db756dd..4e6afa0dd 100644 --- a/app/src/main/java/foundation/e/apps/data/fused/ApplicationApiImpl.kt +++ b/app/src/main/java/foundation/e/apps/data/fused/ApplicationApiImpl.kt @@ -36,7 +36,7 @@ import foundation.e.apps.data.ResultSupreme import foundation.e.apps.data.cleanapk.CleanApkDownloadInfoFetcher import foundation.e.apps.data.cleanapk.data.app.Application as CleanApkApplication import foundation.e.apps.data.cleanapk.data.categories.Categories -import foundation.e.apps.data.cleanapk.data.home.Home +import foundation.e.apps.data.cleanapk.data.home.Home as CleanApkHome import foundation.e.apps.data.cleanapk.data.home.HomeScreen import foundation.e.apps.data.cleanapk.data.search.Search import foundation.e.apps.data.cleanapk.repositories.CleanApkRepository @@ -53,7 +53,7 @@ import foundation.e.apps.data.fused.ApplicationApi.Companion.APP_TYPE_OPEN import foundation.e.apps.data.fused.ApplicationApi.Companion.APP_TYPE_PWA import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.fused.data.Category -import foundation.e.apps.data.fused.data.FusedHome +import foundation.e.apps.data.fused.data.Home import foundation.e.apps.data.fused.data.Ratings import foundation.e.apps.data.fused.utils.CategoryType import foundation.e.apps.data.fused.utils.CategoryUtils @@ -78,7 +78,7 @@ import javax.inject.Inject import javax.inject.Named import javax.inject.Singleton -typealias FusedHomeDeferred = Deferred>> +typealias FusedHomeDeferred = Deferred>> @Singleton class ApplicationApiImpl @Inject constructor( @@ -109,9 +109,9 @@ class ApplicationApiImpl @Inject constructor( override suspend fun getHomeScreenData( authData: AuthData, - ): LiveData>> { + ): LiveData>> { - val list = mutableListOf() + val list = mutableListOf() var resultGplay: FusedHomeDeferred? = null var resultOpenSource: FusedHomeDeferred? = null var resultPWA: FusedHomeDeferred? = null @@ -145,13 +145,13 @@ class ApplicationApiImpl @Inject constructor( } private suspend fun loadHomeData( - priorList: MutableList, + priorList: MutableList, source: Source, authData: AuthData, - ): ResultSupreme> { + ): ResultSupreme> { val result = when (source) { - Source.GPLAY -> handleNetworkResult> { + Source.GPLAY -> handleNetworkResult> { priorList.addAll(fetchGPlayHome(authData)) priorList } @@ -1067,8 +1067,8 @@ class ApplicationApiImpl @Inject constructor( * Home screen-related internal functions */ - private suspend fun generateCleanAPKHome(home: Home, appType: String): List { - val list = mutableListOf() + private suspend fun generateCleanAPKHome(home: CleanApkHome, appType: String): List { + val list = mutableListOf() val headings = if (appType == APP_TYPE_OPEN) { mapOf( "top_updated_apps" to context.getString(R.string.top_updated_apps), @@ -1093,7 +1093,7 @@ class ApplicationApiImpl @Inject constructor( it.updateType() it.updateFilterLevel(null) } - list.add(FusedHome(value, home.top_updated_apps)) + list.add(Home(value, home.top_updated_apps)) } } @@ -1104,7 +1104,7 @@ class ApplicationApiImpl @Inject constructor( it.updateType() it.updateFilterLevel(null) } - list.add(FusedHome(value, home.top_updated_games)) + list.add(Home(value, home.top_updated_games)) } } @@ -1115,7 +1115,7 @@ class ApplicationApiImpl @Inject constructor( it.updateType() it.updateFilterLevel(null) } - list.add(FusedHome(value, home.popular_apps)) + list.add(Home(value, home.popular_apps)) } } @@ -1126,7 +1126,7 @@ class ApplicationApiImpl @Inject constructor( it.updateType() it.updateFilterLevel(null) } - list.add(FusedHome(value, home.popular_games)) + list.add(Home(value, home.popular_games)) } } @@ -1137,7 +1137,7 @@ class ApplicationApiImpl @Inject constructor( it.updateType() it.updateFilterLevel(null) } - list.add(FusedHome(value, home.popular_apps_in_last_24_hours)) + list.add(Home(value, home.popular_apps_in_last_24_hours)) } } @@ -1148,7 +1148,7 @@ class ApplicationApiImpl @Inject constructor( it.updateType() it.updateFilterLevel(null) } - list.add(FusedHome(value, home.popular_games_in_last_24_hours)) + list.add(Home(value, home.popular_games_in_last_24_hours)) } } @@ -1159,7 +1159,7 @@ class ApplicationApiImpl @Inject constructor( it.updateType() it.updateFilterLevel(null) } - list.add(FusedHome(value, home.discover)) + list.add(Home(value, home.discover)) } } } @@ -1170,8 +1170,8 @@ class ApplicationApiImpl @Inject constructor( } } - private suspend fun fetchGPlayHome(authData: AuthData): List { - val list = mutableListOf() + private suspend fun fetchGPlayHome(authData: AuthData): List { + val list = mutableListOf() val gplayHomeData = gplayRepository.getHomeScreenData() as Map> gplayHomeData.map { val fusedApps = it.value.map { app -> @@ -1179,7 +1179,7 @@ class ApplicationApiImpl @Inject constructor( updateFilterLevel(authData) } } - list.add(FusedHome(it.key, fusedApps)) + list.add(Home(it.key, fusedApps)) } handleLimitedResult(list) @@ -1188,8 +1188,8 @@ class ApplicationApiImpl @Inject constructor( return list } - private fun handleLimitedResult(fusedHomeList: List) { - val gplayHomes = fusedHomeList.filter { fusedHome -> fusedHome.source.isEmpty() } + private fun handleLimitedResult(homeList: List) { + val gplayHomes = homeList.filter { fusedHome -> fusedHome.source.isEmpty() } val hasGplayLimitedResult = gplayHomes.any { fusedHome -> fusedHome.list.size < THRESHOLD_LIMITED_RESULT_HOME_PAGE } if (hasGplayLimitedResult) { Timber.w("Limited result is found for homepage...") @@ -1288,8 +1288,8 @@ class ApplicationApiImpl @Inject constructor( * @return true, if any change is found, otherwise false */ override fun isHomeDataUpdated( - newHomeData: List, - oldHomeData: List + newHomeData: List, + oldHomeData: List ): Boolean { if (newHomeData.size != oldHomeData.size) { return true @@ -1305,17 +1305,17 @@ class ApplicationApiImpl @Inject constructor( } private fun areFusedAppsUpdated( - oldFusedHome: FusedHome, - newFusedHome: FusedHome, + oldHome: Home, + newHome: Home, ): Boolean { val fusedAppDiffUtil = HomeChildFusedAppDiffUtil() - if (oldFusedHome.list.size != newFusedHome.list.size) { + if (oldHome.list.size != newHome.list.size) { return true } - oldFusedHome.list.forEach { oldFusedApp -> - val indexOfOldFusedApp = oldFusedHome.list.indexOf(oldFusedApp) - val fusedApp = newFusedHome.list[indexOfOldFusedApp] + oldHome.list.forEach { oldFusedApp -> + val indexOfOldFusedApp = oldHome.list.indexOf(oldFusedApp) + val fusedApp = newHome.list[indexOfOldFusedApp] if (!fusedAppDiffUtil.areContentsTheSame(oldFusedApp, fusedApp)) { return true } diff --git a/app/src/main/java/foundation/e/apps/data/fused/FusedAPIRepository.kt b/app/src/main/java/foundation/e/apps/data/fused/FusedAPIRepository.kt index 70fc87944..bd5f21830 100644 --- a/app/src/main/java/foundation/e/apps/data/fused/FusedAPIRepository.kt +++ b/app/src/main/java/foundation/e/apps/data/fused/FusedAPIRepository.kt @@ -30,7 +30,7 @@ import foundation.e.apps.data.enums.Source import foundation.e.apps.data.enums.Status import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.fused.data.Category -import foundation.e.apps.data.fused.data.FusedHome +import foundation.e.apps.data.fused.data.Home import foundation.e.apps.data.fused.utils.CategoryType import foundation.e.apps.data.fusedDownload.models.FusedDownload import javax.inject.Inject @@ -39,7 +39,7 @@ import javax.inject.Singleton @Singleton class FusedAPIRepository @Inject constructor(private val applicationAPIImpl: ApplicationApi) { - suspend fun getHomeScreenData(authData: AuthData): LiveData>> { + suspend fun getHomeScreenData(authData: AuthData): LiveData>> { return applicationAPIImpl.getHomeScreenData(authData) } @@ -136,8 +136,8 @@ class FusedAPIRepository @Inject constructor(private val applicationAPIImpl: App } fun isHomeDataUpdated( - newHomeData: List, - oldHomeData: List + newHomeData: List, + oldHomeData: List ) = applicationAPIImpl.isHomeDataUpdated(newHomeData, oldHomeData) fun isAnyFusedAppUpdated( diff --git a/app/src/main/java/foundation/e/apps/data/fused/data/FusedHome.kt b/app/src/main/java/foundation/e/apps/data/fused/data/Home.kt similarity index 95% rename from app/src/main/java/foundation/e/apps/data/fused/data/FusedHome.kt rename to app/src/main/java/foundation/e/apps/data/fused/data/Home.kt index f1cf80c8c..8585a07a5 100644 --- a/app/src/main/java/foundation/e/apps/data/fused/data/FusedHome.kt +++ b/app/src/main/java/foundation/e/apps/data/fused/data/Home.kt @@ -18,7 +18,7 @@ package foundation.e.apps.data.fused.data -data class FusedHome( +data class Home( val title: String = String(), val list: List = emptyList(), var source: String = String() diff --git a/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt b/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt index 47966e74a..7c081c6db 100644 --- a/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt +++ b/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt @@ -33,7 +33,7 @@ import foundation.e.apps.data.ResultSupreme import foundation.e.apps.data.enums.Status import foundation.e.apps.data.fused.ApplicationInstaller import foundation.e.apps.data.fused.data.Application -import foundation.e.apps.data.fused.data.FusedHome +import foundation.e.apps.data.fused.data.Home import foundation.e.apps.data.login.AuthObject import foundation.e.apps.data.login.exceptions.GPlayException import foundation.e.apps.data.login.exceptions.GPlayLoginException @@ -139,10 +139,10 @@ class HomeFragment : TimeoutFragment(R.layout.fragment_home), ApplicationInstall ).show(childFragmentManager, "HomeFragment") } - private fun isHomeDataUpdated(homeScreenResult: ResultSupreme>) = + private fun isHomeDataUpdated(homeScreenResult: ResultSupreme>) = homeParentRVAdapter?.currentList?.isEmpty() == true || homeViewModel.isHomeDataUpdated( homeScreenResult.data!!, - homeParentRVAdapter?.currentList as List + homeParentRVAdapter?.currentList as List ) override fun onTimeout( diff --git a/app/src/main/java/foundation/e/apps/ui/home/HomeViewModel.kt b/app/src/main/java/foundation/e/apps/ui/home/HomeViewModel.kt index 2c581f115..716a423dd 100644 --- a/app/src/main/java/foundation/e/apps/ui/home/HomeViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/home/HomeViewModel.kt @@ -26,7 +26,7 @@ import dagger.hilt.android.lifecycle.HiltViewModel import foundation.e.apps.data.ResultSupreme import foundation.e.apps.data.fused.FusedAPIRepository import foundation.e.apps.data.fused.data.Application -import foundation.e.apps.data.fused.data.FusedHome +import foundation.e.apps.data.fused.data.Home import foundation.e.apps.data.login.AuthObject import foundation.e.apps.data.login.exceptions.CleanApkException import foundation.e.apps.data.login.exceptions.GPlayException @@ -45,7 +45,7 @@ class HomeViewModel @Inject constructor( * * Issue: https://gitlab.e.foundation/e/backlog/-/issues/5404 */ - var homeScreenData: MutableLiveData>> = MutableLiveData() + var homeScreenData: MutableLiveData>> = MutableLiveData() fun loadData( authObjectList: List, @@ -94,11 +94,11 @@ class HomeViewModel @Inject constructor( } fun isHomeDataUpdated( - newHomeData: List, - oldHomeData: List + newHomeData: List, + oldHomeData: List ) = fusedAPIRepository.isHomeDataUpdated(newHomeData, oldHomeData) - fun isAnyAppInstallStatusChanged(currentList: List?): Boolean { + fun isAnyAppInstallStatusChanged(currentList: List?): Boolean { if (currentList == null) { return false } diff --git a/app/src/main/java/foundation/e/apps/ui/home/model/FusedHomeDiffUtil.kt b/app/src/main/java/foundation/e/apps/ui/home/model/FusedHomeDiffUtil.kt index 037bcd383..2ca4d87b2 100644 --- a/app/src/main/java/foundation/e/apps/ui/home/model/FusedHomeDiffUtil.kt +++ b/app/src/main/java/foundation/e/apps/ui/home/model/FusedHomeDiffUtil.kt @@ -18,14 +18,14 @@ package foundation.e.apps.ui.home.model import androidx.recyclerview.widget.DiffUtil -import foundation.e.apps.data.fused.data.FusedHome +import foundation.e.apps.data.fused.data.Home -class FusedHomeDiffUtil : DiffUtil.ItemCallback() { - override fun areItemsTheSame(oldItem: FusedHome, newItem: FusedHome): Boolean { +class FusedHomeDiffUtil : DiffUtil.ItemCallback() { + override fun areItemsTheSame(oldItem: Home, newItem: Home): Boolean { return oldItem.list == newItem.list } - override fun areContentsTheSame(oldItem: FusedHome, newItem: FusedHome): Boolean { + override fun areContentsTheSame(oldItem: Home, newItem: Home): Boolean { return oldItem.title.contentEquals(newItem.title) && oldItem.list == newItem.list } diff --git a/app/src/main/java/foundation/e/apps/ui/home/model/HomeParentRVAdapter.kt b/app/src/main/java/foundation/e/apps/ui/home/model/HomeParentRVAdapter.kt index ee7007a71..41faf14fb 100644 --- a/app/src/main/java/foundation/e/apps/ui/home/model/HomeParentRVAdapter.kt +++ b/app/src/main/java/foundation/e/apps/ui/home/model/HomeParentRVAdapter.kt @@ -27,7 +27,7 @@ import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView import foundation.e.apps.data.fused.ApplicationInstaller import foundation.e.apps.data.fused.data.Application -import foundation.e.apps.data.fused.data.FusedHome +import foundation.e.apps.data.fused.data.Home import foundation.e.apps.databinding.HomeParentListItemBinding import foundation.e.apps.ui.AppInfoFetchViewModel import foundation.e.apps.ui.MainActivityViewModel @@ -38,7 +38,7 @@ class HomeParentRVAdapter( private val appInfoFetchViewModel: AppInfoFetchViewModel, private var lifecycleOwner: LifecycleOwner?, private val paidAppHandler: ((Application) -> Unit)? = null -) : ListAdapter(FusedHomeDiffUtil()) { +) : ListAdapter(FusedHomeDiffUtil()) { private val viewPool = RecyclerView.RecycledViewPool() private var isDetachedFromRecyclerView = false @@ -88,8 +88,8 @@ class HomeParentRVAdapter( observeAppInstall(fusedHome, homeChildRVAdapter) } - private fun handleChildShimmerView(fusedHome: FusedHome, holder: ViewHolder) { - if (fusedHome.list.isEmpty()) { + private fun handleChildShimmerView(home: Home, holder: ViewHolder) { + if (home.list.isEmpty()) { holder.binding.shimmerLayout.visibility = View.VISIBLE holder.binding.shimmerLayout.startShimmer() holder.binding.childRV.visibility = View.GONE @@ -102,18 +102,18 @@ class HomeParentRVAdapter( } private fun observeAppInstall( - fusedHome: FusedHome, + home: Home, homeChildRVAdapter: RecyclerView.Adapter<*>? ) { lifecycleOwner?.let { mainActivityViewModel.downloadList.observe(it) { - mainActivityViewModel.updateStatusOfFusedApps(fusedHome.list, it) - (homeChildRVAdapter as HomeChildRVAdapter).setData(fusedHome.list) + mainActivityViewModel.updateStatusOfFusedApps(home.list, it) + (homeChildRVAdapter as HomeChildRVAdapter).setData(home.list) } } } - fun setData(newList: List) { + fun setData(newList: List) { submitList(newList.map { it.copy() }) } diff --git a/app/src/test/java/foundation/e/apps/fused/ApplicationApiImplTest.kt b/app/src/test/java/foundation/e/apps/fused/ApplicationApiImplTest.kt index dc1516f14..aa58ad778 100644 --- a/app/src/test/java/foundation/e/apps/fused/ApplicationApiImplTest.kt +++ b/app/src/test/java/foundation/e/apps/fused/ApplicationApiImplTest.kt @@ -36,7 +36,7 @@ import foundation.e.apps.data.enums.ResultStatus import foundation.e.apps.data.enums.Status import foundation.e.apps.data.fused.ApplicationApiImpl import foundation.e.apps.data.fused.data.Application -import foundation.e.apps.data.fused.data.FusedHome +import foundation.e.apps.data.fused.data.Home import foundation.e.apps.data.fused.utils.CategoryType import foundation.e.apps.data.playstore.PlayStoreRepository import foundation.e.apps.install.pkg.PWAManagerModule @@ -391,13 +391,13 @@ class ApplicationApiImplTest { ) val oldHomeData = - listOf(FusedHome("Top Free Apps", oldAppList), FusedHome("Top Free Games", oldAppList)) + listOf(Home("Top Free Apps", oldAppList), Home("Top Free Games", oldAppList)) var newHomeData = - listOf(FusedHome("Top Free Apps", oldAppList), FusedHome("Top Free Games", oldAppList)) + listOf(Home("Top Free Apps", oldAppList), Home("Top Free Games", oldAppList)) var isHomeDataUpdated = fusedAPIImpl.isHomeDataUpdated(newHomeData, oldHomeData) assertFalse("isHomeDataUpdated/NO", isHomeDataUpdated) newHomeData = - listOf(FusedHome("Top Free Apps", oldAppList), FusedHome("Top Free Games", newAppList)) + listOf(Home("Top Free Apps", oldAppList), Home("Top Free Games", newAppList)) isHomeDataUpdated = fusedAPIImpl.isHomeDataUpdated(newHomeData, oldHomeData) assertTrue("isHomeDataUpdated/YES", isHomeDataUpdated) @@ -405,8 +405,8 @@ class ApplicationApiImplTest { @Test fun isHomeDataUpdatedWhenBothAreEmpty() { - val oldHomeData = listOf() - val newHomeData = listOf() + val oldHomeData = listOf() + val newHomeData = listOf() val isHomeDataUpdated = fusedAPIImpl.isHomeDataUpdated(oldHomeData, newHomeData) assertFalse("isHomeDataUpdated", isHomeDataUpdated) } @@ -417,9 +417,9 @@ class ApplicationApiImplTest { val newAppList = mutableListOf(Application(), Application()) val oldHomeData = - listOf(FusedHome("Top Free Apps", oldAppList), FusedHome("Top Free Games", oldAppList)) + listOf(Home("Top Free Apps", oldAppList), Home("Top Free Games", oldAppList)) var newHomeData = - listOf(FusedHome("Top Free Apps", oldAppList), FusedHome("Top Free Games", newAppList)) + listOf(Home("Top Free Apps", oldAppList), Home("Top Free Games", newAppList)) val isHomeDataUpdated = fusedAPIImpl.isHomeDataUpdated(newHomeData, oldHomeData) assertTrue("isHomeDataUpdated/YES", isHomeDataUpdated) -- GitLab From bb00d0ed24b5590da3aefaa37fe8207dd10b3f85 Mon Sep 17 00:00:00 2001 From: Jonathan Klee Date: Tue, 24 Oct 2023 17:52:22 +0200 Subject: [PATCH 5/6] Rename FusedAPIRepository to ApplicationRepository --- ...APIRepository.kt => ApplicationRepository.kt} | 2 +- .../e/apps/data/updates/UpdatesManagerImpl.kt | 16 ++++++++-------- .../install/splitinstall/SplitInstallBinder.kt | 8 ++++---- .../install/splitinstall/SplitInstallService.kt | 6 +++--- .../install/workmanager/AppInstallProcessor.kt | 6 +++--- .../e/apps/ui/MainActivityViewModel.kt | 8 ++++---- .../apps/ui/application/ApplicationViewModel.kt | 12 ++++++------ .../applicationlist/ApplicationListViewModel.kt | 12 ++++++------ .../e/apps/ui/categories/CategoriesViewModel.kt | 6 +++--- .../foundation/e/apps/ui/home/HomeViewModel.kt | 10 +++++----- .../e/apps/ui/search/SearchViewModel.kt | 12 ++++++------ .../e/apps/ui/updates/UpdatesViewModel.kt | 6 +++--- .../foundation/e/apps/UpdateManagerImptTest.kt | 14 +++++++------- .../e/apps/fused/ApplicationApiRepositoryTest.kt | 10 +++++----- .../installProcessor/AppInstallProcessorTest.kt | 6 +++--- 15 files changed, 67 insertions(+), 67 deletions(-) rename app/src/main/java/foundation/e/apps/data/fused/{FusedAPIRepository.kt => ApplicationRepository.kt} (95%) diff --git a/app/src/main/java/foundation/e/apps/data/fused/FusedAPIRepository.kt b/app/src/main/java/foundation/e/apps/data/fused/ApplicationRepository.kt similarity index 95% rename from app/src/main/java/foundation/e/apps/data/fused/FusedAPIRepository.kt rename to app/src/main/java/foundation/e/apps/data/fused/ApplicationRepository.kt index bd5f21830..41c037416 100644 --- a/app/src/main/java/foundation/e/apps/data/fused/FusedAPIRepository.kt +++ b/app/src/main/java/foundation/e/apps/data/fused/ApplicationRepository.kt @@ -37,7 +37,7 @@ import javax.inject.Inject import javax.inject.Singleton @Singleton -class FusedAPIRepository @Inject constructor(private val applicationAPIImpl: ApplicationApi) { +class ApplicationRepository @Inject constructor(private val applicationAPIImpl: ApplicationApi) { suspend fun getHomeScreenData(authData: AuthData): LiveData>> { return applicationAPIImpl.getHomeScreenData(authData) diff --git a/app/src/main/java/foundation/e/apps/data/updates/UpdatesManagerImpl.kt b/app/src/main/java/foundation/e/apps/data/updates/UpdatesManagerImpl.kt index 40c5fed46..f2c5eb397 100644 --- a/app/src/main/java/foundation/e/apps/data/updates/UpdatesManagerImpl.kt +++ b/app/src/main/java/foundation/e/apps/data/updates/UpdatesManagerImpl.kt @@ -30,7 +30,7 @@ import foundation.e.apps.data.enums.Status import foundation.e.apps.data.enums.isUnFiltered import foundation.e.apps.data.faultyApps.FaultyAppRepository import foundation.e.apps.data.fdroid.FdroidRepository -import foundation.e.apps.data.fused.FusedAPIRepository +import foundation.e.apps.data.fused.ApplicationRepository import foundation.e.apps.data.fused.ApplicationApi.Companion.APP_TYPE_ANY import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.preference.PreferenceManagerModule @@ -46,7 +46,7 @@ import javax.inject.Inject class UpdatesManagerImpl @Inject constructor( @ApplicationContext private val context: Context, private val pkgManagerModule: PkgManagerModule, - private val fusedAPIRepository: FusedAPIRepository, + private val applicationRepository: ApplicationRepository, private val faultyAppRepository: FaultyAppRepository, private val preferenceManagerModule: PreferenceManagerModule, private val fdroidRepository: FdroidRepository, @@ -95,7 +95,7 @@ class UpdatesManagerImpl @Inject constructor( // Get open source app updates if (openSourceInstalledApps.isNotEmpty()) { status = getUpdatesFromApi({ - fusedAPIRepository.getApplicationDetails( + applicationRepository.getApplicationDetails( openSourceInstalledApps, authData, Origin.CLEANAPK @@ -147,7 +147,7 @@ class UpdatesManagerImpl @Inject constructor( if (openSourceInstalledApps.isNotEmpty()) { status = getUpdatesFromApi({ - fusedAPIRepository.getApplicationDetails( + applicationRepository.getApplicationDetails( openSourceInstalledApps, AuthData("", ""), Origin.CLEANAPK @@ -238,7 +238,7 @@ class UpdatesManagerImpl @Inject constructor( val appsResults = coroutineScope { val deferredResults = packageNames.map { packageName -> async { - fusedAPIRepository.getApplicationDetails( + applicationRepository.getApplicationDetails( "", packageName, authData, @@ -273,7 +273,7 @@ class UpdatesManagerImpl @Inject constructor( private suspend fun getFDroidAppsAndSignatures(installedPackageNames: List): Map { val appsAndSignatures = hashMapOf() for (packageName in installedPackageNames) { - val cleanApkFusedApp = fusedAPIRepository.getCleanapkAppDetails(packageName).first + val cleanApkFusedApp = applicationRepository.getCleanapkAppDetails(packageName).first if (cleanApkFusedApp.package_name.isBlank()) { continue } @@ -286,7 +286,7 @@ class UpdatesManagerImpl @Inject constructor( val installedVersionSignature = calculateSignatureVersion(cleanApkApplication) val downloadInfo = - fusedAPIRepository + applicationRepository .getOSSDownloadInfo(cleanApkApplication._id, installedVersionSignature) .body()?.download_data @@ -377,6 +377,6 @@ class UpdatesManagerImpl @Inject constructor( } fun getApplicationCategoryPreference(): List { - return fusedAPIRepository.getApplicationCategoryPreference() + return applicationRepository.getApplicationCategoryPreference() } } diff --git a/app/src/main/java/foundation/e/apps/install/splitinstall/SplitInstallBinder.kt b/app/src/main/java/foundation/e/apps/install/splitinstall/SplitInstallBinder.kt index 60c33aace..67224f565 100644 --- a/app/src/main/java/foundation/e/apps/install/splitinstall/SplitInstallBinder.kt +++ b/app/src/main/java/foundation/e/apps/install/splitinstall/SplitInstallBinder.kt @@ -23,7 +23,7 @@ import androidx.core.content.pm.PackageInfoCompat import com.aurora.gplayapi.data.models.AuthData import foundation.e.apps.ISplitInstallService import foundation.e.apps.data.DownloadManager -import foundation.e.apps.data.fused.FusedAPIRepository +import foundation.e.apps.data.fused.ApplicationRepository import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -33,7 +33,7 @@ import timber.log.Timber class SplitInstallBinder( val context: Context, private val coroutineScope: CoroutineScope, - val fusedAPIRepository: FusedAPIRepository, + val applicationRepository: ApplicationRepository, val downloadManager: DownloadManager, val authData: AuthData?, private var splitInstallSystemService: foundation.e.splitinstall.ISplitInstallService? @@ -97,10 +97,10 @@ class SplitInstallBinder( moduleName: String, versionCode: Int ): String? { - var url = fusedAPIRepository.getOnDemandModule(packageName, moduleName, versionCode, 1) + var url = applicationRepository.getOnDemandModule(packageName, moduleName, versionCode, 1) if (url == null) { - url = fusedAPIRepository.getOnDemandModule( + url = applicationRepository.getOnDemandModule( packageName, "config.$moduleName", versionCode, diff --git a/app/src/main/java/foundation/e/apps/install/splitinstall/SplitInstallService.kt b/app/src/main/java/foundation/e/apps/install/splitinstall/SplitInstallService.kt index ac561e3e5..a6e30289a 100644 --- a/app/src/main/java/foundation/e/apps/install/splitinstall/SplitInstallService.kt +++ b/app/src/main/java/foundation/e/apps/install/splitinstall/SplitInstallService.kt @@ -28,7 +28,7 @@ import com.aurora.gplayapi.data.models.AuthData import com.google.gson.Gson import dagger.hilt.android.AndroidEntryPoint import foundation.e.apps.data.DownloadManager -import foundation.e.apps.data.fused.FusedAPIRepository +import foundation.e.apps.data.fused.ApplicationRepository import foundation.e.apps.data.preference.DataStoreModule import foundation.e.splitinstall.ISplitInstallService import foundation.e.splitinstall.SplitInstall @@ -43,7 +43,7 @@ class SplitInstallService : LifecycleService() { } @Inject lateinit var dataStoreModule: DataStoreModule - @Inject lateinit var fusedAPIRepository: FusedAPIRepository + @Inject lateinit var applicationRepository: ApplicationRepository @Inject lateinit var downloadManager: DownloadManager @Inject lateinit var gson: Gson private lateinit var binder: SplitInstallBinder @@ -92,7 +92,7 @@ class SplitInstallService : LifecycleService() { binder = SplitInstallBinder( applicationContext, lifecycleScope, - fusedAPIRepository, + applicationRepository, downloadManager, authData, splitInstallSystemService diff --git a/app/src/main/java/foundation/e/apps/install/workmanager/AppInstallProcessor.kt b/app/src/main/java/foundation/e/apps/install/workmanager/AppInstallProcessor.kt index e9bec2430..ece6ec721 100644 --- a/app/src/main/java/foundation/e/apps/install/workmanager/AppInstallProcessor.kt +++ b/app/src/main/java/foundation/e/apps/install/workmanager/AppInstallProcessor.kt @@ -26,7 +26,7 @@ import foundation.e.apps.data.ResultSupreme import foundation.e.apps.data.enums.ResultStatus import foundation.e.apps.data.enums.Status import foundation.e.apps.data.enums.Type -import foundation.e.apps.data.fused.FusedAPIRepository +import foundation.e.apps.data.fused.ApplicationRepository import foundation.e.apps.data.fused.UpdatesDao import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.fusedDownload.FusedDownloadRepository @@ -50,7 +50,7 @@ class AppInstallProcessor @Inject constructor( @ApplicationContext private val context: Context, private val fusedDownloadRepository: FusedDownloadRepository, private val fusedManagerRepository: FusedManagerRepository, - private val fusedAPIRepository: FusedAPIRepository, + private val applicationRepository: ApplicationRepository, private val dataStoreManager: DataStoreManager, private val storageNotificationManager: StorageNotificationManager ) { @@ -175,7 +175,7 @@ class AppInstallProcessor @Inject constructor( private suspend fun updateFusedDownloadWithAppDownloadLink( fusedDownload: FusedDownload ) { - fusedAPIRepository.updateFusedDownloadWithDownloadingInfo( + applicationRepository.updateFusedDownloadWithDownloadingInfo( fusedDownload.origin, fusedDownload ) } diff --git a/app/src/main/java/foundation/e/apps/ui/MainActivityViewModel.kt b/app/src/main/java/foundation/e/apps/ui/MainActivityViewModel.kt index a585cfc93..38fc2b93c 100644 --- a/app/src/main/java/foundation/e/apps/ui/MainActivityViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/MainActivityViewModel.kt @@ -41,7 +41,7 @@ import foundation.e.apps.data.ecloud.EcloudRepository import foundation.e.apps.data.enums.User import foundation.e.apps.data.enums.isInitialized import foundation.e.apps.data.enums.isUnFiltered -import foundation.e.apps.data.fused.FusedAPIRepository +import foundation.e.apps.data.fused.ApplicationRepository import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.fusedDownload.FusedManagerRepository import foundation.e.apps.data.fusedDownload.models.FusedDownload @@ -58,7 +58,7 @@ import javax.inject.Inject @HiltViewModel class MainActivityViewModel @Inject constructor( private val dataStoreModule: DataStoreModule, - private val fusedAPIRepository: FusedAPIRepository, + private val applicationRepository: ApplicationRepository, private val fusedManagerRepository: FusedManagerRepository, private val pkgManagerModule: PkgManagerModule, private val pwaManagerModule: PWAManagerModule, @@ -168,7 +168,7 @@ class MainActivityViewModel @Inject constructor( if (application.filterLevel.isInitialized()) { method() } else { - fusedAPIRepository.getAppFilterLevel(application, authData).run { + applicationRepository.getAppFilterLevel(application, authData).run { if (isInitialized()) { application.filterLevel = this method() @@ -283,7 +283,7 @@ class MainActivityViewModel @Inject constructor( fusedDownload.origin == it.origin && (fusedDownload.packageName == it.package_name || fusedDownload.id == it._id) } it.status = - downloadingItem?.status ?: fusedAPIRepository.getFusedAppInstallationStatus(it) + downloadingItem?.status ?: applicationRepository.getFusedAppInstallationStatus(it) } } diff --git a/app/src/main/java/foundation/e/apps/ui/application/ApplicationViewModel.kt b/app/src/main/java/foundation/e/apps/ui/application/ApplicationViewModel.kt index 3a9523709..29c4cc658 100644 --- a/app/src/main/java/foundation/e/apps/ui/application/ApplicationViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/application/ApplicationViewModel.kt @@ -27,7 +27,7 @@ import foundation.e.apps.R 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.fused.FusedAPIRepository +import foundation.e.apps.data.fused.ApplicationRepository import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.fusedDownload.FusedManagerRepository import foundation.e.apps.data.fusedDownload.models.FusedDownload @@ -44,7 +44,7 @@ import javax.inject.Inject @HiltViewModel class ApplicationViewModel @Inject constructor( downloadProgressLD: DownloadProgressLD, - private val fusedAPIRepository: FusedAPIRepository, + private val applicationRepository: ApplicationRepository, private val fusedManagerRepository: FusedManagerRepository, ) : LoadingViewModel() { @@ -97,7 +97,7 @@ class ApplicationViewModel @Inject constructor( viewModelScope.launch(Dispatchers.IO) { try { val appData = - fusedAPIRepository.getApplicationDetails( + applicationRepository.getApplicationDetails( id, packageName, authData, @@ -137,7 +137,7 @@ class ApplicationViewModel @Inject constructor( fun getCleanapkAppDetails(packageName: String) { viewModelScope.launch { try { - fusedAPIRepository.getCleanapkAppDetails(packageName).run { + applicationRepository.getCleanapkAppDetails(packageName).run { if (this.first.package_name.isBlank()) { _errorMessageLiveData.postValue(R.string.app_not_found) } else { @@ -181,9 +181,9 @@ class ApplicationViewModel @Inject constructor( fun updateApplicationStatus(downloadList: List) { application.value?.first?.let { app -> appStatus.value = fusedManagerRepository.getDownloadingItemStatus(app, downloadList) - ?: fusedAPIRepository.getFusedAppInstallationStatus(app) + ?: applicationRepository.getFusedAppInstallationStatus(app) } } - fun isOpenSourceSelected() = fusedAPIRepository.isOpenSourceSelected() + fun isOpenSourceSelected() = applicationRepository.isOpenSourceSelected() } diff --git a/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListViewModel.kt b/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListViewModel.kt index f5835bde9..4cada5c55 100644 --- a/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListViewModel.kt @@ -25,7 +25,7 @@ import dagger.hilt.android.lifecycle.HiltViewModel import foundation.e.apps.data.ResultSupreme import foundation.e.apps.data.enums.ResultStatus import foundation.e.apps.data.enums.Source -import foundation.e.apps.data.fused.FusedAPIRepository +import foundation.e.apps.data.fused.ApplicationRepository import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.login.AuthObject import foundation.e.apps.data.login.exceptions.CleanApkException @@ -37,7 +37,7 @@ import javax.inject.Inject @HiltViewModel class ApplicationListViewModel @Inject constructor( - private val fusedAPIRepository: FusedAPIRepository + private val applicationRepository: ApplicationRepository ) : LoadingViewModel() { val appListLiveData: MutableLiveData>?> = MutableLiveData() @@ -87,7 +87,7 @@ class ApplicationListViewModel @Inject constructor( viewModelScope.launch(Dispatchers.IO) { isLoading = true - val result = fusedAPIRepository.getAppsListBasedOnCategory( + val result = applicationRepository.getAppsListBasedOnCategory( authData, category, nextPageUrl, @@ -135,7 +135,7 @@ class ApplicationListViewModel @Inject constructor( newApplications: List, oldApplications: List ): Boolean { - return fusedAPIRepository.isAnyFusedAppUpdated(newApplications, oldApplications) + return applicationRepository.isAnyFusedAppUpdated(newApplications, oldApplications) } fun loadMore(gPlayAuth: AuthObject?, category: String) { @@ -151,7 +151,7 @@ class ApplicationListViewModel @Inject constructor( } isLoading = true - val result = fusedAPIRepository.getAppsListBasedOnCategory( + val result = applicationRepository.getAppsListBasedOnCategory( authData, category, nextPageUrl, @@ -176,5 +176,5 @@ class ApplicationListViewModel @Inject constructor( } fun hasAnyAppInstallStatusChanged(currentList: List) = - fusedAPIRepository.isAnyAppInstallStatusChanged(currentList) + applicationRepository.isAnyAppInstallStatusChanged(currentList) } diff --git a/app/src/main/java/foundation/e/apps/ui/categories/CategoriesViewModel.kt b/app/src/main/java/foundation/e/apps/ui/categories/CategoriesViewModel.kt index 4d918220d..4d7a43068 100644 --- a/app/src/main/java/foundation/e/apps/ui/categories/CategoriesViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/categories/CategoriesViewModel.kt @@ -23,7 +23,7 @@ import androidx.lifecycle.viewModelScope import com.aurora.gplayapi.data.models.AuthData import dagger.hilt.android.lifecycle.HiltViewModel import foundation.e.apps.data.enums.ResultStatus -import foundation.e.apps.data.fused.FusedAPIRepository +import foundation.e.apps.data.fused.ApplicationRepository import foundation.e.apps.data.fused.data.Category import foundation.e.apps.data.fused.utils.CategoryType import foundation.e.apps.data.login.AuthObject @@ -35,7 +35,7 @@ import javax.inject.Inject @HiltViewModel class CategoriesViewModel @Inject constructor( - private val fusedAPIRepository: FusedAPIRepository + private val applicationRepository: ApplicationRepository ) : LoadingViewModel() { val categoriesList: MutableLiveData, String, ResultStatus>> = @@ -62,7 +62,7 @@ class CategoriesViewModel @Inject constructor( fun getCategoriesList(type: CategoryType, authData: AuthData) { viewModelScope.launch { - val categoriesData = fusedAPIRepository.getCategoriesList(type) + val categoriesData = applicationRepository.getCategoriesList(type) categoriesList.postValue(categoriesData) val status = categoriesData.third diff --git a/app/src/main/java/foundation/e/apps/ui/home/HomeViewModel.kt b/app/src/main/java/foundation/e/apps/ui/home/HomeViewModel.kt index 716a423dd..d8a6ca4a4 100644 --- a/app/src/main/java/foundation/e/apps/ui/home/HomeViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/home/HomeViewModel.kt @@ -24,7 +24,7 @@ import androidx.lifecycle.viewModelScope import com.aurora.gplayapi.data.models.AuthData import dagger.hilt.android.lifecycle.HiltViewModel import foundation.e.apps.data.ResultSupreme -import foundation.e.apps.data.fused.FusedAPIRepository +import foundation.e.apps.data.fused.ApplicationRepository import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.fused.data.Home import foundation.e.apps.data.login.AuthObject @@ -36,7 +36,7 @@ import javax.inject.Inject @HiltViewModel class HomeViewModel @Inject constructor( - private val fusedAPIRepository: FusedAPIRepository, + private val applicationRepository: ApplicationRepository, ) : LoadingViewModel() { /* @@ -71,7 +71,7 @@ class HomeViewModel @Inject constructor( lifecycleOwner: LifecycleOwner, ) { viewModelScope.launch { - fusedAPIRepository.getHomeScreenData(authData).observe(lifecycleOwner) { + applicationRepository.getHomeScreenData(authData).observe(lifecycleOwner) { homeScreenData.postValue(it) if (it.isSuccess()) return@observe @@ -96,7 +96,7 @@ class HomeViewModel @Inject constructor( fun isHomeDataUpdated( newHomeData: List, oldHomeData: List - ) = fusedAPIRepository.isHomeDataUpdated(newHomeData, oldHomeData) + ) = applicationRepository.isHomeDataUpdated(newHomeData, oldHomeData) fun isAnyAppInstallStatusChanged(currentList: List?): Boolean { if (currentList == null) { @@ -105,6 +105,6 @@ class HomeViewModel @Inject constructor( val appList = mutableListOf() currentList.forEach { appList.addAll(it.list) } - return fusedAPIRepository.isAnyAppInstallStatusChanged(appList) + return applicationRepository.isAnyAppInstallStatusChanged(appList) } } diff --git a/app/src/main/java/foundation/e/apps/ui/search/SearchViewModel.kt b/app/src/main/java/foundation/e/apps/ui/search/SearchViewModel.kt index 5233d4bd8..41dc94bc8 100644 --- a/app/src/main/java/foundation/e/apps/ui/search/SearchViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/search/SearchViewModel.kt @@ -26,7 +26,7 @@ import com.aurora.gplayapi.data.models.AuthData import com.aurora.gplayapi.data.models.SearchBundle import dagger.hilt.android.lifecycle.HiltViewModel import foundation.e.apps.data.ResultSupreme -import foundation.e.apps.data.fused.FusedAPIRepository +import foundation.e.apps.data.fused.ApplicationRepository import foundation.e.apps.data.fused.GplaySearchResult import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.login.AuthObject @@ -43,7 +43,7 @@ import kotlin.coroutines.coroutineContext @HiltViewModel class SearchViewModel @Inject constructor( - private val fusedAPIRepository: FusedAPIRepository, + private val applicationRepository: ApplicationRepository, ) : LoadingViewModel() { val searchSuggest: MutableLiveData?> = MutableLiveData() @@ -65,7 +65,7 @@ class SearchViewModel @Inject constructor( viewModelScope.launch(Dispatchers.IO) { if (gPlayAuth.result.isSuccess()) searchSuggest.postValue( - fusedAPIRepository.getSearchSuggestions(query) + applicationRepository.getSearchSuggestions(query) ) } } @@ -105,7 +105,7 @@ class SearchViewModel @Inject constructor( authData: AuthData? ) { viewModelScope.launch(Dispatchers.IO) { - val searchResultSupreme = fusedAPIRepository.getCleanApkSearchResults( + val searchResultSupreme = applicationRepository.getCleanApkSearchResults( query, authData ?: AuthData("", "") ) @@ -151,7 +151,7 @@ class SearchViewModel @Inject constructor( private suspend fun fetchGplayData(query: String) { isLoading = true - val gplaySearchResult = fusedAPIRepository.getGplaySearchResults(query, nextSubBundle) + val gplaySearchResult = applicationRepository.getGplaySearchResults(query, nextSubBundle) if (!gplaySearchResult.isSuccess()) { handleException(gplaySearchResult.exception ?: UnknownSourceException()) @@ -195,7 +195,7 @@ class SearchViewModel @Inject constructor( fun isAnyAppUpdated( newApplications: List, oldApplications: List - ) = fusedAPIRepository.isAnyFusedAppUpdated(newApplications, oldApplications) + ) = applicationRepository.isAnyFusedAppUpdated(newApplications, oldApplications) fun isAuthObjectListSame(authObjectList: List?): Boolean { return lastAuthObjects == authObjectList diff --git a/app/src/main/java/foundation/e/apps/ui/updates/UpdatesViewModel.kt b/app/src/main/java/foundation/e/apps/ui/updates/UpdatesViewModel.kt index 79d85c2c8..5b6ed102e 100644 --- a/app/src/main/java/foundation/e/apps/ui/updates/UpdatesViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/updates/UpdatesViewModel.kt @@ -25,7 +25,7 @@ import com.aurora.gplayapi.data.models.AuthData import dagger.hilt.android.lifecycle.HiltViewModel import foundation.e.apps.data.enums.ResultStatus import foundation.e.apps.data.enums.Status -import foundation.e.apps.data.fused.FusedAPIRepository +import foundation.e.apps.data.fused.ApplicationRepository import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.login.AuthObject import foundation.e.apps.data.login.exceptions.CleanApkException @@ -39,7 +39,7 @@ import javax.inject.Inject @HiltViewModel class UpdatesViewModel @Inject constructor( private val updatesManagerRepository: UpdatesManagerRepository, - private val fusedAPIRepository: FusedAPIRepository, + private val applicationRepository: ApplicationRepository, private val preferenceManagerModule: PreferenceManagerModule ) : LoadingViewModel() { @@ -111,7 +111,7 @@ class UpdatesViewModel @Inject constructor( return listOf( Status.INSTALLED, Status.UPDATABLE - ).contains(fusedAPIRepository.getFusedAppInstallationStatus(foundApp)) + ).contains(applicationRepository.getFusedAppInstallationStatus(foundApp)) } } return false diff --git a/app/src/test/java/foundation/e/apps/UpdateManagerImptTest.kt b/app/src/test/java/foundation/e/apps/UpdateManagerImptTest.kt index 73eed8d15..1fa245f58 100644 --- a/app/src/test/java/foundation/e/apps/UpdateManagerImptTest.kt +++ b/app/src/test/java/foundation/e/apps/UpdateManagerImptTest.kt @@ -27,7 +27,7 @@ import foundation.e.apps.data.enums.ResultStatus import foundation.e.apps.data.enums.Status import foundation.e.apps.data.faultyApps.FaultyAppRepository import foundation.e.apps.data.fdroid.FdroidRepository -import foundation.e.apps.data.fused.FusedAPIRepository +import foundation.e.apps.data.fused.ApplicationRepository import foundation.e.apps.data.fused.ApplicationApi import foundation.e.apps.data.fused.data.Application import foundation.e.apps.data.updates.UpdatesManagerImpl @@ -66,7 +66,7 @@ class UpdateManagerImptTest { private lateinit var pkgManagerModule: FakePkgManagerModule @Mock - private lateinit var fusedAPIRepository: FusedAPIRepository + private lateinit var applicationRepository: ApplicationRepository private lateinit var preferenceModule: FakePreferenceModule @@ -89,7 +89,7 @@ class UpdateManagerImptTest { updatesManagerImpl = UpdatesManagerImpl( context, pkgManagerModule, - fusedAPIRepository, + applicationRepository, faultyAppRepository, preferenceModule, fdroidRepository, @@ -324,19 +324,19 @@ class UpdateManagerImptTest { ) ) { Mockito.`when`( - fusedAPIRepository.getApplicationDetails( + applicationRepository.getApplicationDetails( any(), any(), eq(Origin.CLEANAPK) ) ).thenReturn(openSourceUpdates) - Mockito.`when`(fusedAPIRepository.getApplicationCategoryPreference()) + Mockito.`when`(applicationRepository.getApplicationCategoryPreference()) .thenReturn(selectedApplicationSources) if (gplayUpdates.first.isNotEmpty()) { Mockito.`when`( - fusedAPIRepository.getApplicationDetails( + applicationRepository.getApplicationDetails( any(), any(), any(), @@ -348,7 +348,7 @@ class UpdateManagerImptTest { ) } else { Mockito.`when`( - fusedAPIRepository.getApplicationDetails( + applicationRepository.getApplicationDetails( any(), any(), any(), diff --git a/app/src/test/java/foundation/e/apps/fused/ApplicationApiRepositoryTest.kt b/app/src/test/java/foundation/e/apps/fused/ApplicationApiRepositoryTest.kt index b7347d541..406c9dd12 100644 --- a/app/src/test/java/foundation/e/apps/fused/ApplicationApiRepositoryTest.kt +++ b/app/src/test/java/foundation/e/apps/fused/ApplicationApiRepositoryTest.kt @@ -17,7 +17,7 @@ package foundation.e.apps.fused -import foundation.e.apps.data.fused.FusedAPIRepository +import foundation.e.apps.data.fused.ApplicationRepository import foundation.e.apps.data.fused.ApplicationApiImpl import org.junit.Assert.assertTrue import org.junit.Before @@ -28,27 +28,27 @@ import org.mockito.MockitoAnnotations import org.mockito.kotlin.any class ApplicationApiRepositoryTest { - private lateinit var fusedApiRepository: FusedAPIRepository + private lateinit var applicationRepository: ApplicationRepository @Mock private lateinit var fusedAPIImpl: ApplicationApiImpl @Before fun setup() { MockitoAnnotations.openMocks(this) - fusedApiRepository = FusedAPIRepository(fusedAPIImpl) + applicationRepository = ApplicationRepository(fusedAPIImpl) } @Test fun isAnyAppUpdated_ReturnsTrue() { Mockito.`when`(fusedAPIImpl.isAnyFusedAppUpdated(any(), any())).thenReturn(true) - val isAnyAppUpdated = fusedApiRepository.isAnyFusedAppUpdated(listOf(), listOf()) + val isAnyAppUpdated = applicationRepository.isAnyFusedAppUpdated(listOf(), listOf()) assertTrue("isAnyAppUpdated", isAnyAppUpdated) } @Test fun isAnyInstallStatusChanged_ReturnsTrue() { Mockito.`when`(fusedAPIImpl.isAnyAppInstallStatusChanged(any())).thenReturn(true) - val isAnyAppUpdated = fusedApiRepository.isAnyAppInstallStatusChanged(listOf()) + val isAnyAppUpdated = applicationRepository.isAnyAppInstallStatusChanged(listOf()) assertTrue("isAnyAppUpdated", isAnyAppUpdated) } } diff --git a/app/src/test/java/foundation/e/apps/installProcessor/AppInstallProcessorTest.kt b/app/src/test/java/foundation/e/apps/installProcessor/AppInstallProcessorTest.kt index 8aca9593e..5741dfe41 100644 --- a/app/src/test/java/foundation/e/apps/installProcessor/AppInstallProcessorTest.kt +++ b/app/src/test/java/foundation/e/apps/installProcessor/AppInstallProcessorTest.kt @@ -23,7 +23,7 @@ import androidx.arch.core.executor.testing.InstantTaskExecutorRule import com.aurora.gplayapi.data.models.AuthData import foundation.e.apps.data.enums.Status import foundation.e.apps.data.fdroid.FdroidRepository -import foundation.e.apps.data.fused.FusedAPIRepository +import foundation.e.apps.data.fused.ApplicationRepository import foundation.e.apps.data.fusedDownload.FusedDownloadRepository import foundation.e.apps.data.fusedDownload.IFusedManager import foundation.e.apps.data.fusedDownload.models.FusedDownload @@ -71,7 +71,7 @@ class AppInstallProcessorTest { private lateinit var dataStoreManager: DataStoreManager @Mock - private lateinit var fusedAPIRepository: FusedAPIRepository + private lateinit var applicationRepository: ApplicationRepository private lateinit var appInstallProcessor: AppInstallProcessor @@ -90,7 +90,7 @@ class AppInstallProcessorTest { context, fusedDownloadRepository, fakeFusedManagerRepository, - fusedAPIRepository, + applicationRepository, dataStoreManager, storageNotificationManager ) -- GitLab From 7348c31a35adf629bfe7a5ba7a88ba38443d9971 Mon Sep 17 00:00:00 2001 From: Jonathan Klee Date: Tue, 24 Oct 2023 18:05:45 +0200 Subject: [PATCH 6/6] Update detekt-baseline --- app/detekt-baseline.xml | 60 +++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 33 deletions(-) diff --git a/app/detekt-baseline.xml b/app/detekt-baseline.xml index 7c6469b29..635b1081d 100644 --- a/app/detekt-baseline.xml +++ b/app/detekt-baseline.xml @@ -3,11 +3,11 @@ ComplexCondition:AppPurchaseFragment.kt$AppPurchaseFragment.<no name provided>$url.contains("https://play.google.com/store/apps/details") && url.contains("raii") && url.contains("raboi") && url.contains("rasi") && url.contains("rapt") - CyclomaticComplexMethod:ApplicationDiffUtil.kt$ApplicationDiffUtil$override fun areContentsTheSame(oldItem: FusedApp, newItem: FusedApp): Boolean + CyclomaticComplexMethod:ApplicationApiImpl.kt$ApplicationApiImpl$private suspend fun generateCleanAPKHome(home: CleanApkHome, appType: String): List<Home> + CyclomaticComplexMethod:ApplicationDiffUtil.kt$ApplicationDiffUtil$override fun areContentsTheSame(oldItem: Application, newItem: Application): Boolean CyclomaticComplexMethod:CategoryUtils.kt$CategoryUtils$fun provideAppsCategoryIconResource(categoryId: String): Int CyclomaticComplexMethod:DownloadProgressLD.kt$DownloadProgressLD$override fun observe(owner: LifecycleOwner, observer: Observer<in DownloadProgress>) - CyclomaticComplexMethod:FusedApiImpl.kt$FusedApiImpl$private suspend fun generateCleanAPKHome(home: Home, appType: String): List<FusedHome> - CyclomaticComplexMethod:HomeChildFusedAppDiffUtil.kt$HomeChildFusedAppDiffUtil$override fun areContentsTheSame(oldItem: FusedApp, newItem: FusedApp): Boolean + CyclomaticComplexMethod:HomeChildFusedAppDiffUtil.kt$HomeChildFusedAppDiffUtil$override fun areContentsTheSame(oldItem: Application, newItem: Application): Boolean CyclomaticComplexMethod:MainActivity.kt$MainActivity$override fun onCreate(savedInstanceState: Bundle?) EmptyCatchBlock:NativeDeviceInfoProviderModule.kt$NativeDeviceInfoProviderModule${ } EmptyFunctionBlock:CleanApkAuthenticator.kt$CleanApkAuthenticator${} @@ -19,27 +19,28 @@ ImplicitDefaultLocale:UpdatesFragment.kt$UpdatesFragment$String.format("%d%%", progress) InstanceOfCheckForException:GPlayHttpClient.kt$GPlayHttpClient$e is SocketTimeoutException InvalidPackageDeclaration:Trackers.kt$package foundation.e.apps.data.exodus + LargeClass:ApplicationApiImpl.kt$ApplicationApiImpl : ApplicationApi LargeClass:ApplicationFragment.kt$ApplicationFragment : TimeoutFragment - LargeClass:FusedApiImpl.kt$FusedApiImpl : FusedApi + LongMethod:ApplicationApiImpl.kt$ApplicationApiImpl$private suspend fun generateCleanAPKHome(home: CleanApkHome, appType: String): List<Home> LongMethod:ApplicationFragment.kt$ApplicationFragment$private fun observeDownloadStatus(view: View) LongMethod:CategoryUtils.kt$CategoryUtils$fun provideAppsCategoryIconResource(categoryId: String): Int - LongMethod:FusedApiImpl.kt$FusedApiImpl$private suspend fun generateCleanAPKHome(home: Home, appType: String): List<FusedHome> LongMethod:MainActivity.kt$MainActivity$override fun onCreate(savedInstanceState: Bundle?) LongMethod:NativeDeviceInfoProviderModule.kt$NativeDeviceInfoProviderModule$@Singleton @Provides fun provideNativeDeviceProperties( @ApplicationContext context: Context, ): Properties + LongParameterList:ApplicationApiImpl.kt$ApplicationApiImpl$( private val pkgManagerModule: PkgManagerModule, private val pwaManagerModule: PWAManagerModule, private val preferenceManagerModule: PreferenceManagerModule, @Named("gplayRepository") private val gplayRepository: PlayStoreRepository, @Named("cleanApkAppsRepository") private val cleanApkAppsRepository: CleanApkRepository, @Named("cleanApkPWARepository") private val cleanApkPWARepository: CleanApkRepository, @ApplicationContext private val context: Context ) LongParameterList:ApplicationDialogFragment.kt$ApplicationDialogFragment$( drawable: Int = -1, title: String, message: String, positiveButtonText: String = "", positiveButtonAction: (() -> Unit)? = null, cancelButtonText: String = "", cancelButtonAction: (() -> Unit)? = null, cancellable: Boolean = true, onDismissListener: (() -> Unit)? = null, ) - LongParameterList:ApplicationListRVAdapter.kt$ApplicationListRVAdapter$( private val applicationInstaller: ApplicationInstaller, private val privacyInfoViewModel: PrivacyInfoViewModel, private val appInfoFetchViewModel: AppInfoFetchViewModel, private val mainActivityViewModel: MainActivityViewModel, private val currentDestinationId: Int, private var lifecycleOwner: LifecycleOwner?, private var paidAppHandler: ((FusedApp) -> Unit)? = null ) + LongParameterList:ApplicationListRVAdapter.kt$ApplicationListRVAdapter$( private val applicationInstaller: ApplicationInstaller, private val privacyInfoViewModel: PrivacyInfoViewModel, private val appInfoFetchViewModel: AppInfoFetchViewModel, private val mainActivityViewModel: MainActivityViewModel, private val currentDestinationId: Int, private var lifecycleOwner: LifecycleOwner?, private var paidAppHandler: ((Application) -> Unit)? = null ) LongParameterList:ApplicationViewModel.kt$ApplicationViewModel$( id: String, packageName: String, origin: Origin, isFdroidLink: Boolean, authObjectList: List<AuthObject>, retryBlock: (failedObjects: List<AuthObject>) -> Boolean, ) LongParameterList:CleanApkRetrofit.kt$CleanApkRetrofit$( @Query("keyword") keyword: String, @Query("source") source: String = APP_SOURCE_FOSS, @Query("type") type: String = APP_TYPE_ANY, @Query("nres") nres: Int = 20, @Query("page") page: Int = 1, @Query("by") by: String? = null, ) LongParameterList:EglExtensionProvider.kt$EglExtensionProvider$( egl10: EGL10, eglDisplay: EGLDisplay, eglConfig: EGLConfig?, ai: IntArray, ai1: IntArray?, set: MutableSet<String> ) - LongParameterList:FusedApiImpl.kt$FusedApiImpl$( private val pkgManagerModule: PkgManagerModule, private val pwaManagerModule: PWAManagerModule, private val preferenceManagerModule: PreferenceManagerModule, @Named("gplayRepository") private val gplayRepository: PlayStoreRepository, @Named("cleanApkAppsRepository") private val cleanApkAppsRepository: CleanApkRepository, @Named("cleanApkPWARepository") private val cleanApkPWARepository: CleanApkRepository, @ApplicationContext private val context: Context ) LongParameterList:FusedManagerImpl.kt$FusedManagerImpl$( @Named("cacheDir") private val cacheDir: String, private val downloadManager: DownloadManager, private val notificationManager: NotificationManager, private val fusedDownloadRepository: FusedDownloadRepository, private val pwaManagerModule: PWAManagerModule, private val pkgManagerModule: PkgManagerModule, @Named("download") private val downloadNotificationChannel: NotificationChannel, @Named("update") private val updateNotificationChannel: NotificationChannel, @ApplicationContext private val context: Context ) - LongParameterList:MainActivityViewModel.kt$MainActivityViewModel$( private val dataStoreModule: DataStoreModule, private val fusedAPIRepository: FusedAPIRepository, private val fusedManagerRepository: FusedManagerRepository, private val pkgManagerModule: PkgManagerModule, private val pwaManagerModule: PWAManagerModule, private val ecloudRepository: EcloudRepository, private val blockedAppRepository: BlockedAppRepository, private val appInstallProcessor: AppInstallProcessor ) - LongParameterList:UpdatesManagerImpl.kt$UpdatesManagerImpl$( @ApplicationContext private val context: Context, private val pkgManagerModule: PkgManagerModule, private val fusedAPIRepository: FusedAPIRepository, private val faultyAppRepository: FaultyAppRepository, private val preferenceManagerModule: PreferenceManagerModule, private val fdroidRepository: FdroidRepository, private val blockedAppRepository: BlockedAppRepository, ) + LongParameterList:MainActivityViewModel.kt$MainActivityViewModel$( private val dataStoreModule: DataStoreModule, private val applicationRepository: ApplicationRepository, private val fusedManagerRepository: FusedManagerRepository, private val pkgManagerModule: PkgManagerModule, private val pwaManagerModule: PWAManagerModule, private val ecloudRepository: EcloudRepository, private val blockedAppRepository: BlockedAppRepository, private val appInstallProcessor: AppInstallProcessor ) + LongParameterList:UpdatesManagerImpl.kt$UpdatesManagerImpl$( @ApplicationContext private val context: Context, private val pkgManagerModule: PkgManagerModule, private val applicationRepository: ApplicationRepository, private val faultyAppRepository: FaultyAppRepository, private val preferenceManagerModule: PreferenceManagerModule, private val fdroidRepository: FdroidRepository, private val blockedAppRepository: BlockedAppRepository, ) LongParameterList:UpdatesWorker.kt$UpdatesWorker$( @Assisted private val context: Context, @Assisted private val params: WorkerParameters, private val updatesManagerRepository: UpdatesManagerRepository, private val dataStoreManager: DataStoreManager, private val authenticatorRepository: AuthenticatorRepository, private val appInstallProcessor: AppInstallProcessor, private val blockedAppRepository: BlockedAppRepository, ) MagicNumber:AnonymousLoginManager.kt$AnonymousLoginManager$200 MagicNumber:ApkSignatureManager.kt$ApkSignatureManager$1024 MagicNumber:AppDatabase.kt$AppDatabase.Companion.<no name provided>$3 MagicNumber:AppDatabase.kt$AppDatabase.Companion.<no name provided>$4 + MagicNumber:ApplicationApiImpl.kt$ApplicationApiImpl$3 MagicNumber:ApplicationFragment.kt$ApplicationFragment$100f MagicNumber:ApplicationFragment.kt$ApplicationFragment$15 MagicNumber:ApplicationFragment.kt$ApplicationFragment$3 @@ -61,7 +62,6 @@ MagicNumber:EglExtensionProvider.kt$EglExtensionProvider$4 MagicNumber:EglExtensionProvider.kt$EglExtensionProvider$7939 MagicNumber:FileManager.kt$FileManager$1024 - MagicNumber:FusedApiImpl.kt$FusedApiImpl$3 MagicNumber:FusedManagerRepository.kt$FusedManagerRepository$100 MagicNumber:HomeChildRVAdapter.kt$HomeChildRVAdapter$0.6f MagicNumber:HomeChildRVAdapter.kt$HomeChildRVAdapter$0.7f @@ -84,6 +84,9 @@ MaxLineLength:AppInstallProcessor.kt$AppInstallProcessor$"Enqueuing App install work is failed for ${fusedDownload.packageName} exception: ${e.localizedMessage}" MaxLineLength:AppInstallProcessor.kt$AppInstallProcessor$fusedDownload.areFilesDownloaded() && (!fusedManagerRepository.isFusedDownloadInstalled(fusedDownload) || fusedDownload.status == Status.INSTALLING) MaxLineLength:AppPrivacyInfo.kt$AppPrivacyInfo + MaxLineLength:ApplicationApi.kt$ApplicationApi$suspend fun getGplayAppsByCategory(authData: AuthData, category: String, pageUrl: String?): ResultSupreme<Pair<List<Application>, String>> + MaxLineLength:ApplicationApiImpl.kt$ApplicationApiImpl$(cleanApkAppsRepository.getAppDetails(result.apps[0]._id) as Response<CleanApkApplication>).body()?.app + MaxLineLength:ApplicationApiImpl.kt$ApplicationApiImpl$val hasGplayLimitedResult = gplayHomes.any { fusedHome -> fusedHome.list.size < THRESHOLD_LIMITED_RESULT_HOME_PAGE } MaxLineLength:ApplicationDiffUtil.kt$ApplicationDiffUtil$((oldItem.trackers == LIST_OF_NULL && newItem.trackers.isEmpty()) || oldItem.trackers == newItem.trackers) MaxLineLength:ApplicationFragment.kt$ApplicationFragment.Companion$"https://gitlab.e.foundation/e/os/apps/-/blob/main/app/src/main/java/foundation/e/apps/data/exodus/repositories/PrivacyScoreRepositoryImpl.kt" MaxLineLength:CommonUtilsModule.kt$CommonUtilsModule$* @@ -96,12 +99,11 @@ MaxLineLength:DownloadProgressLD.kt$DownloadProgressLD$cursor.getLong(cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_TOTAL_SIZE_BYTES)) MaxLineLength:DownloadProgressLD.kt$DownloadProgressLD$status == DownloadManager.STATUS_SUCCESSFUL || status == DownloadManager.STATUS_FAILED MaxLineLength:FdroidRepository.kt$FdroidRepository$override suspend - MaxLineLength:FusedApi.kt$FusedApi$suspend fun getGplayAppsByCategory(authData: AuthData, category: String, pageUrl: String?): ResultSupreme<Pair<List<FusedApp>, String>> - MaxLineLength:FusedApiImpl.kt$FusedApiImpl$val hasGplayLimitedResult = gplayHomes.any { fusedHome -> fusedHome.list.size < THRESHOLD_LIMITED_RESULT_HOME_PAGE } MaxLineLength:FusedManagerImpl.kt$FusedManagerImpl$. MaxLineLength:FusedManagerImpl.kt$FusedManagerImpl$return MaxLineLength:FusedManagerRepository.kt$FusedManagerRepository$downloadList.find { it.origin == app.origin && (it.packageName == app.package_name || it.id == app.package_name) } MaxLineLength:FusedManagerRepository.kt$FusedManagerRepository$return fdroidRepository.isFdroidApplicationSigned(context, fusedDownload.packageName, apkFilePath, fusedDownload.signature) + MaxLineLength:FusedManagerRepository.kt$FusedManagerRepository$suspend MaxLineLength:MainActivity.kt$MainActivity$if MaxLineLength:MainActivityViewModel.kt$MainActivityViewModel$fusedDownload.origin == it.origin && (fusedDownload.packageName == it.package_name || fusedDownload.id == it._id) MaxLineLength:PlayStoreRepository.kt$PlayStoreRepository$suspend fun getSearchResult(query: String, subBundle: MutableSet<SearchBundle.SubBundle>?): Pair<List<App>, MutableSet<SearchBundle.SubBundle>> @@ -113,9 +115,9 @@ MaxLineLength:UpdatesViewModel.kt$UpdatesViewModel$return updatesList.value?.first?.any { it.status == Status.UPDATABLE || it.status == Status.INSTALLATION_ISSUE } == true MaxLineLength:UpdatesWorker.kt$UpdatesWorker$applicationContext.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED MayBeConst:EcloudApiInterface.kt$EcloudApiInterface.Companion$val BASE_URL = "https://eu.gtoken.ecloud.global/" + NestedBlockDepth:ApplicationApiImpl.kt$ApplicationApiImpl$private suspend fun generateCleanAPKHome(home: CleanApkHome, appType: String): List<Home> NestedBlockDepth:DownloadManager.kt$DownloadManager$fun checkDownloadProgress( downloadId: Long, filePath: String = "", downloadCompleted: ((Boolean, String) -> Unit)? ) - NestedBlockDepth:FusedApiImpl.kt$FusedApiImpl$private suspend fun generateCleanAPKHome(home: Home, appType: String): List<FusedHome> - NestedBlockDepth:PWAManagerModule.kt$PWAManagerModule$fun getPwaStatus(fusedApp: FusedApp): Status + NestedBlockDepth:PWAManagerModule.kt$PWAManagerModule$fun getPwaStatus(application: Application): Status NestedBlockDepth:PkgManagerBR.kt$PkgManagerBR$override fun onReceive(context: Context?, intent: Intent?) NestedBlockDepth:SettingsFragment.kt$SettingsFragment$override fun onViewCreated(view: View, savedInstanceState: Bundle?) PrintStackTrace:CommonUtilsModule.kt$CommonUtilsModule$e @@ -132,20 +134,20 @@ ReturnCount:ApkSignatureManager.kt$ApkSignatureManager$private fun verifyAPKSignature( apkInputStream: BufferedInputStream, apkSignatureInputStream: InputStream, publicKeyInputStream: InputStream, packageName: String ): Boolean ReturnCount:AppInstallProcessor.kt$AppInstallProcessor$private suspend fun updateDownloadUrls(fusedDownload: FusedDownload): Boolean ReturnCount:AppInstallProcessor.kt$AppInstallProcessor$suspend fun enqueueFusedDownload( fusedDownload: FusedDownload, isAnUpdate: Boolean = false ) - ReturnCount:AppPrivacyInfoRepositoryImpl.kt$AppPrivacyInfoRepositoryImpl$override suspend fun getAppPrivacyInfo( fusedApp: FusedApp, appHandle: String ): Result<AppPrivacyInfo> - ReturnCount:AppPrivacyInfoRepositoryImpl.kt$AppPrivacyInfoRepositoryImpl$private fun getAppPrivacyInfo( fusedApp: FusedApp, appTrackerData: List<Report>, ): AppPrivacyInfo + ReturnCount:AppPrivacyInfoRepositoryImpl.kt$AppPrivacyInfoRepositoryImpl$override suspend fun getAppPrivacyInfo( application: Application, appHandle: String ): Result<AppPrivacyInfo> + ReturnCount:AppPrivacyInfoRepositoryImpl.kt$AppPrivacyInfoRepositoryImpl$private fun getAppPrivacyInfo( application: Application, appTrackerData: List<Report>, ): AppPrivacyInfo + ReturnCount:ApplicationApiImpl.kt$ApplicationApiImpl$override fun isAnyFusedAppUpdated( newApplications: List<Application>, oldApplications: List<Application> ): Boolean + ReturnCount:ApplicationApiImpl.kt$ApplicationApiImpl$override fun isHomeDataUpdated( newHomeData: List<Home>, oldHomeData: List<Home> ): Boolean + ReturnCount:ApplicationApiImpl.kt$ApplicationApiImpl$private fun areFusedAppsUpdated( oldHome: Home, newHome: Home, ): Boolean ReturnCount:DownloadManager.kt$DownloadManager$fun getSizeRequired(downloadId: Long): Long ReturnCount:DownloadManager.kt$DownloadManager$private fun sanitizeStatus(downloadId: Long, status: Int, reason: Int): Int ReturnCount:Extensions.kt$fun Context.isNetworkAvailable(): Boolean - ReturnCount:FusedApiImpl.kt$FusedApiImpl$override fun isAnyFusedAppUpdated( newFusedApps: List<FusedApp>, oldFusedApps: List<FusedApp> ): Boolean - ReturnCount:FusedApiImpl.kt$FusedApiImpl$override fun isHomeDataUpdated( newHomeData: List<FusedHome>, oldHomeData: List<FusedHome> ): Boolean - ReturnCount:FusedApiImpl.kt$FusedApiImpl$private fun areFusedAppsUpdated( oldFusedHome: FusedHome, newFusedHome: FusedHome, ): Boolean ReturnCount:FusedManagerRepository.kt$FusedManagerRepository$suspend fun addDownload(fusedDownload: FusedDownload): Boolean - ReturnCount:FusedManagerRepository.kt$FusedManagerRepository$suspend fun calculateProgress( fusedApp: FusedApp?, progress: DownloadProgress ): Int + ReturnCount:FusedManagerRepository.kt$FusedManagerRepository$suspend fun calculateProgress( application: Application?, progress: DownloadProgress ): Int ReturnCount:PlayStoreAuthenticator.kt$PlayStoreAuthenticator$override suspend fun validateAuthData(): ResultSupreme<AuthData?> ReturnCount:PlayStoreAuthenticator.kt$PlayStoreAuthenticator$private suspend fun getAuthDataWithGoogleAccount(): ResultSupreme<AuthData?> ReturnCount:StorageNotificationManager.kt$StorageNotificationManager$private fun getSpaceMissing(fusedDownload: FusedDownload, downloadId: Long? = null): Long - ReturnCount:UpdatesManagerImpl.kt$UpdatesManagerImpl$private suspend fun calculateSignatureVersion(latestCleanapkApp: FusedApp): String + ReturnCount:UpdatesManagerImpl.kt$UpdatesManagerImpl$private suspend fun calculateSignatureVersion(latestCleanapkApp: Application): String SpreadOperator:DownloadProgressLD.kt$DownloadProgressLD$(*downloadingIds.toLongArray()) SpreadOperator:EglExtensionProvider.kt$EglExtensionProvider$(*`as`) SpreadOperator:NativeDeviceInfoProviderModule.kt$NativeDeviceInfoProviderModule$(*context.assets.locales) @@ -164,6 +166,7 @@ TooGenericExceptionCaught:ApkSignatureManager.kt$ApkSignatureManager$e: Exception TooGenericExceptionCaught:AppInfoFetchViewModel.kt$AppInfoFetchViewModel$e: Exception TooGenericExceptionCaught:AppInstallProcessor.kt$AppInstallProcessor$e: Exception + TooGenericExceptionCaught:ApplicationApiImpl.kt$ApplicationApiImpl$e: Exception TooGenericExceptionCaught:ApplicationViewModel.kt$ApplicationViewModel$e: Exception TooGenericExceptionCaught:BlockedAppRepository.kt$BlockedAppRepository$exception: Exception TooGenericExceptionCaught:CommonUtilsModule.kt$CommonUtilsModule$e: Exception @@ -173,7 +176,6 @@ TooGenericExceptionCaught:DownloadProgressLD.kt$DownloadProgressLD$e: Exception TooGenericExceptionCaught:EcloudRepository.kt$EcloudRepository$e: Exception TooGenericExceptionCaught:FileManager.kt$FileManager$e: Exception - TooGenericExceptionCaught:FusedApiImpl.kt$FusedApiImpl$e: Exception TooGenericExceptionCaught:FusedManagerImpl.kt$FusedManagerImpl$e: Exception TooGenericExceptionCaught:GPlayHttpClient.kt$GPlayHttpClient$e: Exception TooGenericExceptionCaught:GoogleLoginManager.kt$GoogleLoginManager$e: Exception @@ -194,13 +196,13 @@ TooGenericExceptionThrown:PlayStoreLoginWrapper.kt$PlayStoreLoginWrapper$throw Exception(error) TooManyFunctions:AppInstallProcessor.kt$AppInstallProcessor TooManyFunctions:AppPrivacyInfoRepositoryImpl.kt$AppPrivacyInfoRepositoryImpl : IAppPrivacyInfoRepository + TooManyFunctions:ApplicationApi.kt$ApplicationApi + TooManyFunctions:ApplicationApiImpl.kt$ApplicationApiImpl : ApplicationApi TooManyFunctions:ApplicationFragment.kt$ApplicationFragment : TimeoutFragment TooManyFunctions:ApplicationListFragment.kt$ApplicationListFragment : TimeoutFragmentApplicationInstaller TooManyFunctions:ApplicationListRVAdapter.kt$ApplicationListRVAdapter : ListAdapter + TooManyFunctions:ApplicationRepository.kt$ApplicationRepository TooManyFunctions:DownloadManager.kt$DownloadManager - TooManyFunctions:FusedAPIRepository.kt$FusedAPIRepository - TooManyFunctions:FusedApi.kt$FusedApi - TooManyFunctions:FusedApiImpl.kt$FusedApiImpl : FusedApi TooManyFunctions:FusedManagerImpl.kt$FusedManagerImpl : IFusedManager TooManyFunctions:FusedManagerRepository.kt$FusedManagerRepository TooManyFunctions:GPlayHttpClient.kt$GPlayHttpClient : IHttpClient @@ -219,14 +221,6 @@ TooManyFunctions:UpdatesFragment.kt$UpdatesFragment : TimeoutFragmentApplicationInstaller TooManyFunctions:UpdatesManagerImpl.kt$UpdatesManagerImpl TooManyFunctions:UpdatesWorker.kt$UpdatesWorker : CoroutineWorker - UnusedParameter:ApplicationFragment.kt$ApplicationFragment$it: ImageView - UnusedParameter:FusedAPIRepository.kt$FusedAPIRepository$authData: AuthData - UnusedParameter:FusedApiImpl.kt$FusedApiImpl$source: String = CleanApkRetrofit.APP_SOURCE_FOSS UnusedParameter:SearchViewModel.kt$SearchViewModel$lifecycleOwner: LifecycleOwner - UnusedPrivateMember:HomeFragment.kt$HomeFragment$private fun onTosAccepted(isTosAccepted: Boolean) - UnusedPrivateProperty:AppInfoFetchViewModel.kt$AppInfoFetchViewModel$val authData = gson.fromJson(dataStoreModule.getAuthDataSync(), AuthData::class.java) - UnusedPrivateProperty:GPlayHttpClient.kt$GPlayHttpClient.Companion$private const val SEARCH = "search" - UnusedPrivateProperty:MainActivityViewModel.kt$MainActivityViewModel.Companion$private const val TAG = "MainActivityViewModel" - UnusedPrivateProperty:UpdatesFragment.kt$UpdatesFragment$val interval = updatesViewModel.getUpdateInterval() -- GitLab