Skip to content
  • Mugurell's avatar
    For #3182 - Separate behaviours depending on user's MotionEvents · 5d58e943
    Mugurell authored
    There are currently 3 Views interested in handling user's MotionEvents:
    - GeckoView which renders web content
    - SwipeRefreshLayout which handles pull down to refresh
    - BrowserToolbar which can be dynamically hidden
    
    Each of them have different behaviours based on different conditions so I
    - removed the coupling of BrowserToolbar and Geckoview from `NestedGeckoView`.
    It's `onTouchEventForResult` will now only set behaviour for GeckoView.
    - created a new EngineView enum to expose the `PanZoomController` possible
    result of how a specific user touch was handled to any components that have a
    reference to an instance of EngineView without the need to have
    `concept-engine` as a dependency.
    - implemented specific behaviour in `SwipeRefreshFeature` for the pull down to
    refresh functionality and in the `BrowserToolbarBottomBehavior` for the dynamic
    navigation bar functionality.
    
    Mapped PanZoomController's INPUT_RESULT to a new enum in order to not enforce
    the need of including geckoview as a dependency in all components interested in
    how a user's `MotionEvent` was handled and also because webview doesn't expose
    such values so we needed a wrapper for it's handled or not boolean return.
    5d58e943
To find the state of this project's repository at the time of any of these versions, check out the tags.