From fb38edfb1f82f596b1cb924ed883195b8921b30a Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 7 Apr 2023 12:44:37 +0200 Subject: [PATCH] Auto hide answer for web view scrolling --- .../java/eu/faircode/email/AdapterMessage.java | 14 +++++++------- .../java/eu/faircode/email/FragmentMessages.java | 13 ++++++++++++- app/src/main/java/eu/faircode/email/WebViewEx.java | 4 ++-- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 6e9583cd41..f70d818137 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -2839,8 +2839,8 @@ public class AdapterMessage extends RecyclerView.Adapter(scrollX, scrollY)); + public void onScrollChange(int dx, int dy, int scrollX, int scrollY) { + properties.setPosition(message.id, new Pair<>(dx, dy), new Pair<>(scrollX, scrollY)); } @Override @@ -4500,7 +4500,7 @@ public class AdapterMessage extends RecyclerView.Adapter position); + void setPosition(long id, Pair delta, Pair position); Pair getPosition(long id); diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index 2cf6aa0912..6fb6ec873d 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -26,6 +26,8 @@ import static android.text.format.DateUtils.FORMAT_SHOW_DATE; import static android.text.format.DateUtils.FORMAT_SHOW_WEEKDAY; import static android.view.KeyEvent.ACTION_DOWN; import static android.view.KeyEvent.ACTION_UP; +import static android.view.View.GONE; +import static android.view.View.VISIBLE; import static androidx.recyclerview.widget.RecyclerView.NO_POSITION; import static org.openintents.openpgp.OpenPgpSignatureResult.RESULT_KEY_MISSING; import static org.openintents.openpgp.OpenPgpSignatureResult.RESULT_NO_SIGNATURE; @@ -2480,7 +2482,16 @@ public class FragmentMessages extends FragmentBase } @Override - public void setPosition(long id, Pair position) { + public void setPosition(long id, Pair delta, Pair position) { + if (delta != null && delta.second != 0) { + boolean down = (delta.second > 0); + if (scrolling != down) { + scrolling = down; + updateCompose(); + updateExpanded(); + } + } + if (position == null) positions.remove(id); else diff --git a/app/src/main/java/eu/faircode/email/WebViewEx.java b/app/src/main/java/eu/faircode/email/WebViewEx.java index 138271c715..4e811266a2 100644 --- a/app/src/main/java/eu/faircode/email/WebViewEx.java +++ b/app/src/main/java/eu/faircode/email/WebViewEx.java @@ -188,7 +188,7 @@ public class WebViewEx extends WebView implements DownloadListener, View.OnLongC @Override public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) { Log.i("Scroll (x,y)=" + scrollX + "," + scrollY); - intf.onScrollChange(scrollX, scrollY); + intf.onScrollChange(scrollX - oldScrollX, scrollY - oldScrollY, scrollX, scrollY); } }); } @@ -412,7 +412,7 @@ public class WebViewEx extends WebView implements DownloadListener, View.OnLongC void onScaleChanged(float newScale); - void onScrollChange(int scrollX, int scrollY); + void onScrollChange(int dx, int dy, int scrollX, int scrollY); boolean onOpenLink(String url); }