From 53e74abbef0dd5cea6eeca9148e79f6c4c905791 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 16 Oct 2023 08:18:04 +0200 Subject: [PATCH] Contact swipe reveal icon --- .../eu/faircode/email/AdapterContact.java | 9 +++ .../eu/faircode/email/FragmentContacts.java | 55 +++++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/app/src/main/java/eu/faircode/email/AdapterContact.java b/app/src/main/java/eu/faircode/email/AdapterContact.java index e251cdce88..158fd18911 100644 --- a/app/src/main/java/eu/faircode/email/AdapterContact.java +++ b/app/src/main/java/eu/faircode/email/AdapterContact.java @@ -27,6 +27,7 @@ import android.content.Context; import android.content.Intent; import android.content.res.ColorStateList; import android.graphics.BitmapFactory; +import android.graphics.Rect; import android.graphics.Typeface; import android.net.Uri; import android.os.Build; @@ -112,6 +113,14 @@ public class AdapterContact extends RecyclerView.Adapter 0) { + // Right swipe + if (dX < half) + d.setAlpha(Math.round(255 * Math.min(dX / (2 * margin + size), 1.0f))); + else + d.setAlpha(Math.round(255 * (1.0f - (dX - half) / half))); + int padding = (rect.height() - size); + d.setBounds( + rect.left + margin, + rect.top + padding / 2, + rect.left + margin + size, + rect.top + padding / 2 + size); + d.draw(canvas); + } else if (dX < 0) { + // Left swipe + if (-dX < half) + d.setAlpha(Math.round(255 * Math.min(-dX / (2 * margin + size), 1.0f))); + else + d.setAlpha(Math.round(255 * (1.0f - (-dX - half) / half))); + int padding = (rect.height() - size); + d.setBounds( + rect.left + rect.width() - size - margin, + rect.top + padding / 2, + rect.left + rect.width() - margin, + rect.top + padding / 2 + size); + d.draw(canvas); + } + } + @Override public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) { try {