dont forward custom tab long presses
This commit is contained in:
+20
-15
@@ -25,6 +25,7 @@ import mozilla.components.browser.state.action.LastAccessAction
|
|||||||
import mozilla.components.browser.state.action.ReaderAction
|
import mozilla.components.browser.state.action.ReaderAction
|
||||||
import mozilla.components.browser.state.action.TabListAction
|
import mozilla.components.browser.state.action.TabListAction
|
||||||
import mozilla.components.browser.state.action.WebExtensionAction
|
import mozilla.components.browser.state.action.WebExtensionAction
|
||||||
|
import mozilla.components.browser.state.selector.findCustomTab
|
||||||
import mozilla.components.browser.state.state.BrowserState
|
import mozilla.components.browser.state.state.BrowserState
|
||||||
import mozilla.components.concept.engine.HitResult
|
import mozilla.components.concept.engine.HitResult
|
||||||
import mozilla.components.feature.addons.logger
|
import mozilla.components.feature.addons.logger
|
||||||
@@ -93,21 +94,25 @@ class FlutterEventMiddleware(private val flutterEvents: GeckoStateEvents) : Midd
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
is ContentAction.UpdateHitResultAction -> {
|
is ContentAction.UpdateHitResultAction -> {
|
||||||
runOnUiThread {
|
// Skip forwarding to Flutter for custom tab sessions (PWAs, TWAs),
|
||||||
flutterEvents.onLongPress(
|
// as they handle context menus natively via ContextMenuFeature
|
||||||
EventSequence.next(),
|
if (store.state.findCustomTab(action.sessionId) == null) {
|
||||||
action.sessionId,
|
runOnUiThread {
|
||||||
when(val result = action.hitResult) {
|
flutterEvents.onLongPress(
|
||||||
is HitResult.AUDIO -> AudioHitResult(result.src, result.title)
|
EventSequence.next(),
|
||||||
is HitResult.EMAIL -> EmailHitResult(result.src)
|
action.sessionId,
|
||||||
is HitResult.GEO -> GeoHitResult(result.src)
|
when(val result = action.hitResult) {
|
||||||
is HitResult.IMAGE -> ImageHitResult(result.src, result.title)
|
is HitResult.AUDIO -> AudioHitResult(result.src, result.title)
|
||||||
is HitResult.IMAGE_SRC -> ImageSrcHitResult(result.src, result.uri)
|
is HitResult.EMAIL -> EmailHitResult(result.src)
|
||||||
is HitResult.PHONE -> PhoneHitResult(result.src)
|
is HitResult.GEO -> GeoHitResult(result.src)
|
||||||
is HitResult.UNKNOWN -> UnknownHitResult(result.src, result.linkText)
|
is HitResult.IMAGE -> ImageHitResult(result.src, result.title)
|
||||||
is HitResult.VIDEO -> VideoHitResult(result.src, result.title)
|
is HitResult.IMAGE_SRC -> ImageSrcHitResult(result.src, result.uri)
|
||||||
}
|
is HitResult.PHONE -> PhoneHitResult(result.src)
|
||||||
) { _ -> }
|
is HitResult.UNKNOWN -> UnknownHitResult(result.src, result.linkText)
|
||||||
|
is HitResult.VIDEO -> VideoHitResult(result.src, result.title)
|
||||||
|
}
|
||||||
|
) { _ -> }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
is ContentAction.AddFindResultAction -> {
|
is ContentAction.AddFindResultAction -> {
|
||||||
|
|||||||
Reference in New Issue
Block a user