diff --git a/app/src/main/java/io/timelimit/android/integration/platform/PlatformIntegration.kt b/app/src/main/java/io/timelimit/android/integration/platform/PlatformIntegration.kt index 7a649da..ae249e6 100644 --- a/app/src/main/java/io/timelimit/android/integration/platform/PlatformIntegration.kt +++ b/app/src/main/java/io/timelimit/android/integration/platform/PlatformIntegration.kt @@ -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 diff --git a/app/src/main/java/io/timelimit/android/integration/platform/android/foregroundapp/LollipopForegroundAppHelper.kt b/app/src/main/java/io/timelimit/android/integration/platform/android/foregroundapp/LollipopForegroundAppHelper.kt index 0fd26ff..f70f20e 100644 --- a/app/src/main/java/io/timelimit/android/integration/platform/android/foregroundapp/LollipopForegroundAppHelper.kt +++ b/app/src/main/java/io/timelimit/android/integration/platform/android/foregroundapp/LollipopForegroundAppHelper.kt @@ -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 diff --git a/app/src/main/java/io/timelimit/android/logic/BackgroundTaskLogic.kt b/app/src/main/java/io/timelimit/android/logic/BackgroundTaskLogic.kt index a4aa480..35c04ae 100644 --- a/app/src/main/java/io/timelimit/android/logic/BackgroundTaskLogic.kt +++ b/app/src/main/java/io/timelimit/android/logic/BackgroundTaskLogic.kt @@ -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 ) ) diff --git a/app/src/main/java/io/timelimit/android/logic/DummyApps.kt b/app/src/main/java/io/timelimit/android/logic/DummyApps.kt index 76878b9..f1e2259 100644 --- a/app/src/main/java/io/timelimit/android/logic/DummyApps.kt +++ b/app/src/main/java/io/timelimit/android/logic/DummyApps.kt @@ -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)