Loading app/build.gradle +2 −2 Original line number Diff line number Diff line Loading @@ -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' Loading app/src/main/java/foundation/e/privacycentralapp/DependencyContainer.kt +1 −1 Original line number Diff line number Diff line Loading @@ -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) Loading app/src/main/java/foundation/e/privacycentralapp/domain/usecases/AppListUseCase.kt +33 −0 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -27,6 +28,7 @@ import kotlinx.coroutines.launch class AppListUseCase( private val permissionsModule: PermissionsPrivacyModule, private val blockTrackersPrivacyModule: BlockTrackersPrivacyModule, private val corouteineScope: CoroutineScope ) { Loading @@ -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 { Loading app/src/main/java/foundation/e/privacycentralapp/features/trackers/TrackersFeature.kt +1 −1 Original line number Diff line number Diff line Loading @@ -130,7 +130,7 @@ class TrackersFeature( ) ) }, appListUseCase.getInstalledAppsUsingInternet().map { apps -> appListUseCase.getBlockableApps().map { apps -> Effect.AvailableAppsListEffect(apps) } ) Loading Loading
app/build.gradle +2 −2 Original line number Diff line number Diff line Loading @@ -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' Loading
app/src/main/java/foundation/e/privacycentralapp/DependencyContainer.kt +1 −1 Original line number Diff line number Diff line Loading @@ -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) Loading
app/src/main/java/foundation/e/privacycentralapp/domain/usecases/AppListUseCase.kt +33 −0 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -27,6 +28,7 @@ import kotlinx.coroutines.launch class AppListUseCase( private val permissionsModule: PermissionsPrivacyModule, private val blockTrackersPrivacyModule: BlockTrackersPrivacyModule, private val corouteineScope: CoroutineScope ) { Loading @@ -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 { Loading
app/src/main/java/foundation/e/privacycentralapp/features/trackers/TrackersFeature.kt +1 −1 Original line number Diff line number Diff line Loading @@ -130,7 +130,7 @@ class TrackersFeature( ) ) }, appListUseCase.getInstalledAppsUsingInternet().map { apps -> appListUseCase.getBlockableApps().map { apps -> Effect.AvailableAppsListEffect(apps) } ) Loading