372 lines
16 KiB
Java
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);
|
|
}
|
|
}
|