From 0f05c3b2c3818103b30f9dbd0e0a4b8bafb9027a Mon Sep 17 00:00:00 2001 From: PTah Date: Tue, 23 Jun 2026 19:09:39 +1000 Subject: [PATCH] fix: clear SAC push notifications when app is opened (0.5.15) Co-authored-by: Cursor --- app/build.gradle.kts | 4 ++-- app/src/main/java/ru/kalinamall/seaca/SeacaApplication.kt | 2 +- .../java/ru/kalinamall/seaca/push/AppForegroundState.kt | 7 ++++++- .../java/ru/kalinamall/seaca/push/NotificationHelper.kt | 4 ++++ 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d8e468a..e50b81e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -13,8 +13,8 @@ android { applicationId = "ru.kalinamall.seaca" minSdk = 26 targetSdk = 35 - versionCode = 28 - versionName = "0.5.14" + versionCode = 29 + versionName = "0.5.15" } buildTypes { diff --git a/app/src/main/java/ru/kalinamall/seaca/SeacaApplication.kt b/app/src/main/java/ru/kalinamall/seaca/SeacaApplication.kt index 8231940..3571534 100644 --- a/app/src/main/java/ru/kalinamall/seaca/SeacaApplication.kt +++ b/app/src/main/java/ru/kalinamall/seaca/SeacaApplication.kt @@ -10,7 +10,7 @@ import ru.kalinamall.seaca.push.NotificationSoundResolver class SeacaApplication : Application() { override fun onCreate() { super.onCreate() - AppForegroundState.bind() + AppForegroundState.bind(this) val store = SessionStore(this) val settings = runBlocking { NotificationSoundResolver.normalizeStoredSettings(this@SeacaApplication, store) diff --git a/app/src/main/java/ru/kalinamall/seaca/push/AppForegroundState.kt b/app/src/main/java/ru/kalinamall/seaca/push/AppForegroundState.kt index 2bbdf41..9b0e052 100644 --- a/app/src/main/java/ru/kalinamall/seaca/push/AppForegroundState.kt +++ b/app/src/main/java/ru/kalinamall/seaca/push/AppForegroundState.kt @@ -1,5 +1,6 @@ package ru.kalinamall.seaca.push +import android.content.Context import androidx.lifecycle.DefaultLifecycleObserver import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.ProcessLifecycleOwner @@ -9,11 +10,15 @@ object AppForegroundState { @Volatile private var inForeground = false - fun bind() { + private lateinit var appContext: Context + + fun bind(context: Context) { + appContext = context.applicationContext ProcessLifecycleOwner.get().lifecycle.addObserver( object : DefaultLifecycleObserver { override fun onStart(owner: LifecycleOwner) { inForeground = true + NotificationHelper.clearAll(appContext) } override fun onStop(owner: LifecycleOwner) { diff --git a/app/src/main/java/ru/kalinamall/seaca/push/NotificationHelper.kt b/app/src/main/java/ru/kalinamall/seaca/push/NotificationHelper.kt index 703dfe3..84236b3 100644 --- a/app/src/main/java/ru/kalinamall/seaca/push/NotificationHelper.kt +++ b/app/src/main/java/ru/kalinamall/seaca/push/NotificationHelper.kt @@ -83,6 +83,10 @@ object NotificationHelper { lockscreenVisibility = NotificationCompat.VISIBILITY_PRIVATE } + fun clearAll(context: Context) { + context.getSystemService(NotificationManager::class.java).cancelAll() + } + fun show( context: Context, title: String,