samsung tap scroll setting

This commit is contained in:
Fabian Freund
2026-05-06 18:18:07 +02:00
parent 581a5b662b
commit d5f977a3d2
14 changed files with 3364 additions and 2204 deletions
@@ -569,7 +569,19 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Activit
}
browserHandlingScrollFeature = BrowserHandlingScrollFeature(viewportEvents).also {
it.start()
if (GlobalComponents.browserHandlingScrollEnabled) {
it.start()
}
}
GlobalComponents.onBrowserHandlingScrollEnabledChanged = { enabled ->
browserHandlingScrollFeature?.let {
if (enabled) {
it.start()
} else {
it.stop()
}
}
}
}
@@ -686,6 +698,7 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Activit
browserHandlingScrollFeature = null
GlobalComponents.onPullToRefreshEnabledChanged = null
GlobalComponents.onBrowserHandlingScrollEnabledChanged = null
GlobalComponents.onScreenshotProtectionEnabledChanged = null
val engineView = fragmentEngineView
engineView?.setActivityContext(null)
@@ -75,6 +75,14 @@ object GlobalComponents {
var onPullToRefreshEnabledChanged: ((Boolean) -> Unit)? = null
var browserHandlingScrollEnabled: Boolean = true
set(value) {
field = value
onBrowserHandlingScrollEnabledChanged?.invoke(value)
}
var onBrowserHandlingScrollEnabledChanged: ((Boolean) -> Unit)? = null
var screenshotProtectionEnabled: Boolean = false
set(value) {
field = value
@@ -419,6 +419,10 @@ class GeckoEngineSettingsApiImpl : GeckoEngineSettingsApi {
GlobalComponents.pullToRefreshEnabled = enabled
}
override fun setBrowserHandlingScrollEnabled(enabled: Boolean) {
GlobalComponents.browserHandlingScrollEnabled = enabled
}
override fun setScreenshotProtectionEnabled(enabled: Boolean) {
GlobalComponents.screenshotProtectionEnabled = enabled
}
@@ -6757,6 +6757,7 @@ interface GeckoEngineSettingsApi {
fun updateRuntimeSettings(settings: GeckoEngineSettings)
fun setScreenshotProtectionEnabled(enabled: Boolean)
fun setPullToRefreshEnabled(enabled: Boolean)
fun setBrowserHandlingScrollEnabled(enabled: Boolean)
/**
* Sets the app links mode preference (stored in SharedPreferences).
* Controls how external app links are handled in the browser.
@@ -6851,6 +6852,24 @@ interface GeckoEngineSettingsApi {
channel.setMessageHandler(null)
}
}
run {
val channel = BasicMessageChannel<Any?>(binaryMessenger, "dev.flutter.pigeon.flutter_mozilla_components.GeckoEngineSettingsApi.setBrowserHandlingScrollEnabled$separatedMessageChannelSuffix", codec)
if (api != null) {
channel.setMessageHandler { message, reply ->
val args = message as List<Any?>
val enabledArg = args[0] as Boolean
val wrapped: List<Any?> = try {
api.setBrowserHandlingScrollEnabled(enabledArg)
listOf(null)
} catch (exception: Throwable) {
GeckoPigeonUtils.wrapError(exception)
}
reply.reply(wrapped)
}
} else {
channel.setMessageHandler(null)
}
}
run {
val channel = BasicMessageChannel<Any?>(binaryMessenger, "dev.flutter.pigeon.flutter_mozilla_components.GeckoEngineSettingsApi.setAppLinksMode$separatedMessageChannelSuffix", codec)
if (api != null) {