diff --git a/app/build.gradle.kts b/app/build.gradle.kts index e33336ba2..27b6062b7 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -29,8 +29,8 @@ android { applicationId = "com.sameerasw.essentials" minSdk = 26 targetSdk = 37 - versionCode = 47 - versionName = "15.3" + versionCode = 48 + versionName = "15.4" val whatsNewCounter = 2 buildConfigField("int", "WHATS_NEW_COUNTER", whatsNewCounter.toString()) diff --git a/app/src/main/java/com/sameerasw/essentials/services/handlers/AppFlowHandler.kt b/app/src/main/java/com/sameerasw/essentials/services/handlers/AppFlowHandler.kt index f554d622f..aa73c2bb5 100644 --- a/app/src/main/java/com/sameerasw/essentials/services/handlers/AppFlowHandler.kt +++ b/app/src/main/java/com/sameerasw/essentials/services/handlers/AppFlowHandler.kt @@ -76,6 +76,7 @@ class AppFlowHandler( private var lastLockRequestTime: Long = 0 var currentPackage: String? = null private set + private var currentUsageStatsPackage: String? = null // App Automation State private val activeAppAutomationIds = mutableSetOf() @@ -96,25 +97,28 @@ class AppFlowHandler( val prefs = context.getSharedPreferences("essentials_prefs", Context.MODE_PRIVATE) val useUsageAccess = prefs.getBoolean("use_usage_access", false) - val oldPackage = currentPackage - currentPackage = packageName - - if (oldPackage != null && oldPackage != packageName) { - lastLeaveTimes[oldPackage] = System.currentTimeMillis() - } - - if (packageName != context.packageName && packageName != lockingPackage) { - lockingPackage = null + if (isFromUsageStats) { + val oldUsagePackage = currentUsageStatsPackage + currentUsageStatsPackage = packageName + if (oldUsagePackage != null && oldUsagePackage != packageName) { + checkShutUpRestore(oldUsagePackage, packageName) + } } + val oldPackage = currentPackage if (isFromUsageStats == useUsageAccess) { + currentPackage = packageName + if (oldPackage != null && oldPackage != packageName) { + lastLeaveTimes[oldPackage] = System.currentTimeMillis() + } + if (packageName != context.packageName && packageName != lockingPackage) { + lockingPackage = null + } checkAppLock(packageName) checkHighlightNightLight(packageName) checkAppAutomations(packageName) checkGestureBarAutomation(packageName) - checkShutUpRestore(oldPackage, packageName) } - } fun onAuthenticated(packageName: String) { diff --git a/app/src/main/java/com/sameerasw/essentials/utils/ServiceUtils.kt b/app/src/main/java/com/sameerasw/essentials/utils/ServiceUtils.kt index 088f7375a..dc7a83829 100644 --- a/app/src/main/java/com/sameerasw/essentials/utils/ServiceUtils.kt +++ b/app/src/main/java/com/sameerasw/essentials/utils/ServiceUtils.kt @@ -39,7 +39,7 @@ object ServiceUtils { val hasShutUpApps = shutUpConfigs.any { it.isEnabled } val shouldRun = - isUseUsageAccess && (isAppLockEnabled || isDynamicNightLightEnabled || isHideGestureBarOnLauncherEnabled || hasAppAutomations || hasShutUpApps) + (isUseUsageAccess && (isAppLockEnabled || isDynamicNightLightEnabled || isHideGestureBarOnLauncherEnabled || hasAppAutomations)) || hasShutUpApps val intent = Intent(context, AppDetectionService::class.java) if (shouldRun) {