From 34589b593024999a48693e6ef5c6d70fc4ab8cbf Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 1 Feb 2020 10:15:05 +0100 Subject: [PATCH] Added image view hints --- .../java/eu/faircode/email/ViewImageHint.java | 60 +++++++++++++++++++ .../res/layout/include_message_addresses.xml | 6 +- 2 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/eu/faircode/email/ViewImageHint.java diff --git a/app/src/main/java/eu/faircode/email/ViewImageHint.java b/app/src/main/java/eu/faircode/email/ViewImageHint.java new file mode 100644 index 0000000000..69ad6c964c --- /dev/null +++ b/app/src/main/java/eu/faircode/email/ViewImageHint.java @@ -0,0 +1,60 @@ +package eu.faircode.email; + +import android.content.Context; +import android.text.TextUtils; +import android.util.AttributeSet; +import android.view.Gravity; +import android.view.View; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.widget.AppCompatImageView; + +public class ViewImageHint extends AppCompatImageView implements View.OnLongClickListener { + private OnLongClickListener listener; + + public ViewImageHint(@NonNull Context context) { + super(context); + setOnLongClickListener(this); + } + + public ViewImageHint(@NonNull Context context, @Nullable AttributeSet attrs) { + super(context, attrs); + setOnLongClickListener(this); + } + + public ViewImageHint(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + setOnLongClickListener(this); + } + + @Override + public void setOnLongClickListener(OnLongClickListener listener) { + if (listener == this) { + super.setOnLongClickListener(listener); + return; + } + + this.listener = listener; + } + + @Override + public boolean onLongClick(View v) { + if (listener == null || !listener.onLongClick(v)) { + String title = getContentDescription().toString(); + if (!TextUtils.isEmpty(title)) { + int[] pos = new int[2]; + getLocationInWindow(pos); + + Toast toast = ToastEx.makeText(getContext(), title, Toast.LENGTH_LONG); + toast.setGravity(Gravity.TOP | Gravity.START, pos[0], pos[1]); + toast.show(); + + return true; + } + } + + return false; + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/include_message_addresses.xml b/app/src/main/res/layout/include_message_addresses.xml index 56ce06aa94..c100e288e6 100644 --- a/app/src/main/res/layout/include_message_addresses.xml +++ b/app/src/main/res/layout/include_message_addresses.xml @@ -13,7 +13,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> - - -