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 |  184 ++++++++++++++++++++++++---------------------
 1 files changed, 98 insertions(+), 86 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 0bfdb48..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,10 +26,6 @@
 import com.nostra13.universalimageloader.core.ImageLoader;
 import com.nostra13.universalimageloader.core.assist.ImageScaleType;
 import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
-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;
@@ -47,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;
@@ -70,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()
@@ -142,8 +161,9 @@
                 SendCircleImageGoods imageGoods = imageList.get(position).getGoods();
                 int goodsType = imageGoods.getGoodsType();
                 //璺宠浆鍟嗗搧璇︽儏
-                Intent intent = GoodsDetailJumpUtil.getGoodsDetailIntent(mContext, imageGoods.getGoodsType());
-                intent.putExtra("id", imageGoods.getGoodsId() + "");
+                Intent intent = new Intent(mContext, GoodsDetailActivity.class);
+                intent.putExtra("goodsId", imageGoods.getGoodsId());
+                intent.putExtra("goodsType", goodsType);
                 intent.putExtra("from", "faquan");
                 mContext.startActivity(intent);
             }
@@ -238,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
@@ -248,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;
                 }
             });
 
@@ -321,10 +353,10 @@
 
 
             if (circleContentHolder.rv_content.getItemDecorationCount() == 0) {
-                circleContentHolder.rv_content.addItemDecoration(new SpaceItemDecoration(largeImageCount, smallImageCount + invalidImageCount, goodsCount, commentCount, circleContent.getLineNum(), DimenUtils.dip2px(mContext, 2)));
+                circleContentHolder.rv_content.addItemDecoration(new SpaceItemDecoration(largeImageCount, smallImageCount + invalidImageCount, goodsCount, commentCount, circleContent.getLineNum(), DimenUtils.dip2px(mContext, 1)));
             } else {
                 SpaceItemDecoration spaceItemDecoration = (SpaceItemDecoration) circleContentHolder.rv_content.getItemDecorationAt(0);
-                spaceItemDecoration.initData(largeImageCount, smallImageCount + invalidImageCount, goodsCount, commentCount, circleContent.getLineNum(), DimenUtils.dip2px(mContext, 2));
+                spaceItemDecoration.initData(largeImageCount, smallImageCount + invalidImageCount, goodsCount, commentCount, circleContent.getLineNum(), DimenUtils.dip2px(mContext, 1));
             }
 
             if (maxImgHeight == null) {
@@ -491,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)
@@ -597,7 +629,7 @@
                     if (imgInfo.isLarge())
                         width = maxImgWidth;
                     else {
-                        width = (maxImgWidth - DimenUtils.dip2px(mContext, 2) * 8) / 3;
+                        width = (maxImgWidth - DimenUtils.dip2px(mContext, 2) * 3) / 3;
                     }
                     height = (int) (width * ratio);
                     params.width = width;
@@ -669,48 +701,11 @@
                 });
 
             } else if (holder1 instanceof GoodsViewHolder) {
+
+
                 GoodsViewHolder goodsViewHolder = (GoodsViewHolder) holder1;
-
-                final TaoBaoGoodsBrief info = goods;
-                String disCount;
-                if (info.isHasCoupon()) {
-                    goodsViewHolder.ll_coupon_bg.setVisibility(View.VISIBLE);
-                    disCount = "楼 " + info.getCouponPrice();
-                    goodsViewHolder.tv_coupon_price.setText("楼 " + info.getCouponInfo().getAmount());
-                } else {
-                    goodsViewHolder.ll_coupon_bg.setVisibility(View.GONE);
-                    disCount = "楼 " + info.getZkPrice();
-                }
-
-                if (info.getShopType() == 11) {//澶╃尗
-                    goodsViewHolder.iv_shop_type.setImageResource(R.drawable.ic_tmall);
-                } else if (info.getShopType() == 20 || info.getShopType() == 21) {
-                    goodsViewHolder.iv_shop_type.setImageResource(R.drawable.ic_jingdong);
-                } else if (info.getShopType() == 30) {
-                    goodsViewHolder.iv_shop_type.setImageResource(R.drawable.ic_pinduoduo);
-                } else {
-                    goodsViewHolder.iv_shop_type.setImageResource(R.drawable.icon);
-                }
-
-                int pos = disCount.indexOf(".");
-                Spannable span = new SpannableString(disCount);
-                span.setSpan(new RelativeSizeSpan(1.54f), 1, pos > 1 ? pos : disCount.length(),
-                        Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
-                goodsViewHolder.tv_price.setText(span);
-
-                goodsViewHolder.tv_sales_num.setText(info.getSalesType() == 1 ? "鏈堥攢 " + info.getSalesCount() :
-                        info.getSalesType() == 2 ? "2灏忔椂閿�閲� " + info.getSalesCount() : info.getSalesType() == 3 ?
-                                "浠婃棩閿�閲� " + info.getSalesCount() : "鎬婚攢閲� " + info.getSalesCount());
-
-
-                goodsViewHolder.tv_zkprice.setText("楼" + info.getZkPrice());
-                goodsViewHolder.tv_zkprice.setPaintFlags(goodsViewHolder.tv_zkprice.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
-
-                goodsViewHolder.tv_favourable.setBackgroundResource(R.drawable.shape_goods_list_price_fan);
-                goodsViewHolder.tv_favourable.setText(" 濂� " + info.getMoneyInfo().getShareMoney());
-                goodsViewHolder.tv_favourable.setVisibility(View.GONE);
-
-                if (info.getState() != 0) {
+                GoodsDetailListUtil.setGoodsDetail(context, content.getGoods(), goodsViewHolder.goodsRightViewHolder);
+                if (content.getGoods().getState() != 0) {
                     goodsViewHolder.view.setOnClickListener(null);
                     goodsViewHolder.iv_state_invalid.setVisibility(View.VISIBLE);
                 } else {
@@ -719,8 +714,9 @@
                         @Override
                         public void onClick(View v) {
                             //璺宠浆鍟嗗搧璇︽儏
-                            Intent intent = GoodsDetailJumpUtil.getGoodsDetailIntent(mContext, info.getGoodsType());
-                            intent.putExtra("id", info.getGoodsId());
+                            Intent intent = new Intent(mContext, GoodsDetailActivity.class);
+                            intent.putExtra("goodsId", content.getGoods().getGoodsId());
+                            intent.putExtra("goodsType", content.getGoods().getGoodsType());
                             intent.putExtra("from", "faquan");
                             mContext.startActivity(intent);
                         }
@@ -764,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);
@@ -787,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 {
@@ -795,6 +799,14 @@
                                 }
                             }
                         }
+                    }
+                });
+
+                holder.tv_content.setOnLongClickListener(new View.OnLongClickListener() {
+                    @Override
+                    public boolean onLongClick(View v) {
+                        commentClickListener.onCopyClick(cposition);
+                        return false;
                     }
                 });
 
