fix reader view lifecycle issue

This commit is contained in:
Fabian Freund
2026-03-07 16:27:29 +01:00
parent e609eae25c
commit 84038c7b81
@@ -31,6 +31,7 @@ class ReaderViewIntegration(
private val readerViewEvents: ReaderViewEventsImpl, private val readerViewEvents: ReaderViewEventsImpl,
readerViewController: ReaderViewController readerViewController: ReaderViewController
) : LifecycleAwareFeature, UserInteractionHandler { ) : LifecycleAwareFeature, UserInteractionHandler {
private var listenerRegistered = false
private val controllerListener = object : ReaderViewControllerListener { private val controllerListener = object : ReaderViewControllerListener {
override fun onReaderViewToggled(enabled: Boolean) { override fun onReaderViewToggled(enabled: Boolean) {
@@ -51,10 +52,6 @@ class ReaderViewIntegration(
} }
} }
init {
readerViewEvents.addListener(controllerListener)
}
private val feature = ReaderViewFeature(context, engine, store, view) private val feature = ReaderViewFeature(context, engine, store, view)
// Will be event based in flutter // Will be event based in flutter
// { available, active -> // { available, active ->
@@ -66,11 +63,18 @@ class ReaderViewIntegration(
// } // }
override fun start() { override fun start() {
if (!listenerRegistered) {
readerViewEvents.addListener(controllerListener)
listenerRegistered = true
}
feature.start() feature.start()
} }
override fun stop() { override fun stop() {
readerViewEvents.removeListener(controllerListener) if (listenerRegistered) {
readerViewEvents.removeListener(controllerListener)
listenerRegistered = false
}
feature.stop() feature.stop()
} }