From 15709d128f0b925dd7983a4d123095c2e858f644 Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 19 Jan 2024 20:14:58 +0100 Subject: [PATCH] Oops --- .../faircode/email/FixedConstraintLayout.java | 20 -------- .../email/FixedCoordinatorLayout.java | 20 -------- .../eu/faircode/email/FixedFrameLayout.java | 20 -------- .../eu/faircode/email/FixedLinearLayout.java | 20 -------- .../faircode/email/FixedNestedScrollView.java | 20 -------- .../eu/faircode/email/FixedRecyclerView.java | 50 +++++++++++++++++-- .../faircode/email/FixedRelativeLayout.java | 20 -------- .../java/eu/faircode/email/FixedView.java | 20 -------- 8 files changed, 46 insertions(+), 144 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FixedConstraintLayout.java b/app/src/main/java/eu/faircode/email/FixedConstraintLayout.java index 7cd72b589b..d8e36d932c 100644 --- a/app/src/main/java/eu/faircode/email/FixedConstraintLayout.java +++ b/app/src/main/java/eu/faircode/email/FixedConstraintLayout.java @@ -119,24 +119,4 @@ public class FixedConstraintLayout extends ConstraintLayout { return false; } } - - @Override - public boolean post(Runnable action) { - return super.post(new RunnableEx("post") { - @Override - protected void delegate() { - action.run(); - } - }); - } - - @Override - public boolean postDelayed(Runnable action, long delayMillis) { - return super.postDelayed(new RunnableEx("postDelayed") { - @Override - protected void delegate() { - action.run(); - } - }, delayMillis); - } } diff --git a/app/src/main/java/eu/faircode/email/FixedCoordinatorLayout.java b/app/src/main/java/eu/faircode/email/FixedCoordinatorLayout.java index 1cf2fc48a4..c43b40ad38 100644 --- a/app/src/main/java/eu/faircode/email/FixedCoordinatorLayout.java +++ b/app/src/main/java/eu/faircode/email/FixedCoordinatorLayout.java @@ -59,24 +59,4 @@ public class FixedCoordinatorLayout extends CoordinatorLayout { return false; } } - - @Override - public boolean post(Runnable action) { - return super.post(new RunnableEx("post") { - @Override - protected void delegate() { - action.run(); - } - }); - } - - @Override - public boolean postDelayed(Runnable action, long delayMillis) { - return super.postDelayed(new RunnableEx("postDelayed") { - @Override - protected void delegate() { - action.run(); - } - }, delayMillis); - } } diff --git a/app/src/main/java/eu/faircode/email/FixedFrameLayout.java b/app/src/main/java/eu/faircode/email/FixedFrameLayout.java index 3b2e4bd3fd..83dcda3910 100644 --- a/app/src/main/java/eu/faircode/email/FixedFrameLayout.java +++ b/app/src/main/java/eu/faircode/email/FixedFrameLayout.java @@ -72,24 +72,4 @@ public class FixedFrameLayout extends FrameLayout { return false; } } - - @Override - public boolean post(Runnable action) { - return super.post(new RunnableEx("post") { - @Override - protected void delegate() { - action.run(); - } - }); - } - - @Override - public boolean postDelayed(Runnable action, long delayMillis) { - return super.postDelayed(new RunnableEx("postDelayed") { - @Override - protected void delegate() { - action.run(); - } - }, delayMillis); - } } diff --git a/app/src/main/java/eu/faircode/email/FixedLinearLayout.java b/app/src/main/java/eu/faircode/email/FixedLinearLayout.java index ccba70996d..7f3405e3bf 100644 --- a/app/src/main/java/eu/faircode/email/FixedLinearLayout.java +++ b/app/src/main/java/eu/faircode/email/FixedLinearLayout.java @@ -52,24 +52,4 @@ public class FixedLinearLayout extends LinearLayout { return false; } } - - @Override - public boolean post(Runnable action) { - return super.post(new RunnableEx("post") { - @Override - protected void delegate() { - action.run(); - } - }); - } - - @Override - public boolean postDelayed(Runnable action, long delayMillis) { - return super.postDelayed(new RunnableEx("postDelayed") { - @Override - protected void delegate() { - action.run(); - } - }, delayMillis); - } } diff --git a/app/src/main/java/eu/faircode/email/FixedNestedScrollView.java b/app/src/main/java/eu/faircode/email/FixedNestedScrollView.java index e0b9e6c2b6..ba208d836e 100644 --- a/app/src/main/java/eu/faircode/email/FixedNestedScrollView.java +++ b/app/src/main/java/eu/faircode/email/FixedNestedScrollView.java @@ -47,24 +47,4 @@ public class FixedNestedScrollView extends NestedScrollView { Log.w(ex); } } - - @Override - public boolean post(Runnable action) { - return super.post(new RunnableEx("post") { - @Override - protected void delegate() { - action.run(); - } - }); - } - - @Override - public boolean postDelayed(Runnable action, long delayMillis) { - return super.postDelayed(new RunnableEx("postDelayed") { - @Override - protected void delegate() { - action.run(); - } - }, delayMillis); - } } diff --git a/app/src/main/java/eu/faircode/email/FixedRecyclerView.java b/app/src/main/java/eu/faircode/email/FixedRecyclerView.java index 20961f3f74..d9e0d8c6cc 100644 --- a/app/src/main/java/eu/faircode/email/FixedRecyclerView.java +++ b/app/src/main/java/eu/faircode/email/FixedRecyclerView.java @@ -32,6 +32,9 @@ import androidx.annotation.Nullable; import androidx.recyclerview.widget.FastScrollerEx; import androidx.recyclerview.widget.RecyclerView; +import java.util.Map; +import java.util.WeakHashMap; + public class FixedRecyclerView extends RecyclerView { public FixedRecyclerView(@NonNull Context context) { super(context); @@ -208,23 +211,62 @@ public class FixedRecyclerView extends RecyclerView { } } + private Map mapRunnable = new WeakHashMap<>(); + @Override public boolean post(Runnable action) { - return super.post(new RunnableEx("post") { + Runnable wrapped = new RunnableEx("post") { @Override protected void delegate() { action.run(); } - }); + }; + mapRunnable.put(action, wrapped); + return super.post(wrapped); } @Override public boolean postDelayed(Runnable action, long delayMillis) { - return super.postDelayed(new RunnableEx("postDelayed") { + Runnable wrapped = new RunnableEx("postDelayed") { + @Override + protected void delegate() { + action.run(); + } + }; + mapRunnable.put(action, wrapped); + return super.postDelayed(wrapped, delayMillis); + } + + @Override + public void postOnAnimation(Runnable action) { + Runnable wrapped = new RunnableEx("postOnAnimation") { @Override protected void delegate() { action.run(); } - }, delayMillis); + }; + mapRunnable.put(action, wrapped); + super.postOnAnimation(wrapped); + } + + @Override + public void postOnAnimationDelayed(Runnable action, long delayMillis) { + Runnable wrapped = new RunnableEx("postOnAnimationDelayed") { + @Override + protected void delegate() { + action.run(); + } + }; + mapRunnable.put(action, wrapped); + super.postOnAnimationDelayed(wrapped, delayMillis); + } + + @Override + public boolean removeCallbacks(Runnable action) { + Runnable wrapped = mapRunnable.get(action); + if (wrapped == null) + return super.removeCallbacks(action); + else + return super.removeCallbacks(wrapped); } } diff --git a/app/src/main/java/eu/faircode/email/FixedRelativeLayout.java b/app/src/main/java/eu/faircode/email/FixedRelativeLayout.java index eb517a4bd8..0ca756054b 100644 --- a/app/src/main/java/eu/faircode/email/FixedRelativeLayout.java +++ b/app/src/main/java/eu/faircode/email/FixedRelativeLayout.java @@ -50,24 +50,4 @@ public class FixedRelativeLayout extends RelativeLayout { return false; } } - - @Override - public boolean post(Runnable action) { - return super.post(new RunnableEx("post") { - @Override - protected void delegate() { - action.run(); - } - }); - } - - @Override - public boolean postDelayed(Runnable action, long delayMillis) { - return super.postDelayed(new RunnableEx("postDelayed") { - @Override - protected void delegate() { - action.run(); - } - }, delayMillis); - } } diff --git a/app/src/main/java/eu/faircode/email/FixedView.java b/app/src/main/java/eu/faircode/email/FixedView.java index b62d33f34b..c165cfdde2 100644 --- a/app/src/main/java/eu/faircode/email/FixedView.java +++ b/app/src/main/java/eu/faircode/email/FixedView.java @@ -53,24 +53,4 @@ public class FixedView extends View { return false; } } - - @Override - public boolean post(Runnable action) { - return super.post(new RunnableEx("post") { - @Override - protected void delegate() { - action.run(); - } - }); - } - - @Override - public boolean postDelayed(Runnable action, long delayMillis) { - return super.postDelayed(new RunnableEx("postDelayed") { - @Override - protected void delegate() { - action.run(); - } - }, delayMillis); - } }