From 5c5792b9b1185174eb4dc0f16a5c0f8fba80fee7 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 16 Jun 2022 22:48:03 +0200 Subject: [PATCH] Fixed missing compose/answer button --- .../eu/faircode/email/AdapterMessage.java | 9 +++ .../eu/faircode/email/FragmentMessages.java | 58 +++++++++++++------ 2 files changed, 50 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 53f4d0741a..732c1ed9eb 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -950,6 +950,7 @@ public class AdapterMessage extends RecyclerView.Adapter 0 && rv.canScrollVertically(RecyclerView.FOCUS_DOWN)); + boolean down = (dy > 0 && rv.canScrollVertically(1)); if (scrolling != down) { scrolling = down; - if (!accessibility && - (viewType == AdapterMessage.ViewType.UNIFIED || - viewType == AdapterMessage.ViewType.FOLDER)) - if (down) - fabCompose.hide(); - else - fabCompose.show(); + updateCompose(); updateExpanded(); } } @@ -2126,11 +2130,6 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. } }); } - - if ("headers".equals(name)) { - scrolling = false; - updateExpanded(); - } } @Override @@ -2210,9 +2209,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. } } - if (value) - scrolling = false; - + scrolling = false; updateExpanded(); if (value) handleExpand(message.id); @@ -2412,6 +2409,24 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. }.execute(FragmentMessages.this, args, "message:lock"); } + @Override + public void layoutChanged() { + rvMessage.post(new Runnable() { + @Override + public void run() { + try { + if (scrolling && !rvMessage.canScrollVertically(-1)) { + scrolling = false; + updateCompose(); + updateExpanded(); + } + } catch (Throwable ex) { + Log.e(ex); + } + } + }); + } + @Override public void refresh() { rvMessage.post(new Runnable() { @@ -4437,7 +4452,6 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. positions.remove(id); attachments.remove(id); } - updateExpanded(); } } }); @@ -6570,6 +6584,16 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. return false; } + private void updateCompose() { + if (!accessibility && + (viewType == AdapterMessage.ViewType.UNIFIED || + viewType == AdapterMessage.ViewType.FOLDER)) + if (scrolling) + fabCompose.hide(); + else + fabCompose.show(); + } + private void updateExpanded() { if (!getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED)) return;