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/ui/trends/SendCircleAdapter.java |  101 ++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 72 insertions(+), 29 deletions(-)

diff --git a/app/src/main/java/com/tejia/lijin/app/ui/trends/SendCircleAdapter.java b/app/src/main/java/com/tejia/lijin/app/ui/trends/SendCircleAdapter.java
index c0edbf9..45fff71 100644
--- a/app/src/main/java/com/tejia/lijin/app/ui/trends/SendCircleAdapter.java
+++ b/app/src/main/java/com/tejia/lijin/app/ui/trends/SendCircleAdapter.java
@@ -1,21 +1,15 @@
 package com.tejia.lijin.app.ui.trends;
 
 import android.app.Activity;
+import android.content.ClipboardManager;
 import android.content.Context;
 import android.content.Intent;
-import android.graphics.Paint;
+import android.graphics.Color;
 import android.graphics.Rect;
-
-import androidx.annotation.NonNull;
-import androidx.viewpager.widget.ViewPager;
-import androidx.recyclerview.widget.GridLayoutManager;
-import androidx.recyclerview.widget.RecyclerView;
-
+import android.graphics.drawable.Drawable;
+import android.text.Html;
 import android.text.Layout;
-import android.text.Spannable;
-import android.text.SpannableString;
-import android.text.Spanned;
-import android.text.style.RelativeSizeSpan;
+import android.text.method.LinkMovementMethod;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -32,13 +26,6 @@
 import com.nostra13.universalimageloader.core.ImageLoader;
 import com.nostra13.universalimageloader.core.assist.ImageScaleType;
 import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
-import com.tejia.lijin.app.ui.recommend.GoodsDetailActivity;
-import com.tejia.lijin.app.util.goods.GoodsDetailListUtil;
-import com.tejia.lijin.app.util.ui.GoodsRightViewHolder;
-import com.viewpagerindicator.CirclePageIndicator;
-import com.wpc.library.util.SystemCommon;
-import com.wpc.library.util.common.DimenUtils;
-import com.wpc.library.widget.RatioLayout;
 import com.tejia.lijin.app.R;
 import com.tejia.lijin.app.entity.HomeBanner;
 import com.tejia.lijin.app.entity.Label;
@@ -50,20 +37,33 @@
 import com.tejia.lijin.app.entity.trends.SendCircleImageGoods;
 import com.tejia.lijin.app.entity.trends.SendCircleUser;
 import com.tejia.lijin.app.ui.invite.ShareBrowserActivity;
+import com.tejia.lijin.app.ui.recommend.GoodsDetailActivity;
 import com.tejia.lijin.app.ui.recommend.RecommendTopAdapter2;
 import com.tejia.lijin.app.util.SetLabels;
 import com.tejia.lijin.app.util.downutil.StringUtils;
-import com.tejia.lijin.app.util.goods.GoodsDetailJumpUtil;
+import com.tejia.lijin.app.util.goods.GoodsDetailListUtil;
+import com.tejia.lijin.app.util.ui.GoodsRightViewHolder;
+import com.tejia.lijin.app.util.ui.TextViewUtil;
 import com.tejia.lijin.app.util.user.UserUtil;
+import com.viewpagerindicator.CirclePageIndicator;
+import com.wpc.library.util.SystemCommon;
+import com.wpc.library.util.common.DimenUtils;
+import com.wpc.library.widget.RatioLayout;
 
 import java.util.ArrayList;
 import java.util.List;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.viewpager.widget.ViewPager;
 
 /**
  * 鍙戝湀adapter
  */
 public class SendCircleAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
 
+    private static final String TAG = "SendCircleAdapter";
     private List<HomeBanner> mBannerList;
     private List<SendCircleContent> mContentList;
     private Activity mContext;
@@ -73,14 +73,30 @@
     private final int TYPE_BANNER = 1;
     private final int TYPE_CIRCLE_CONTENT = 2;
     private Integer maxImgHeight = null;
+    private TextViewUtil.URLClickListener mUrlClickListener;
 
     private DisplayImageOptions options;
 
+    private Html.ImageGetter imageGetter = new Html.ImageGetter() {
+        @Override
+        public Drawable getDrawable(String source) {
+            try {
+                int resId = mContext.getResources().getIdentifier(source, "drawable", mContext.getPackageName());
+                Drawable drawable = mContext.getResources().getDrawable(resId);
+                drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
+                return drawable;
+            } catch (Exception e) {
+                return null;
+            }
+        }
+    };
 
-    public SendCircleAdapter(Activity activity, List<HomeBanner> mBannerList, List<SendCircleContent> mContentList, AdapterEventActionListener actionListener) {
+
+    public SendCircleAdapter(Activity activity, List<HomeBanner> mBannerList, List<SendCircleContent> mContentList, AdapterEventActionListener actionListener, TextViewUtil.URLClickListener urlClickListener) {
         this.mContext = activity;
         this.mBannerList = mBannerList;
         this.mContentList = mContentList;
+        this.mUrlClickListener = urlClickListener;
         inflater = LayoutInflater.from(mContext);
         this.adapterEventActionListener = actionListener;
         this.options = new DisplayImageOptions.Builder()
@@ -242,8 +258,9 @@
             });
 
             circleContentHolder.tv_recommend.setMaxLines(6);
