Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eca48a98 authored by Jonathan Klee's avatar Jonathan Klee
Browse files

Rename FusedApp to Application

parent 2c84d563
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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
)
+8 −8
Original line number Diff line number Diff line
@@ -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
)
+2 −2
Original line number Diff line number Diff line
@@ -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
+23 −23
Original line number Diff line number Diff line
@@ -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<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() {
@@ -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 {
        /*
@@ -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>
    ): 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
+2 −2
Original line number Diff line number Diff line
@@ -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