hide toolbar on scrool

This commit is contained in:
Fabian Freund
2025-08-14 11:57:45 +02:00
parent 4de06e9620
commit ed2fe3e1a1
8 changed files with 231 additions and 2 deletions
@@ -133,6 +133,15 @@ class FlutterEventMiddleware(private val flutterEvents: GeckoStateEvents) : Midd
) { _ -> }
}
}
is ReaderAction.UpdateReaderScrollYAction -> {
runOnUiThread {
flutterEvents.onScrollChange(
System.currentTimeMillis(),
action.tabId,
action.scrollY.toLong()
) { _ -> }
}
}
else -> {
//logger.debug("Event fired: " + action.javaClass.name)
}
@@ -3998,6 +3998,23 @@ class GeckoStateEvents(private val binaryMessenger: BinaryMessenger, private val
}
}
}
fun onScrollChange(timestampArg: Long, tabIdArg: String, scrollYArg: Long, callback: (Result<Unit>) -> Unit)
{
val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else ""
val channelName = "dev.flutter.pigeon.flutter_mozilla_components.GeckoStateEvents.onScrollChange$separatedMessageChannelSuffix"
val channel = BasicMessageChannel<Any?>(binaryMessenger, channelName, codec)
channel.send(listOf(timestampArg, tabIdArg, scrollYArg)) {
if (it is List<*>) {
if (it.size > 1) {
callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?)))
} else {
callback(Result.success(Unit))
}
} else {
callback(Result.failure(GeckoPigeonUtils.createConnectionError(channelName)))
}
}
}
}
/** Generated class from Pigeon that represents Flutter messages that can be called from Kotlin. */
class GeckoLogging(private val binaryMessenger: BinaryMessenger, private val messageChannelSuffix: String = "") {