diff --git a/apps/android/app/src/main/java/chat/simplex/app/SimplexApp.kt b/apps/android/app/src/main/java/chat/simplex/app/SimplexApp.kt index 69cae0dd2a..30df816f37 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/SimplexApp.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/SimplexApp.kt @@ -74,6 +74,7 @@ class SimplexApp: Application(), LifecycleEventObserver { if (chatModel.onboardingStage.value == OnboardingStage.OnboardingComplete) { chatController.showBackgroundServiceNoticeIfNeeded() } + else -> {} } } } diff --git a/apps/android/app/src/main/java/chat/simplex/app/SimplexService.kt b/apps/android/app/src/main/java/chat/simplex/app/SimplexService.kt index db62727d2c..6163e6d97b 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/SimplexService.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/SimplexService.kt @@ -7,6 +7,7 @@ import android.util.Log import androidx.core.app.NotificationCompat import androidx.core.content.ContextCompat import androidx.work.* +import chat.simplex.app.model.AppPreferences import chat.simplex.app.views.helpers.withApi import chat.simplex.app.views.onboarding.OnboardingStage import kotlinx.coroutines.Dispatchers @@ -48,7 +49,6 @@ class SimplexService: Service() { val text = getString(R.string.simplex_service_notification_text) notificationManager = createNotificationChannel() serviceNotification = createNotification(title, text) - startForeground(SIMPLEX_SERVICE_ID, serviceNotification) } @@ -88,7 +88,7 @@ class SimplexService: Service() { private fun stopService() { Log.d(TAG, "Stopping foreground service") - if (!isServiceStarted || isStoppingService) return + if (isStoppingService) return isStoppingService = true try { wakeLock?.let { @@ -215,6 +215,7 @@ class SimplexService: Service() { suspend fun stop(context: Context) = serviceAction(context, Action.STOP) private suspend fun serviceAction(context: Context, action: Action) { + if (!AppPreferences(context).runServiceInBackground.get()) { return } Log.d(TAG, "SimplexService serviceAction: ${action.name}") withContext(Dispatchers.IO) { Intent(context, SimplexService::class.java).also { diff --git a/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt b/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt index 598112224b..88225a0ae7 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt @@ -113,7 +113,6 @@ class AppPreferences(val context: Context) { private const val SHARED_PREFS_PRIVACY_ACCEPT_IMAGES = "PrivacyAcceptImages" private const val SHARED_PREFS_PRIVACY_LINK_PREVIEWS = "PrivacyLinkPreviews" private const val SHARED_PREFS_EXPERIMENTAL_CALLS = "ExperimentalCalls" - } }