From 11d7b2cb595a865077ca4a1ee0e12e2a3885c019 Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 3 Jun 2020 10:01:32 +0200 Subject: [PATCH] Mute refreshing after 45 seconds --- .../faircode/email/SwipeRefreshLayoutEx.java | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/SwipeRefreshLayoutEx.java b/app/src/main/java/eu/faircode/email/SwipeRefreshLayoutEx.java index 51ca7537ff..2290bf3663 100644 --- a/app/src/main/java/eu/faircode/email/SwipeRefreshLayoutEx.java +++ b/app/src/main/java/eu/faircode/email/SwipeRefreshLayoutEx.java @@ -27,8 +27,10 @@ import androidx.annotation.Nullable; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; public class SwipeRefreshLayoutEx extends SwipeRefreshLayout { + private boolean muted = false; private boolean refreshing = false; + private static final int DELAY_MUTE = 45 * 1000; // milliseconds private static final int DELAY_DISABLE = 1500; // milliseconds public SwipeRefreshLayoutEx(@NonNull Context context) { @@ -47,11 +49,17 @@ public class SwipeRefreshLayoutEx extends SwipeRefreshLayout { this.refreshing = refreshing; removeCallbacks(delayedDisable); + removeCallbacks(delayedMute); - if (refreshing) - super.setRefreshing(refreshing); - else + if (refreshing) { + if (!muted) { + super.setRefreshing(true); + postDelayed(delayedMute, DELAY_MUTE); + } + } else { + muted = false; postDelayed(delayedDisable, DELAY_DISABLE); + } } @Override @@ -60,8 +68,9 @@ public class SwipeRefreshLayoutEx extends SwipeRefreshLayout { } public void onRefresh() { + // User initiated this.refreshing = true; - setRefreshing(false); + setRefreshing(false); // disable, unless confirmed by folder update } public void resetRefreshing() { @@ -79,4 +88,14 @@ public class SwipeRefreshLayoutEx extends SwipeRefreshLayout { SwipeRefreshLayoutEx.super.setRefreshing(refreshing); } }; + + private final Runnable delayedMute = new Runnable() { + @Override + public void run() { + if (refreshing) { + muted = true; + SwipeRefreshLayoutEx.super.setRefreshing(false); + } + } + }; }