Allow ForegroundApp without activtiyName

This commit is contained in:
Jonas Lochmann 2022-03-28 02:00:00 +02:00
parent 2824d18db6
commit f4d3741289
No known key found for this signature in database
GPG key ID: 8B8C9AEE10FA5B36
4 changed files with 5 additions and 7 deletions

View file

@ -95,7 +95,7 @@ abstract class PlatformIntegration(
var systemClockChangeListener: Runnable? = null
}
data class ForegroundApp(val packageName: String, val activityName: String)
data class ForegroundApp(val packageName: String, val activityName: String?)
enum class ProtectionLevel {
None, SimpleDeviceAdmin, PasswordDeviceAdmin, DeviceOwner

View file

@ -248,7 +248,7 @@ class LollipopForegroundAppHelper(context: Context) : UsageStatsForegroundAppHel
// Android 9 (and maybe older versions too) do not report pausing Apps if they are disabled while running
private fun doesActivityExist(app: ForegroundApp) = doesActivityExistSimple(app) || doesActivityExistAsAlias(app)
private fun doesActivityExistSimple(app: ForegroundApp) = try {
private fun doesActivityExistSimple(app: ForegroundApp) = app.activityName != null && try {
packageManager.getActivityInfo(ComponentName(app.packageName, app.activityName), 0).isEnabled
} catch (ex: PackageManager.NameNotFoundException) {
false

View file

@ -33,6 +33,7 @@ import io.timelimit.android.date.getMinuteOfWeek
import io.timelimit.android.extensions.MinuteOfDay
import io.timelimit.android.extensions.nextBlockedMinuteOfWeek
import io.timelimit.android.integration.platform.AppStatusMessage
import io.timelimit.android.integration.platform.ForegroundApp
import io.timelimit.android.integration.platform.NetworkId
import io.timelimit.android.integration.platform.ProtectionLevel
import io.timelimit.android.integration.platform.android.AccessibilityService
@ -315,7 +316,7 @@ class BackgroundTaskLogic(val appLogic: AppLogic) {
)
}
} else listOf(
DummyApps.MISSING_PERMISSION_FG_APP to AppBaseHandling.SanctionCountEverything(
ForegroundApp(DummyApps.MISSING_PERMISSION_APP, null) to AppBaseHandling.SanctionCountEverything(
categoryIds = userRelatedData.categoryById.keys
)
)

View file

@ -21,14 +21,11 @@ import androidx.core.content.ContextCompat
import io.timelimit.android.R
import io.timelimit.android.data.model.App
import io.timelimit.android.data.model.AppRecommendation
import io.timelimit.android.integration.platform.ForegroundApp
object DummyApps {
const val NOT_ASSIGNED_SYSTEM_IMAGE_APP = ".dummy.system_image"
private const val MISSING_PERMISSION_APP = ".dummy.missing_usage_stats_permission"
const val MISSING_PERMISSION_APP = ".dummy.missing_usage_stats_permission"
const val FEATURE_APP_PREFIX = ".feature."
private const val DUMMY_ACTIVITY = ".activity.dummy"
val MISSING_PERMISSION_FG_APP = ForegroundApp(MISSING_PERMISSION_APP, DUMMY_ACTIVITY)
fun getTitle(packageName: String, context: Context): String? = when (packageName) {
NOT_ASSIGNED_SYSTEM_IMAGE_APP -> context.getString(R.string.dummy_app_unassigned_system_image_app)