diff --git a/app/src/main/java/eu/kanade/tachiyomi/App.kt b/app/src/main/java/eu/kanade/tachiyomi/App.kt index 2b75c83514..80a3657cb2 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/App.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/App.kt @@ -14,6 +14,7 @@ import android.webkit.WebView import androidx.appcompat.app.AppCompatDelegate import androidx.core.app.ActivityCompat import androidx.core.app.NotificationManagerCompat +import androidx.core.content.ContextCompat import androidx.lifecycle.DefaultLifecycleObserver import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.ProcessLifecycleOwner @@ -148,7 +149,12 @@ open class App : Application(), DefaultLifecycleObserver { fun register() { if (!registered) { - registerReceiver(this, IntentFilter(ACTION_DISABLE_INCOGNITO_MODE)) + ContextCompat.registerReceiver( + this@App, + this, + IntentFilter(ACTION_DISABLE_INCOGNITO_MODE), + ContextCompat.RECEIVER_EXPORTED, + ) registered = true } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionInstallReceiver.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionInstallReceiver.kt index c19bf23b2d..a06323e547 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionInstallReceiver.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionInstallReceiver.kt @@ -4,6 +4,7 @@ import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.content.IntentFilter +import androidx.core.content.ContextCompat import eu.kanade.tachiyomi.extension.model.Extension import eu.kanade.tachiyomi.extension.model.LoadResult import eu.kanade.tachiyomi.util.system.launchNow @@ -25,7 +26,7 @@ internal class ExtensionInstallReceiver(private val listener: Listener) : * Registers this broadcast receiver */ fun register(context: Context) { - context.registerReceiver(this, filter) + ContextCompat.registerReceiver(context, this, filter, ContextCompat.RECEIVER_EXPORTED) } /** diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/FullCoverDialog.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/FullCoverDialog.kt index f08eb8b333..f30ff609ff 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/FullCoverDialog.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/FullCoverDialog.kt @@ -20,6 +20,7 @@ import androidx.activity.ComponentDialog import androidx.activity.addCallback import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.animation.addListener +import androidx.core.content.ContextCompat import androidx.core.view.WindowInsetsCompat.Type.systemBars import androidx.core.view.WindowInsetsControllerCompat import androidx.core.view.updateLayoutParams @@ -76,7 +77,7 @@ class FullCoverDialog(val controller: MangaDetailsController, drawable: Drawable val filter = IntentFilter() filter.addAction(PowerManager.ACTION_POWER_SAVE_MODE_CHANGED) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { - context.registerReceiver(powerSaverChangeReceiver, filter) + ContextCompat.registerReceiver(context, powerSaverChangeReceiver, filter, ContextCompat.RECEIVER_NOT_EXPORTED) } onBackPressedDispatcher.addCallback { @@ -198,6 +199,13 @@ class FullCoverDialog(val controller: MangaDetailsController, drawable: Drawable thumbView.alpha = 1f } + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + try { + context.unregisterReceiver(powerSaverChangeReceiver) + } catch (_: Exception) { } + } + private fun animateBack() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { try { diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/view/ViewExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/util/view/ViewExtensions.kt index b802bb8ebe..280cc2c73c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/view/ViewExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/view/ViewExtensions.kt @@ -477,7 +477,7 @@ fun Dialog.blurBehindWindow( } val filter = IntentFilter() filter.addAction(PowerManager.ACTION_POWER_SAVE_MODE_CHANGED) - context.registerReceiver(powerSaverChangeReceiver, filter) + ContextCompat.registerReceiver(context, powerSaverChangeReceiver, filter, ContextCompat.RECEIVER_NOT_EXPORTED) val unregister: () -> Unit = { if (registered) { context.unregisterReceiver(powerSaverChangeReceiver)