-            //鎺ㄨ崘璇祴鍊�
-            circleContentHolder.tv_recommend.setText(circleContent.getTitle());
+            circleContentHolder.tv_recommend.setMovementMethod(LinkMovementMethod.getInstance());
+            circleContentHolder.tv_recommend.setText(TextViewUtil.getClickableHtml(Html.fromHtml(circleContent.getTitle(), imageGetter, null), mContext, Color.parseColor("#586b95"), mUrlClickListener));
+
 
             circleContentHolder.tv_recommend.post(new Runnable() {
                 @Override
@@ -252,13 +269,24 @@
                     if (l != null) {
                         int lines = l.getLineCount();
                         if (lines > 0) {
-                            if (l.getEllipsisCount(lines - 1) > 0) {
+                            if (lines > circleContentHolder.tv_recommend.getMaxLines()) {
                                 circleContentHolder.iv_recommend_more.setVisibility(View.VISIBLE);
                             } else {
                                 circleContentHolder.iv_recommend_more.setVisibility(View.GONE);
                             }
                         }
                     }
+                }
+            });
+
+            circleContentHolder.tv_recommend.setOnLongClickListener(new View.OnLongClickListener() {
+                @Override
+                public boolean onLongClick(View v) {
+
+                    if (adapterEventActionListener != null)
+                        adapterEventActionListener.copyRecommendText(circleContent);
+
+                    return false;
                 }
             });
 
@@ -495,7 +523,7 @@
 
         public SendCircleContentAdapter(Context context, SendCircleContent content, int maxImgHeight, int maxImgWidth, CommentClickListener commentClickListener, ImgClickListener imgClickListener, int outPosition) {
             this.outPosition = outPosition;
-            options = new RequestOptions().skipMemoryCache(false).centerCrop().placeholder(R.drawable.ic_send_circle_default).diskCacheStrategy(DiskCacheStrategy.ALL).error(R.drawable.ic_send_circle_default);
+            options = new RequestOptions().skipMemoryCache(false).centerCrop().placeholder(R.color.send_circle_img_default_color).diskCacheStrategy(DiskCacheStrategy.ALL).error(R.color.send_circle_img_default_color);
             this.content = content;
             this.context = context;
             if (content.getImgList() != null)
@@ -732,11 +760,19 @@
                     holder.ll_tag.setVisibility(View.GONE);
                 }
 
+
+                holder.tv_content.setClickable(false);
                 if (StringUtils.isNullOrEmpty(comment.getContent())) {
                     holder.ll_content.setVisibility(View.GONE);
                 } else {
                     holder.ll_content.setVisibility(View.VISIBLE);
-                    holder.tv_content.setText(comment.getContent());
+                    String content = comment.getContent();
+
+                    holder.tv_content.setMovementMethod(LinkMovementMethod.getInstance());
+                    holder.tv_content.setFocusable(false);
+                    holder.tv_content.setClickable(false);
+                    holder.tv_content.setLongClickable(false);
+                    holder.tv_content.setText(TextViewUtil.getClickableHtml(Html.fromHtml(content, imageGetter, null), context, Color.parseColor("#586b95"), mUrlClickListener));
                 }
 
                 holder.tv_content.setMaxLines(6);
@@ -755,7 +791,7 @@
                         if (l != null) {
                             int lines = l.getLineCount();
                             if (lines > 0) {
-                                if (l.getEllipsisCount(lines - 1) > 0) {
+                                if (lines > holder.tv_content.getMaxLines()) {
                                     holder.iv_comment_more.setVisibility(View.VISIBLE);
 
                                 } else {
@@ -763,6 +799,14 @@
                                 }
                             }
                         }
+                    }
+                });
+
+                holder.tv_content.setOnLongClickListener(new View.OnLongClickListener() {
+                    @Override
+                    public boolean onLongClick(View v) {
+                        commentClickListener.onCopyClick(cposition);
+                        return false;
                     }
                 });
 
@@ -949,11 +993,10 @@
                 }
                 //鍒ゆ柇鏄惁涓烘渶鍚庝竴琛�
                 int currentRow = cposition / lineNum;
-                int totalRow=smallImageCount%lineNum==0?smallImageCount/lineNum:smallImageCount/lineNum+1;
-                if(currentRow+1==totalRow){
+                int totalRow = smallImageCount % lineNum == 0 ? smallImageCount / lineNum : smallImageCount / lineNum + 1;
+                if (currentRow + 1 == totalRow) {
                     outRect.bottom = space * 6;
                 }
-
 
 
             } else if (position < largeImgCount + smallImageCount + goodsCount) {

--
Gitblit v1.8.0