fix reader view lifecycle issue
This commit is contained in:
+9
-5
@@ -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()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user