Loading app/src/main/java/foundation/e/apps/data/cleanapk/data/app/Application.kt +2 −2 Original line number Diff line number Diff line Loading @@ -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 ) app/src/main/java/foundation/e/apps/data/cleanapk/data/home/Home.kt +8 −8 Original line number Diff line number Diff line Loading @@ -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<FusedApp> = emptyList(), val top_updated_games: List<FusedApp> = emptyList(), val popular_apps: List<FusedApp> = emptyList(), val popular_games: List<FusedApp> = emptyList(), val popular_apps_in_last_24_hours: List<FusedApp> = emptyList(), val popular_games_in_last_24_hours: List<FusedApp> = emptyList(), val discover: List<FusedApp> = emptyList(), val top_updated_apps: List<Application> = emptyList(), val top_updated_games: List<Application> = emptyList(), val popular_apps: List<Application> = emptyList(), val popular_games: List<Application> = emptyList(), val popular_apps_in_last_24_hours: List<Application> = emptyList(), val popular_games_in_last_24_hours: List<Application> = emptyList(), val discover: List<Application> = emptyList(), var origin: Origin = Origin.CLEANAPK // Origin ) app/src/main/java/foundation/e/apps/data/cleanapk/data/search/Search.kt +2 −2 Original line number Diff line number Diff line Loading @@ -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<FusedApp> = emptyList(), val apps: List<Application> = emptyList(), val numberOfResults: Int = -1, val pages: Int = -1, val success: Boolean = false Loading app/src/main/java/foundation/e/apps/data/exodus/repositories/AppPrivacyInfoRepositoryImpl.kt +23 −23 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -48,58 +48,58 @@ class AppPrivacyInfoRepositoryImpl @Inject constructor( private var trackers: List<Tracker> = listOf() override suspend fun getAppPrivacyInfo( fusedApp: FusedApp, application: Application, appHandle: String ): Result<AppPrivacyInfo> { 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<List<Report>> ): Result<AppPrivacyInfo> { 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<AppPrivacyInfo> ) { 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<List<Report>>, ): Result<AppPrivacyInfo> { if (trackers.isEmpty()) { generateTrackerList() } return createAppPrivacyInfo(fusedApp, appTrackerResult) return createAppPrivacyInfo(application, appTrackerResult) } private suspend fun generateTrackerList() { Loading Loading @@ -128,17 +128,17 @@ class AppPrivacyInfoRepositoryImpl @Inject constructor( } private fun createAppPrivacyInfo( fusedApp: FusedApp, application: Application, appTrackerResult: Result<List<Report>>, ): Result<AppPrivacyInfo> { 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<Report>, ): AppPrivacyInfo { /* Loading @@ -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) Loading @@ -163,10 +163,10 @@ class AppPrivacyInfoRepositoryImpl @Inject constructor( } private fun getLatestTrackerData( fusedApp: FusedApp, application: Application, appTrackerData: List<Report> ): 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 Loading app/src/main/java/foundation/e/apps/data/exodus/repositories/IAppPrivacyInfoRepository.kt +2 −2 Original line number Diff line number Diff line Loading @@ -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<AppPrivacyInfo> suspend fun getAppPrivacyInfo(application: Application, appHandle: String): Result<AppPrivacyInfo> } Loading
app/src/main/java/foundation/e/apps/data/cleanapk/data/app/Application.kt +2 −2 Original line number Diff line number Diff line Loading @@ -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 )
app/src/main/java/foundation/e/apps/data/cleanapk/data/home/Home.kt +8 −8 Original line number Diff line number Diff line Loading @@ -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<FusedApp> = emptyList(), val top_updated_games: List<FusedApp> = emptyList(), val popular_apps: List<FusedApp> = emptyList(), val popular_games: List<FusedApp> = emptyList(), val popular_apps_in_last_24_hours: List<FusedApp> = emptyList(), val popular_games_in_last_24_hours: List<FusedApp> = emptyList(), val discover: List<FusedApp> = emptyList(), val top_updated_apps: List<Application> = emptyList(), val top_updated_games: List<Application> = emptyList(), val popular_apps: List<Application> = emptyList(), val popular_games: List<Application> = emptyList(), val popular_apps_in_last_24_hours: List<Application> = emptyList(), val popular_games_in_last_24_hours: List<Application> = emptyList(), val discover: List<Application> = emptyList(), var origin: Origin = Origin.CLEANAPK // Origin )
app/src/main/java/foundation/e/apps/data/cleanapk/data/search/Search.kt +2 −2 Original line number Diff line number Diff line Loading @@ -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<FusedApp> = emptyList(), val apps: List<Application> = emptyList(), val numberOfResults: Int = -1, val pages: Int = -1, val success: Boolean = false Loading
app/src/main/java/foundation/e/apps/data/exodus/repositories/AppPrivacyInfoRepositoryImpl.kt +23 −23 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -48,58 +48,58 @@ class AppPrivacyInfoRepositoryImpl @Inject constructor( private var trackers: List<Tracker> = listOf() override suspend fun getAppPrivacyInfo( fusedApp: FusedApp, application: Application, appHandle: String ): Result<AppPrivacyInfo> { 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<List<Report>> ): Result<AppPrivacyInfo> { 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<AppPrivacyInfo> ) { 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<List<Report>>, ): Result<AppPrivacyInfo> { if (trackers.isEmpty()) { generateTrackerList() } return createAppPrivacyInfo(fusedApp, appTrackerResult) return createAppPrivacyInfo(application, appTrackerResult) } private suspend fun generateTrackerList() { Loading Loading @@ -128,17 +128,17 @@ class AppPrivacyInfoRepositoryImpl @Inject constructor( } private fun createAppPrivacyInfo( fusedApp: FusedApp, application: Application, appTrackerResult: Result<List<Report>>, ): Result<AppPrivacyInfo> { 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<Report>, ): AppPrivacyInfo { /* Loading @@ -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) Loading @@ -163,10 +163,10 @@ class AppPrivacyInfoRepositoryImpl @Inject constructor( } private fun getLatestTrackerData( fusedApp: FusedApp, application: Application, appTrackerData: List<Report> ): 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 Loading
app/src/main/java/foundation/e/apps/data/exodus/repositories/IAppPrivacyInfoRepository.kt +2 −2 Original line number Diff line number Diff line Loading @@ -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<AppPrivacyInfo> suspend fun getAppPrivacyInfo(application: Application, appHandle: String): Result<AppPrivacyInfo> }