diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/AnalysisHandler.kt b/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/AnalysisHandler.kt index 6c940da75..0ee874058 100644 --- a/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/AnalysisHandler.kt +++ b/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/AnalysisHandler.kt @@ -1,5 +1,6 @@ package deckers.thibault.aves.channel.calls +import android.app.ActivityManager import android.content.Context import androidx.work.ExistingWorkPolicy import androidx.work.OneTimeWorkRequestBuilder @@ -51,6 +52,17 @@ class AnalysisHandler(private val activity: FlutterFragmentActivity, private val return } + val activityManager: ActivityManager = activity.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager + val runningAppProcesses = activityManager.runningAppProcesses + if (runningAppProcesses != null) { + val importance = runningAppProcesses[0].importance + if (importance < ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) { + // the app is in the background + result.error("startAnalysis-background", "app is in the background (process importance=$importance)", null) + return + } + } + // can be null or empty val allEntryIds = call.argument>("entryIds") diff --git a/lib/model/source/collection_source.dart b/lib/model/source/collection_source.dart index 75846fc33..54650baa3 100644 --- a/lib/model/source/collection_source.dart +++ b/lib/model/source/collection_source.dart @@ -495,7 +495,6 @@ abstract class CollectionSource with SourceBase, AlbumMixin, CountryMixin, Place } } } - // TODO TLAD check whether app is in foreground before starting service if (startAnalysisService) { await AnalysisService.startService( force: force,