From af7817a4a8ef5c4b3f6953ec4e9ca8f0bfba4984 Mon Sep 17 00:00:00 2001 From: Bruno Date: Sat, 1 Sep 2018 13:23:40 -0300 Subject: [PATCH 1/2] Enhancement issue #1862 Added on click to the "middle text" of a Notification item. --- .../notification/NotificationRenderer.java | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/notification/NotificationRenderer.java b/app/src/main/java/fr/free/nrw/commons/notification/NotificationRenderer.java index 1164d9d57f..27748cdf42 100644 --- a/app/src/main/java/fr/free/nrw/commons/notification/NotificationRenderer.java +++ b/app/src/main/java/fr/free/nrw/commons/notification/NotificationRenderer.java @@ -1,6 +1,12 @@ package fr.free.nrw.commons.notification; +import android.graphics.Color; +import android.graphics.drawable.PictureDrawable; import android.text.Html; +import android.text.SpannableString; +import android.text.Spanned; +import android.text.TextPaint; +import android.text.style.ClickableSpan; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -60,7 +66,25 @@ private void setTitle(String notificationText) { notificationText = notificationText.trim().replaceAll("(^\\h*)|(\\h*$)", ""); notificationText = Html.fromHtml(notificationText).toString(); notificationText = notificationText.concat(" "); - title.setText(notificationText); + + SpannableString ss = new SpannableString(notificationText); + ClickableSpan clickableSpan = new ClickableSpan() { + @Override + public void onClick(View view) { + listener.notificationClicked(getContent()); + } + + @Override + public void updateDrawState(TextPaint ds) { + super.updateDrawState(ds); + ds.setUnderlineText(false); + ds.setColor(Color.BLACK); + } + }; + + ss.setSpan(clickableSpan, 0, notificationText.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + title.setText(ss, TextView.BufferType.SPANNABLE); + } public interface NotificationClicked{ From bda89a0bdb877a7dc001a65808310470e21371d7 Mon Sep 17 00:00:00 2001 From: Bruno Date: Sat, 1 Sep 2018 15:57:27 -0300 Subject: [PATCH 2/2] Added comment #1862 Added comment to better explain method usage. --- .../fr/free/nrw/commons/notification/NotificationRenderer.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/notification/NotificationRenderer.java b/app/src/main/java/fr/free/nrw/commons/notification/NotificationRenderer.java index 27748cdf42..91362edad5 100644 --- a/app/src/main/java/fr/free/nrw/commons/notification/NotificationRenderer.java +++ b/app/src/main/java/fr/free/nrw/commons/notification/NotificationRenderer.java @@ -1,7 +1,6 @@ package fr.free.nrw.commons.notification; import android.graphics.Color; -import android.graphics.drawable.PictureDrawable; import android.text.Html; import android.text.SpannableString; import android.text.Spanned; @@ -82,9 +81,9 @@ public void updateDrawState(TextPaint ds) { } }; + // Attach a ClickableSpan to the range (start:0, end:notificationText.length()) of the String ss.setSpan(clickableSpan, 0, notificationText.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); title.setText(ss, TextView.BufferType.SPANNABLE); - } public interface NotificationClicked{