广场 逻辑优化补全
This commit is contained in:
@@ -39,7 +39,7 @@ arouterCompiler = "1.5.2"
|
|||||||
arouterApi = "1.5.2"
|
arouterApi = "1.5.2"
|
||||||
comSquareupRetrofit2Retrofit3 = "2.9.0"
|
comSquareupRetrofit2Retrofit3 = "2.9.0"
|
||||||
fastjson = "1.2.60"
|
fastjson = "1.2.60"
|
||||||
githubBaserecyclerviewadapterhelper = "2.9.30"
|
githubBaserecyclerviewadapterhelper = "2.9.50"
|
||||||
gsonVersion = "2.10.1"
|
gsonVersion = "2.10.1"
|
||||||
eventbusAnnotationProcessorVersion = "3.3.1"
|
eventbusAnnotationProcessorVersion = "3.3.1"
|
||||||
eventbusVersion = "3.3.1"
|
eventbusVersion = "3.3.1"
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package com.xscm.moduleutil;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
@EqualsAndHashCode(callSuper = false)
|
|
||||||
@Data
|
@Data
|
||||||
public class BaseEvent {
|
public class BaseEvent {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import static android.view.View.GONE;
|
|||||||
import static android.view.View.VISIBLE;
|
import static android.view.View.VISIBLE;
|
||||||
import static com.blankj.utilcode.util.ActivityUtils.startActivity;
|
import static com.blankj.utilcode.util.ActivityUtils.startActivity;
|
||||||
|
|
||||||
|
import android.os.Bundle;
|
||||||
import android.text.SpannableStringBuilder;
|
import android.text.SpannableStringBuilder;
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
import android.text.TextPaint;
|
import android.text.TextPaint;
|
||||||
@@ -43,14 +44,15 @@ public class CirleListAdapter extends BaseQuickAdapter<CircleListBean, BaseViewH
|
|||||||
super(R.layout.item_cirle_list);
|
super(R.layout.item_cirle_list);
|
||||||
this.mPageType = pageType;
|
this.mPageType = pageType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface OnItemClickListener {
|
public interface OnItemClickListener {
|
||||||
void onDianzanClick(CircleListBean item);
|
void onDianzanClick(int index,CircleListBean item);
|
||||||
|
|
||||||
void onHeadImageClick(CircleListBean item);
|
void onHeadImageClick(CircleListBean item);
|
||||||
|
|
||||||
void onZsClick(CircleListBean item);
|
void onZsClick(int idx,CircleListBean item);
|
||||||
|
|
||||||
void onDiandianClick(CircleListBean item);
|
void onMoreClick(int idx,CircleListBean item);
|
||||||
|
|
||||||
void onPinglunClick(CircleListBean item);
|
void onPinglunClick(CircleListBean item);
|
||||||
|
|
||||||
@@ -65,6 +67,46 @@ public class CirleListAdapter extends BaseQuickAdapter<CircleListBean, BaseViewH
|
|||||||
this.mListener = listener;
|
this.mListener = listener;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static final String PAYLOAD_LIKE = "like";
|
||||||
|
|
||||||
|
public void updateLikeStatusOnly(int position, int isLike) {
|
||||||
|
notifyItemChanged(position, PAYLOAD_LIKE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void convertPayloads(@NonNull BaseViewHolder helper, CircleListBean item, @NonNull List<Object> payloads) {
|
||||||
|
super.convertPayloads(helper, item, payloads);
|
||||||
|
if (payloads.isEmpty()) {
|
||||||
|
convert(helper, item);
|
||||||
|
} else {
|
||||||
|
Object payload = payloads.get(0);
|
||||||
|
if (payload instanceof Bundle) {
|
||||||
|
Bundle diff = (Bundle) payload;
|
||||||
|
if (diff.containsKey("like_num")) {
|
||||||
|
helper.setText(R.id.dy_fabulous, diff.getString("like_num"));
|
||||||
|
if (diff.containsKey("is_like")){
|
||||||
|
if (diff.getInt("is_like") == 1) {
|
||||||
|
helper.setImageResource(R.id.dianzan_image, R.mipmap.dongtai_hudong_yidianzan);
|
||||||
|
} else {
|
||||||
|
helper.setImageResource(R.id.dianzan_image, com.xscm.moduleutil.R.mipmap.dongtai_hudong_dianzan);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (diff.containsKey("comment_num")) {
|
||||||
|
helper.setText(R.id.dy_comment, diff.getString("comment_num"));
|
||||||
|
}
|
||||||
|
if (diff.containsKey("rewards_num")) {
|
||||||
|
double rewardNum = diff.getString("rewards_num") != null ? Double.parseDouble(item.getRewards_num()) : 0;
|
||||||
|
helper.setText(R.id.dy_zs, NumberFormatUtils.formatRewardNumber(rewardNum));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void convert(BaseViewHolder helper, CircleListBean item) {
|
protected void convert(BaseViewHolder helper, CircleListBean item) {
|
||||||
helper.addOnClickListener(com.xscm.moduleutil.R.id.dianzan)
|
helper.addOnClickListener(com.xscm.moduleutil.R.id.dianzan)
|
||||||
@@ -90,7 +132,7 @@ public class CirleListAdapter extends BaseQuickAdapter<CircleListBean, BaseViewH
|
|||||||
// 设置点击回调
|
// 设置点击回调
|
||||||
helper.getView(com.xscm.moduleutil.R.id.dianzan).setOnClickListener(v -> {
|
helper.getView(com.xscm.moduleutil.R.id.dianzan).setOnClickListener(v -> {
|
||||||
if (mListener != null) {
|
if (mListener != null) {
|
||||||
mListener.onDianzanClick(item);
|
mListener.onDianzanClick(helper.getPosition(),item);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -99,11 +141,11 @@ public class CirleListAdapter extends BaseQuickAdapter<CircleListBean, BaseViewH
|
|||||||
});
|
});
|
||||||
|
|
||||||
helper.getView(com.xscm.moduleutil.R.id.zs).setOnClickListener(v -> {
|
helper.getView(com.xscm.moduleutil.R.id.zs).setOnClickListener(v -> {
|
||||||
if (mListener != null) mListener.onZsClick(item);
|
if (mListener != null) mListener.onZsClick(helper.getPosition(),item);
|
||||||
});
|
});
|
||||||
|
|
||||||
helper.getView(R.id.diandian).setOnClickListener(v -> {
|
helper.getView(R.id.diandian).setOnClickListener(v -> {
|
||||||
if (mListener != null) mListener.onDiandianClick(item);
|
if (mListener != null) mListener.onMoreClick(helper.getPosition(),item);
|
||||||
});
|
});
|
||||||
|
|
||||||
helper.getView(R.id.pinglun).setOnClickListener(v -> {
|
helper.getView(R.id.pinglun).setOnClickListener(v -> {
|
||||||
@@ -206,10 +248,8 @@ public class CirleListAdapter extends BaseQuickAdapter<CircleListBean, BaseViewH
|
|||||||
|
|
||||||
if (item.getIs_like() == 1) {
|
if (item.getIs_like() == 1) {
|
||||||
helper.setImageResource(R.id.dianzan_image, R.mipmap.dongtai_hudong_yidianzan);
|
helper.setImageResource(R.id.dianzan_image, R.mipmap.dongtai_hudong_yidianzan);
|
||||||
// helper.setText(R.id.dy_fabulous, String.valueOf(Integer.parseInt(item.getLike_num()) + 1));
|
|
||||||
} else {
|
} else {
|
||||||
helper.setImageResource(R.id.dianzan_image, com.xscm.moduleutil.R.mipmap.dongtai_hudong_dianzan);
|
helper.setImageResource(R.id.dianzan_image, com.xscm.moduleutil.R.mipmap.dongtai_hudong_dianzan);
|
||||||
// helper.setText(R.id.dy_fabulous, item.getLike_num());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
helper.setText(R.id.dy_fabulous, item.getLike_num());
|
helper.setText(R.id.dy_fabulous, item.getLike_num());
|
||||||
@@ -251,7 +291,6 @@ public class CirleListAdapter extends BaseQuickAdapter<CircleListBean, BaseViewH
|
|||||||
String[] arrIv = item.getImages().split(",");
|
String[] arrIv = item.getImages().split(",");
|
||||||
OneImageYuanJiaoAdapter oneImageYuanJiaoAdapter = new OneImageYuanJiaoAdapter(mContext);
|
OneImageYuanJiaoAdapter oneImageYuanJiaoAdapter = new OneImageYuanJiaoAdapter(mContext);
|
||||||
MyGridView recyclerView = helper.getView(R.id.dy_image_recyc);
|
MyGridView recyclerView = helper.getView(R.id.dy_image_recyc);
|
||||||
recyclerView.setNumColumns(3);
|
|
||||||
recyclerView.setAdapter(oneImageYuanJiaoAdapter);
|
recyclerView.setAdapter(oneImageYuanJiaoAdapter);
|
||||||
oneImageYuanJiaoAdapter.getList_adapter().clear();
|
oneImageYuanJiaoAdapter.getList_adapter().clear();
|
||||||
|
|
||||||
@@ -281,32 +320,6 @@ public class CirleListAdapter extends BaseQuickAdapter<CircleListBean, BaseViewH
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
public static final String PAYLOAD_LIKE = "like";
|
|
||||||
|
|
||||||
public void updateLikeStatusOnly(int position, int isLike) {
|
|
||||||
notifyItemChanged(position, PAYLOAD_LIKE);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBindViewHolder(@NonNull BaseViewHolder holder, int position, @NonNull List<Object> payloads) {
|
|
||||||
if (payloads.isEmpty()) {
|
|
||||||
onBindViewHolder(holder, position); // 全量绑定
|
|
||||||
} else {
|
|
||||||
for (Object payload : payloads) {
|
|
||||||
if (payload.equals(PAYLOAD_LIKE)) {
|
|
||||||
CircleListBean item = getData().get(position);
|
|
||||||
if (item.getIs_like() == 1) {
|
|
||||||
holder.setImageResource(R.id.dianzan_image, R.mipmap.dongtai_hudong_yidianzan);
|
|
||||||
holder.setText(R.id.dy_fabulous, String.valueOf(Integer.parseInt(item.getLike_num()) + 1));
|
|
||||||
} else {
|
|
||||||
holder.setImageResource(R.id.dianzan_image, com.xscm.moduleutil.R.mipmap.dongtai_hudong_dianzan);
|
|
||||||
holder.setText(R.id.dy_fabulous, item.getLike_num());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -109,16 +109,6 @@ public class GiftTwoDetailsFragment extends BaseMvpFragment<RewardGiftPresenter,
|
|||||||
if (type==0){
|
if (type==0){
|
||||||
MvpPre.getGiftList("0", type, roomId);
|
MvpPre.getGiftList("0", type, roomId);
|
||||||
}
|
}
|
||||||
// if (id.equals("0")) {
|
|
||||||
// MvpPre.giftPack();
|
|
||||||
// } else {
|
|
||||||
// if (type == 0) {
|
|
||||||
// MvpPre.getGiftList("0", type, roomId);
|
|
||||||
// } else {
|
|
||||||
// MvpPre.getGiftList(id, type, roomId);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -207,8 +197,6 @@ public class GiftTwoDetailsFragment extends BaseMvpFragment<RewardGiftPresenter,
|
|||||||
giftPackList.addAll(giftPackBean);
|
giftPackList.addAll(giftPackBean);
|
||||||
pageCount = (int) Math.ceil(giftPackBean.size() * 1.0 / pageSize);
|
pageCount = (int) Math.ceil(giftPackBean.size() * 1.0 / pageSize);
|
||||||
for (int j = 0; j < pageCount; j++) {
|
for (int j = 0; j < pageCount; j++) {
|
||||||
// mAdapter = new GiftTwoAdapter(getActivity(), data, j, "0");
|
|
||||||
// mBinding.rvGift.setAdapter(mAdapter);
|
|
||||||
packAdapter = new GiftPackAdapter(getActivity(), giftPackBean, j, "0");
|
packAdapter = new GiftPackAdapter(getActivity(), giftPackBean, j, "0");
|
||||||
mBinding.rvGift.setAdapter(packAdapter);
|
mBinding.rvGift.setAdapter(packAdapter);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,32 +14,10 @@ import com.xscm.moduleutil.utils.ImageUtils;
|
|||||||
|
|
||||||
public class OneImageYuanJiaoAdapter extends MyBaseAdapter<String> {
|
public class OneImageYuanJiaoAdapter extends MyBaseAdapter<String> {
|
||||||
private Context context;
|
private Context context;
|
||||||
|
|
||||||
// public OneImageYuanJiaoAdapter(Context context) {
|
|
||||||
// this.context = context;
|
|
||||||
// }
|
|
||||||
|
|
||||||
public OneImageYuanJiaoAdapter(Context context) {
|
public OneImageYuanJiaoAdapter(Context context) {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// @Override
|
|
||||||
// protected void convert(BaseViewHolder helper, String item) {
|
|
||||||
// helper.addOnClickListener(R.id.fiv);
|
|
||||||
//
|
|
||||||
// helper.setVisible(R.id.ll_del, false);
|
|
||||||
// QMUIRadiusImageView image = helper.getView(R.id.fiv);
|
|
||||||
// RequestOptions options = new RequestOptions()
|
|
||||||
// .centerCrop()
|
|
||||||
// .placeholder(R.color.white)
|
|
||||||
// .diskCacheStrategy(DiskCacheStrategy.ALL);
|
|
||||||
// Glide.with(mContext)
|
|
||||||
// .load(item)
|
|
||||||
// .apply(options)
|
|
||||||
// .into(image);
|
|
||||||
// }
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View getView(int position, View convertView, ViewGroup parent) {
|
public View getView(int position, View convertView, ViewGroup parent) {
|
||||||
ViewHolder VH;
|
ViewHolder VH;
|
||||||
@@ -53,10 +31,8 @@ public class OneImageYuanJiaoAdapter extends MyBaseAdapter<String> {
|
|||||||
VH.iv_del.setVisibility(View.GONE);
|
VH.iv_del.setVisibility(View.GONE);
|
||||||
|
|
||||||
if (!TextUtils.isEmpty(list_adapter.get(position))) {
|
if (!TextUtils.isEmpty(list_adapter.get(position))) {
|
||||||
|
|
||||||
ImageUtils.loadHeadCC(list_adapter.get(position),VH.tv_title);
|
ImageUtils.loadHeadCC(list_adapter.get(position),VH.tv_title);
|
||||||
}
|
}
|
||||||
//
|
|
||||||
return convertView;
|
return convertView;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -64,27 +40,10 @@ public class OneImageYuanJiaoAdapter extends MyBaseAdapter<String> {
|
|||||||
public static class ViewHolder {
|
public static class ViewHolder {
|
||||||
RoundedImageView tv_title;
|
RoundedImageView tv_title;
|
||||||
ImageView iv_del;
|
ImageView iv_del;
|
||||||
RelativeLayout layoutImg;
|
|
||||||
|
|
||||||
public ViewHolder(View convertView) {
|
public ViewHolder(View convertView) {
|
||||||
tv_title = convertView.findViewById(R.id.fiv);
|
tv_title = convertView.findViewById(R.id.fiv);
|
||||||
iv_del = convertView.findViewById(R.id.iv_del);
|
iv_del = convertView.findViewById(R.id.iv_del);
|
||||||
// layoutImg = convertView.findViewById(R.id.layout_img);
|
|
||||||
//
|
|
||||||
// int screenWidth = QMUIDisplayHelper.getScreenWidth(BaseApplication.mApplication) - QMUIDisplayHelper.dp2px(BaseApplication.mApplication, 24);
|
|
||||||
//
|
|
||||||
// int imgWidth = screenWidth*1/3-QMUIDisplayHelper.dp2px(BaseApplication.mApplication, 10);
|
|
||||||
//
|
|
||||||
// RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) layoutImg.getLayoutParams();
|
|
||||||
// params.width = imgWidth;
|
|
||||||
// params.height = imgWidth;
|
|
||||||
// layoutImg.setLayoutParams(params);
|
|
||||||
//
|
|
||||||
// params = (RelativeLayout.LayoutParams) tv_title.getLayoutParams();
|
|
||||||
// params.width = imgWidth;
|
|
||||||
// params.height = imgWidth;
|
|
||||||
// tv_title.setLayoutParams(params);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -786,32 +786,6 @@ public class CommonAppContext extends MultiDexApplication implements Applicatio
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//static 代码段可以防止内存泄露
|
|
||||||
static {
|
|
||||||
//设置全局的Header构建器
|
|
||||||
SmartRefreshLayout.setDefaultRefreshHeaderCreator(new DefaultRefreshHeaderCreator() {
|
|
||||||
@Override
|
|
||||||
public RefreshHeader createRefreshHeader(Context context, RefreshLayout layout) {
|
|
||||||
ClassicsHeader header = new ClassicsHeader(context);
|
|
||||||
header.setDrawableSize(20);
|
|
||||||
header.setFinishDuration(0);
|
|
||||||
return header;//.setTimeFormat(new DynamicTimeFormat("更新于 %s"));//指定为经典Header,默认是 贝塞尔雷达Header
|
|
||||||
// return new CustomRefreshHeader(context);//.setTimeFormat(new DynamicTimeFormat("更新于 %s"));//指定为经典Header,默认是 贝塞尔雷达Header
|
|
||||||
}
|
|
||||||
});
|
|
||||||
//设置全局的Footer构建器
|
|
||||||
SmartRefreshLayout.setDefaultRefreshFooterCreator(new DefaultRefreshFooterCreator() {
|
|
||||||
@Override
|
|
||||||
public RefreshFooter createRefreshFooter(Context context, RefreshLayout layout) {
|
|
||||||
ClassicsFooter classicsFooter = new ClassicsFooter(context);
|
|
||||||
classicsFooter.setDrawableSize(20);
|
|
||||||
classicsFooter.setFinishDuration(0);
|
|
||||||
//指定为经典Footer,默认是 BallPulseFooter
|
|
||||||
return classicsFooter;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onActivityCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState) {
|
public void onActivityCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState) {
|
||||||
|
|
||||||
|
|||||||
@@ -11,28 +11,28 @@ import lombok.Data;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class CircleListBean {
|
public class CircleListBean {
|
||||||
private int id;//语圈ID
|
public int id;//语圈ID
|
||||||
private int user_id;//用户ID
|
public int user_id;//用户ID
|
||||||
private String nickname;//用户昵称
|
public String nickname;//用户昵称
|
||||||
private String avatar;//用户头像
|
public String avatar;//用户头像
|
||||||
private int is_like;//我是否点赞(0没有,1点赞)
|
public int is_like;//我是否点赞(0没有,1点赞)
|
||||||
private int sex;//性别 1男2女
|
public int sex;//性别 1男2女
|
||||||
private String content;//内容
|
public String content;//内容
|
||||||
private String like_num;//点赞数
|
public String like_num;//点赞数
|
||||||
private String rewards_num; //打赏金额
|
public String rewards_num; //打赏金额
|
||||||
private String is_room;//作者是否在房间中(1在,0不在)
|
public String is_room;//作者是否在房间中(1在,0不在)
|
||||||
private String room_id;//作者所在房间ID (is_room =0 此值小于0 )
|
public String room_id;//作者所在房间ID (is_room =0 此值小于0 )
|
||||||
private String comment_num;//评论数
|
public String comment_num;//评论数
|
||||||
private int is_recommend;//1非推荐2推荐
|
public int is_recommend;//1非推荐2推荐
|
||||||
private String ip;//活跃地址
|
public String ip;//活跃地址
|
||||||
private String images;////图片 JSON字符串 封面获取第一张
|
public String images;////图片 JSON字符串 封面获取第一张
|
||||||
private String createtime;//时间
|
public String createtime;//时间
|
||||||
private String topic_id;
|
public String topic_id;
|
||||||
private String share_url;
|
public String share_url;
|
||||||
private List<HeatedBean> title;//话题列表
|
public List<HeatedBean> title;//话题列表
|
||||||
|
|
||||||
private String read_num;//阅读数
|
public String read_num;//阅读数
|
||||||
private List<LikeList> like_list;
|
public List<LikeList> like_list;
|
||||||
|
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
|||||||
@@ -5,11 +5,14 @@ import com.xscm.moduleutil.BaseEvent;
|
|||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*@author qx
|
*@author qx
|
||||||
*@data 2025/7/10
|
*@data 2025/7/10
|
||||||
*@description:发布头条需要的参数
|
*@description:发布头条需要的参数
|
||||||
*/
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
public class HeadlineBean extends BaseEvent implements Serializable {
|
public class HeadlineBean extends BaseEvent implements Serializable {
|
||||||
private String countdown;
|
private String countdown;
|
||||||
|
|||||||
@@ -3,9 +3,11 @@ package com.xscm.moduleutil.bean;
|
|||||||
import com.xscm.moduleutil.BaseEvent;
|
import com.xscm.moduleutil.BaseEvent;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
public class MqttXlhEnd extends BaseEvent implements Serializable {
|
public class MqttXlhEnd extends BaseEvent implements Serializable {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|||||||
@@ -4,7 +4,9 @@ package com.xscm.moduleutil.bean.room;
|
|||||||
import com.xscm.moduleutil.BaseEvent;
|
import com.xscm.moduleutil.BaseEvent;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
public class RoomUpPitBean extends BaseEvent {
|
public class RoomUpPitBean extends BaseEvent {
|
||||||
private String id;
|
private String id;
|
||||||
|
|||||||
@@ -0,0 +1,72 @@
|
|||||||
|
package com.xscm.moduleutil.diff
|
||||||
|
|
||||||
|
import android.os.Bundle
|
||||||
|
import androidx.recyclerview.widget.DiffUtil
|
||||||
|
import com.xscm.moduleutil.bean.CircleListBean
|
||||||
|
|
||||||
|
|
||||||
|
class CircleListDiffCallback(
|
||||||
|
private val oldList: List<CircleListBean>?,
|
||||||
|
private val newList: List<CircleListBean>?
|
||||||
|
) :
|
||||||
|
DiffUtil.Callback() {
|
||||||
|
override fun getOldListSize(): Int {
|
||||||
|
return oldList?.size ?: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getNewListSize(): Int {
|
||||||
|
return newList?.size ?: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun areItemsTheSame(oldItemPosition: Int, newItemPosition: Int): Boolean {
|
||||||
|
return oldList!![oldItemPosition].id == newList!![newItemPosition].id
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun areContentsTheSame(oldItemPosition: Int, newItemPosition: Int): Boolean {
|
||||||
|
val oldItem = oldList!![oldItemPosition]
|
||||||
|
val newItem = newList!![newItemPosition]
|
||||||
|
|
||||||
|
// 判断核心数据是否一致(排除动态字段)
|
||||||
|
if (!equalsStr(oldItem.nickname, newItem.nickname)) return false
|
||||||
|
if (!equalsStr(oldItem.avatar, newItem.avatar)) return false
|
||||||
|
if (!equalsStr(oldItem.content, newItem.content)) return false
|
||||||
|
if (oldItem.is_like != newItem.is_like) return false
|
||||||
|
if (oldItem.sex != newItem.sex) return false
|
||||||
|
if (!equalsStr(oldItem.images, newItem.images)) return false
|
||||||
|
|
||||||
|
// 动态字段不参与整体比较(让 getChangePayload 控制)
|
||||||
|
return equalsStr(oldItem.rewards_num, newItem.rewards_num)
|
||||||
|
&& equalsStr(oldItem.like_num, newItem.like_num)
|
||||||
|
&& equalsStr(oldItem.comment_num, newItem.comment_num)
|
||||||
|
// && equalsStr(oldItem.read_num, newItem.read_num)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getChangePayload(oldItemPosition: Int, newItemPosition: Int): Any? {
|
||||||
|
val oldItem = oldList!![oldItemPosition]
|
||||||
|
val newItem = newList!![newItemPosition]
|
||||||
|
|
||||||
|
val diff = Bundle()
|
||||||
|
|
||||||
|
if (!equalsStr(oldItem.rewards_num, newItem.rewards_num)) {
|
||||||
|
diff.putString("rewards_num", newItem.rewards_num)
|
||||||
|
}
|
||||||
|
if (!equalsStr(oldItem.like_num, newItem.like_num)) {
|
||||||
|
diff.putString("like_num", newItem.like_num)
|
||||||
|
diff.putInt("is_like",newItem.is_like)
|
||||||
|
}
|
||||||
|
if (!equalsStr(oldItem.comment_num, newItem.comment_num)) {
|
||||||
|
diff.putString("comment_num", newItem.comment_num)
|
||||||
|
}
|
||||||
|
// if (!equalsStr(oldItem.read_num, newItem.read_num)) {
|
||||||
|
// diff.putString("read_num", newItem.read_num)
|
||||||
|
// }
|
||||||
|
|
||||||
|
return if (diff.size() == 0) null else diff
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun equalsStr(a: String?, b: String?): Boolean {
|
||||||
|
if (a == null && b == null) return true
|
||||||
|
if (a == null || b == null) return false
|
||||||
|
return a == b
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,7 +3,9 @@ package com.xscm.moduleutil.event;
|
|||||||
import com.xscm.moduleutil.BaseEvent;
|
import com.xscm.moduleutil.BaseEvent;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
public class CabinEvent extends BaseEvent {
|
public class CabinEvent extends BaseEvent {
|
||||||
private boolean joined;
|
private boolean joined;
|
||||||
|
|||||||
@@ -4,12 +4,14 @@ import com.xscm.moduleutil.BaseEvent;
|
|||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
/**
|
/**
|
||||||
*@author qx
|
*@author qx
|
||||||
*@data 2025/6/23
|
*@data 2025/6/23
|
||||||
*@description: 特效设置
|
*@description: 特效设置
|
||||||
*/
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.xscm.moduleutil.BaseEvent;
|
|||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -11,6 +12,7 @@ import lombok.NoArgsConstructor;
|
|||||||
*@data 2025/9/22
|
*@data 2025/9/22
|
||||||
*@description: 关闭飘屏
|
*@description: 关闭飘屏
|
||||||
*/
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
|||||||
@@ -3,12 +3,14 @@ package com.xscm.moduleutil.event;
|
|||||||
import com.xscm.moduleutil.BaseEvent;
|
import com.xscm.moduleutil.BaseEvent;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author lxj$
|
* @Author lxj$
|
||||||
* @Time 2025年7月30日01:35:52$ $
|
* @Time 2025年7月30日01:35:52$ $
|
||||||
* @Description 打赏成功$
|
* @Description 打赏成功$
|
||||||
*/
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
public class GiftRewardEvent extends BaseEvent {
|
public class GiftRewardEvent extends BaseEvent {
|
||||||
private int points;
|
private int points;
|
||||||
|
|||||||
@@ -3,12 +3,14 @@ package com.xscm.moduleutil.event;
|
|||||||
import com.xscm.moduleutil.BaseEvent;
|
import com.xscm.moduleutil.BaseEvent;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 小时榜飘屏
|
* 小时榜飘屏
|
||||||
*/
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
public class HourlyBean extends BaseEvent implements Serializable {
|
public class HourlyBean extends BaseEvent implements Serializable {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|||||||
@@ -13,12 +13,14 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author lxj$
|
* @Author lxj$
|
||||||
* @Time $ $
|
* @Time $ $
|
||||||
* @Description 从声望获取到的参数$
|
* @Description 从声望获取到的参数$
|
||||||
*/
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
public class MqttBean extends BaseEvent {
|
public class MqttBean extends BaseEvent {
|
||||||
private String room_id;
|
private String room_id;
|
||||||
|
|||||||
@@ -3,11 +3,14 @@ package com.xscm.moduleutil.event;
|
|||||||
import com.xscm.moduleutil.BaseEvent;
|
import com.xscm.moduleutil.BaseEvent;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*@author qx
|
*@author qx
|
||||||
*@data 2025/6/24
|
*@data 2025/6/24
|
||||||
*@description: 背景音乐
|
*@description: 背景音乐
|
||||||
*/
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
public class MusicEvent extends BaseEvent {
|
public class MusicEvent extends BaseEvent {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
package com.xscm.moduleutil.event;
|
||||||
|
|
||||||
|
import com.xscm.moduleutil.BaseEvent;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class PlazaEvent extends BaseEvent {
|
||||||
|
public static final int DELETE_ZONE = 1009;
|
||||||
|
public static final int MODIFY_ZONE = 1008;
|
||||||
|
public static final int ADD_ZONE = 1007;
|
||||||
|
private int msgId;
|
||||||
|
private int type;//DELETE_ZONE : 删除 MODIFY_ZONE : 修改 ADD_ZONE : 新增
|
||||||
|
}
|
||||||
@@ -4,8 +4,10 @@ import com.xscm.moduleutil.BaseEvent;
|
|||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Data
|
@Data
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
|
|||||||
@@ -5,7 +5,9 @@ import com.xscm.moduleutil.BaseEvent;
|
|||||||
import com.xscm.moduleutil.bean.RoonGiftModel;
|
import com.xscm.moduleutil.bean.RoonGiftModel;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
public class RoomGiftGiveEvent extends BaseEvent {
|
public class RoomGiftGiveEvent extends BaseEvent {
|
||||||
public String userId;
|
public String userId;
|
||||||
|
|||||||
@@ -5,12 +5,14 @@ import android.view.SurfaceView;
|
|||||||
import com.xscm.moduleutil.BaseEvent;
|
import com.xscm.moduleutil.BaseEvent;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author lxj$
|
* @Author lxj$
|
||||||
* @Time $ $
|
* @Time $ $
|
||||||
* @Description 判断是否是电影房$
|
* @Description 判断是否是电影房$
|
||||||
*/
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
public class SurfaceEvent extends BaseEvent {
|
public class SurfaceEvent extends BaseEvent {
|
||||||
|
|
||||||
|
|||||||
@@ -3,11 +3,14 @@ package com.xscm.moduleutil.event;
|
|||||||
import com.xscm.moduleutil.BaseEvent;
|
import com.xscm.moduleutil.BaseEvent;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*@author qx
|
*@author qx
|
||||||
*@data 2025/7/15
|
*@data 2025/7/15
|
||||||
*@description: 这是im展示需要显示的未读消息数
|
*@description: 这是im展示需要显示的未读消息数
|
||||||
*/
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
public class UnreadCountEvent extends BaseEvent {
|
public class UnreadCountEvent extends BaseEvent {
|
||||||
private long aLong;
|
private long aLong;
|
||||||
|
|||||||
@@ -198,12 +198,6 @@ public class RewardGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPr
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void getGiftLabel(List<GiftLabelBean> giftLabelBeans) {
|
public void getGiftLabel(List<GiftLabelBean> giftLabelBeans) {
|
||||||
// giftLabelBeanList = new ArrayList<>();
|
|
||||||
// giftLabelBeanList.addAll(giftLabelBeans);
|
|
||||||
// GiftLabelBean giftLabelBean = new GiftLabelBean();
|
|
||||||
// giftLabelBean.setId("0");
|
|
||||||
// giftLabelBean.setName("背包");
|
|
||||||
// giftLabelBeans.add(0, giftLabelBean);
|
|
||||||
mBinding.viewPager.setAdapter(new MyFragmentPagerAdapter(getChildFragmentManager(), giftLabelBeans,fragmentList,""));
|
mBinding.viewPager.setAdapter(new MyFragmentPagerAdapter(getChildFragmentManager(), giftLabelBeans,fragmentList,""));
|
||||||
mBinding.slidingTabLayout.setViewPager(mBinding.viewPager);
|
mBinding.slidingTabLayout.setViewPager(mBinding.viewPager);
|
||||||
mBinding.slidingTabLayout.setCurrentTab(0);
|
mBinding.slidingTabLayout.setCurrentTab(0);
|
||||||
@@ -244,29 +238,8 @@ public class RewardGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPr
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
private GiftPackBean giftModel = null;
|
|
||||||
private int getSelectedGift() {
|
private int getSelectedGift() {
|
||||||
int currentItem = mBinding.viewPager.getCurrentItem();
|
int currentItem = mBinding.viewPager.getCurrentItem();
|
||||||
// if (currentItem < 1) { //比2小是才是礼物
|
|
||||||
// GiftTwoDetailsFragment fragment = (GiftTwoDetailsFragment) fragmentList.get(currentItem);
|
|
||||||
// roonGiftModel = fragment.getGiftList();
|
|
||||||
// }
|
|
||||||
// else {
|
|
||||||
// GiftFragment fragment = (GiftFragment) fragmentList.get(currentItem);
|
|
||||||
// giftModel = fragment.getmData();
|
|
||||||
// }
|
|
||||||
|
|
||||||
// if (currentItem < 1) { //比1小的是背包
|
|
||||||
// GiftTwoDetailsFragment fragment = (GiftTwoDetailsFragment) fragmentList.get(currentItem);
|
|
||||||
// if (fragment != null && giftModel == null) {
|
|
||||||
// giftModel = fragment.mGiftList();
|
|
||||||
// }
|
|
||||||
// } else {
|
|
||||||
// GiftTwoDetailsFragment fragment = (GiftTwoDetailsFragment) fragmentList.get(currentItem);
|
|
||||||
// if (fragment != null && roonGiftModel == null) {
|
|
||||||
// roonGiftModel = fragment.getGiftList();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
return currentItem;
|
return currentItem;
|
||||||
}
|
}
|
||||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||||
@@ -278,24 +251,6 @@ public class RewardGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPr
|
|||||||
|
|
||||||
private void giveGift(String num) {
|
private void giveGift(String num) {
|
||||||
getSelectedGift();
|
getSelectedGift();
|
||||||
int currentItem = mBinding.viewPager.getCurrentItem();
|
|
||||||
String userId = user_id;
|
|
||||||
// if (currentItem < 1) {
|
|
||||||
// if (roonGiftModel == null) {
|
|
||||||
// ToastUtils.show("请选择礼物");
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// if (TextUtils.isEmpty(num)) {
|
|
||||||
// ToastUtils.show("请选择打赏礼物数量");
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// if (Integer.valueOf(num) <= 0) {
|
|
||||||
// ToastUtils.show("请选择打赏礼物数量");
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// } else {
|
|
||||||
if (roonGiftModel == null) {
|
if (roonGiftModel == null) {
|
||||||
ToastUtils.show("请选择礼物");
|
ToastUtils.show("请选择礼物");
|
||||||
return;
|
return;
|
||||||
@@ -309,19 +264,10 @@ public class RewardGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPr
|
|||||||
ToastUtils.show("请选择打赏礼物数量");
|
ToastUtils.show("请选择打赏礼物数量");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// }
|
|
||||||
|
|
||||||
// if (currentItem == 0) {
|
|
||||||
//礼物打赏
|
//礼物打赏
|
||||||
giftNumber = num;
|
giftNumber = num;
|
||||||
MvpPre.reward_zone(circle_id, roonGiftModel.getGift_id(), num, "1");
|
MvpPre.reward_zone(circle_id, roonGiftModel.getGift_id(), num, "1");
|
||||||
// } else {
|
|
||||||
//背包礼物打赏
|
|
||||||
// giftNumber = num;
|
|
||||||
// roomGiftGiveEvent = new RoomGiftGiveEvent(userId, roomId, pit, num, 1, giftModel, null);
|
|
||||||
//
|
|
||||||
// MvpPre.giveBackGift(userId, giftModel.getGift_id(), roomId, pit, num, giftModel, 1);
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void setGiftList(List<RoonGiftModel> roonGiftModels,int type) {
|
public void setGiftList(List<RoonGiftModel> roonGiftModels,int type) {
|
||||||
|
|||||||
@@ -154,18 +154,6 @@
|
|||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintLeft_toLeftOf="parent"
|
app:layout_constraintLeft_toLeftOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
|
||||||
<!-- <com.makeramen.roundedimageview.RoundedImageView-->
|
|
||||||
<!-- android:id="@+id/dy_oneimage_iv"-->
|
|
||||||
<!-- android:layout_width="200dp"-->
|
|
||||||
<!-- android:layout_height="200dp"-->
|
|
||||||
<!-- android:scaleType="centerCrop"-->
|
|
||||||
<!-- android:visibility="gone"-->
|
|
||||||
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
|
|
||||||
<!-- app:layout_constraintLeft_toLeftOf="parent"-->
|
|
||||||
<!-- app:layout_constraintTop_toTopOf="parent"-->
|
|
||||||
<!-- app:riv_corner_radius="5dp" />-->
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
|
|||||||
@@ -1,10 +1,20 @@
|
|||||||
package com.xscm.modulemain
|
package com.xscm.modulemain
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
import com.blankj.utilcode.util.LogUtils
|
import com.blankj.utilcode.util.LogUtils
|
||||||
import com.opensource.svgaplayer.utils.log.SVGALogger
|
import com.opensource.svgaplayer.utils.log.SVGALogger
|
||||||
|
import com.scwang.smartrefresh.layout.SmartRefreshLayout
|
||||||
|
import com.scwang.smartrefresh.layout.api.DefaultRefreshFooterCreator
|
||||||
|
import com.scwang.smartrefresh.layout.api.DefaultRefreshHeaderCreator
|
||||||
|
import com.scwang.smartrefresh.layout.api.RefreshFooter
|
||||||
|
import com.scwang.smartrefresh.layout.api.RefreshHeader
|
||||||
|
import com.scwang.smartrefresh.layout.api.RefreshLayout
|
||||||
|
import com.scwang.smartrefresh.layout.footer.ClassicsFooter
|
||||||
|
import com.scwang.smartrefresh.layout.header.ClassicsHeader
|
||||||
import com.xscm.modulemain.widget.WheatLayoutSingManager
|
import com.xscm.modulemain.widget.WheatLayoutSingManager
|
||||||
import com.xscm.moduleutil.base.CommonAppContext
|
import com.xscm.moduleutil.base.CommonAppContext
|
||||||
|
|
||||||
|
|
||||||
open class Application : CommonAppContext() {
|
open class Application : CommonAppContext() {
|
||||||
|
|
||||||
override fun onCreate() {
|
override fun onCreate() {
|
||||||
@@ -16,6 +26,27 @@ open class Application : CommonAppContext() {
|
|||||||
// 默认情况下,SVGA 内部不会输出任何 log,所以需要手动设置为 true
|
// 默认情况下,SVGA 内部不会输出任何 log,所以需要手动设置为 true
|
||||||
SVGALogger.setLogEnabled(false)
|
SVGALogger.setLogEnabled(false)
|
||||||
LogUtils.getConfig().isLogSwitch = true
|
LogUtils.getConfig().isLogSwitch = true
|
||||||
|
|
||||||
|
|
||||||
|
//设置全局的Header构建器
|
||||||
|
SmartRefreshLayout.setDefaultRefreshHeaderCreator { context, _ ->
|
||||||
|
val header = ClassicsHeader(context)
|
||||||
|
header.setDrawableSize(20f)
|
||||||
|
// header.setFinishDuration(0)
|
||||||
|
header.setTextSizeTitle(12f)
|
||||||
|
header.setTextSizeTime(10f)
|
||||||
|
header
|
||||||
|
}
|
||||||
|
|
||||||
|
//设置全局的Footer构建器
|
||||||
|
SmartRefreshLayout.setDefaultRefreshFooterCreator { context, _ ->
|
||||||
|
val classicsFooter = ClassicsFooter(context)
|
||||||
|
classicsFooter.setDrawableSize(20f)
|
||||||
|
// classicsFooter.setFinishDuration(0)
|
||||||
|
classicsFooter.setTextSizeTitle(12f)
|
||||||
|
//指定为经典Footer,默认是 BallPulseFooter
|
||||||
|
classicsFooter
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -996,6 +996,13 @@ public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void isShowLoading(boolean isShow){
|
||||||
|
if (isShow) {
|
||||||
|
mBinding.coolWaitView.setVisibility(View.VISIBLE);
|
||||||
|
} else {
|
||||||
|
mBinding.coolWaitView.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPause() {
|
protected void onPause() {
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package com.xscm.modulemain.activity.plaza.activity;
|
package com.xscm.modulemain.activity.plaza.activity;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
|
import android.app.Activity;
|
||||||
import android.content.ClipData;
|
import android.content.ClipData;
|
||||||
import android.content.ClipboardManager;
|
import android.content.ClipboardManager;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
@@ -15,10 +17,12 @@ import android.widget.Toast;
|
|||||||
import androidx.core.content.ContextCompat;
|
import androidx.core.content.ContextCompat;
|
||||||
import androidx.core.view.ViewCompat;
|
import androidx.core.view.ViewCompat;
|
||||||
import androidx.core.view.WindowInsetsCompat;
|
import androidx.core.view.WindowInsetsCompat;
|
||||||
|
import androidx.recyclerview.widget.DiffUtil;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||||
import com.alibaba.android.arouter.launcher.ARouter;
|
import com.alibaba.android.arouter.launcher.ARouter;
|
||||||
|
import com.blankj.utilcode.util.ActivityUtils;
|
||||||
import com.blankj.utilcode.util.ToastUtils;
|
import com.blankj.utilcode.util.ToastUtils;
|
||||||
import com.xscm.modulemain.R;
|
import com.xscm.modulemain.R;
|
||||||
import com.xscm.modulemain.databinding.ActivityDynamicDetailBinding;
|
import com.xscm.modulemain.databinding.ActivityDynamicDetailBinding;
|
||||||
@@ -27,6 +31,7 @@ import com.xscm.modulemain.activity.plaza.contacts.CircleContacts;
|
|||||||
import com.xscm.modulemain.activity.plaza.presenter.CirclePresenter;
|
import com.xscm.modulemain.activity.plaza.presenter.CirclePresenter;
|
||||||
import com.xscm.modulemain.BaseMvpActivity;
|
import com.xscm.modulemain.BaseMvpActivity;
|
||||||
import com.xscm.modulemain.manager.RoomManager;
|
import com.xscm.modulemain.manager.RoomManager;
|
||||||
|
import com.xscm.moduleutil.BaseEvent;
|
||||||
import com.xscm.moduleutil.adapter.CirleListAdapter;
|
import com.xscm.moduleutil.adapter.CirleListAdapter;
|
||||||
import com.xscm.moduleutil.adapter.CommentAdapter;
|
import com.xscm.moduleutil.adapter.CommentAdapter;
|
||||||
import com.xscm.moduleutil.bean.CircleListBean;
|
import com.xscm.moduleutil.bean.CircleListBean;
|
||||||
@@ -34,7 +39,9 @@ import com.xscm.moduleutil.bean.CommentBean;
|
|||||||
import com.xscm.moduleutil.bean.ExpandColumnBean;
|
import com.xscm.moduleutil.bean.ExpandColumnBean;
|
||||||
import com.xscm.moduleutil.bean.HeatedBean;
|
import com.xscm.moduleutil.bean.HeatedBean;
|
||||||
import com.xscm.moduleutil.dialog.ConfirmDialog;
|
import com.xscm.moduleutil.dialog.ConfirmDialog;
|
||||||
|
import com.xscm.moduleutil.diff.CircleListDiffCallback;
|
||||||
import com.xscm.moduleutil.event.GiftRewardEvent;
|
import com.xscm.moduleutil.event.GiftRewardEvent;
|
||||||
|
import com.xscm.moduleutil.event.PlazaEvent;
|
||||||
import com.xscm.moduleutil.utils.ARouteConstants;
|
import com.xscm.moduleutil.utils.ARouteConstants;
|
||||||
import com.xscm.moduleutil.utils.ChatLauncher;
|
import com.xscm.moduleutil.utils.ChatLauncher;
|
||||||
import com.xscm.moduleutil.utils.SpUtil;
|
import com.xscm.moduleutil.utils.SpUtil;
|
||||||
@@ -42,11 +49,16 @@ import com.xscm.moduleutil.widget.dialog.CommentDialogFragment;
|
|||||||
import com.xscm.moduleutil.widget.dialog.RewardGiftDialogFragment;
|
import com.xscm.moduleutil.widget.dialog.RewardGiftDialogFragment;
|
||||||
import com.xscm.modulemain.dialog.ShareDialog;
|
import com.xscm.modulemain.dialog.ShareDialog;
|
||||||
|
|
||||||
|
import org.greenrobot.eventbus.EventBus;
|
||||||
import org.greenrobot.eventbus.Subscribe;
|
import org.greenrobot.eventbus.Subscribe;
|
||||||
import org.greenrobot.eventbus.ThreadMode;
|
import org.greenrobot.eventbus.ThreadMode;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import io.reactivex.Observable;
|
||||||
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author qx
|
* @author qx
|
||||||
@@ -62,11 +74,8 @@ public class DynamicDetailActivity extends BaseMvpActivity<CirclePresenter, Acti
|
|||||||
private int currentReplyId = 0; // 记录当前正在回复的评论ID
|
private int currentReplyId = 0; // 记录当前正在回复的评论ID
|
||||||
private String TreplyTo = "";
|
private String TreplyTo = "";
|
||||||
|
|
||||||
@Override
|
List<CircleListBean> circleList = new ArrayList<>();
|
||||||
protected void onResume() {
|
|
||||||
super.onResume();
|
|
||||||
MvpPre.topicId(zone_id, 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void initData() {
|
protected void initData() {
|
||||||
@@ -79,15 +88,8 @@ public class DynamicDetailActivity extends BaseMvpActivity<CirclePresenter, Acti
|
|||||||
mBinding.recycleView.setAdapter(cirleListAdapter);
|
mBinding.recycleView.setAdapter(cirleListAdapter);
|
||||||
cirleListAdapter.setOnItemClickListener(new CirleListAdapter.OnItemClickListener() {
|
cirleListAdapter.setOnItemClickListener(new CirleListAdapter.OnItemClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onDianzanClick(CircleListBean item) {
|
public void onDianzanClick(int index, CircleListBean item) {
|
||||||
MvpPre.likeZone(item.getId() + "");
|
MvpPre.likeZone(index, item);
|
||||||
int position = cirleListAdapter.getData().indexOf(item);
|
|
||||||
if (position != -1) {
|
|
||||||
// 更新点赞状态
|
|
||||||
item.setIs_like(item.getIs_like() == 1 ? 0 : 1);
|
|
||||||
// 局部刷新
|
|
||||||
cirleListAdapter.updateLikeStatusOnly(position, item.getIs_like());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -98,19 +100,18 @@ public class DynamicDetailActivity extends BaseMvpActivity<CirclePresenter, Acti
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onZsClick(CircleListBean item) {
|
public void onZsClick(int position, CircleListBean item) {
|
||||||
int position = cirleListAdapter.getData().indexOf(item);
|
|
||||||
RewardGiftDialogFragment.show(String.valueOf(item.getId()), item.getUser_id() + "", position, getSupportFragmentManager());
|
RewardGiftDialogFragment.show(String.valueOf(item.getId()), item.getUser_id() + "", position, getSupportFragmentManager());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDiandianClick(CircleListBean item) {
|
public void onMoreClick(int idx, CircleListBean item) {
|
||||||
ShareDialog shareDialog = new ShareDialog(DynamicDetailActivity.this, item.getContent(), item.getShare_url(), item.getId() + "", 3, item.getUser_id() + "", item);
|
ShareDialog shareDialog = new ShareDialog(DynamicDetailActivity.this, item.getContent(), item.getShare_url(), item.getId() + "", 3, item.getUser_id() + "", item);
|
||||||
shareDialog.setOnShareDataListener(new ShareDialog.OnShareDataListener() {
|
shareDialog.setOnShareDataListener(new ShareDialog.OnShareDataListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onShareDataLoaded(String id) {
|
public void onShareDataLoaded(String id) {
|
||||||
MvpPre.deleteZone(id);
|
MvpPre.deleteZone(idx, item);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
shareDialog.show();
|
shareDialog.show();
|
||||||
@@ -126,11 +127,19 @@ public class DynamicDetailActivity extends BaseMvpActivity<CirclePresenter, Acti
|
|||||||
CommentDialogFragment.show(String.valueOf(item.getId()), getSupportFragmentManager());
|
CommentDialogFragment.show(String.valueOf(item.getId()), getSupportFragmentManager());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("CheckResult")
|
||||||
@Override
|
@Override
|
||||||
public void onGensui(CircleListBean item) {
|
public void onGensui(CircleListBean item) {
|
||||||
if (item.getRoom_id() != null && !item.getRoom_id().equals("0")) {
|
if (item.getRoom_id() != null && !item.getRoom_id().equals("0")) {
|
||||||
RoomManager.getInstance().fetchRoomDataAndEnter(getApplicationContext(), item.getRoom_id(), "", null);
|
RoomManager.getInstance().fetchRoomDataAndEnter(getApplicationContext(), item.getRoom_id(), "", null);
|
||||||
|
|
||||||
|
Observable.timer(1000, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread()).subscribe(aLong -> {
|
||||||
|
for (int i = 0; i < ActivityUtils.getActivityList().size(); i++) {
|
||||||
|
if (ActivityUtils.getActivityList().get(i) instanceof DynamicDetailActivity || ActivityUtils.getActivityList().get(i) instanceof DynamicListActivity) {
|
||||||
|
ActivityUtils.getActivityList().get(i).finish();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "首页热门列表").withString("roomId", item.getRoom_id()).navigation();
|
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "首页热门列表").withString("roomId", item.getRoom_id()).navigation();
|
||||||
} else {
|
} else {
|
||||||
ChatLauncher.getInstance().launchC2CChat(DynamicDetailActivity.this, item.getUser_id() + "");
|
ChatLauncher.getInstance().launchC2CChat(DynamicDetailActivity.this, item.getUser_id() + "");
|
||||||
@@ -144,14 +153,6 @@ public class DynamicDetailActivity extends BaseMvpActivity<CirclePresenter, Acti
|
|||||||
commentAdapter.setOnCommentInteractionListener(this);
|
commentAdapter.setOnCommentInteractionListener(this);
|
||||||
|
|
||||||
|
|
||||||
// mBinding.etInput.setOnFocusChangeListener((v, hasFocus) -> {
|
|
||||||
// if (hasFocus) {
|
|
||||||
// new Handler(Looper.getMainLooper()).postDelayed(() -> {
|
|
||||||
// mBinding.scrollView.fullScroll(View.FOCUS_DOWN);
|
|
||||||
// }, 200);
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
|
|
||||||
// 在 initData() 中添加:
|
// 在 initData() 中添加:
|
||||||
final View rootView = findViewById(android.R.id.content);
|
final View rootView = findViewById(android.R.id.content);
|
||||||
final View inputBar = mBinding.clInput;
|
final View inputBar = mBinding.clInput;
|
||||||
@@ -186,14 +187,18 @@ public class DynamicDetailActivity extends BaseMvpActivity<CirclePresenter, Acti
|
|||||||
InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
|
InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
|
||||||
imm.showSoftInput(mBinding.etInput, InputMethodManager.SHOW_IMPLICIT);
|
imm.showSoftInput(mBinding.etInput, InputMethodManager.SHOW_IMPLICIT);
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
|
||||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
|
||||||
public void onEvent(GiftRewardEvent event) {
|
|
||||||
|
|
||||||
MvpPre.topicId(zone_id, 2);
|
MvpPre.topicId(zone_id, 2);
|
||||||
// cirleListAdapter.notifyItemChanged(event.getPoints());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||||
|
public void onEvent(BaseEvent event) {
|
||||||
|
if (event instanceof GiftRewardEvent) {
|
||||||
|
MvpPre.getCircleDetail(((GiftRewardEvent) event).getPoints(),
|
||||||
|
circleList.get(((GiftRewardEvent) event).getPoints()));
|
||||||
|
EventBus.getDefault().post(new PlazaEvent(circleList.get(((GiftRewardEvent) event).getPoints()).id, PlazaEvent.MODIFY_ZONE));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void onClick(View view) {
|
private void onClick(View view) {
|
||||||
if (view.getId() == R.id.tv_send) {
|
if (view.getId() == R.id.tv_send) {
|
||||||
if (mBinding.etInput.getText().toString().isEmpty()) {
|
if (mBinding.etInput.getText().toString().isEmpty()) {
|
||||||
@@ -235,7 +240,7 @@ public class DynamicDetailActivity extends BaseMvpActivity<CirclePresenter, Acti
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setCircleList(List<CircleListBean> list) {
|
public void getCircleList(List<CircleListBean> list) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -245,21 +250,31 @@ public class DynamicDetailActivity extends BaseMvpActivity<CirclePresenter, Acti
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setLikeZone(int type) {
|
public void setLikeZone(int idx, CircleListBean item, int type) {
|
||||||
if (type == 1){
|
MvpPre.getCircleDetail(idx, item);
|
||||||
finish();
|
|
||||||
}else {
|
|
||||||
// MvpPre.topicId(zone_id, 2);
|
|
||||||
}
|
}
|
||||||
// finish();
|
|
||||||
|
@Override
|
||||||
|
public void getCircleDetail(int idx, CircleListBean item, CircleListBean newItem) {
|
||||||
|
List<CircleListBean> oldList = new ArrayList<>(cirleListAdapter.getData());
|
||||||
|
circleList.set(idx, newItem);
|
||||||
|
DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(new CircleListDiffCallback(oldList, circleList), false);
|
||||||
|
cirleListAdapter.setNewDiffData(diffResult, circleList);
|
||||||
|
|
||||||
|
EventBus.getDefault().post(new PlazaEvent(circleList.get(idx).id, PlazaEvent.MODIFY_ZONE));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteZone(int index) {
|
||||||
|
EventBus.getDefault().post(new PlazaEvent(circleList.get(index).id, PlazaEvent.DELETE_ZONE));
|
||||||
|
finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setCircleDetail(CircleListBean bean) {
|
public void setCircleDetail(CircleListBean bean) {
|
||||||
List<CircleListBean> beanList = new ArrayList<>();
|
circleList.add(bean);
|
||||||
beanList.add(bean);
|
cirleListAdapter.setNewData(circleList);
|
||||||
cirleListAdapter.setNewData(beanList);
|
MvpPre.getCommentList(zone_id, "1", "30");
|
||||||
MvpPre.getCommentList(zone_id, "1", "10");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -268,14 +283,12 @@ public class DynamicDetailActivity extends BaseMvpActivity<CirclePresenter, Acti
|
|||||||
mBinding.tvNum.setText("全部评论(" + commentBean.getTotal() + ")");
|
mBinding.tvNum.setText("全部评论(" + commentBean.getTotal() + ")");
|
||||||
commentAdapter.updateData(commentBean.getList()); // 假设 CommentBean 包含评论列表
|
commentAdapter.updateData(commentBean.getList()); // 假设 CommentBean 包含评论列表
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void commentZone() {
|
public void commentZone() {
|
||||||
// MvpPre.getCommentList(zone_id, "1", "10");
|
MvpPre.getCommentList(zone_id, "1", "30");
|
||||||
MvpPre.topicId(zone_id, 2);
|
MvpPre.getCircleDetail(0, circleList.get(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -283,6 +296,7 @@ public class DynamicDetailActivity extends BaseMvpActivity<CirclePresenter, Acti
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onInputBoxShow(int id, String s, int position, String replyTo) {
|
public void onInputBoxShow(int id, String s, int position, String replyTo) {
|
||||||
mBinding.etInput.requestFocus();
|
mBinding.etInput.requestFocus();
|
||||||
@@ -312,6 +326,7 @@ public class DynamicDetailActivity extends BaseMvpActivity<CirclePresenter, Acti
|
|||||||
deleteComment1(id, position);
|
deleteComment1(id, position);
|
||||||
// MvpPre.deleteComment(id+"");
|
// MvpPre.deleteComment(id+"");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void deleteComment1(int commentId, int position) {
|
private void deleteComment1(int commentId, int position) {
|
||||||
// 创建并显示确认对话框
|
// 创建并显示确认对话框
|
||||||
new ConfirmDialog(this,
|
new ConfirmDialog(this,
|
||||||
@@ -413,6 +428,7 @@ public class DynamicDetailActivity extends BaseMvpActivity<CirclePresenter, Acti
|
|||||||
bottomSheetDialog.setContentView(dialogView);
|
bottomSheetDialog.setContentView(dialogView);
|
||||||
bottomSheetDialog.show();
|
bottomSheetDialog.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleOptionClick(int optionIndex, CommentBean.CommentDetailsBean comment, CommentBean.CommentDetailsBean.Replies reply, int position) {
|
private void handleOptionClick(int optionIndex, CommentBean.CommentDetailsBean comment, CommentBean.CommentDetailsBean.Replies reply, int position) {
|
||||||
if (comment.getUser_id() == SpUtil.getUserId() || reply != null) {
|
if (comment.getUser_id() == SpUtil.getUserId() || reply != null) {
|
||||||
// 当前用户的评论选项
|
// 当前用户的评论选项
|
||||||
@@ -463,6 +479,7 @@ public class DynamicDetailActivity extends BaseMvpActivity<CirclePresenter, Acti
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 具体操作方法
|
// 具体操作方法
|
||||||
private void copyComment(String content) {
|
private void copyComment(String content) {
|
||||||
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
|
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
|
||||||
|
|||||||
@@ -5,9 +5,11 @@ import android.text.SpannableString;
|
|||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
import android.text.style.LeadingMarginSpan;
|
import android.text.style.LeadingMarginSpan;
|
||||||
|
|
||||||
|
import androidx.recyclerview.widget.DiffUtil;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||||
|
import com.blankj.utilcode.util.ActivityUtils;
|
||||||
import com.xscm.modulemain.R;
|
import com.xscm.modulemain.R;
|
||||||
import com.xscm.modulemain.databinding.ActivityDynamicListBinding;
|
import com.xscm.modulemain.databinding.ActivityDynamicListBinding;
|
||||||
import com.xscm.modulemain.activity.user.activity.UserHomepageActivity;
|
import com.xscm.modulemain.activity.user.activity.UserHomepageActivity;
|
||||||
@@ -15,22 +17,28 @@ import com.xscm.modulemain.activity.plaza.contacts.CircleContacts;
|
|||||||
import com.xscm.modulemain.activity.plaza.presenter.CirclePresenter;
|
import com.xscm.modulemain.activity.plaza.presenter.CirclePresenter;
|
||||||
import com.xscm.modulemain.BaseMvpActivity;
|
import com.xscm.modulemain.BaseMvpActivity;
|
||||||
import com.xscm.modulemain.manager.RoomManager;
|
import com.xscm.modulemain.manager.RoomManager;
|
||||||
|
import com.xscm.moduleutil.BaseEvent;
|
||||||
import com.xscm.moduleutil.adapter.CirleListAdapter;
|
import com.xscm.moduleutil.adapter.CirleListAdapter;
|
||||||
import com.xscm.moduleutil.bean.CircleListBean;
|
import com.xscm.moduleutil.bean.CircleListBean;
|
||||||
import com.xscm.moduleutil.bean.CommentBean;
|
import com.xscm.moduleutil.bean.CommentBean;
|
||||||
import com.xscm.moduleutil.bean.ExpandColumnBean;
|
import com.xscm.moduleutil.bean.ExpandColumnBean;
|
||||||
import com.xscm.moduleutil.bean.HeatedBean;
|
import com.xscm.moduleutil.bean.HeatedBean;
|
||||||
|
import com.xscm.moduleutil.diff.CircleListDiffCallback;
|
||||||
import com.xscm.moduleutil.event.GiftRewardEvent;
|
import com.xscm.moduleutil.event.GiftRewardEvent;
|
||||||
|
import com.xscm.moduleutil.event.PlazaEvent;
|
||||||
import com.xscm.moduleutil.utils.ARouteConstants;
|
import com.xscm.moduleutil.utils.ARouteConstants;
|
||||||
import com.xscm.moduleutil.utils.ChatLauncher;
|
import com.xscm.moduleutil.utils.ChatLauncher;
|
||||||
import com.xscm.moduleutil.utils.ImageUtils;
|
import com.xscm.moduleutil.utils.ImageUtils;
|
||||||
import com.xscm.moduleutil.widget.dialog.RewardGiftDialogFragment;
|
import com.xscm.moduleutil.widget.dialog.RewardGiftDialogFragment;
|
||||||
import com.xscm.modulemain.dialog.ShareDialog;
|
import com.xscm.modulemain.dialog.ShareDialog;
|
||||||
|
|
||||||
|
import org.greenrobot.eventbus.EventBus;
|
||||||
import org.greenrobot.eventbus.Subscribe;
|
import org.greenrobot.eventbus.Subscribe;
|
||||||
import org.greenrobot.eventbus.ThreadMode;
|
import org.greenrobot.eventbus.ThreadMode;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author qx
|
* @author qx
|
||||||
* @data 2025/6/3
|
* @data 2025/6/3
|
||||||
@@ -41,11 +49,16 @@ public class DynamicListActivity extends BaseMvpActivity<CirclePresenter, Activi
|
|||||||
|
|
||||||
private HeatedBean heatedBean;
|
private HeatedBean heatedBean;
|
||||||
CirleListAdapter cirleListAdapter;
|
CirleListAdapter cirleListAdapter;
|
||||||
|
private List<CircleListBean> circleList = new ArrayList<>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void initData() {
|
protected void initData() {
|
||||||
heatedBean = getIntent().getParcelableExtra("heatedBean");
|
heatedBean = getIntent().getParcelableExtra("heatedBean");
|
||||||
mBinding.topBar.setTitle(heatedBean.getTitle());
|
mBinding.topBar.setTitle(heatedBean.getTitle());
|
||||||
|
|
||||||
MvpPre.topicId(heatedBean.getTopic_id(), 1);
|
MvpPre.topicId(heatedBean.getTopic_id(), 1);
|
||||||
|
|
||||||
|
|
||||||
ImageUtils.loadHeadCC(heatedBean.getPic(), mBinding.ivAvatar);
|
ImageUtils.loadHeadCC(heatedBean.getPic(), mBinding.ivAvatar);
|
||||||
mBinding.tvTitle.setText(heatedBean.getTitle());
|
mBinding.tvTitle.setText(heatedBean.getTitle());
|
||||||
mBinding.tvDescription.setText(heatedBean.getCount() + "条动态");
|
mBinding.tvDescription.setText(heatedBean.getCount() + "条动态");
|
||||||
@@ -58,40 +71,30 @@ public class DynamicListActivity extends BaseMvpActivity<CirclePresenter, Activi
|
|||||||
mBinding.recycleView.setAdapter(cirleListAdapter);
|
mBinding.recycleView.setAdapter(cirleListAdapter);
|
||||||
cirleListAdapter.setOnItemClickListener(new CirleListAdapter.OnItemClickListener() {
|
cirleListAdapter.setOnItemClickListener(new CirleListAdapter.OnItemClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onDianzanClick(CircleListBean item) {
|
public void onDianzanClick(int index, CircleListBean item) {
|
||||||
MvpPre.likeZone(item.getId()+"");
|
MvpPre.likeZone(index, item);
|
||||||
int position = cirleListAdapter.getData().indexOf(item);
|
|
||||||
if (position != -1) {
|
|
||||||
// 更新点赞状态
|
|
||||||
item.setIs_like(item.getIs_like() == 1 ? 0 : 1);
|
|
||||||
// 局部刷新
|
|
||||||
// cirleListAdapter.notifyItemChanged(position);
|
|
||||||
cirleListAdapter.updateLikeStatusOnly(position, item.getIs_like());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onHeadImageClick(CircleListBean item) {
|
public void onHeadImageClick(CircleListBean item) {
|
||||||
// Toast.makeText(getApplicationContext(), "查看主页:" + item.getNickname(), Toast.LENGTH_SHORT).show();
|
|
||||||
Intent intent = new Intent(DynamicListActivity.this, UserHomepageActivity.class);
|
Intent intent = new Intent(DynamicListActivity.this, UserHomepageActivity.class);
|
||||||
intent.putExtra("userId", item.getUser_id() + "");
|
intent.putExtra("userId", item.getUser_id() + "");
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onZsClick(CircleListBean item) {
|
public void onZsClick(int position, CircleListBean item) {
|
||||||
int position = cirleListAdapter.getData().indexOf(item);
|
|
||||||
RewardGiftDialogFragment.show(String.valueOf(item.getId()), item.getUser_id() + "", position, getSupportFragmentManager());
|
RewardGiftDialogFragment.show(String.valueOf(item.getId()), item.getUser_id() + "", position, getSupportFragmentManager());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDiandianClick(CircleListBean item) {
|
public void onMoreClick(int idx, CircleListBean item) {
|
||||||
ShareDialog shareDialog = new ShareDialog(DynamicListActivity.this, item.getContent(), item.getShare_url(), item.getId() + "", 3, item.getUser_id() + "", item);
|
ShareDialog shareDialog = new ShareDialog(DynamicListActivity.this, item.getContent(), item.getShare_url(), item.getId() + "", 3, item.getUser_id() + "", item);
|
||||||
shareDialog.setOnShareDataListener(new ShareDialog.OnShareDataListener() {
|
shareDialog.setOnShareDataListener(new ShareDialog.OnShareDataListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onShareDataLoaded(String id) {
|
public void onShareDataLoaded(String id) {
|
||||||
MvpPre.deleteZone(id);
|
MvpPre.deleteZone(idx, item);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
shareDialog.show();
|
shareDialog.show();
|
||||||
@@ -99,7 +102,6 @@ public class DynamicListActivity extends BaseMvpActivity<CirclePresenter, Activi
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPinglunClick(CircleListBean item) {
|
public void onPinglunClick(CircleListBean item) {
|
||||||
// CommentDialogFragment.show(String.valueOf(item.getId()), getSupportFragmentManager());
|
|
||||||
Intent intent = new Intent(DynamicListActivity.this, DynamicDetailActivity.class);
|
Intent intent = new Intent(DynamicListActivity.this, DynamicDetailActivity.class);
|
||||||
intent.putExtra("zone_id", item.getId() + "");
|
intent.putExtra("zone_id", item.getId() + "");
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
@@ -114,8 +116,6 @@ public class DynamicListActivity extends BaseMvpActivity<CirclePresenter, Activi
|
|||||||
public void onGensui(CircleListBean item) {
|
public void onGensui(CircleListBean item) {
|
||||||
if (item.getRoom_id() != null && !item.getRoom_id().equals("0")) {
|
if (item.getRoom_id() != null && !item.getRoom_id().equals("0")) {
|
||||||
RoomManager.getInstance().fetchRoomDataAndEnter(getApplicationContext(), item.getRoom_id(), "", null);
|
RoomManager.getInstance().fetchRoomDataAndEnter(getApplicationContext(), item.getRoom_id(), "", null);
|
||||||
|
|
||||||
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "首页热门列表").withString("roomId", item.getRoom_id()).navigation();
|
|
||||||
} else {
|
} else {
|
||||||
ChatLauncher.getInstance().launchC2CChat(DynamicListActivity.this, item.getUser_id() + "");
|
ChatLauncher.getInstance().launchC2CChat(DynamicListActivity.this, item.getUser_id() + "");
|
||||||
}
|
}
|
||||||
@@ -139,8 +139,20 @@ public class DynamicListActivity extends BaseMvpActivity<CirclePresenter, Activi
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setCircleList(List<CircleListBean> list) {
|
public void getCircleList(List<CircleListBean> list) {
|
||||||
cirleListAdapter.setNewData(list);
|
if (list == null || list.isEmpty())
|
||||||
|
return;
|
||||||
|
// if (page == 1){
|
||||||
|
// circleList.clear();
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// List<CircleListBean> oldList = new ArrayList<>(cirleListAdapter.getData());
|
||||||
|
// circleList.addAll(list);
|
||||||
|
//
|
||||||
|
// DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(new CircleListDiffCallback(oldList, circleList), false);
|
||||||
|
// cirleListAdapter.setNewDiffData(diffResult,circleList);
|
||||||
|
circleList.addAll(list);
|
||||||
|
cirleListAdapter.setNewData(circleList);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -149,9 +161,8 @@ public class DynamicListActivity extends BaseMvpActivity<CirclePresenter, Activi
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setLikeZone(int type) {
|
public void setLikeZone(int index, CircleListBean item, int type) {
|
||||||
// ToastUtils.show("成功");
|
MvpPre.getCircleDetail(index, item);
|
||||||
// MvpPre.topicId(heatedBean.getTopic_id(),1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -176,11 +187,43 @@ public class DynamicListActivity extends BaseMvpActivity<CirclePresenter, Activi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||||
public void onEvent(GiftRewardEvent event) {
|
public void onEvent(BaseEvent event) {
|
||||||
MvpPre.topicId(event.getZone_id(), 2);
|
if (event instanceof GiftRewardEvent) {
|
||||||
// cirleListAdapter.notifyItemChanged(event.getPoints());
|
MvpPre.getCircleDetail(((GiftRewardEvent) event).getPoints(),
|
||||||
|
circleList.get(((GiftRewardEvent) event).getPoints()));
|
||||||
|
if (ActivityUtils.getTopActivity() instanceof DynamicListActivity){
|
||||||
|
EventBus.getDefault().post(new PlazaEvent(circleList.get(((GiftRewardEvent) event).getPoints()).id, PlazaEvent.MODIFY_ZONE));
|
||||||
}
|
}
|
||||||
|
} else if (event instanceof PlazaEvent) {
|
||||||
|
CircleListBean item = null;
|
||||||
|
int index = 0;
|
||||||
|
for (int i = 0; i < circleList.size(); i++) {
|
||||||
|
if (circleList.get(i).getId() == ((PlazaEvent) event).getMsgId()) {
|
||||||
|
item = circleList.get(i);
|
||||||
|
index = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (item == null || ActivityUtils.getTopActivity() instanceof DynamicListActivity)
|
||||||
|
return;
|
||||||
|
|
||||||
|
switch (((PlazaEvent) event).getType()) {
|
||||||
|
case PlazaEvent.MODIFY_ZONE:
|
||||||
|
MvpPre.getCircleDetail(index, item);
|
||||||
|
break;
|
||||||
|
case PlazaEvent.DELETE_ZONE:
|
||||||
|
circleList.remove(index);
|
||||||
|
cirleListAdapter.notifyItemRemoved(index);
|
||||||
|
if (index != 0) {
|
||||||
|
cirleListAdapter.notifyItemRangeChanged(index, circleList.size() - index); // 修正后续索引
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void getCommentList(CommentBean commentBean) {
|
public void getCommentList(CommentBean commentBean) {
|
||||||
|
|
||||||
@@ -195,4 +238,30 @@ public class DynamicListActivity extends BaseMvpActivity<CirclePresenter, Activi
|
|||||||
public void finishComment() {
|
public void finishComment() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void getCircleDetail(int index, CircleListBean item, CircleListBean newItem) {
|
||||||
|
if (ActivityUtils.getTopActivity() instanceof DynamicListActivity){
|
||||||
|
EventBus.getDefault().post(new PlazaEvent(circleList.get(index).id, PlazaEvent.MODIFY_ZONE));
|
||||||
|
}
|
||||||
|
|
||||||
|
List<CircleListBean> oldList = new ArrayList<>(cirleListAdapter.getData());
|
||||||
|
circleList.set(index, newItem);
|
||||||
|
DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(new CircleListDiffCallback(oldList, circleList), false);
|
||||||
|
cirleListAdapter.setNewDiffData(diffResult, circleList);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteZone(int index) {
|
||||||
|
if (ActivityUtils.getTopActivity() instanceof DynamicListActivity){
|
||||||
|
EventBus.getDefault().post(new PlazaEvent(circleList.get(index).id, PlazaEvent.DELETE_ZONE));
|
||||||
|
}
|
||||||
|
circleList.remove(index);
|
||||||
|
cirleListAdapter.notifyItemRemoved(index);
|
||||||
|
if (index != 0) {
|
||||||
|
cirleListAdapter.notifyItemRangeChanged(index, circleList.size() - index); // 修正后续索引
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -345,6 +345,7 @@ public class ReleaseActivity extends BaseMvpActivity<ReleasePresenter, ActivityR
|
|||||||
public void publishSuccess() {
|
public void publishSuccess() {
|
||||||
mBinding.etG.setText( "立即发布");
|
mBinding.etG.setText( "立即发布");
|
||||||
ToastUtils.showShort("发布成功");
|
ToastUtils.showShort("发布成功");
|
||||||
|
setResult(RESULT_OK);
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,17 +18,21 @@ public class CircleContacts {
|
|||||||
|
|
||||||
void setCategories(List<HeatedBean> list);
|
void setCategories(List<HeatedBean> list);
|
||||||
|
|
||||||
void setCircleList(List<CircleListBean> list);
|
void getCircleList(List<CircleListBean> list);
|
||||||
|
|
||||||
void setExpandColumn(List<ExpandColumnBean> list);
|
void setExpandColumn(List<ExpandColumnBean> list);
|
||||||
|
|
||||||
void setLikeZone(int type);
|
void setLikeZone(int index,CircleListBean item,int type);
|
||||||
|
|
||||||
void setCircleDetail(CircleListBean bean);
|
void setCircleDetail(CircleListBean bean);
|
||||||
|
|
||||||
void getCommentList(CommentBean commentBean);
|
void getCommentList(CommentBean commentBean);
|
||||||
void commentZone();
|
void commentZone();
|
||||||
void finishComment();
|
void finishComment();
|
||||||
|
|
||||||
|
void getCircleDetail(int index,CircleListBean item,CircleListBean newItem);
|
||||||
|
|
||||||
|
void deleteZone(int index);
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface IIndexPre extends IPresenter {
|
public interface IIndexPre extends IPresenter {
|
||||||
@@ -38,11 +42,13 @@ public class CircleContacts {
|
|||||||
|
|
||||||
void getExpandColumn(String type,String page,String page_limit);//获取扩列数据
|
void getExpandColumn(String type,String page,String page_limit);//获取扩列数据
|
||||||
|
|
||||||
void likeZone(String zone_id);
|
void likeZone(int index,CircleListBean item);
|
||||||
|
|
||||||
|
void getCircleDetail(int index,CircleListBean item);
|
||||||
|
|
||||||
void topicId(String topic_id,int type);//type:这是让区分是什么地方获得数据,type=1:动态列表,type=2:动态详情
|
void topicId(String topic_id,int type);//type:这是让区分是什么地方获得数据,type=1:动态列表,type=2:动态详情
|
||||||
|
|
||||||
void deleteZone(String zone_id);
|
void deleteZone(int index,CircleListBean item);
|
||||||
|
|
||||||
void getCommentList(String id,String page,String page_limit);
|
void getCommentList(String id,String page,String page_limit);
|
||||||
void commentZone(String id,String content,String pid,String reply_to);
|
void commentZone(String id,String content,String pid,String reply_to);
|
||||||
|
|||||||
@@ -2,23 +2,25 @@ package com.xscm.modulemain.activity.plaza.fragment;
|
|||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.recyclerview.widget.DiffUtil;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
import com.alibaba.android.arouter.launcher.ARouter;
|
import com.alibaba.android.arouter.launcher.ARouter;
|
||||||
import com.xscm.modulemain.R;
|
|
||||||
import com.xscm.modulemain.adapter.CirleCategoryBannerAdapter;
|
|
||||||
import com.xscm.modulemain.databinding.FragmentCircleCategoryBinding;
|
|
||||||
import com.scwang.smartrefresh.layout.api.RefreshLayout;
|
import com.scwang.smartrefresh.layout.api.RefreshLayout;
|
||||||
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
|
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
|
||||||
|
import com.xscm.modulemain.R;
|
||||||
|
import com.xscm.modulemain.activity.main.activity.MainActivity;
|
||||||
import com.xscm.modulemain.activity.plaza.activity.DynamicListActivity;
|
import com.xscm.modulemain.activity.plaza.activity.DynamicListActivity;
|
||||||
import com.xscm.modulemain.activity.plaza.contacts.CircleContacts;
|
import com.xscm.modulemain.activity.plaza.contacts.CircleContacts;
|
||||||
import com.xscm.modulemain.activity.plaza.presenter.CirclePresenter;
|
import com.xscm.modulemain.activity.plaza.presenter.CirclePresenter;
|
||||||
|
import com.xscm.modulemain.adapter.CirleCategoryBannerAdapter;
|
||||||
|
import com.xscm.modulemain.databinding.FragmentCircleCategoryBinding;
|
||||||
|
import com.xscm.modulemain.dialog.ShareDialog;
|
||||||
import com.xscm.modulemain.manager.RoomManager;
|
import com.xscm.modulemain.manager.RoomManager;
|
||||||
|
import com.xscm.moduleutil.BaseEvent;
|
||||||
import com.xscm.moduleutil.adapter.CirleListAdapter;
|
import com.xscm.moduleutil.adapter.CirleListAdapter;
|
||||||
import com.xscm.moduleutil.base.BaseMvpFragment;
|
import com.xscm.moduleutil.base.BaseMvpFragment;
|
||||||
import com.xscm.moduleutil.bean.BaseListData;
|
import com.xscm.moduleutil.bean.BaseListData;
|
||||||
@@ -26,16 +28,16 @@ import com.xscm.moduleutil.bean.CircleListBean;
|
|||||||
import com.xscm.moduleutil.bean.CommentBean;
|
import com.xscm.moduleutil.bean.CommentBean;
|
||||||
import com.xscm.moduleutil.bean.ExpandColumnBean;
|
import com.xscm.moduleutil.bean.ExpandColumnBean;
|
||||||
import com.xscm.moduleutil.bean.HeatedBean;
|
import com.xscm.moduleutil.bean.HeatedBean;
|
||||||
|
import com.xscm.moduleutil.diff.CircleListDiffCallback;
|
||||||
import com.xscm.moduleutil.event.GiftRewardEvent;
|
import com.xscm.moduleutil.event.GiftRewardEvent;
|
||||||
|
import com.xscm.moduleutil.event.PlazaEvent;
|
||||||
import com.xscm.moduleutil.utils.ARouteConstants;
|
import com.xscm.moduleutil.utils.ARouteConstants;
|
||||||
import com.xscm.moduleutil.utils.ChatLauncher;
|
import com.xscm.moduleutil.utils.ChatLauncher;
|
||||||
import com.xscm.moduleutil.widget.dialog.RewardGiftDialogFragment;
|
import com.xscm.moduleutil.widget.dialog.RewardGiftDialogFragment;
|
||||||
import com.xscm.modulemain.dialog.ShareDialog;
|
|
||||||
import com.zhpan.bannerview.indicator.DrawableIndicator;
|
import com.zhpan.bannerview.indicator.DrawableIndicator;
|
||||||
import com.zhpan.indicator.base.IIndicator;
|
import com.zhpan.indicator.base.IIndicator;
|
||||||
import com.zhpan.indicator.enums.IndicatorSlideMode;
|
import com.zhpan.indicator.enums.IndicatorSlideMode;
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus;
|
|
||||||
import org.greenrobot.eventbus.Subscribe;
|
import org.greenrobot.eventbus.Subscribe;
|
||||||
import org.greenrobot.eventbus.ThreadMode;
|
import org.greenrobot.eventbus.ThreadMode;
|
||||||
|
|
||||||
@@ -48,29 +50,22 @@ import java.util.List;
|
|||||||
public class CircleCategoryFragment extends BaseMvpFragment<CirclePresenter, FragmentCircleCategoryBinding> implements CircleContacts.View {
|
public class CircleCategoryFragment extends BaseMvpFragment<CirclePresenter, FragmentCircleCategoryBinding> implements CircleContacts.View {
|
||||||
CirleCategoryBannerAdapter cirleCategoryBannerAdapter;
|
CirleCategoryBannerAdapter cirleCategoryBannerAdapter;
|
||||||
CirleListAdapter cirleListAdapter;
|
CirleListAdapter cirleListAdapter;
|
||||||
private int page;
|
private int page = 1;
|
||||||
|
private String pageLimit = "10";
|
||||||
|
|
||||||
|
private List<CircleListBean> circleList = new ArrayList<>();
|
||||||
|
|
||||||
public static CircleCategoryFragment newInstance() {
|
public static CircleCategoryFragment newInstance() {
|
||||||
return new CircleCategoryFragment();
|
return new CircleCategoryFragment();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
protected void initData() {
|
||||||
super.onResume();
|
|
||||||
page = 1;
|
page = 1;
|
||||||
MvpPre.getCategories();
|
MvpPre.getCategories();
|
||||||
MvpPre.getCircleList("1", "10");
|
MvpPre.getCircleList("1", pageLimit);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void initData() {
|
|
||||||
// MvpPre.getCategories();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressLint("WrongConstant")
|
@SuppressLint("WrongConstant")
|
||||||
@Override
|
@Override
|
||||||
@@ -85,14 +80,11 @@ public class CircleCategoryFragment extends BaseMvpFragment<CirclePresenter, Fra
|
|||||||
.setIndicatorSlideMode(IndicatorSlideMode.NORMAL)
|
.setIndicatorSlideMode(IndicatorSlideMode.NORMAL)
|
||||||
.setAdapter(cirleCategoryBannerAdapter)
|
.setAdapter(cirleCategoryBannerAdapter)
|
||||||
.setAutoPlay(false);
|
.setAutoPlay(false);
|
||||||
// .create();/**/
|
|
||||||
|
|
||||||
mBinding.constraintLayout.setVisibility(View.GONE);
|
mBinding.constraintLayout.setVisibility(View.GONE);
|
||||||
cirleCategoryBannerAdapter.setOnItemClickListener((view, data, position) -> {
|
cirleCategoryBannerAdapter.setOnItemClickListener((view, data, position) -> {
|
||||||
// 示例:跳转到房间详情页
|
// 示例:跳转到房间详情页
|
||||||
if (data != null) {
|
if (data != null) {
|
||||||
// ARouter.getInstance().build(ARouteConstants.DYNAMIC_LIST)
|
|
||||||
// .withString("id", data.getId()).navigation();
|
|
||||||
Intent intent = new Intent(getActivity(), DynamicListActivity.class);
|
Intent intent = new Intent(getActivity(), DynamicListActivity.class);
|
||||||
intent.putExtra("heatedBean", data);
|
intent.putExtra("heatedBean", data);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
@@ -101,44 +93,33 @@ public class CircleCategoryFragment extends BaseMvpFragment<CirclePresenter, Fra
|
|||||||
|
|
||||||
|
|
||||||
mBinding.recycleView.setLayoutManager(new LinearLayoutManager(getContext()));
|
mBinding.recycleView.setLayoutManager(new LinearLayoutManager(getContext()));
|
||||||
|
|
||||||
cirleListAdapter = new CirleListAdapter(CirleListAdapter.PAGE_HOME);
|
cirleListAdapter = new CirleListAdapter(CirleListAdapter.PAGE_HOME);
|
||||||
mBinding.recycleView.setAdapter(cirleListAdapter);
|
mBinding.recycleView.setAdapter(cirleListAdapter);
|
||||||
cirleListAdapter.setOnItemClickListener(new CirleListAdapter.OnItemClickListener() {
|
cirleListAdapter.setOnItemClickListener(new CirleListAdapter.OnItemClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onDianzanClick(CircleListBean item) {
|
public void onDianzanClick(int position, CircleListBean item) {
|
||||||
MvpPre.likeZone(item.getId() + "");
|
MvpPre.likeZone(position, item);
|
||||||
int position = cirleListAdapter.getData().indexOf(item);
|
|
||||||
if (position != -1) {
|
|
||||||
// 更新点赞状态
|
|
||||||
item.setIs_like(item.getIs_like() == 1 ? 0 : 1);
|
|
||||||
// 局部刷新
|
|
||||||
cirleListAdapter.updateLikeStatusOnly(position, item.getIs_like());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onHeadImageClick(CircleListBean item) {
|
public void onHeadImageClick(CircleListBean item) {
|
||||||
ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE).withString("userId", item.getUser_id() + "").navigation();
|
ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE).withString("userId", item.getUser_id() + "").navigation();
|
||||||
// Intent intent = new Intent(getActivity(), UserHomepageActivity.class);
|
|
||||||
// intent.putExtra("userId", item.getUser_id()+"");
|
|
||||||
// startActivity(intent);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onZsClick(CircleListBean item) {//打赏
|
public void onZsClick(int position, CircleListBean item) {//打赏
|
||||||
int position = cirleListAdapter.getData().indexOf(item);
|
|
||||||
RewardGiftDialogFragment.show(String.valueOf(item.getId()), item.getUser_id() + "", position, getChildFragmentManager());
|
RewardGiftDialogFragment.show(String.valueOf(item.getId()), item.getUser_id() + "", position, getChildFragmentManager());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDiandianClick(CircleListBean item) {//点击点点,分享等
|
public void onMoreClick(int idx, CircleListBean item) {//点击点点,分享等
|
||||||
ShareDialog shareDialog = new ShareDialog(getContext(), item.getContent(), item.getShare_url(), item.getId() + "", 3, item.getUser_id() + "", item);
|
ShareDialog shareDialog = new ShareDialog(getContext(), item.getContent(), item.getShare_url(), item.getId() + "", 3, item.getUser_id() + "", item);
|
||||||
shareDialog.setOnShareDataListener(new ShareDialog.OnShareDataListener() {
|
shareDialog.setOnShareDataListener(new ShareDialog.OnShareDataListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onShareDataLoaded(String id) {
|
public void onShareDataLoaded(String id) {
|
||||||
MvpPre.deleteZone(id);
|
MvpPre.deleteZone(idx, item);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
shareDialog.show();
|
shareDialog.show();
|
||||||
@@ -147,10 +128,6 @@ public class CircleCategoryFragment extends BaseMvpFragment<CirclePresenter, Fra
|
|||||||
@Override
|
@Override
|
||||||
public void onPinglunClick(CircleListBean item) {
|
public void onPinglunClick(CircleListBean item) {
|
||||||
ARouter.getInstance().build(ARouteConstants.DYNAMIC_DETAIL).withString("zone_id", item.getId() + "").navigation();
|
ARouter.getInstance().build(ARouteConstants.DYNAMIC_DETAIL).withString("zone_id", item.getId() + "").navigation();
|
||||||
// Intent intent = new Intent(getActivity(), DynamicDetailActivity.class);
|
|
||||||
// intent.putExtra("zone_id", item.getId() + "");
|
|
||||||
// startActivity(intent);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -161,9 +138,10 @@ public class CircleCategoryFragment extends BaseMvpFragment<CirclePresenter, Fra
|
|||||||
@Override
|
@Override
|
||||||
public void onGensui(CircleListBean item) {
|
public void onGensui(CircleListBean item) {
|
||||||
if (item.getRoom_id() != null && !item.getRoom_id().equals("0")) {
|
if (item.getRoom_id() != null && !item.getRoom_id().equals("0")) {
|
||||||
|
if (getActivity() instanceof MainActivity) {
|
||||||
|
((MainActivity) getActivity()).isShowLoading(true);
|
||||||
|
}
|
||||||
RoomManager.getInstance().fetchRoomDataAndEnter(getActivity(), item.getRoom_id(), "", null);
|
RoomManager.getInstance().fetchRoomDataAndEnter(getActivity(), item.getRoom_id(), "", null);
|
||||||
|
|
||||||
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "首页热门列表").withString("roomId", item.getRoom_id()).navigation();
|
|
||||||
} else {
|
} else {
|
||||||
ChatLauncher.getInstance().launchC2CChat(getActivity(), item.getUser_id() + "");
|
ChatLauncher.getInstance().launchC2CChat(getActivity(), item.getUser_id() + "");
|
||||||
}
|
}
|
||||||
@@ -173,22 +151,59 @@ public class CircleCategoryFragment extends BaseMvpFragment<CirclePresenter, Fra
|
|||||||
@Override
|
@Override
|
||||||
public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
|
public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
|
||||||
page++;
|
page++;
|
||||||
MvpPre.getCircleList(page + "", "10");
|
MvpPre.getCircleList(page + "", pageLimit);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("NotifyDataSetChanged")
|
||||||
@Override
|
@Override
|
||||||
public void onRefresh(@NonNull RefreshLayout refreshLayout) {
|
public void onRefresh(@NonNull RefreshLayout refreshLayout) {
|
||||||
page = 1;
|
page = 1;
|
||||||
MvpPre.getCircleList(page + "", "10");
|
circleList.clear();
|
||||||
|
cirleListAdapter.notifyDataSetChanged();
|
||||||
|
MvpPre.getCircleList(page + "", pageLimit);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||||
public void onEvent(GiftRewardEvent event) {
|
public void onEvent(BaseEvent event) {
|
||||||
MvpPre.topicId(event.getZone_id(), 2);
|
if (event instanceof GiftRewardEvent) {
|
||||||
|
MvpPre.getCircleDetail(((GiftRewardEvent) event).getPoints(),
|
||||||
|
circleList.get(((GiftRewardEvent) event).getPoints()));
|
||||||
|
} else if (event instanceof PlazaEvent) {
|
||||||
|
CircleListBean item = null;
|
||||||
|
int index = 0;
|
||||||
|
for (int i = 0; i < circleList.size(); i++) {
|
||||||
|
if (circleList.get(i).getId() == ((PlazaEvent) event).getMsgId()) {
|
||||||
|
item = circleList.get(i);
|
||||||
|
index = i;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
if (item == null)
|
||||||
|
return;
|
||||||
|
switch (((PlazaEvent) event).getType()) {
|
||||||
|
case PlazaEvent.MODIFY_ZONE:
|
||||||
|
MvpPre.getCircleDetail(index, item);
|
||||||
|
break;
|
||||||
|
case PlazaEvent.DELETE_ZONE:
|
||||||
|
if (circleList.size() == 1) {
|
||||||
|
circleList.clear();
|
||||||
|
cirleListAdapter.notifyDataSetChanged();
|
||||||
|
} else {
|
||||||
|
circleList.remove(index);
|
||||||
|
cirleListAdapter.notifyItemRemoved(index);
|
||||||
|
cirleListAdapter.notifyItemRangeChanged(index, circleList.size() - index); // 修正后续索引
|
||||||
|
}
|
||||||
|
MvpPre.getCategories();
|
||||||
|
break;
|
||||||
|
case PlazaEvent.ADD_ZONE:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private IIndicator getVectorDrawableIndicator() {
|
private IIndicator getVectorDrawableIndicator() {
|
||||||
int dp6 = getResources().getDimensionPixelOffset(com.xscm.moduleutil.R.dimen.dp_6);
|
int dp6 = getResources().getDimensionPixelOffset(com.xscm.moduleutil.R.dimen.dp_6);
|
||||||
return new DrawableIndicator(getContext())
|
return new DrawableIndicator(getContext())
|
||||||
@@ -212,43 +227,58 @@ public class CircleCategoryFragment extends BaseMvpFragment<CirclePresenter, Fra
|
|||||||
return new CirclePresenter(this, getContext());
|
return new CirclePresenter(this, getContext());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void newAddRefresh() {
|
||||||
|
page = 1;
|
||||||
|
circleList.clear();
|
||||||
|
MvpPre.getCircleList(page + "", pageLimit);
|
||||||
|
MvpPre.getCategories();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setCategories(List<HeatedBean> list) {
|
public void setCategories(List<HeatedBean> list) {
|
||||||
// 将原始数据拆分为多个子列表,每个子列表最多包含4个元素
|
// 将原始数据拆分为多个子列表,每个子列表最多包含4个元素
|
||||||
mBinding.constraintLayout.setVisibility(View.VISIBLE);
|
mBinding.constraintLayout.setVisibility(View.VISIBLE);
|
||||||
// 添加到 bannerViewPager 的是分页后的列表
|
// 添加到 bannerViewPager 的是分页后的列表
|
||||||
mBinding.bannerViewPager.create(baseListData(list, 4));
|
mBinding.bannerViewPager.create(baseListData(list, 4));
|
||||||
// mBinding.bannerViewPager.addData(baseListData(list, 4));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setCircleList(List<CircleListBean> list) {
|
public void getCircleList(List<CircleListBean> list) {
|
||||||
|
if (list == null || list.isEmpty())
|
||||||
|
return;
|
||||||
if (page == 1) {
|
if (page == 1) {
|
||||||
cirleListAdapter.setNewData(new ArrayList<>());
|
circleList.addAll(list);
|
||||||
cirleListAdapter.setNewData(list);
|
cirleListAdapter.setNewData(circleList);
|
||||||
} else {
|
} else {
|
||||||
if (list!=null && list.size() > 0){
|
List<CircleListBean> oldList = new ArrayList<>(cirleListAdapter.getData());
|
||||||
cirleListAdapter.addData(list);
|
circleList.addAll(list);
|
||||||
}
|
|
||||||
|
DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(new CircleListDiffCallback(oldList, circleList), false);
|
||||||
|
cirleListAdapter.setNewDiffData(diffResult, circleList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setExpandColumn(List<ExpandColumnBean> list) {
|
public void setExpandColumn(List<ExpandColumnBean> list) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setLikeZone(int type) {
|
public void setLikeZone(int index, CircleListBean item, int type) {
|
||||||
if (type == 1) {
|
MvpPre.getCircleDetail(index, item);
|
||||||
MvpPre.getCircleList(page + "", "10");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void getCircleDetail(int index, CircleListBean item, CircleListBean newItem) {
|
||||||
|
List<CircleListBean> oldList = new ArrayList<>(cirleListAdapter.getData());
|
||||||
|
circleList.set(index, newItem);
|
||||||
|
DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(new CircleListDiffCallback(oldList, circleList), false);
|
||||||
|
cirleListAdapter.setNewDiffData(diffResult, circleList);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setCircleDetail(CircleListBean bean) {
|
public void setCircleDetail(CircleListBean bean) {
|
||||||
|
|
||||||
// 更新列表中的单个数据项(仅更新特定字段)
|
// 更新列表中的单个数据项(仅更新特定字段)
|
||||||
if (cirleListAdapter != null && bean != null) {
|
if (cirleListAdapter != null && bean != null) {
|
||||||
List<CircleListBean> dataList = cirleListAdapter.getData();
|
List<CircleListBean> dataList = cirleListAdapter.getData();
|
||||||
@@ -270,6 +300,21 @@ public class CircleCategoryFragment extends BaseMvpFragment<CirclePresenter, Fra
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("NotifyDataSetChanged")
|
||||||
|
@Override
|
||||||
|
public void deleteZone(int index) {
|
||||||
|
if (circleList.size() == 1) {
|
||||||
|
circleList.clear();
|
||||||
|
cirleListAdapter.notifyDataSetChanged();
|
||||||
|
} else {
|
||||||
|
circleList.remove(index);
|
||||||
|
cirleListAdapter.notifyItemRemoved(index);
|
||||||
|
cirleListAdapter.notifyItemRangeChanged(index, circleList.size() - index); // 修正后续索引
|
||||||
|
}
|
||||||
|
|
||||||
|
MvpPre.getCategories();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void getCommentList(CommentBean commentBean) {
|
public void getCommentList(CommentBean commentBean) {
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.xscm.modulemain.activity.plaza.fragment;
|
|||||||
|
|
||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.util.SparseArray;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
@@ -10,10 +11,10 @@ import androidx.fragment.app.FragmentManager;
|
|||||||
import androidx.fragment.app.FragmentStatePagerAdapter;
|
import androidx.fragment.app.FragmentStatePagerAdapter;
|
||||||
|
|
||||||
import com.xscm.modulemain.R;
|
import com.xscm.modulemain.R;
|
||||||
import com.xscm.modulemain.databinding.FragmentCircleBinding;
|
|
||||||
import com.xscm.modulemain.activity.plaza.activity.ReleaseActivity;
|
import com.xscm.modulemain.activity.plaza.activity.ReleaseActivity;
|
||||||
import com.xscm.modulemain.activity.plaza.contacts.CircleContacts;
|
import com.xscm.modulemain.activity.plaza.contacts.CircleContacts;
|
||||||
import com.xscm.modulemain.activity.plaza.presenter.CirclePresenter;
|
import com.xscm.modulemain.activity.plaza.presenter.CirclePresenter;
|
||||||
|
import com.xscm.modulemain.databinding.FragmentCircleBinding;
|
||||||
import com.xscm.moduleutil.base.BaseMvpFragment;
|
import com.xscm.moduleutil.base.BaseMvpFragment;
|
||||||
import com.xscm.moduleutil.bean.CircleListBean;
|
import com.xscm.moduleutil.bean.CircleListBean;
|
||||||
import com.xscm.moduleutil.bean.CommentBean;
|
import com.xscm.moduleutil.bean.CommentBean;
|
||||||
@@ -30,6 +31,10 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public class CircleFragment extends BaseMvpFragment<CirclePresenter, FragmentCircleBinding> implements CircleContacts.View {
|
public class CircleFragment extends BaseMvpFragment<CirclePresenter, FragmentCircleBinding> implements CircleContacts.View {
|
||||||
private List<MyBagBean> list;
|
private List<MyBagBean> list;
|
||||||
|
|
||||||
|
public static final int RELEASE_CODE = 1010;
|
||||||
|
private MyFragmentPagerAdapter adapter;
|
||||||
|
|
||||||
public static CircleFragment newInstance () {
|
public static CircleFragment newInstance () {
|
||||||
return new CircleFragment();
|
return new CircleFragment();
|
||||||
}
|
}
|
||||||
@@ -39,21 +44,28 @@ public class CircleFragment extends BaseMvpFragment<CirclePresenter, FragmentCir
|
|||||||
list=new ArrayList<>();
|
list=new ArrayList<>();
|
||||||
list.add(new MyBagBean("发现", "1"));
|
list.add(new MyBagBean("发现", "1"));
|
||||||
list.add(new MyBagBean("扩列", "2"));
|
list.add(new MyBagBean("扩列", "2"));
|
||||||
|
adapter = new MyFragmentPagerAdapter(getChildFragmentManager(), list);
|
||||||
mBinding.viewPager.setAdapter(new MyFragmentPagerAdapter(getChildFragmentManager(), list));
|
mBinding.viewPager.setAdapter(adapter);
|
||||||
mBinding.tabLayout.setViewPager(mBinding.viewPager);
|
mBinding.tabLayout.setViewPager(mBinding.viewPager);
|
||||||
mBinding.tabLayout.setCurrentTab(0);
|
mBinding.tabLayout.setCurrentTab(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void initView () {
|
protected void initView () {
|
||||||
|
|
||||||
mBinding.ivRelease.setOnClickListener(this::onClick);
|
mBinding.ivRelease.setOnClickListener(this::onClick);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onClick(View view) {
|
private void onClick(View view) {
|
||||||
if (view.getId()==R.id.iv_release){//发布
|
if (view.getId()==R.id.iv_release){//发布
|
||||||
startActivity(new Intent(getContext(), ReleaseActivity.class));
|
startActivityForResult(new Intent(getContext(), ReleaseActivity.class),RELEASE_CODE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
||||||
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
|
if (requestCode==RELEASE_CODE){
|
||||||
|
adapter.refreshCircleCategoryData();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,7 +91,7 @@ public class CircleFragment extends BaseMvpFragment<CirclePresenter, FragmentCir
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setCircleList(List<CircleListBean> list) {
|
public void getCircleList(List<CircleListBean> list) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -89,7 +101,17 @@ public class CircleFragment extends BaseMvpFragment<CirclePresenter, FragmentCir
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setLikeZone(int type) {
|
public void setLikeZone(int idx,CircleListBean item,int type) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void getCircleDetail(int idx,CircleListBean item, CircleListBean newItem) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteZone(int index) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -116,7 +138,7 @@ public class CircleFragment extends BaseMvpFragment<CirclePresenter, FragmentCir
|
|||||||
private static class MyFragmentPagerAdapter extends FragmentStatePagerAdapter {
|
private static class MyFragmentPagerAdapter extends FragmentStatePagerAdapter {
|
||||||
|
|
||||||
private List<MyBagBean> list;
|
private List<MyBagBean> list;
|
||||||
|
private SparseArray<Fragment> fragments = new SparseArray<>();
|
||||||
|
|
||||||
public MyFragmentPagerAdapter(FragmentManager fm, List<MyBagBean> list) {
|
public MyFragmentPagerAdapter(FragmentManager fm, List<MyBagBean> list) {
|
||||||
super(fm);
|
super(fm);
|
||||||
@@ -126,11 +148,17 @@ public class CircleFragment extends BaseMvpFragment<CirclePresenter, FragmentCir
|
|||||||
@Override
|
@Override
|
||||||
public Fragment getItem(int position) {
|
public Fragment getItem(int position) {
|
||||||
MyBagBean model = list.get(position);
|
MyBagBean model = list.get(position);
|
||||||
if ("1".equals(model.getMyBagType())){
|
Fragment fragment = fragments.get(position);
|
||||||
return CircleCategoryFragment.newInstance();
|
if (fragment == null) {
|
||||||
|
if (model.getMyBagType().equals("1")) {
|
||||||
|
fragment = CircleCategoryFragment.newInstance();
|
||||||
} else {
|
} else {
|
||||||
return ExpandColumnFragment.newInstance();
|
fragment = ExpandColumnFragment.newInstance();
|
||||||
}
|
}
|
||||||
|
fragments.put(position, fragment);
|
||||||
|
}
|
||||||
|
|
||||||
|
return fragment;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -138,6 +166,12 @@ public class CircleFragment extends BaseMvpFragment<CirclePresenter, FragmentCir
|
|||||||
return list.size();
|
return list.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void refreshCircleCategoryData() {
|
||||||
|
CircleCategoryFragment circleCategoryFragments = (CircleCategoryFragment) fragments.get(0);
|
||||||
|
circleCategoryFragments.newAddRefresh();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public CharSequence getPageTitle(int position) {
|
public CharSequence getPageTitle(int position) {
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
|
|||||||
import com.alibaba.android.arouter.launcher.ARouter;
|
import com.alibaba.android.arouter.launcher.ARouter;
|
||||||
import com.blankj.utilcode.util.LogUtils;
|
import com.blankj.utilcode.util.LogUtils;
|
||||||
import com.xscm.modulemain.R;
|
import com.xscm.modulemain.R;
|
||||||
|
import com.xscm.modulemain.activity.main.activity.MainActivity;
|
||||||
import com.xscm.modulemain.adapter.ExpandColumnAdapter;
|
import com.xscm.modulemain.adapter.ExpandColumnAdapter;
|
||||||
import com.xscm.modulemain.databinding.FragmentExpandColumnBinding;
|
import com.xscm.modulemain.databinding.FragmentExpandColumnBinding;
|
||||||
import com.scwang.smartrefresh.layout.api.RefreshLayout;
|
import com.scwang.smartrefresh.layout.api.RefreshLayout;
|
||||||
@@ -131,9 +132,10 @@ public class ExpandColumnFragment extends BaseMvpFragment<CirclePresenter, Fragm
|
|||||||
@Override
|
@Override
|
||||||
public void onGnsClick(ExpandColumnBean item) {
|
public void onGnsClick(ExpandColumnBean item) {
|
||||||
if ( item.getRoom_id()!=0){
|
if ( item.getRoom_id()!=0){
|
||||||
|
if (getActivity() instanceof MainActivity){
|
||||||
|
((MainActivity)getActivity()).isShowLoading(true);
|
||||||
|
}
|
||||||
RoomManager.getInstance().fetchRoomDataAndEnter(getActivity(), item.getRoom_id()+"","",null);
|
RoomManager.getInstance().fetchRoomDataAndEnter(getActivity(), item.getRoom_id()+"","",null);
|
||||||
|
|
||||||
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "首页热门列表").withString("roomId", item.getRoom_id()+"").navigation();
|
|
||||||
}else {
|
}else {
|
||||||
ChatLauncher.getInstance().launchC2CChat(getActivity(), item.getUser_id()+"");
|
ChatLauncher.getInstance().launchC2CChat(getActivity(), item.getUser_id()+"");
|
||||||
}
|
}
|
||||||
@@ -162,7 +164,7 @@ public class ExpandColumnFragment extends BaseMvpFragment<CirclePresenter, Fragm
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setCircleList(List<CircleListBean> list) {
|
public void getCircleList(List<CircleListBean> list) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -200,7 +202,17 @@ public class ExpandColumnFragment extends BaseMvpFragment<CirclePresenter, Fragm
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setLikeZone(int type) {
|
public void setLikeZone(int idx,CircleListBean item,int type) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void getCircleDetail(int idx,CircleListBean item, CircleListBean newItem) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteZone(int index) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -46,7 +46,6 @@ public class CirclePresenter extends BasePresenter<CircleContacts.View> implemen
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void getCircleList(String page, String page_limit) {
|
public void getCircleList(String page, String page_limit) {
|
||||||
|
|
||||||
api.getCircleList(page,page_limit,new BaseObserver<List<CircleListBean>>() {
|
api.getCircleList(page,page_limit,new BaseObserver<List<CircleListBean>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSubscribe(Disposable d) {
|
public void onSubscribe(Disposable d) {
|
||||||
@@ -58,7 +57,7 @@ public class CirclePresenter extends BasePresenter<CircleContacts.View> implemen
|
|||||||
if (MvpRef==null){
|
if (MvpRef==null){
|
||||||
MvpRef=new WeakReference<>(mView);
|
MvpRef=new WeakReference<>(mView);
|
||||||
}
|
}
|
||||||
MvpRef.get().setCircleList(circleListBeans);
|
MvpRef.get().getCircleList(circleListBeans);
|
||||||
MvpRef.get().finishComment();
|
MvpRef.get().finishComment();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -83,30 +82,11 @@ public class CirclePresenter extends BasePresenter<CircleContacts.View> implemen
|
|||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// List<String> images=new ArrayList<>();
|
|
||||||
// images.add("https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=false&word=%E7%BE%8E%E5%A5%B3%E5%9B%BE%E7%89%87&hs=0&pn=0&spn=0&di=7490230549689139201&pi=0&rn=1&tn=baiduimagedetail&is=2160705940%2C3901940110&ie=utf-8&oe=utf-8&cl=2&lm=-1&cs=2056927850%2C430353020&os=2160705940%2C3901940110&simid=3513174432%2C352671812&adpicid=0&lpn=0&ln=0&fm=&sme=&cg=girl&bdtype=0&oriquery=&objurl=https%3A%2F%2Fq4.itc.cn%2Fimages01%2F20240627%2Fd30dbf39840a4c0bbeb277a6d773db2f.jpeg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fooo_z%26e3Bf5i7_z%26e3Bv54AzdH3FwAzdH3F0blaabmca_8d8n8lbaa&gsm=&islist=&querylist=");
|
|
||||||
// images.add("https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=false&word=%E7%BE%8E%E5%A5%B3%E5%9B%BE%E7%89%87&hs=0&pn=0&spn=0&di=7490230549689139201&pi=0&rn=1&tn=baiduimagedetail&is=2160705940%2C3901940110&ie=utf-8&oe=utf-8&cl=2&lm=-1&cs=2056927850%2C430353020&os=2160705940%2C3901940110&simid=3513174432%2C352671812&adpicid=0&lpn=0&ln=0&fm=&sme=&cg=girl&bdtype=0&oriquery=&objurl=https%3A%2F%2Fq4.itc.cn%2Fimages01%2F20240627%2Fd30dbf39840a4c0bbeb277a6d773db2f.jpeg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fooo_z%26e3Bf5i7_z%26e3Bv54AzdH3FwAzdH3F0blaabmca_8d8n8lbaa&gsm=&islist=&querylist=");
|
|
||||||
// images.add("https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=false&word=%E7%BE%8E%E5%A5%B3%E5%9B%BE%E7%89%87&hs=0&pn=0&spn=0&di=7490230549689139201&pi=0&rn=1&tn=baiduimagedetail&is=2160705940%2C3901940110&ie=utf-8&oe=utf-8&cl=2&lm=-1&cs=2056927850%2C430353020&os=2160705940%2C3901940110&simid=3513174432%2C352671812&adpicid=0&lpn=0&ln=0&fm=&sme=&cg=girl&bdtype=0&oriquery=&objurl=https%3A%2F%2Fq4.itc.cn%2Fimages01%2F20240627%2Fd30dbf39840a4c0bbeb277a6d773db2f.jpeg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fooo_z%26e3Bf5i7_z%26e3Bv54AzdH3FwAzdH3F0blaabmca_8d8n8lbaa&gsm=&islist=&querylist=");
|
|
||||||
// images.add("https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=false&word=%E7%BE%8E%E5%A5%B3%E5%9B%BE%E7%89%87&hs=0&pn=0&spn=0&di=7490230549689139201&pi=0&rn=1&tn=baiduimagedetail&is=2160705940%2C3901940110&ie=utf-8&oe=utf-8&cl=2&lm=-1&cs=2056927850%2C430353020&os=2160705940%2C3901940110&simid=3513174432%2C352671812&adpicid=0&lpn=0&ln=0&fm=&sme=&cg=girl&bdtype=0&oriquery=&objurl=https%3A%2F%2Fq4.itc.cn%2Fimages01%2F20240627%2Fd30dbf39840a4c0bbeb277a6d773db2f.jpeg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fooo_z%26e3Bf5i7_z%26e3Bv54AzdH3FwAzdH3F0blaabmca_8d8n8lbaa&gsm=&islist=&querylist=");
|
|
||||||
// List<ExpandColumnBean> expandColumnBeans=new ArrayList<>();
|
|
||||||
// for (int i = 0; i < 10; i++){
|
|
||||||
// ExpandColumnBean bean=new ExpandColumnBean();
|
|
||||||
// bean.setId(""+i);
|
|
||||||
// bean.setSex(i % 2 == 0 ? "2" : "1");
|
|
||||||
// bean.setNickname("萌新驾到"+i);
|
|
||||||
// bean.setAvatar("");
|
|
||||||
// bean.setBirthday("2023-05-05");
|
|
||||||
// bean.setLoginip("西安市");
|
|
||||||
// bean.setHome_bgimages(images);
|
|
||||||
// expandColumnBeans.add(bean);
|
|
||||||
// }
|
|
||||||
// MvpRef.get().setExpandColumn(expandColumnBeans);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void likeZone(String zone_id) {
|
public void likeZone(int index,CircleListBean item) {
|
||||||
api.likeZone(zone_id, new BaseObserver<String>() {
|
api.likeZone(item.getId()+"", new BaseObserver<String>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSubscribe(Disposable d) {
|
public void onSubscribe(Disposable d) {
|
||||||
addDisposable(d);
|
addDisposable(d);
|
||||||
@@ -117,7 +97,26 @@ public class CirclePresenter extends BasePresenter<CircleContacts.View> implemen
|
|||||||
if (MvpRef==null){
|
if (MvpRef==null){
|
||||||
MvpRef=new WeakReference<>(mView);
|
MvpRef=new WeakReference<>(mView);
|
||||||
}
|
}
|
||||||
MvpRef.get().setLikeZone(2);
|
MvpRef.get().setLikeZone(index,item,2);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void getCircleDetail(int index,CircleListBean item) {
|
||||||
|
api.zoneDetail(item.getId()+"", new BaseObserver<CircleListBean>() {
|
||||||
|
@Override
|
||||||
|
public void onSubscribe(Disposable d) {
|
||||||
|
addDisposable(d);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onNext(CircleListBean circleListBeans) {
|
||||||
|
if (MvpRef==null){
|
||||||
|
MvpRef=new WeakReference<>(mView);
|
||||||
|
}
|
||||||
|
MvpRef.get().getCircleDetail(index,item,circleListBeans);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -136,7 +135,7 @@ public class CirclePresenter extends BasePresenter<CircleContacts.View> implemen
|
|||||||
if (MvpRef==null){
|
if (MvpRef==null){
|
||||||
MvpRef=new WeakReference<>(mView);
|
MvpRef=new WeakReference<>(mView);
|
||||||
}
|
}
|
||||||
MvpRef.get().setCircleList(circleListBeans);
|
MvpRef.get().getCircleList(circleListBeans);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}else if (type == 2){//这是获取动态详情
|
}else if (type == 2){//这是获取动态详情
|
||||||
@@ -158,8 +157,8 @@ public class CirclePresenter extends BasePresenter<CircleContacts.View> implemen
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deleteZone(String zone_id) {
|
public void deleteZone(int index,CircleListBean bean) {
|
||||||
api.deleteZone(zone_id, new BaseObserver<String>() {
|
api.deleteZone(bean.getId()+"", new BaseObserver<String>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSubscribe(Disposable d) {
|
public void onSubscribe(Disposable d) {
|
||||||
@@ -171,7 +170,7 @@ public class CirclePresenter extends BasePresenter<CircleContacts.View> implemen
|
|||||||
if (MvpRef==null){
|
if (MvpRef==null){
|
||||||
MvpRef=new WeakReference<>(mView);
|
MvpRef=new WeakReference<>(mView);
|
||||||
}
|
}
|
||||||
MvpRef.get().setLikeZone(1);
|
MvpRef.get().deleteZone(index);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,9 +71,6 @@ public class VoiceFragment extends BaseMvpFragment<VoicePresenter, FragmentVoice
|
|||||||
ARouter.getInstance().build(ARouteConstants.MY_ROOM).withFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT).navigation();
|
ARouter.getInstance().build(ARouteConstants.MY_ROOM).withFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT).navigation();
|
||||||
});
|
});
|
||||||
|
|
||||||
// mBinding.ivRoom2.setOnClickListener(v -> {
|
|
||||||
//// ARouter.getInstance().build(ARouteConstants.INDEX_RANKING_LIST).navigation();
|
|
||||||
// });
|
|
||||||
|
|
||||||
mBinding.ivRoom3.setOnClickListener(v -> {
|
mBinding.ivRoom3.setOnClickListener(v -> {
|
||||||
Intent intent = new Intent(getContext(), SearchActivity.class);
|
Intent intent = new Intent(getContext(), SearchActivity.class);
|
||||||
@@ -88,37 +85,6 @@ public class VoiceFragment extends BaseMvpFragment<VoicePresenter, FragmentVoice
|
|||||||
showYouthModelDialog();
|
showYouthModelDialog();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// InviteDialog inviteDialog=new InviteDialog(getContext());
|
|
||||||
// inviteDialog.show();
|
|
||||||
// inviteDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
|
|
||||||
// @Override
|
|
||||||
// public void onDismiss(DialogInterface dialog) {
|
|
||||||
// //邀请弹窗关闭后,弹首充
|
|
||||||
// dialog.dismiss();
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
//
|
|
||||||
// HeavenGiftDialog heavenGiftDialog=new HeavenGiftDialog(getContext());
|
|
||||||
// heavenGiftDialog.show();
|
|
||||||
// heavenGiftDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
|
|
||||||
// @Override
|
|
||||||
// public void onDismiss(DialogInterface dialog) {
|
|
||||||
// //首充弹窗关闭后,弹首充
|
|
||||||
// dialog.dismiss();
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
//
|
|
||||||
// FirstChargeDialog firstChargeDialog=new FirstChargeDialog(getContext());
|
|
||||||
// firstChargeDialog.show();
|
|
||||||
// firstChargeDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
|
|
||||||
// @Override
|
|
||||||
// public void onDismiss(DialogInterface dialog) {
|
|
||||||
// //首充弹窗关闭后,弹首充
|
|
||||||
// dialog.dismiss();
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean shouldShowYouthModelDialog() {
|
private boolean shouldShowYouthModelDialog() {
|
||||||
|
|||||||
@@ -26,6 +26,6 @@ public class UserHomepageConacts {
|
|||||||
void getCircleList(String user_id,String page,String page_limit);
|
void getCircleList(String user_id,String page,String page_limit);
|
||||||
|
|
||||||
void userGuanz(String userId,String type);
|
void userGuanz(String userId,String type);
|
||||||
void deleteZone(String zone_id);
|
void deleteZone(int idx,String zone_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -79,9 +79,8 @@ public class CirleListFragment extends BaseMvpFragment<UserHomepagePresenter, Fr
|
|||||||
|
|
||||||
cirleListAdapter.setOnItemClickListener(new CirleListAdapter.OnItemClickListener() {
|
cirleListAdapter.setOnItemClickListener(new CirleListAdapter.OnItemClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onDianzanClick(CircleListBean item) {
|
public void onDianzanClick(int position,CircleListBean item) {
|
||||||
// MvpPre.likeZone(item.getId() + "");
|
// MvpPre.likeZone(item.getId() + "");
|
||||||
int position = cirleListAdapter.getData().indexOf(item);
|
|
||||||
if (position != -1) {
|
if (position != -1) {
|
||||||
// 更新点赞状态
|
// 更新点赞状态
|
||||||
item.setIs_like(item.getIs_like() == 1 ? 0 : 1);
|
item.setIs_like(item.getIs_like() == 1 ? 0 : 1);
|
||||||
@@ -97,19 +96,17 @@ public class CirleListFragment extends BaseMvpFragment<UserHomepagePresenter, Fr
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onZsClick(CircleListBean item) {
|
public void onZsClick(int position,CircleListBean item) {
|
||||||
int position = cirleListAdapter.getData().indexOf(item);
|
|
||||||
RewardGiftDialogFragment.show(String.valueOf(item.getId()),item.getUser_id()+"",position, getChildFragmentManager());
|
RewardGiftDialogFragment.show(String.valueOf(item.getId()),item.getUser_id()+"",position, getChildFragmentManager());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDiandianClick(CircleListBean item) {
|
public void onMoreClick(int idx,CircleListBean item) {
|
||||||
ShareDialog shareDialog = new ShareDialog(getContext(), item.getContent(),item.getShare_url(),item.getId()+"",1,item.getUser_id()+"", item);
|
ShareDialog shareDialog = new ShareDialog(getContext(), item.getContent(),item.getShare_url(),item.getId()+"",1,item.getUser_id()+"", item);
|
||||||
shareDialog.setOnShareDataListener(new ShareDialog.OnShareDataListener() {
|
shareDialog.setOnShareDataListener(new ShareDialog.OnShareDataListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onShareDataLoaded(String id) {
|
public void onShareDataLoaded(String id) {
|
||||||
MvpPre.deleteZone(id);
|
MvpPre.deleteZone(idx,id);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
shareDialog.show();
|
shareDialog.show();
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ public class UserHomepagePresenter extends BasePresenter<UserHomepageConacts.Vie
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deleteZone(String zone_id) {
|
public void deleteZone(int idx,String zone_id) {
|
||||||
api.deleteZone(zone_id, new BaseObserver<String>() {
|
api.deleteZone(zone_id, new BaseObserver<String>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
20
modulemain/src/main/res/drawable/tab_indicator.xml
Normal file
20
modulemain/src/main/res/drawable/tab_indicator.xml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<!-- 用item标签限制整体尺寸:maxWidth=100dp,height=10dp(与tabIndicatorHeight一致) -->
|
||||||
|
<item
|
||||||
|
android:height="@dimen/dp_8"
|
||||||
|
android:gravity="center"
|
||||||
|
android:maxWidth="@dimen/dp_40">
|
||||||
|
<!-- 最大宽度(根据需求调整) -->
|
||||||
|
<!-- 固定高度(与tabIndicatorHeight匹配) -->
|
||||||
|
<!-- 图片在item内居中 -->
|
||||||
|
<!-- 嵌套bitmap设置图片资源和缩放模式 -->
|
||||||
|
<bitmap
|
||||||
|
android:dither="true"
|
||||||
|
android:scaleType="fitCenter"
|
||||||
|
android:src="@mipmap/tab_x" />
|
||||||
|
<!-- 你的图片资源 -->
|
||||||
|
<!-- 等比例缩放,确保图片在maxWidth和height内完整显示 -->
|
||||||
|
<!-- 抗锯齿优化 -->
|
||||||
|
</item>
|
||||||
|
</layer-list>
|
||||||
@@ -51,7 +51,7 @@
|
|||||||
android:layout_margin="@dimen/dp_16"
|
android:layout_margin="@dimen/dp_16"
|
||||||
android:layout_marginTop="@dimen/dp_12"
|
android:layout_marginTop="@dimen/dp_12"
|
||||||
android:gravity="center|left"
|
android:gravity="center|left"
|
||||||
android:text="全部评论(56)"
|
android:text="全部评论(0)"
|
||||||
android:textColor="@color/color_FF333333"
|
android:textColor="@color/color_FF333333"
|
||||||
android:textSize="@dimen/sp_16"
|
android:textSize="@dimen/sp_16"
|
||||||
android:textStyle="bold" />
|
android:textStyle="bold" />
|
||||||
@@ -107,8 +107,8 @@
|
|||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_send"
|
android:id="@+id/tv_send"
|
||||||
android:layout_width="@dimen/dp_79"
|
android:layout_width="@dimen/dp_80"
|
||||||
android:layout_height="@dimen/dp_31"
|
android:layout_height="@dimen/dp_30"
|
||||||
android:layout_marginEnd="@dimen/dp_12"
|
android:layout_marginEnd="@dimen/dp_12"
|
||||||
android:background="@drawable/cs"
|
android:background="@drawable/cs"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
|
|||||||
@@ -10,22 +10,22 @@
|
|||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent">
|
||||||
>
|
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
android:id="@+id/frame_layout"
|
android:id="@+id/frame_layout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
android:layout_above="@+id/fly_bottom_btn"
|
||||||
android:clipChildren="false" />
|
android:clipChildren="false" />
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
|
android:id="@+id/fly_bottom_btn"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="@dimen/dp_60"
|
android:layout_height="@dimen/dp_60"
|
||||||
android:layout_alignParentBottom="true"
|
android:layout_alignParentBottom="true"
|
||||||
android:background="@color/transparent"
|
android:background="@color/transparent"
|
||||||
android:clipChildren="false"
|
android:clipChildren="false">
|
||||||
>
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/ll_bottom_bar"
|
android:id="@+id/ll_bottom_bar"
|
||||||
@@ -234,30 +234,29 @@
|
|||||||
android:id="@+id/banner"
|
android:id="@+id/banner"
|
||||||
android:layout_width="@dimen/dp_75"
|
android:layout_width="@dimen/dp_75"
|
||||||
android:layout_height="@dimen/dp_85"
|
android:layout_height="@dimen/dp_85"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_alignParentBottom="true"
|
||||||
|
android:layout_marginEnd="@dimen/dp_20"
|
||||||
|
android:layout_marginBottom="@dimen/dp_100"
|
||||||
|
android:clickable="true"
|
||||||
|
android:focusable="true"
|
||||||
android:scaleType="fitCenter"
|
android:scaleType="fitCenter"
|
||||||
app:AutoPlayTime="3000"
|
app:AutoPlayTime="3000"
|
||||||
android:layout_alignParentBottom="true"
|
|
||||||
android:layout_alignParentEnd="true"
|
|
||||||
app:pageChangeDuration="3000"
|
app:pageChangeDuration="3000"
|
||||||
app:pointContainerPosition="BOTTOM"
|
app:pointContainerPosition="BOTTOM"
|
||||||
app:pointNormal="@mipmap/room_ic_banner_point_normal"
|
app:pointNormal="@mipmap/room_ic_banner_point_normal"
|
||||||
app:pointSelect="@mipmap/room_ic_banner_point_select"
|
app:pointSelect="@mipmap/room_ic_banner_point_select"
|
||||||
app:pointTopBottomPadding="@dimen/dp_2"
|
app:pointTopBottomPadding="@dimen/dp_2"
|
||||||
android:layout_marginEnd="@dimen/dp_20"
|
|
||||||
android:layout_marginBottom="@dimen/dp_100"
|
|
||||||
app:pointsPosition="CENTER"
|
app:pointsPosition="CENTER"
|
||||||
app:pointsVisibility="true"
|
app:pointsVisibility="true" />
|
||||||
android:clickable="true"
|
|
||||||
android:focusable="true"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<app.dinus.com.loadingdrawable.LoadingView
|
<app.dinus.com.loadingdrawable.LoadingView
|
||||||
android:id="@+id/cool_wait_view"
|
android:id="@+id/cool_wait_view"
|
||||||
android:layout_width="@dimen/dp_100"
|
android:layout_width="@dimen/dp_100"
|
||||||
android:layout_height="@dimen/dp_100"
|
android:layout_height="@dimen/dp_100"
|
||||||
android:layout_centerInParent="true"
|
android:layout_centerInParent="true"
|
||||||
android:visibility="gone"
|
|
||||||
android:background="@drawable/ps_ic_shadow_bg"
|
android:background="@drawable/ps_ic_shadow_bg"
|
||||||
|
android:visibility="gone"
|
||||||
app:loading_renderer="CoolWaitLoadingRenderer" />
|
app:loading_renderer="CoolWaitLoadingRenderer" />
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
|
|||||||
@@ -11,14 +11,13 @@
|
|||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
|
||||||
android:background="@mipmap/ranking_bj"
|
android:background="@mipmap/ranking_bj"
|
||||||
>
|
android:orientation="vertical">
|
||||||
|
|
||||||
<com.xscm.moduleutil.widget.CustomTopBar
|
<com.xscm.moduleutil.widget.CustomTopBar
|
||||||
android:id="@+id/top_bar"
|
android:id="@+id/top_bar"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content" />
|
||||||
/>
|
|
||||||
|
|
||||||
<com.google.android.material.tabs.TabLayout
|
<com.google.android.material.tabs.TabLayout
|
||||||
android:id="@+id/tabs"
|
android:id="@+id/tabs"
|
||||||
@@ -27,46 +26,22 @@
|
|||||||
android:layout_marginLeft="@dimen/dp_10"
|
android:layout_marginLeft="@dimen/dp_10"
|
||||||
android:layout_marginTop="@dimen/dp_5"
|
android:layout_marginTop="@dimen/dp_5"
|
||||||
android:layout_marginRight="@dimen/dp_10"
|
android:layout_marginRight="@dimen/dp_10"
|
||||||
app:tabIndicatorHeight="10dp"
|
app:tabIndicator="@drawable/tab_indicator"
|
||||||
app:tabIndicator="@mipmap/tab_x"
|
app:tabIndicatorColor="@null"
|
||||||
|
app:tabIndicatorFullWidth="false"
|
||||||
app:tabIndicatorGravity="bottom"
|
app:tabIndicatorGravity="bottom"
|
||||||
app:tabTextColor="@color/white"
|
app:tabIndicatorHeight="10dp"
|
||||||
|
app:tabMode="fixed"
|
||||||
app:tabSelectedTextColor="@color/white"
|
app:tabSelectedTextColor="@color/white"
|
||||||
app:tabTextAppearance="@style/CustomTabTextAppearance"
|
app:tabTextAppearance="@style/CustomTabTextAppearance"
|
||||||
app:tabIndicatorFullWidth="true"
|
app:tabTextColor="@color/white" />
|
||||||
app:tabIndicatorColor="@null"
|
|
||||||
app:tabMode="fixed"/>
|
|
||||||
<!-- app:tabBackground="@mipmap/real_img"-->
|
|
||||||
<!-- app:tabInlineLabel="true"-->
|
|
||||||
<!-- app:tabContentStart="@dimen/dp_23"-->
|
|
||||||
<!-- app:tabGravity="center"-->
|
|
||||||
<!-- app:tabIconTint="@color/color_FF333333"-->
|
|
||||||
<!-- app:tabIconTintMode="add"-->
|
|
||||||
<!-- app:tabIndicatorAnimationDuration="@integer/material_motion_duration_long_1"-->
|
|
||||||
<!-- app:tabIndicator="@color/color_FF333333"-->
|
|
||||||
<!-- app:tabIndicatorAnimationMode="elastic"-->
|
|
||||||
<!-- app:tabIndicatorColor="@color/color_FF333333"-->
|
|
||||||
<!-- app:tabIndicatorFullWidth="true"-->
|
|
||||||
<!-- app:tabIndicatorGravity="center"-->
|
|
||||||
<!-- app:tabIndicatorHeight="@dimen/dp_23"-->
|
|
||||||
<!-- app:tabMaxWidth="@dimen/dp_23"-->
|
|
||||||
<!-- app:tabMinWidth="@dimen/dp_23"-->
|
|
||||||
<!-- app:tabMode="auto"-->
|
|
||||||
<!-- app:tabPadding="@dimen/dp_23"-->
|
|
||||||
<!-- app:tabRippleColor="@color/color_FF333333"-->
|
|
||||||
<!-- app:tabSelectedTextAppearance="@dimen/dp_23"-->
|
|
||||||
<!-- app:tabSelectedTextColor="@color/color_FF333333"-->
|
|
||||||
<!-- app:tabTextAppearance="@dimen/dp_23"-->
|
|
||||||
<!-- app:tabTextColor="@color/color_FF333333"-->
|
|
||||||
<!-- app:tabUnboundedRipple="true"-->
|
|
||||||
<!-- />-->
|
|
||||||
|
|
||||||
<com.xscm.moduleutil.widget.ScrollViewPager
|
<com.xscm.moduleutil.widget.ScrollViewPager
|
||||||
android:id="@+id/view_pager"
|
android:id="@+id/view_pager"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/tabs"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"/>
|
app:layout_constraintTop_toBottomOf="@+id/tabs" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</layout>
|
</layout>
|
||||||
@@ -33,26 +33,6 @@
|
|||||||
|
|
||||||
</com.google.android.material.appbar.AppBarLayout>
|
</com.google.android.material.appbar.AppBarLayout>
|
||||||
|
|
||||||
|
|
||||||
<!-- <com.scwang.smartrefresh.layout.SmartRefreshLayout-->
|
|
||||||
<!-- android:id="@+id/smart_refresh_layout"-->
|
|
||||||
<!-- android:layout_width="match_parent"-->
|
|
||||||
<!-- android:layout_height="wrap_content"-->
|
|
||||||
<!-- app:layout_constraintTop_toBottomOf="@+id/app_bar_layout"-->
|
|
||||||
<!-- app:srlEnableLoadMore="true"-->
|
|
||||||
<!-- app:srlEnableRefresh="false">-->
|
|
||||||
|
|
||||||
|
|
||||||
<!-- <androidx.recyclerview.widget.RecyclerView-->
|
|
||||||
<!-- android:id="@+id/recycle_view"-->
|
|
||||||
<!-- android:layout_width="match_parent"-->
|
|
||||||
<!-- android:layout_height="match_parent"-->
|
|
||||||
<!-- android:paddingLeft="@dimen/dp_6"-->
|
|
||||||
<!-- android:paddingRight="@dimen/dp_6"-->
|
|
||||||
<!-- android:paddingBottom="@dimen/dp_50" />-->
|
|
||||||
|
|
||||||
|
|
||||||
<!-- </com.scwang.smartrefresh.layout.SmartRefreshLayout>-->
|
|
||||||
<com.scwang.smartrefresh.layout.SmartRefreshLayout
|
<com.scwang.smartrefresh.layout.SmartRefreshLayout
|
||||||
android:id="@+id/smart_refresh_layout"
|
android:id="@+id/smart_refresh_layout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|||||||
Reference in New Issue
Block a user