test/common/src/main/java/com/yunbao/common/activity/CommunityDetailsActivity.java
2024-03-20 16:11:35 +08:00

372 lines
16 KiB
Java

package com.yunbao.common.activity;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.util.SparseArray;
import android.view.View;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.R;
import com.yunbao.common.adapter.CommentAdapter;
import com.yunbao.common.bean.ActiveBean;
import com.yunbao.common.bean.CommentBean;
import com.yunbao.common.dialog.ImagePreviewDialog;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.interfaces.CommonCallback;
import com.yunbao.common.manager.OpenAdManager;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.views.NineGridLayout;
import com.yunbao.common.views.TopGradual;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@Route(path = RouteUtil.PATH_COMMUNITY)
public class CommunityDetailsActivity extends AbsActivity {
private ActiveBean activeBean;
private String activeId;
private ImageView avatar;
private TextView name;
private TextView time;
private TextView content;
private LinearLayout followLayout;
private ImageView followIcon;
private TextView followName;
private NineGridLayout mNineGridLayout;
private ImageView videoImage;
private RecyclerView commentRecyclerView;
private CommentAdapter commentAdapter;
private TextView likeCount;
private ImageView userAvatar;
private ImageView like;
private TextView replyCount;
private EditText comment;
private ImageView send;
private boolean isComment = false;
private RelativeLayout videoLayout;
@Override
protected int getLayoutId() {
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
return R.layout.activity_community_details;
}
@Override
protected void create() {
super.create();
}
@Override
protected void onPause() {
super.onPause();
OpenAdManager.getInstance().dismiss();
}
@Override
protected void main() {
activeId = getIntent().getStringExtra(Constants.TO_COMMUNITY_ID);
initView();
initData();
}
private void initView() {
videoLayout = findViewById(R.id.videoLayout);
send = findViewById(R.id.send);
comment = findViewById(R.id.comment);
replyCount = findViewById(R.id.replyCount);
like = findViewById(R.id.like);
userAvatar = findViewById(R.id.userAvatar);
likeCount = findViewById(R.id.likeCount);
avatar = findViewById(R.id.avatar);
name = findViewById(R.id.name);
time = findViewById(R.id.time);
content = findViewById(R.id.content);
followLayout = findViewById(R.id.followLayout);
followIcon = findViewById(R.id.followIcon);
followName = findViewById(R.id.followName);
videoImage = findViewById(R.id.videoImage);
mNineGridLayout = findViewById(R.id.nine_grid_layout);
commentRecyclerView = findViewById(R.id.commentListView);
commentRecyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false));
commentRecyclerView.addItemDecoration(new TopGradual());
commentRecyclerView.setOverScrollMode(View.OVER_SCROLL_NEVER);
mNineGridLayout.setActionListener(new NineGridLayout.ActionListener() {
@Override
public void onItemClick(List<?> dataList, int position) {
ImagePreviewDialog dialog = new ImagePreviewDialog();
dialog.setImageInfo(dataList.size(), position, false, new ImagePreviewDialog.ActionListener() {
@Override
public void loadImage(ImageView imageView, int position) {
ImgLoader.display(mContext, (String) (dataList.get(position)), imageView);
}
@Override
public void onDeleteClick(int position) {
}
});
dialog.show(((AbsActivity) mContext).getSupportFragmentManager(), "ImagePreviewDialog");
}
@Override
public void displayImage(Object path, ImageView imageView) {
ImgLoader.display(CommunityDetailsActivity.this, String.valueOf(path), imageView);
}
});
followLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CommonHttpUtil.setAttention(activeBean.getUser_id(), new CommonCallback<Integer>() {
@Override
public void callback(Integer isAttention) {
if (isAttention == 1) {
ImgLoader.display(CommunityDetailsActivity.this, R.mipmap.icon_like_followed, followIcon);
followName.setText("已关注");
followName.setTextColor(Color.parseColor("#777777"));
followLayout.setBackground(getResources().getDrawable(R.drawable.bg_main_com_type_1));
} else {
ImgLoader.display(CommunityDetailsActivity.this, R.mipmap.icon_like_follow, followIcon);
followName.setText("关注");
followName.setTextColor(getResources().getColor(R.color.white));
followLayout.setBackground(getResources().getDrawable(R.drawable.bg_main_com_type));
}
}
});
}
});
like.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CommonHttpUtil.dynamicLove(activeBean.getId(), new HttpCallback() {
@SuppressLint("SetTextI18n")
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0) {
ToastUtil.show(msg);
if (activeBean.getIs_love().equals("1")) {
activeBean.setIs_love("0");
ImgLoader.display(CommunityDetailsActivity.this, R.mipmap.icon_like01, like);
likeCount.setText(Integer.parseInt(activeBean.getLove_num()) - 1 + "人觉得很赞");
} else {
activeBean.setIs_love("1");
ImgLoader.display(CommunityDetailsActivity.this, R.mipmap.icon_like, like);
likeCount.setText(Integer.parseInt(activeBean.getLove_num()) + 1 + "人觉得很赞");
}
}
}
});
}
});
findViewById(R.id.setting).setVisibility(View.VISIBLE);
findViewById(R.id.setting).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SparseArray<String> array = new SparseArray<>();
array.append(0, "举报");
array.append(1, "不感兴趣");
DialogUitl.showStringArrayDialog(CommunityDetailsActivity.this, array, new DialogUitl.StringArrayDialogCallback() {
@Override
public void onItemClick(String text, int tag) {
if (tag == 0) {
RouteUtil.forwardCommentReportActivity(activeBean.getId(), activeBean.getId());
} else {
CommonHttpUtil.noInterest(activeBean.getUser_id(), new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
ToastUtil.show(msg);
}
});
}
}
});
}
});
send.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CommonHttpUtil.dynamicReply(activeBean.getId(), isComment ? replyComment.getId() : "0", comment.getText().toString(), new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
comment.setText("");
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(comment, InputMethodManager.SHOW_FORCED);
imm.hideSoftInputFromWindow(comment.getWindowToken(), 0); //强制隐藏键盘
getReply();
}
});
}
});
comment.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
isComment = false;
}
});
findViewById(R.id.userLayout).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RouteUtil.forwardUserHome(activeBean.getUser_id());
}
});
videoLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
//回复评论
CommentBean replyComment;
private void getReply() {
CommonHttpUtil.getCommunityComment(activeBean.getId(), activeBean.getUser_id(), 1, new HttpCallback() {
@SuppressLint("SetTextI18n")
@Override
public void onSuccess(int code, String msg, String[] info) {
List<CommentBean> list = JSON.parseArray(Arrays.toString(info), CommentBean.class);
if (list != null) {
commentAdapter = new CommentAdapter(mContext, list, activeBean.getUser_id());
commentAdapter.setOnItemClickListener(new CommentAdapter.onItemClickListener() {
@Override
public void onReply(CommentBean commentBean) {
replyComment = commentBean;
isComment = true;
comment.requestFocus();
//键盘输入法管理器
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(comment, 0);
}
@Override
public void onReport(CommentBean commentBean) {
//一级回复 举报
RouteUtil.forwardCommentReportActivity(activeBean.getId(), commentBean.getId());
}
@Override
public void onDel(CommentBean activeBean) {
//一级回复 删除
CommonHttpUtil.delCom(activeBean.getId(), new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0) {
ToastUtil.show(msg);
getReply();
}
}
});
}
@Override
public void onReport(CommentBean.ReplyComment activeBean) {
//二级回复 举报
RouteUtil.forwardCommentReportActivity(activeBean.getId(), activeBean.getId());
}
@Override
public void onDel(CommentBean.ReplyComment activeBean) {
//二级回复 删除
CommonHttpUtil.delCom(activeBean.getId(), new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0) {
ToastUtil.show(msg);
getReply();
}
}
});
}
});
commentRecyclerView.setAdapter(commentAdapter);
replyCount.setText("评论 " + list.size());
}
}
});
}
@SuppressLint("UseCompatLoadingForDrawables")
private void initData() {
LiveNetManager.get(mContext).getDynamicInfo(activeId, new com.yunbao.common.http.base.HttpCallback<ActiveBean>() {
@Override
public void onSuccess(ActiveBean data) {
activeBean = data;
initInfo();
getReply();
}
@Override
public void onError(String error) {
}
});
}
private void initInfo() {
ImgLoader.display(CommunityDetailsActivity.this, CommonAppConfig.getInstance().getUserBean().getAvatarThumb(), userAvatar);
ImgLoader.display(CommunityDetailsActivity.this, activeBean.getUser_avatar(), avatar);
name.setText(activeBean.getUser_name());
time.setText(activeBean.getCreate_time());
likeCount.setText(activeBean.getLove_num() + "人觉得很赞");
if (!StringUtil.isEmpty(activeBean.getContent())) {
content.setText(String.valueOf(JSONObject.parseObject(activeBean.getContent()).get("msg")));
}
if (activeBean.getIs_attention().equals("1")) {//关注
ImgLoader.display(CommunityDetailsActivity.this, R.mipmap.icon_like_followed, followIcon);
followName.setText("已关注");
followName.setTextColor(Color.parseColor("#777777"));
followLayout.setBackground(getResources().getDrawable(R.drawable.bg_main_com_type_1));
} else {
ImgLoader.display(CommunityDetailsActivity.this, R.mipmap.icon_like_follow, followIcon);
followName.setText("关注");
followName.setTextColor(getResources().getColor(R.color.white));
followLayout.setBackground(getResources().getDrawable(R.drawable.bg_main_com_type));
}
if (activeBean.getImg_or_video().equals("1")) {//图片
JSONArray jsonArray = (JSONArray) JSONArray.parse(activeBean.getImg_json());
List<String> tempList = new ArrayList<>();
for (int i = 0; i < jsonArray.size(); i++) {
tempList.add(String.valueOf(jsonArray.get(i)));
}
mNineGridLayout.setData(tempList);
} else {
ImgLoader.display(CommunityDetailsActivity.this, activeBean.getVideo() + "?vframe/jpg/offset/0", videoImage);
videoLayout.setVisibility(View.VISIBLE);
}
if (activeBean.getIs_love().equals("1")) {
ImgLoader.display(CommunityDetailsActivity.this, R.mipmap.icon_like, like);
} else {
ImgLoader.display(CommunityDetailsActivity.this, R.mipmap.icon_like01, like);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
}
}