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

Commit e595f0c7 authored by Alexandre Roux's avatar Alexandre Roux
Browse files

use blockable list provided by tracker module

parent 14e92a27
Loading
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -98,8 +98,8 @@ dependencies {
    //googleImplementation project(":privacymodulesgoogle")
    // include the e specific version of the modules, just for the e flavor

    implementation 'foundation.e:privacymodule.trackerfilter:0.1.2'
    implementation 'foundation.e:privacymodule.api:0.4.1'
    implementation 'foundation.e:privacymodule.trackerfilter:0.1.3'
    implementation 'foundation.e:privacymodule.api:0.4.3'
    implementation 'foundation.e:privacymodule.e-29:0.4.1'
    implementation 'foundation.e:privacymodule.tor:0.1.1'

+1 −1
Original line number Diff line number Diff line
@@ -80,7 +80,7 @@ class DependencyContainer constructor(val app: Application) {
    private val ipScramblingStateUseCase by lazy {
        IpScramblingStateUseCase(ipScramblerModule, permissionsModule, appDesc, localStateRepository, GlobalScope)
    }
    private val appListUseCase = AppListUseCase(permissionsModule, GlobalScope)
    private val appListUseCase = AppListUseCase(permissionsModule, blockTrackersPrivacyModule, GlobalScope)

    private val trackersStatisticsUseCase by lazy {
        TrackersStatisticsUseCase(trackTrackersPrivacyModule)
+33 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ package foundation.e.privacycentralapp.domain.usecases
import android.Manifest
import foundation.e.privacymodules.permissions.PermissionsPrivacyModule
import foundation.e.privacymodules.permissions.data.ApplicationDescription
import foundation.e.trackerfilter.api.BlockTrackersPrivacyModule
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
@@ -27,6 +28,7 @@ import kotlinx.coroutines.launch

class AppListUseCase(
    private val permissionsModule: PermissionsPrivacyModule,
    private val blockTrackersPrivacyModule: BlockTrackersPrivacyModule,
    private val corouteineScope: CoroutineScope
) {

@@ -45,6 +47,37 @@ class AppListUseCase(
        return _installedAppsUsingInternet
    }

    fun getBlockableApps(): Flow<List<ApplicationDescription>> {
        corouteineScope.launch {
            _installedAppsUsingInternet.value = getBlockableAppsList()
        }
        return _installedAppsUsingInternet
    }

    private fun getBlockableAppsList(): List<ApplicationDescription> {
        return blockTrackersPrivacyModule.getBlockableApps()
            .filter {
                permissionsModule.getPermissions(it.packageName)
                    .contains(Manifest.permission.INTERNET)
            }.map {
                it.icon = permissionsModule.getApplicationIcon(it.packageName)
                it
            }.sortedWith(object : Comparator<ApplicationDescription> {
                override fun compare(
                    p0: ApplicationDescription?,
                    p1: ApplicationDescription?
                ): Int {
                    return if (p0?.icon != null && p1?.icon != null) {
                        p0.label.toString().compareTo(p1.label.toString())
                    } else if (p0?.icon == null) {
                        1
                    } else {
                        -1
                    }
                }
            })
    }

    private fun getInstalledAppsUsingInternetList(): List<ApplicationDescription> {
        return permissionsModule.getInstalledApplications()
            .filter {
+1 −1
Original line number Diff line number Diff line
@@ -130,7 +130,7 @@ class TrackersFeature(
                                )
                            )
                        },
                        appListUseCase.getInstalledAppsUsingInternet().map { apps ->
                        appListUseCase.getBlockableApps().map { apps ->
                            Effect.AvailableAppsListEffect(apps)
                        }
                    )