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