The GeckoView API was added in bug 1516048.
Here is a quick change I made to AC to test it with the sample browser, hopefully this will inspire :)
diff --git a/components/browser/engine-gecko-nightly/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngineView.kt b/components/browser/engine-gecko-nightly/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngineView.kt
index f68ee1326..369258903 100644
--- a/components/browser/engine-gecko-nightly/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngineView.kt
+++ b/components/browser/engine-gecko-nightly/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngineView.kt
@@ -103,4 +103,8 @@ class GeckoEngineView @JvmOverloads constructor(
GeckoResult<Void>()
})
}
+
+ override fun setVerticalClipping(current: Int, max: Int) {
+ currentGeckoView.setVerticalClipping(current)
+ }
}
diff --git a/components/concept/engine/src/main/java/mozilla/components/concept/engine/EngineView.kt b/components/concept/engine/src/main/java/mozilla/components/concept/engine/EngineView.kt
index 3ee565a38..7d53485ee 100644
--- a/components/concept/engine/src/main/java/mozilla/components/concept/engine/EngineView.kt
+++ b/components/concept/engine/src/main/java/mozilla/components/concept/engine/EngineView.kt
@@ -72,6 +72,8 @@ interface EngineView {
* @param onFinish A callback to inform that process of capturing a thumbnail has finished.
*/
fun captureThumbnail(onFinish: (Bitmap?) -> Unit)
+
+ fun setVerticalClipping(current: Int, max: Int) = Unit
}
/**
diff --git a/components/feature/session/src/main/java/mozilla/components/feature/session/CoordinateScrollingFeature.kt b/components/feature/session/src/main/java/mozilla/components/feature/session/CoordinateScrollingFeature.kt
index 150d13e82..9ea64754f 100644
--- a/components/feature/session/src/main/java/mozilla/components/feature/session/CoordinateScrollingFeature.kt
+++ b/components/feature/session/src/main/java/mozilla/components/feature/session/CoordinateScrollingFeature.kt
@@ -34,6 +34,12 @@ class CoordinateScrollingFeature(
*/
override fun start() {
observeSelected()
+ val appBarLayout = view.parent as AppBarLayout
+ appBarLayout.addOnOffsetChangedListener (object: AppBarLayout.OnOffsetChangedListener {
+ override fun onOffsetChanged(appBar: AppBarLayout?, offset: Int) {
+ engineView.setVerticalClipping(appBarLayout.totalScrollRange + offset, appBarLayout.totalScrollRange);
+ }
+ })
}
override fun onLoadingStateChanged(session: Session, loading: Boolean) {
GV bug https://bugzilla.mozilla.org/show_bug.cgi?id=1516048 to adjust the viewport during bottom address bar transition has been fixed in GV build 2019-04-27.
Most helpful comment
The GeckoView API was added in bug 1516048.
Here is a quick change I made to AC to test it with the sample browser, hopefully this will inspire :)