Ver Fonte

新闻跳转来源

ltt há 1 ano atrás
pai
commit
e437d7347f

+ 50 - 32
TMessagesProj/src/main/java/org/telegram/cricdit/adapter/NewsAdapter.java

@@ -5,8 +5,10 @@ import static org.telegram.cricdit.utils.Base64Utils.base64ToBitmap;
 import android.annotation.SuppressLint;
 import android.app.Activity;
 import android.content.Context;
+import android.content.Intent;
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.GradientDrawable;
+import android.net.Uri;
 import android.os.Bundle;
 import android.text.Html;
 import android.text.TextUtils;
@@ -153,8 +155,37 @@ public class NewsAdapter extends RecyclerView.Adapter {
 
     private void onBindTop(NewsBean.NewsFeedBean bean, NewsAdapter.TopViewHolder mHolder, int position) {
         mHolder.tvTime.setText(TimeUtils.timeFromNow(mContext, Long.parseLong(bean.getPublishTime() + "000")));
-        String nickname = StringUtils.nameJudge(bean.getFirst_name(), bean.getLast_name());
-        mHolder.tvUserName.setText(!TextUtils.isEmpty(nickname) ? nickname : TextUtils.isEmpty(bean.getUserName()) ? "" : bean.getUserName());
+        mHolder.flowLayout.setVisibility(View.GONE);
+        if(bean.getTags().equals("Reddit") || bean.getTags().equals("Twitter")){
+            mHolder.tvUserName.setText(bean.getTags());
+            mHolder.tvUserName.setOnClickListener(view -> {
+                Intent intent = new Intent();
+                intent.setAction("android.intent.action.VIEW");
+                Uri content_url = Uri.parse(bean.getContent());
+                intent.setData(content_url);
+                fragment.getParentActivity().startActivity(intent);
+            });
+        }else{
+            String nickname = StringUtils.nameJudge(bean.getFirst_name(), bean.getLast_name());
+            mHolder.tvUserName.setText(!TextUtils.isEmpty(nickname) ? nickname : TextUtils.isEmpty(bean.getUserName()) ? "" : bean.getUserName());
+            String tags = bean.getTags();
+            if (!TextUtils.isEmpty(tags)) {
+                mHolder.flowLayout.setVisibility(View.VISIBLE);
+                String[] splitList = tags.split(",");
+                TagAdapter tagRecordAdapter = new TagAdapter<String>(new ArrayList<>(Arrays.asList(splitList))) {
+                    @Override
+                    public View getView(FlowLayout flowLayout, int i, String s) {
+                        TextView tv = (TextView) LayoutInflater.from(mContext).inflate(R.layout.item_tv, flowLayout, false);
+                        tv.setTextColor(ColorUtil.COLOR_BLUE_TEXT);
+                        tv.setText("#" + s + "#");
+                        return tv;
+                    }
+                };
+                mHolder.flowLayout.setAdapter(tagRecordAdapter);
+                tagRecordAdapter.notifyDataChanged();
+            }
+        }
+
         mHolder.tvTitle.setText(bean.getTitle());
         mHolder.tvContent.setText(Html.fromHtml(bean.getContent()));
         mHolder.ivSinger.setVisibility(View.GONE);
@@ -180,25 +211,6 @@ public class NewsAdapter extends RecyclerView.Adapter {
                     .into(mHolder.ivVideo);
         }
 
-        String tags = bean.getTags();
-        if (!TextUtils.isEmpty(tags)) {
-            mHolder.flowLayout.setVisibility(View.VISIBLE);
-            String[] splitList = tags.split(",");
-            TagAdapter tagRecordAdapter = new TagAdapter<String>(new ArrayList<>(Arrays.asList(splitList))) {
-                @Override
-                public View getView(FlowLayout flowLayout, int i, String s) {
-                    TextView tv = (TextView) LayoutInflater.from(mContext).inflate(R.layout.item_tv, flowLayout, false);
-                    tv.setTextColor(ColorUtil.COLOR_BLUE_TEXT);
-                    tv.setText("#" + s + "#");
-                    return tv;
-                }
-            };
-            mHolder.flowLayout.setAdapter(tagRecordAdapter);
-            tagRecordAdapter.notifyDataChanged();
-        } else {
-            mHolder.flowLayout.setVisibility(View.GONE);
-        }
-
         mHolder.flowLayout.setOnTagClickListener((view, p, parent) -> {
             NewsBean.NewsFeedBean myBean = mList.get(position);
             String tag = myBean.getTags();
@@ -228,11 +240,6 @@ public class NewsAdapter extends RecyclerView.Adapter {
         mHolder.itemView.setOnClickListener((v) -> {
             mOnItemClickListener.onItemClick(v, position, mList.get(position));
         });
-
-        mHolder.tvUserName.setOnClickListener(view1 -> {
-            //fixme ltt 跳转至机构发布的新闻列表
-
-        });
     }
 
     private void onBindNormal(NewsBean.NewsFeedBean bean, ViewHolder mHolder, int position) {
@@ -499,6 +506,19 @@ public class NewsAdapter extends RecyclerView.Adapter {
     }
 
     private void onBindShort(NewsBean.NewsFeedBean bean, NewsAdapter.ShortViewHolder mHolder, int position) {
+        if(bean.getTags().equals("Reddit") || bean.getTags().equals("Twitter")){
+            mHolder.tvUserName.setText(bean.getTags());
+            mHolder.tvUserName.setOnClickListener(view -> {
+                Intent intent = new Intent();
+                intent.setAction("android.intent.action.VIEW");
+                Uri content_url = Uri.parse(bean.getContent());
+                intent.setData(content_url);
+                fragment.getParentActivity().startActivity(intent);
+            });
+        }else{
+            String nickname = StringUtils.nameJudge(bean.getFirst_name(), bean.getLast_name());
+            mHolder.tvUserName.setText(!TextUtils.isEmpty(nickname) ? nickname : TextUtils.isEmpty(bean.getUserName()) ? "" : bean.getUserName());
+        }
         //评论数>=百万以百万为单位
         mHolder.tvMsgNum.setVisibility(bean.getCommentNum() > 0 ? View.VISIBLE : View.GONE);
         mHolder.ivHot.setVisibility(View.GONE);
@@ -510,29 +530,27 @@ public class NewsAdapter extends RecyclerView.Adapter {
         }
 
         mHolder.tvDate.setText(TimeUtils.timeFromNow(mContext, Long.parseLong(bean.getPublishTime() + "000")));
-        String nickname = StringUtils.nameJudge(bean.getFirst_name(), bean.getLast_name());
-        mHolder.tvUserName.setText(!TextUtils.isEmpty(nickname) ? nickname : TextUtils.isEmpty(bean.getUserName()) ? "" : bean.getUserName());
+
         String content = TextUtils.isEmpty(bean.getTitle()) ? bean.getContent() : bean.getTitle();
         mHolder.tvContent.setText(content);//(content.length() > 50) ? content.substring(0, 50) + "..." :
 
         String url = bean.getMedium();
         if (!TextUtils.isEmpty(url)) {
+            mHolder.ivRight.setVisibility(View.VISIBLE);
             String[] splitList = url.split(",");
             Glide.with(mContext).load(splitList.length <= 1 ? url : splitList[0])
                     .apply(requestOptions)
                     .placeholder(R.drawable.img_placeholder_short)
                     .error(R.drawable.img_placeholder_short)
                     .into(mHolder.ivRight);
+        }else{
+            mHolder.ivRight.setVisibility(View.GONE);
         }
 
         mHolder.itemView.setOnClickListener((v) -> {
             mOnItemClickListener.onItemClick(v, position, mList.get(position));
         });
 
-        mHolder.tvUserName.setOnClickListener(view1 -> {
-            //fixme ltt 跳转至机构发布的新闻列表
-
-        });
     }
 
     @Override

+ 8 - 3
TMessagesProj/src/main/res/layout/item_news_short.xml

@@ -31,7 +31,10 @@
             style="@style/TvNormalStyle"
             android:layout_width="65dp"
             android:layout_height="wrap_content"
+            android:layout_below="@id/tv_content"
             android:layout_alignBottom="@id/iv_right"
+            android:minHeight="30dp"
+            android:gravity="bottom"
             android:ellipsize="end"
             android:maxLines="1" />
 
@@ -40,12 +43,14 @@
             style="@style/TvDateStyle"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_alignBottom="@id/tv_user_name"
+            android:layout_below="@id/tv_content"
+            android:layout_alignBottom="@id/iv_right"
+            android:gravity="bottom|right"
+            android:minHeight="30dp"
             android:layout_marginLeft="5dp"
             android:layout_marginRight="8dp"
             android:layout_toLeftOf="@id/tv_msg_num"
-            android:layout_toRightOf="@id/tv_user_name"
-            android:gravity="right" />
+            android:layout_toRightOf="@id/tv_user_name"/>
 
         <TextView
             android:id="@+id/tv_msg_num"