@@ -917,23 +929,15 @@
 
         class GoodsViewHolder extends RecyclerView.ViewHolder {
             private View view;
-            //鍟嗗搧淇℃伅鎺т欢
-            private TextView tv_price, tv_zkprice, tv_sales_num, tv_coupon_price, tv_favourable;
-            private LinearLayout ll_coupon_bg;
+            private GoodsRightViewHolder goodsRightViewHolder;
             //杩囨湡鏍囪瘑
-            private ImageView iv_state_invalid, iv_shop_type;
+            private ImageView iv_state_invalid;
 
             public GoodsViewHolder(View view) {
                 super(view);
                 this.view = view;
-                tv_price = view.findViewById(R.id.tv_price);
-                tv_zkprice = view.findViewById(R.id.tv_zkprice);
-                tv_sales_num = view.findViewById(R.id.tv_sales_num);
-                tv_coupon_price = view.findViewById(R.id.tv_coupon_price1);
-                tv_favourable = view.findViewById(R.id.tv_favourable);
-                ll_coupon_bg = view.findViewById(R.id.ll_coupon_bg1);
                 iv_state_invalid = view.findViewById(R.id.iv_state_invalid);
-                iv_shop_type = view.findViewById(R.id.iv_shop_type);
+                goodsRightViewHolder = new GoodsRightViewHolder(view);
             }
         }
     }
@@ -968,7 +972,7 @@
         public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
             int position = parent.getChildLayoutPosition(view);
             if (position < largeImgCount) {
-                outRect.bottom = space * 3;
+                outRect.bottom = space * 6;
                 if (position == 0)
                     outRect.top = 0;
             } else if (position < largeImgCount + smallImageCount) {
@@ -987,14 +991,22 @@
                     outRect.left = space;
                     outRect.right = space;
                 }
+                //鍒ゆ柇鏄惁涓烘渶鍚庝竴琛�
+                int currentRow = cposition / lineNum;
+                int totalRow = smallImageCount % lineNum == 0 ? smallImageCount / lineNum : smallImageCount / lineNum + 1;
+                if (currentRow + 1 == totalRow) {
+                    outRect.bottom = space * 6;
+                }
+
+
             } else if (position < largeImgCount + smallImageCount + goodsCount) {
-                outRect.bottom = space;
+                outRect.bottom = space * 3;
                 outRect.top = 0;
                 outRect.left = 0;
                 outRect.right = 0;
             } else if (position < largeImgCount + smallImageCount + goodsCount + commentCount) {
-                outRect.bottom = space * 2;
-                outRect.top = space * 2;
+                outRect.bottom = space * 3;
+                outRect.top = space * 3;
                 int cposition = position - (largeImgCount + smallImageCount + goodsCount + commentCount);
                 if (cposition == 0 && goodsCount > 0)
                     outRect.top = 0;

--
Gitblit v1.8.0