From 399ac289f80b7a40aa4210341db6b447cacdcf14 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 09 八月 2022 17:42:33 +0800
Subject: [PATCH] 广告升级,隐私政策整改

---
 app/src/main/java/com/tejia/lijin/app/util/ui/TextViewUtil.java |   56 ++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 48 insertions(+), 8 deletions(-)

diff --git a/app/src/main/java/com/tejia/lijin/app/util/ui/TextViewUtil.java b/app/src/main/java/com/tejia/lijin/app/util/ui/TextViewUtil.java
index 69bbf2f..e97557e 100644
--- a/app/src/main/java/com/tejia/lijin/app/util/ui/TextViewUtil.java
+++ b/app/src/main/java/com/tejia/lijin/app/util/ui/TextViewUtil.java
@@ -21,12 +21,40 @@
      * @param context
      * @return
      */
-    public static CharSequence getClickableHtml(String html, Context context,Integer  color) {
+    public static CharSequence getClickableHtml(String html, Context context, Integer color) {
         Spanned spannedHtml = Html.fromHtml(html);
         SpannableStringBuilder clickableHtmlBuilder = new SpannableStringBuilder(spannedHtml);
         URLSpan[] urls = clickableHtmlBuilder.getSpans(0, spannedHtml.length(), URLSpan.class);
         for (final URLSpan span : urls) {
-            setLinkClickable(clickableHtmlBuilder, span, context, color);
+            setLinkClickable(clickableHtmlBuilder, span, context, color, null);
+        }
+        return clickableHtmlBuilder;
+    }
+
+    public static CharSequence getClickableHtml(String html, Context context, Integer color, URLClickListener urlClickListener) {
+        Spanned spannedHtml = Html.fromHtml(html);
+        SpannableStringBuilder clickableHtmlBuilder = new SpannableStringBuilder(spannedHtml);
+        URLSpan[] urls = clickableHtmlBuilder.getSpans(0, spannedHtml.length(), URLSpan.class);
+        for (final URLSpan span : urls) {
+            setLinkClickable(clickableHtmlBuilder, span, context, color, urlClickListener);
+        }
+        return clickableHtmlBuilder;
+    }
+
+    public static CharSequence getClickableHtml(Spanned spannedHtml, Context context, Integer color) {
+        SpannableStringBuilder clickableHtmlBuilder = new SpannableStringBuilder(spannedHtml);
+        URLSpan[] urls = clickableHtmlBuilder.getSpans(0, spannedHtml.length(), URLSpan.class);
+        for (final URLSpan span : urls) {
+            setLinkClickable(clickableHtmlBuilder, span, context, color, null);
+        }
+        return clickableHtmlBuilder;
+    }
+
+    public static CharSequence getClickableHtml(Spanned spannedHtml, Context context, Integer color, URLClickListener urlClickListener) {
+        SpannableStringBuilder clickableHtmlBuilder = new SpannableStringBuilder(spannedHtml);
+        URLSpan[] urls = clickableHtmlBuilder.getSpans(0, spannedHtml.length(), URLSpan.class);
+        for (final URLSpan span : urls) {
+            setLinkClickable(clickableHtmlBuilder, span, context, color, urlClickListener);
         }
         return clickableHtmlBuilder;
     }
@@ -34,25 +62,37 @@
     /**
      * 璁剧疆鐐瑰嚮瓒呴摼鎺ュ搴旂殑澶勭悊鍐呭
      */
-    private static void setLinkClickable(final SpannableStringBuilder clickableHtmlBuilder, final URLSpan urlSpan, final Context context, final Integer linkColor) {
+    private static void setLinkClickable(final SpannableStringBuilder clickableHtmlBuilder, final URLSpan urlSpan, final Context context, final Integer linkColor, final URLClickListener urlClickListener) {
         int start = clickableHtmlBuilder.getSpanStart(urlSpan);
         int end = clickableHtmlBuilder.getSpanEnd(urlSpan);
         int flags = clickableHtmlBuilder.getSpanFlags(urlSpan);
 
-        ClickableSpan clickableSpan = new ClickableSpan() {
+        clickableHtmlBuilder.setSpan(new ClickableSpan() {
             public void onClick(View view) {
-                context.startActivity(new Intent(context, ShareBrowserActivity.class).putExtra("url", urlSpan.getURL()));
+                if (urlClickListener != null) {
+                    urlClickListener.onClick(urlSpan.getURL());
+                } else {
+                    context.startActivity(new Intent(context, ShareBrowserActivity.class).putExtra("url", urlSpan.getURL()));
+                }
             }
 
             public void updateDrawState(TextPaint ds) {
                 if (linkColor != null)
                     ds.setColor(linkColor);
-//                //璁剧疆鏄惁瑕佷笅鍒掔嚎
+                //璁剧疆鏄惁瑕佷笅鍒掔嚎
                 ds.setUnderlineText(false);
                 ds.clearShadowLayer();
             }
-        };
-        clickableHtmlBuilder.setSpan(clickableSpan, start, end, flags);
+        }, start, end, flags);
+        //闃叉鐐瑰嚮浜嬩欢涓嶅搷搴�
+        clickableHtmlBuilder.removeSpan(urlSpan);
+    }
+
+
+    public static interface URLClickListener {
+
+        public void onClick(String url);
+
     }
 
 }

--
Gitblit v1.8.0