From c1cbd1acd9ecec055240460b6289ed424970bb2c Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Wed, 14 Aug 2024 11:40:48 -0500 Subject: [PATCH] Disable swipes over WebXDC --- .../android/WebviewAwareViewPager.java | 26 +++++++++++++++++++ src/main/res/layout/fragment_conversation.xml | 4 +-- 2 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 src/cheogram/java/com/cheogram/android/WebviewAwareViewPager.java diff --git a/src/cheogram/java/com/cheogram/android/WebviewAwareViewPager.java b/src/cheogram/java/com/cheogram/android/WebviewAwareViewPager.java new file mode 100644 index 0000000000000000000000000000000000000000..1d261541ca09aebd7d0229fe3b84e7ef8784523b --- /dev/null +++ b/src/cheogram/java/com/cheogram/android/WebviewAwareViewPager.java @@ -0,0 +1,26 @@ +package com.cheogram.android; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.View; +import android.webkit.WebView; + +public class WebviewAwareViewPager extends androidx.viewpager.widget.ViewPager { + public WebviewAwareViewPager(Context context) { + super(context); + } + + public WebviewAwareViewPager(Context context, AttributeSet attrs) { + super(context, attrs); + } + + @Override + protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) { + if (v instanceof WebView) { + // This disables all viewpager swiping over the webview, which is a bit too aggressive + // But the default is to do it too often, so tradeoffs... + return true; + } + return super.canScroll(v, checkV, dx, x, y); + } +} diff --git a/src/main/res/layout/fragment_conversation.xml b/src/main/res/layout/fragment_conversation.xml index 1c3ecd14a57cc0daf2c4c63baa0344e134a15696..d6c319a633612e3f051a3ae8eb214f33b8e06f4d 100644 --- a/src/main/res/layout/fragment_conversation.xml +++ b/src/main/res/layout/fragment_conversation.xml @@ -15,7 +15,7 @@ app:tabGravity="fill" app:tabMode="scrollable" /> - - +