Skip to content

Commit

Permalink
Add OEM filter option for apps.
Browse files Browse the repository at this point in the history
Closes #10
  • Loading branch information
d4rken committed Jul 18, 2022
1 parent 1309452 commit f20c2b3
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@ sealed class AKnownPkg constructor(override val id: Pkg.Id) : Pkg {
.filter { clazz -> clazz.isSubclassOf(AKnownPkg::class) }
.map { clazz -> clazz.objectInstance }
.filterIsInstance<AKnownPkg>()

val APP_STORES = values().filterIsInstance<AppStore>()
val OEM_STORES = APP_STORES - GooglePlay
}
}

Expand Down
24 changes: 22 additions & 2 deletions app/src/main/java/eu/darken/myperm/apps/ui/list/FilterOptions.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import eu.darken.myperm.R
import eu.darken.myperm.apps.core.features.ApkPkg
import eu.darken.myperm.apps.core.features.InstalledApp
import eu.darken.myperm.apps.core.features.InternetAccess
import eu.darken.myperm.apps.core.features.isSideloaded
import eu.darken.myperm.apps.core.known.AKnownPkg

data class FilterOptions(
val keys: Set<Filter> = setOf(Filter.USER_APP)
Expand All @@ -26,9 +26,29 @@ data class FilterOptions(
labelRes = R.string.apps_filter_nointernet_label,
matches = { it is InstalledApp && it.internetAccess != InternetAccess.DIRECT }
),
GOOGLE_PLAY(
labelRes = R.string.apps_filter_gplay_label,
matches = { pkg ->
pkg is InstalledApp
&& !pkg.isSystemApp
&& pkg.installerInfo.allInstallers.any { it.id == AKnownPkg.GooglePlay.id }
}
),
OEM_STORE(
labelRes = R.string.apps_filter_oemstore_label,
matches = { pkg ->
pkg is InstalledApp && !pkg.isSystemApp && pkg.installerInfo.allInstallers.any { installer ->
AKnownPkg.OEM_STORES.map { it.id }.contains(installer.id)
}
}
),
SIDELOADED(
labelRes = R.string.apps_filter_sideloaded_label,
matches = { it is InstalledApp && it.isSideloaded() }
matches = { pkg ->
pkg is InstalledApp && !pkg.isSystemApp && pkg.installerInfo.allInstallers.none { installer ->
AKnownPkg.APP_STORES.map { it.id }.contains(installer.id)
}
}
),
;
}
Expand Down
9 changes: 7 additions & 2 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -53,19 +53,24 @@
<string name="upgrade_myperm_description">Feel good and support development.</string>
<string name="general_filter_action">Filter</string>
<string name="general_cancel_action">Cancel</string>

<string name="apps_filter_userapps_label">Is user app</string>
<string name="apps_filter_systemapps_label">Is system app</string>
<string name="apps_filter_nointernet_label">No internet access</string>
<string name="apps_filter_sideloaded_label">Is sideloaded</string>
<string name="apps_filter_gplay_label">Google Play</string>
<string name="apps_filter_oemstore_label">OEM store</string>

<string name="apps_sort_permissions_granted_label">Granted permissions</string>
<string name="apps_sort_permissions_requested_label">Requested permissions</string>
<string name="apps_sort_permissions_declared_label">Declared permissions</string>
<string name="apps_sort_app_name_label">App name</string>
<string name="apps_sort_install_date_label">Install date</string>
<string name="apps_sort_update_date_label">Last updated</string>

<string name="general_sort_action">Sort</string>
<string name="apps_permissions_x_of_x_granted">%1$d of %2$d granted.</string>
<string name="apps_permissions_declares_x">Declares %1$d permissions.</string>
<string name="apps_filter_nointernet_label">No internet access</string>
<string name="apps_filter_sideloaded_label">Is sideloaded</string>
<string name="apps_details_installer_label">Install source</string>
<string name="apps_details_installer_manual_label">Manual install</string>
<string name="permissions_filter_system_core_label">Core permissions</string>
Expand Down

0 comments on commit f20c2b3

Please sign in to comment.