aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/foundation/e/privacycentralapp/data
diff options
context:
space:
mode:
authorjacquarg <guillaume.jacquart@hoodbrains.com>2022-03-21 08:58:41 +0100
committerjacquarg <guillaume.jacquart@hoodbrains.com>2022-03-21 08:58:41 +0100
commita7cc29a6d52ce7b622fb6f5c961865f1e207252d (patch)
treec20885f4686362a3ed80110f59820ffadb511738 /app/src/main/java/foundation/e/privacycentralapp/data
parentbb103aa91e24d2b17875b496e17807ebd50aeb24 (diff)
downloadadvanced-privacy-a7cc29a6d52ce7b622fb6f5c961865f1e207252d.tar.gz
Attach system apps to a dummy system app instead of settings app.
Diffstat (limited to 'app/src/main/java/foundation/e/privacycentralapp/data')
-rw-r--r--app/src/main/java/foundation/e/privacycentralapp/data/repositories/AppListsRepository.kt14
1 files changed, 12 insertions, 2 deletions
diff --git a/app/src/main/java/foundation/e/privacycentralapp/data/repositories/AppListsRepository.kt b/app/src/main/java/foundation/e/privacycentralapp/data/repositories/AppListsRepository.kt
index 3573d4f..5d25a82 100644
--- a/app/src/main/java/foundation/e/privacycentralapp/data/repositories/AppListsRepository.kt
+++ b/app/src/main/java/foundation/e/privacycentralapp/data/repositories/AppListsRepository.kt
@@ -22,6 +22,7 @@ import android.content.Context
import android.content.Intent
import android.content.pm.ApplicationInfo
import android.content.pm.PackageManager
+import foundation.e.privacycentralapp.R
import foundation.e.privacymodules.permissions.PermissionsPrivacyModule
import foundation.e.privacymodules.permissions.data.ApplicationDescription
import kotlinx.coroutines.CoroutineScope
@@ -35,14 +36,19 @@ class AppListsRepository(
private val context: Context,
private val coroutineScope: CoroutineScope
) {
- val dummySystemApp = permissionsModule.getApplicationDescription("com.android.settings")
+ val dummySystemApp = ApplicationDescription(
+ packageName = "foundation.e.dummysystemapp",
+ uid = -1,
+ label = context.getString(R.string.dummy_system_app_label),
+ icon = context.getDrawable(lineageos.platform.R.drawable.ic_android)
+ )
fun getVisibleApps(): Flow<List<ApplicationDescription>> {
coroutineScope.launch {
val (visible, hidden) = splitVisibleToHidden(getAppsUsingInternet())
appDescriptions.emit(
Pair(
- visible.map { permissionsModule.buildApplicationDescription(it, withIcon = true) },
+ visible.map { permissionsModule.buildApplicationDescription(it, withIcon = true) } + dummySystemApp,
hidden.map { permissionsModule.buildApplicationDescription(it, withIcon = false) },
)
)
@@ -53,6 +59,10 @@ class AppListsRepository(
return appDescriptions.value.second
}
+ fun getApplicationDescription(packageName: String): ApplicationDescription? {
+ return appDescriptions.value.first.find { it.packageName == packageName }
+ }
+
fun foldForHiddenSystemApp(appUid: Int, appValueGetter: (Int) -> Int): Int {
return if (appUid == dummySystemApp.uid) {
getHiddenSystemApps().fold(0) { acc, app ->