Always allow emergency calls

This commit is contained in:
Jonas Lochmann 2019-09-23 00:00:00 +00:00
parent 128f017f63
commit b6584e8126
No known key found for this signature in database
GPG key ID: 8B8C9AEE10FA5B36
3 changed files with 16 additions and 3 deletions

View file

@ -50,12 +50,19 @@ object AndroidIntegrationApps {
ignoredApps["com.android.nfc"] = AndroidIntegrationApps.IgnoredAppHandling.Ignore ignoredApps["com.android.nfc"] = AndroidIntegrationApps.IgnoredAppHandling.Ignore
ignoredApps["com.android.packageinstaller"] = AndroidIntegrationApps.IgnoredAppHandling.IgnoreOnStoreOtherwiseWhitelistAndDontDisable ignoredApps["com.android.packageinstaller"] = AndroidIntegrationApps.IgnoredAppHandling.IgnoreOnStoreOtherwiseWhitelistAndDontDisable
ignoredApps["com.google.android.packageinstaller"] = AndroidIntegrationApps.IgnoredAppHandling.IgnoreOnStoreOtherwiseWhitelistAndDontDisable ignoredApps["com.google.android.packageinstaller"] = AndroidIntegrationApps.IgnoredAppHandling.IgnoreOnStoreOtherwiseWhitelistAndDontDisable
ignoredApps["com.android.emergency"] = IgnoredAppHandling.Ignore
} }
val appsToNotSuspend = setOf<String>(
"com.android.emergency",
"com.android.phone"
)
private val ignoredActivities = setOf<String>( private val ignoredActivities = setOf<String>(
"com.android.settings:com.android.settings.enterprise.ActionDisabledByAdminDialog", "com.android.settings:com.android.settings.enterprise.ActionDisabledByAdminDialog",
"com.android.packageinstaller:com.android.packageinstaller.permission.ui.GrantPermissionActivity", "com.android.packageinstaller:com.android.packageinstaller.permission.ui.GrantPermissionActivity",
"com.google.android.packageinstaller:com.android.packageinstaller.permission.ui.GrantPermissionsActivity" "com.google.android.packageinstaller:com.android.packageinstaller.permission.ui.GrantPermissionsActivity",
"com.android.phone:com.android.phone.EmergencyDialer"
) )
fun shouldIgnoreActivity(packageName: String, activityName: String) = ignoredActivities.contains("$packageName:$activityName") fun shouldIgnoreActivity(packageName: String, activityName: String) = ignoredActivities.contains("$packageName:$activityName")

View file

@ -335,7 +335,10 @@ class BackgroundTaskLogic(val appLogic: AppLogic) {
if (category == null) { if (category == null) {
usedTimeUpdateHelper?.commit(appLogic) usedTimeUpdateHelper?.commit(appLogic)
if (AndroidIntegrationApps.ignoredApps[foregroundAppPackageName] == null) { if (
AndroidIntegrationApps.ignoredApps[foregroundAppPackageName] == null &&
AndroidIntegrationApps.appsToNotSuspend.contains(foregroundAppPackageName) == false
) {
// don't suspend system apps which are whitelisted in any version // don't suspend system apps which are whitelisted in any version
appLogic.platformIntegration.setSuspendedApps(listOf(foregroundAppPackageName), true) appLogic.platformIntegration.setSuspendedApps(listOf(foregroundAppPackageName), true)
} }

View file

@ -20,6 +20,7 @@ import io.timelimit.android.data.model.Category
import io.timelimit.android.data.model.CategoryApp import io.timelimit.android.data.model.CategoryApp
import io.timelimit.android.data.model.ExperimentalFlags import io.timelimit.android.data.model.ExperimentalFlags
import io.timelimit.android.data.model.UserType import io.timelimit.android.data.model.UserType
import io.timelimit.android.integration.platform.android.AndroidIntegrationApps
import io.timelimit.android.livedata.ignoreUnchanged import io.timelimit.android.livedata.ignoreUnchanged
import io.timelimit.android.livedata.liveDataFromValue import io.timelimit.android.livedata.liveDataFromValue
import io.timelimit.android.livedata.map import io.timelimit.android.livedata.map
@ -87,7 +88,9 @@ class SuspendAppsLogic(private val appLogic: AppLogic) {
val appCategories = prepared[packageName] ?: emptySet() val appCategories = prepared[packageName] ?: emptySet()
if (appCategories.find { categoryId -> (blockingReasons[categoryId] ?: BlockingReason.None) == BlockingReason.None } == null) { if (appCategories.find { categoryId -> (blockingReasons[categoryId] ?: BlockingReason.None) == BlockingReason.None } == null) {
result.add(packageName) if (!AndroidIntegrationApps.appsToNotSuspend.contains(packageName)) {
result.add(packageName)
}
} }
} }