64 Commits

Author SHA1 Message Date
lzl
cdd3f79c59 Merge branch 'branch_new' into branch_new_83 2025-12-16 10:01:20 +08:00
lzl
72a7eecbcd cp空间刷新加载,roomA删除无用代码。 2025-12-16 09:53:39 +08:00
9b7c586d6b 1:修该话题选择的时候的title,更改为在代码中进行设置 2025-12-16 09:51:19 +08:00
41e4dcf2fc 1:修改房间设置中房间类型的图标,交友和点唱互换 2025-12-15 19:35:25 +08:00
a512b50343 1:修改房间明细下拉刷新和上拉加载展示问题 2025-12-15 19:06:28 +08:00
a9af37489e 1:修改房间明细展示头像出现拉伸的情况 2025-12-15 18:59:00 +08:00
lzl
e16878b0cf 用户列表首次显示优化。 2025-12-15 18:52:13 +08:00
8dcafa37ba 1:优化充值页面,展示金额recyclerview自适应高度 2025-12-15 18:42:10 +08:00
a7a24b52f9 1:修改背包上拉加载不显示的问题
2:修改礼盒记录标题显示
2025-12-15 18:20:05 +08:00
c2f5376ec8 1:修改歌单列表出现删除完成后,页面没有刷新的问题 2025-12-15 17:55:18 +08:00
39098757fd 1:修改点唱房中查看历史点歌记录出现数据错乱的情况 2025-12-15 17:41:01 +08:00
7768a8f70b 1:修改礼物取消选择后,还能送出的问题
2:修改背包礼物取消选择后还能送出的问题
3:修改打赏礼物取消选择后还能送出的问题
2025-12-15 17:02:09 +08:00
lzl
42f786f9ef 76 1.0.8.6 apk download 2025-12-15 15:39:15 +08:00
lzl
0c8163277a 76 1.0.8.6 apk down 路径qipao/apk/xxx 2025-12-15 14:48:02 +08:00
lzl
c2096a8274 76 1.0.8.6 2025-12-15 14:27:57 +08:00
lzl
5fb367e321 app内下载apk修改。 2025-12-15 14:22:09 +08:00
lzl
14782341f9 测试app内下载安装 2025-12-15 10:23:22 +08:00
lzl
724046c9c6 添加log. 2025-12-13 01:26:07 +08:00
b915e9d044 1:还原礼物选择问题 2025-12-13 00:44:30 +08:00
lzl
f80582a189 hh 2025-12-12 23:39:13 +08:00
lzl
c200c6c307 fix bugs. 2025-12-12 23:15:30 +08:00
dce92eb61a 1:添加修改房间信息更新 2025-12-12 23:09:29 +08:00
56d5d40214 1:修改跳转房间出现roomId丢失的问题
2:修改红包列表上拉加载和下拉刷新
3:给签约房添加倒计时展示
2025-12-12 22:25:04 +08:00
lzl
98f8928bc8 fix bugs. 2025-12-12 21:46:35 +08:00
bc4e9b4bfa 1:修改点歌中的历史点歌中昨日列表 2025-12-12 20:53:26 +08:00
fda29801b3 1:我的歌单下拉刷新修改 2025-12-12 20:38:11 +08:00
lzl
13d8e94083 fix bugs. 2025-12-12 20:20:50 +08:00
lzl
be09d0e792 84 跳转房间 taskid=null,fix bugs. 2025-12-12 19:23:35 +08:00
ec535432e7 1:修改挚友中出现查看别人的时候,展示的删除和置顶按钮 2025-12-12 19:13:30 +08:00
c563354117 1:爵位支付不选支付方式,容错 2025-12-12 19:05:29 +08:00
71fce13074 1:修改排行榜中心动榜榜三不显示头像的问题 2025-12-12 18:51:43 +08:00
1746e7a89b 1:添加了师徒的礼物标签 2025-12-12 18:41:03 +08:00
d63fd43ad2 1:添加了师徒的礼物标签 2025-12-12 18:30:20 +08:00
8faac0f526 1:修改每日任务的容错
2:修改签到弹框布局变更
2025-12-12 18:13:26 +08:00
dfefaae153 1:修改音效中的音量按键图标 2025-12-12 17:23:22 +08:00
lzl
23de7e5bf6 84 任务跳转 2025-12-12 16:02:42 +08:00
37395ccff3 1:修改签到布局 2025-12-12 15:57:11 +08:00
ebf29b2aa2 1:修改签到展示布局页面 2025-12-12 15:52:06 +08:00
f646493800 1:添加签到功能,在首页展示,跟在青少年模式下,
2:在任务页面展示签到功能
2025-12-12 15:28:15 +08:00
6825009aba 1:添加签到功能,在首页展示,跟在青少年模式下,
2:在任务页面展示签到功能
2025-12-12 15:27:32 +08:00
lzl
17b562f194 84 师徒任务添加容错 2025-12-12 11:40:44 +08:00
lzl
89374e536d 84 房间跳转优化。 2025-12-12 10:32:35 +08:00
lzl
0d8b0134d9 84 任务优化。 2025-12-12 10:13:45 +08:00
lzl
feb922624f 84 2025-12-12 09:22:05 +08:00
lzl
6bae825d0f 邀请进入房间dialog 弹出优化。 2025-12-12 09:17:05 +08:00
lzl
d470b2fdb1 任务1 2025-12-11 21:05:04 +08:00
ed0eccd0ee 1:修改注冊的时候,年龄必选,并且更改默认年龄是18年前
2:修改创建房间,本地进行判断改为服务端进行判断
3:修改歌手认证bug
4:修改和用户相关的出现为空的错误
5:修改挚友在用户主页的位置,不丝滑的滑动问题
6:修改搜索页面展示全部房间,用户展示性别
2025-12-11 21:04:25 +08:00
lzl
ecdd2fc063 房间列表上拉加载 2025-12-11 09:19:54 +08:00
b6bc353db1 1:每日任务展示列表 2025-12-11 09:07:21 +08:00
e386b072f5 1:修改挚友展示不正确
2:修改歌单显示重复展示
3:修改家族收益上拉刷新展示不全
2025-12-10 19:43:43 +08:00
lzl
3263fbd7f6 83 fix bugs. 2025-12-10 18:42:52 +08:00
lzl
a593acba07 Merge branch 'branch_new' into branch_new_83 2025-12-10 18:12:01 +08:00
lzl
b5b443e188 83 room_details_list 2025-12-10 18:10:46 +08:00
lzl
9d546717db 83 优化 2025-12-10 18:06:10 +08:00
dab7e1e83a 1:添加注释
2:修改钻石支出和金币支出最后不显示的问题
2025-12-10 16:21:27 +08:00
lzl
8232415cbf 83 2025-12-10 16:16:10 +08:00
lzl
3c59e8bbce 83 2025-12-10 16:15:37 +08:00
lzl
611c4829ce fix bugs.1 72 2025-12-10 15:30:34 +08:00
2b137643f2 1:修改文字错误 2025-12-10 15:00:05 +08:00
lzl
913e92644c fix bugs.72 2025-12-10 14:54:47 +08:00
lzl
531d62ae3a fix bugs.71 2025-12-10 14:54:06 +08:00
lzl
19ce1dbe94 fix bugs. 2025-12-10 14:35:03 +08:00
lzl
91e222554a 判断隐藏显示 2025-12-10 14:07:55 +08:00
lzl
a9c2bd9878 首页弹窗推荐接口数据类型不对添加判断。 2025-12-10 11:15:32 +08:00
133 changed files with 2696 additions and 1015 deletions

View File

@@ -74,8 +74,7 @@ public class AppUpdateDialog extends BaseDialog<DialogAppUpdateBinding> implemen
mProgressDialog.setCanceledOnTouchOutside(false); mProgressDialog.setCanceledOnTouchOutside(false);
mProgressDialog.setMessage("下载中请稍等!!!"); mProgressDialog.setMessage("下载中请稍等!!!");
mProgressDialog.show(); mProgressDialog.show();
DownloadUtil downloadUtil = new DownloadUtil(getContext()); DownloadUtil downloadUtil = new DownloadUtil(getContext(),appUpdateModel.getUrl(),this);
downloadUtil.downloadFile(appUpdateModel.getUrl(), this);
} }
} }

View File

@@ -274,9 +274,11 @@ public class CirleListAdapter extends BaseQuickAdapter<CircleListBean, BaseViewH
} }
if (item.getRoom_id() != null && !item.getRoom_id().equals("0")) { if (item.getRoom_id() != null && !item.getRoom_id().equals("0")) {
helper.setText(R.id.gensui, "跟随"); helper.setText(R.id.gensui, "");
helper.getView(R.id.gensui).setBackgroundResource(com.xscm.moduleutil.R.mipmap.gsui);
} else if (item.getRoom_id() == null || item.getRoom_id().equals("0")) { } else if (item.getRoom_id() == null || item.getRoom_id().equals("0")) {
helper.setText(R.id.gensui, "私信"); helper.setText(R.id.gensui, "");
helper.getView(R.id.gensui).setBackgroundResource(com.xscm.moduleutil.R.mipmap.six);
} }
//分享数 //分享数
// helper.setText(R.id.dy_zs, item.getRewards_num() != null ? item.getRewards_num() : "0"); // helper.setText(R.id.dy_zs, item.getRewards_num() != null ? item.getRewards_num() : "0");

View File

@@ -80,6 +80,7 @@ public class GiftRoomAdapter extends BaseAdapter {
private static RoonGiftModel sGiftModel; private static RoonGiftModel sGiftModel;
private GiftRoomAdapter mAdapter; private GiftRoomAdapter mAdapter;
private RoonGiftModel mGiftModel; private RoonGiftModel mGiftModel;
public void setGiftModel(GiftRoomAdapter adapter, RoonGiftModel gift) { public void setGiftModel(GiftRoomAdapter adapter, RoonGiftModel gift) {
sAdapter = new WeakReference<>(adapter); sAdapter = new WeakReference<>(adapter);
sGiftModel = gift; sGiftModel = gift;
@@ -129,7 +130,7 @@ public class GiftRoomAdapter extends BaseAdapter {
viewHolder.tv_gift_price = (TextView) convertView.findViewById(R.id.tv_gift_price); viewHolder.tv_gift_price = (TextView) convertView.findViewById(R.id.tv_gift_price);
viewHolder.iv_gift_pic = (ImageView) convertView.findViewById(R.id.iv_gift_pic); viewHolder.iv_gift_pic = (ImageView) convertView.findViewById(R.id.iv_gift_pic);
viewHolder.ivDownOn = (ImageView) convertView.findViewById(R.id.iv_down_on); viewHolder.ivDownOn = (ImageView) convertView.findViewById(R.id.iv_down_on);
viewHolder.iv_gift_select= (ImageView) convertView.findViewById(R.id.iv_gift_select); viewHolder.iv_gift_select = (ImageView) convertView.findViewById(R.id.iv_gift_select);
// im_heart现在位于顶层布局中 // im_heart现在位于顶层布局中
viewHolder.im_heart = (ImageView) convertView.findViewById(R.id.im_heartssss); viewHolder.im_heart = (ImageView) convertView.findViewById(R.id.im_heartssss);
@@ -140,25 +141,32 @@ public class GiftRoomAdapter extends BaseAdapter {
viewHolder.item_layout.setOnClickListener(v -> { viewHolder.item_layout.setOnClickListener(v -> {
// RoonGiftModel clickedModel = (RoonGiftModel) v.getTag(); // RoonGiftModel clickedModel = (RoonGiftModel) v.getTag();
if (giftModel.getIs_lock()==0) { if (giftModel.getIs_lock() == 0) {
EventBus.getDefault().post(new RoomGiftClickToEvent(this, giftModel, 1)); EventBus.getDefault().post(new RoomGiftClickToEvent(this, giftModel, 1));
}else if (giftModel.getIs_lock()==1){ } else if (giftModel.getIs_lock() == 1) {
ToastUtils.show("当前属于爵位礼物,请开通爵位"); ToastUtils.show("当前属于爵位礼物,请开通爵位");
} }
}); });
if (giftModel.getIs_lock()==0){ if (giftModel.getIs_lock() == 0) {
viewHolder.iv_gift_select.setVisibility(GONE); viewHolder.iv_gift_select.setVisibility(GONE);
}else { } else {
viewHolder.iv_gift_select.setVisibility(VISIBLE); viewHolder.iv_gift_select.setVisibility(VISIBLE);
} }
if (giftModel.getIs_cp()==0) {//这是cp礼物 if (giftModel.getIs_cp() == 0 && giftModel.getIs_teacher() == 0 ) {//这是cp礼物
viewHolder.im_heart.setVisibility(GONE); viewHolder.im_heart.setVisibility(GONE);
}else { } else {
if (viewHolder.im_heart != null) { if (viewHolder.im_heart != null) {
viewHolder.im_heart.setVisibility(VISIBLE); viewHolder.im_heart.setVisibility(VISIBLE);
if (giftModel.getIs_cp() == 1) {
viewHolder.im_heart.setImageResource(R.mipmap.icon_heart);
}else if (giftModel.getIs_teacher() == 1) {
viewHolder.im_heart.setImageResource(R.mipmap.icon_teacher);
}
} }
} }
/* /*
* 在给View绑定显示的数据时计算正确的position = position + curIndex * pageSize * 在给View绑定显示的数据时计算正确的position = position + curIndex * pageSize
*/ */

View File

@@ -297,12 +297,18 @@ public class GiftTwoDetailsFragment extends BaseMvpFragment<RewardGiftPresenter,
roonGiftModel.setNum(giftModel.getNum()); roonGiftModel.setNum(giftModel.getNum());
if (giftModel.getGift_id().equals(id)) { if (giftModel.getGift_id().equals(id)) {
if (!giftModel.isChecked()) { if (!giftModel.isChecked()) {
EventBus.getDefault().post(new GiftUserRefreshEvent(true, event.type, roonGiftModel));
giftModel.setChecked(true); giftModel.setChecked(true);
roonGiftModel.setChecked(giftModel.isChecked());
EventBus.getDefault().post(new GiftUserRefreshEvent(true, event.type, roonGiftModel));
}else {
giftModel.setChecked(false);
roonGiftModel.setChecked(giftModel.isChecked());
} }
} else { } else {
giftModel.setChecked(false); giftModel.setChecked(false);
roonGiftModel.setChecked(giftModel.isChecked());
} }
} }
if (event.adapter != null && event.adapter.get() != null) { if (event.adapter != null && event.adapter.get() != null) {
event.adapter.get().notifyDataSetChanged(); event.adapter.get().notifyDataSetChanged();
@@ -321,13 +327,20 @@ public class GiftTwoDetailsFragment extends BaseMvpFragment<RewardGiftPresenter,
if (giftModel.getGift_id().equals(id)) { if (giftModel.getGift_id().equals(id)) {
selGift = giftModel; selGift = giftModel;
if (!giftModel.isChecked()) { if (!giftModel.isChecked()) {
EventBus.getDefault().post(new GiftUserRefreshEvent(true, event.type, roonGiftModel));
giftModel.setChecked(true); giftModel.setChecked(true);
roonGiftModel.setChecked(giftModel.isChecked());
EventBus.getDefault().post(new GiftUserRefreshEvent(true, event.type, roonGiftModel));
}else {
giftModel.setChecked(false);
roonGiftModel.setChecked(giftModel.isChecked());
EventBus.getDefault().post(new GiftUserRefreshEvent(true, event.type, roonGiftModel));
} }
} else { } else {
giftModel.setChecked(false); giftModel.setChecked(false);
EventBus.getDefault().post(new GiftUserRefreshEvent(false, event.type, null)); roonGiftModel.setChecked(giftModel.isChecked());
// EventBus.getDefault().post(new GiftUserRefreshEvent(false, event.type, roonGiftModel));
} }
} }
if (event.adapter != null && event.adapter.get() != null) { if (event.adapter != null && event.adapter.get() != null) {
event.adapter.get().notifyDataSetChanged(); event.adapter.get().notifyDataSetChanged();

View File

@@ -161,7 +161,7 @@ public class CommonAppContext extends MultiDexApplication implements Applicatio
//设置mqtt环境 false 测试环境 true 正式环境 //设置mqtt环境 false 测试环境 true 正式环境
// ExternalResConstants.INSTANCE.setIS_MQTT_RELEASE(false); // ExternalResConstants.INSTANCE.setIS_MQTT_RELEASE(false);
//设置http环境 false 测试环境 true 正式环境 //设置http环境 false 测试环境 true 正式环境
ExternalResConstants.INSTANCE.setIS_HTTP_RELEASE(false); ExternalResConstants.INSTANCE.setIS_HTTP_RELEASE(true);
currentEnvironment = ExternalResConstants.INSTANCE.HTTP_PATH(); currentEnvironment = ExternalResConstants.INSTANCE.HTTP_PATH();
initialization(); initialization();

View File

@@ -3,16 +3,18 @@ package com.xscm.moduleutil.bean;
import java.util.List; import java.util.List;
import lombok.Data; import lombok.Data;
/** /**
*@author qx * @author qx
*@data 2025/5/27 * @data 2025/5/27
*@description: 礼盒数据 * @description: 礼盒数据
*/ */
@Data @Data
public class GiftBoxBean { public class GiftBoxBean {
private String user_gold;//累计获取的金币 private String user_gold;//累计获取的金币
private List<GiftBean> gift_box_list; private List<GiftBean> gift_box_list;
private TaskDataBean tasks; private List<TaskDataBean> tasks;
@Data @Data
public static class GiftBean { public static class GiftBean {
// private String giftName; //初级礼盒、高级礼盒 // private String giftName; //初级礼盒、高级礼盒
@@ -21,10 +23,25 @@ public class GiftBoxBean {
// private String giftTypeNumber; //当前的百分比 // private String giftTypeNumber; //当前的百分比
// private String giftTypeStatus; //是否已经可以 // private String giftTypeStatus; //是否已经可以
/*{
"id":2,
"name":"高级礼盒",
"title":"最高可获得10000金币",
"icon":"",
"highest_gain":"10000",
"meet":"300",
"unlock_progress":0,
"all_number":"1",
"taday_number":0,
"taday_number_left":1,
"status":0,
"status_str":"未解锁"
}*/
private String id;//礼盒ID private String id;//礼盒ID
private String name;//礼盒名称 private String name;//礼盒名称
private String title; //标题 private String title; //标题
private String icon ;//图标 private String icon;//图标
private String highest_gain;//最高获得金币数 private String highest_gain;//最高获得金币数
private String meet;//满多少金币可抽 private String meet;//满多少金币可抽
private String unlock_progress;// //解锁进度 private String unlock_progress;// //解锁进度
@@ -37,25 +54,62 @@ public class GiftBoxBean {
@Data @Data
public static class TaskDataBean { public static class TaskDataBean {
private List<DailyTasksBean> daily_tasks; private List<DailyTasksBean> task_list;
private List<DailyTasksBean> daily_tasks_special; // private List<DailyTasksBean> daily_tasks_special;
private List<DailyTasksBean> usual_tasks; // private List<DailyTasksBean> usual_tasks;
private List<DailyTasksBean> teacher_tasks; // private List<DailyTasksBean> teacher_tasks;
private int task_type_id;
private String task_type_name;
@Data @Data
public static class DailyTasksBean { public static class DailyTasksBean {
private int task_id;////任务Id
private String task_name;//任务名称 /* {
private String icon;//图标 "task_id":20,
private int gold_reward; //奖励金币 "icon":null,
private int target_quantity;//目标完成数量 "task_name":"每日在房间时长 15 分钟(0/15)",
private int task_type;//任务类型 1每日任务 2每日特殊任务 3平台常规任务 "target_quantity":900,
private int task_status;//任务状态1完成 2去领取 3已领取 "task_type":2,
private String task_type_str; //任务状态 "jump_type":4,
private int processing_type;//跳转状态: "tasks_bag_id":0,
private String processing_type_str;//跳转状态 "task_status":1,
private String from_id; "task_type_str":"去完成",
private int reward_type;//1金币 2钻石 "jump_type_str":"跳转房间",
"from_id":6040,
"is_time":1,
"processing_type":2,
"processing_type_str":"去观看",
"reward_str":"25金币笨笨狗x1,
仙女之星头像框,
三八大杠"
}*/
private int task_id;////任务Id
private String icon;//图标
private String task_name;//任务名称
private int target_quantity;//目标完成数量
private int task_type;//任务类型 1每日任务 2每日特殊任务 3平台常规任务
/**
* 0 不跳转
* 1 跳转实名
* 2 跳转我的相册
* 3 跳转绑定管理
* 4 跳转房间
* 5 跳转申请加入公会
* 6 跳转充值
*/
private int jump_type; //跳转类型
private int tasks_bag_id; //任务礼盒ID
private int task_status;//任务状态1完成 2去领取 3已领取
private String task_type_str; //任务状态
private String jump_type_str; //跳转类型提示
private String from_id;
private int is_time;
private int processing_type;//跳转状态:
private String processing_type_str;//跳转状态
private String reward_str;//1奖励
private String student_id;//徒弟ID
} }
} }

View File

@@ -58,7 +58,7 @@ public class PlaceholderBean {
private String nickname1; private String nickname1;
private String avatar; private String avatar;
private String total; private String total;
private String rank; private String rank="";
private List<String> icon; private List<String> icon;
private String room_name; private String room_name;
private String room_id; private String room_id;

View File

@@ -111,6 +111,9 @@ public class RoomMessageEvent extends BaseEvent {
private String sign_day;//被签约天数 private String sign_day;//被签约天数
private String current_body_value;//被签约身价 private String current_body_value;//被签约身价
private String status = "";
private String from_id = "";
} }
@Data @Data

View File

@@ -35,7 +35,8 @@ public class RoonGiftModel {
private int gift_bag;//10天空之境 11岁月之城 12时空之巅 private int gift_bag;//10天空之境 11岁月之城 12时空之巅
private int is_lock;//爵位礼物 0不锁 1 private int is_lock;//爵位礼物 0不锁 1
private int is_cp;//1:是 0不是 private int is_cp;//1:是 0不是 是不是cp心动礼物
private int is_teacher;//1:是 0不是 是不是师徒礼物
public boolean isCan_send_self() { public boolean isCan_send_self() {
if ( isManghe()) { if ( isManghe()) {
return true; return true;

View File

@@ -0,0 +1,115 @@
package com.xscm.moduleutil.bean
import com.chad.library.adapter.base.entity.MultiItemEntity
/**
* 项目名称:羽声语音
* 时间2025/12/12 10:35
* 用途:签到实体类
*/
class SignInData : MultiItemEntity{
val TYPE_NORMAL: Int = 0 // 普通类型使用day_sgin布局
val TYPE_DOUBLE: Int = 1 // 双倍宽度类型使用day_sgin2布局
var viewType: Int = TYPE_NORMAL // 默认为普通类型
var day: Int = 0 //第几天
var sign_in_date: String = "" //日期
var sign_in_status: Int = 0 // 签到状态1已签到 0未签到
var sign_in_status_str: String = "" //已签到
var is_today: Int = 0 //是否是当天 0否 1是
var gift_name: String = "" //礼物名称
var num: String = "" //数量
var gift_price: Int = 0 //价格
var type: Int = 0 //类型: 1金币 2礼物 3装扮 4钻石
var base_image: String = "" //礼物图片
override fun getItemType(): Int {
return viewType
}
/* "gift_bag": [
{
"day": 1, //第几天
"sign_in_date": "2025-12-09", //日期
"sign_in_status": 1, //签到状态1已签到 0未签到
"sign_in_status_str": "已签到",
"is_today": 0, //是否是当天 0否 1是
"gift_name": "金币", //礼物名称
"num": 1, //数量
"gift_price": 1, //价格
"type": 1, //类型: 1金币 2礼物 3装扮 4钻石
"base_image": "https://test.vespa.qxyushen.top/static/image/icon/gold.png" //礼物图片
},
{
"day": 2,
"sign_in_date": "2025-12-10",
"sign_in_status": 1,
"sign_in_status_str": "已签到",
"is_today": 0,
"gift_name": "打工狗",
"num": "1 个",
"gift_price": "9",
"type": 2,
"base_image": "https://cos.xscmmidi.site/admin/3143tianxuanbanzhuangou_17615346376493.png"
},
{
"day": 3,
"sign_in_date": "2025-12-11",
"sign_in_status": 1,
"sign_in_status_str": "已签到",
"is_today": 0,
"gift_name": "神皇",
"num": "3 天",
"gift_price": 30,
"type": 3,
"base_image": "https://midi01.oss-cn-beijing.aliyuncs.com/5544shenhuang_17579016149523.png"
},
{
"day": 4,
"sign_in_date": "2025-12-12",
"sign_in_status": 1,
"sign_in_status_str": "已签到",
"is_today": 1,
"gift_name": "心动喷发",
"num": "2 个",
"gift_price": "100",
"type": 2,
"base_image": "https://cos.xscmmidi.site/admin/3300xindongpenfa_17615347008740.png"
},
{
"day": 5,
"sign_in_date": "2025-12-13",
"sign_in_status": 0,
"sign_in_status_str": "未签到",
"is_today": 0,
"gift_name": "钻石",
"num": 20,
"gift_price": 1,
"type": 4,
"base_image": "https://test.vespa.qxyushen.top/static/image/icon/gold.png"
},
{
"day": 6,
"sign_in_date": "2025-12-14",
"sign_in_status": 0,
"sign_in_status_str": "未签到",
"is_today": 0,
"gift_name": "王者之戒",
"num": "1 个",
"gift_price": "19",
"type": 2,
"base_image": "https://cos.xscmmidi.site/admin/5390wangzhezhijie_17615353361010.png"
},
{
"day": 7,
"sign_in_date": "2025-12-15",
"sign_in_status": 0,
"sign_in_status_str": "未签到",
"is_today": 0,
"gift_name": "财源滚滚",
"num": "30 天",
"gift_price": 288,
"type": 3,
"base_image": "https://midi01.oss-cn-beijing.aliyuncs.com/2160caiyuangunguntouxiangkuang_17579008394073.png"
}
]*/
}

View File

@@ -0,0 +1,11 @@
package com.xscm.moduleutil.bean
/**
* 项目名称:羽声语音
* 时间2025/12/12 14:54
* 用途:签到状态
*/
class TasksSignStatus {
var status : Int=0
var status_str: String=""
}

View File

@@ -1,5 +1,7 @@
package com.xscm.moduleutil.bean; package com.xscm.moduleutil.bean;
import java.util.List;
import lombok.Data; import lombok.Data;
@Data @Data
@@ -9,8 +11,9 @@ public class UserResultResp {
private String user_id; private String user_id;
private String user_code; private String user_code;
private String nickname; private String nickname;
private String head_picture; private String avatar;
private String sex; private int sex;
private List<String> icon;
private String follow; private String follow;
private String fans_count; private String fans_count;
private String online_text; private String online_text;

View File

@@ -1,11 +1,12 @@
package com.xscm.moduleutil.bean.room; package com.xscm.moduleutil.bean.room;
import java.io.Serializable;
import java.util.List; import java.util.List;
import lombok.Data; import lombok.Data;
@Data @Data
public class RoomOnline { public class RoomOnline implements Serializable {
private List<RoomOnlineBean> on_pit;//麦上用户 private List<RoomOnlineBean> on_pit;//麦上用户
private List<RoomOnlineBean> off_pit;//麦下用户 private List<RoomOnlineBean> off_pit;//麦下用户

View File

@@ -2,6 +2,7 @@ package com.xscm.moduleutil.bean.room;
import com.chad.library.adapter.base.entity.MultiItemEntity; import com.chad.library.adapter.base.entity.MultiItemEntity;
import java.io.Serializable;
import java.util.List; import java.util.List;
import lombok.Data; import lombok.Data;
@@ -12,7 +13,7 @@ import lombok.Data;
* @description: 房间在线列表 * @description: 房间在线列表
*/ */
@Data @Data
public class RoomOnlineBean implements MultiItemEntity { public class RoomOnlineBean implements MultiItemEntity, Serializable {
private int itemViewType; private int itemViewType;
private String typeNames; private String typeNames;
private int user_id; private int user_id;

View File

@@ -1,6 +1,7 @@
package com.xscm.moduleutil.dialog; package com.xscm.moduleutil.dialog;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Dialog; import android.app.Dialog;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
@@ -36,6 +37,7 @@ public class ConfirmDialog extends Dialog {
private int countdownSeconds = 0; // 倒计时秒数 private int countdownSeconds = 0; // 倒计时秒数
private CountDownTimer countDownTimer; // 倒计时对象 private CountDownTimer countDownTimer; // 倒计时对象
private Context context;
public ConfirmDialog(Context context, String title, String message, public ConfirmDialog(Context context, String title, String message,
String positiveButtonText, String negativeButtonText, String positiveButtonText, String negativeButtonText,
@@ -43,6 +45,7 @@ public class ConfirmDialog extends Dialog {
View.OnClickListener negativeButtonClickListener, View.OnClickListener negativeButtonClickListener,
boolean isCountdownEnabled, int countdownSeconds) { boolean isCountdownEnabled, int countdownSeconds) {
super(context); super(context);
this.context = context;
this.title = title; this.title = title;
this.message = message; this.message = message;
this.positiveButtonText = positiveButtonText; this.positiveButtonText = positiveButtonText;
@@ -60,6 +63,7 @@ public class ConfirmDialog extends Dialog {
View.OnClickListener negativeButtonClickListener, View.OnClickListener negativeButtonClickListener,
boolean isCountdownEnabled, int countdownSeconds) { boolean isCountdownEnabled, int countdownSeconds) {
super(context); super(context);
this.context = context;
this.title = title; this.title = title;
this.spannableMessage = spannableMessage; this.spannableMessage = spannableMessage;
this.positiveButtonText = positiveButtonText; this.positiveButtonText = positiveButtonText;
@@ -178,6 +182,12 @@ public class ConfirmDialog extends Dialog {
countDownTimer.cancel(); // 取消倒计时 countDownTimer.cancel(); // 取消倒计时
countDownTimer = null; countDownTimer = null;
} }
if (context instanceof Activity) {
Activity activity = (Activity) context;
if (activity.isFinishing() || activity.isDestroyed()) {
return; // Don't try to dismiss if activity is gone
}
}
super.dismiss(); super.dismiss();
} }
} }

View File

@@ -25,9 +25,11 @@ import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.bean.AppPay; import com.xscm.moduleutil.bean.AppPay;
import com.xscm.moduleutil.bean.BindType; import com.xscm.moduleutil.bean.BindType;
import com.xscm.moduleutil.bean.RechargeBean; import com.xscm.moduleutil.bean.RechargeBean;
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
import com.xscm.moduleutil.databinding.FragmentRechargeDialogBinding; import com.xscm.moduleutil.databinding.FragmentRechargeDialogBinding;
import com.xscm.moduleutil.presenter.RechargeDialogContacts; import com.xscm.moduleutil.presenter.RechargeDialogContacts;
import com.xscm.moduleutil.presenter.RechargeDialogPresenter; import com.xscm.moduleutil.presenter.RechargeDialogPresenter;
import com.xscm.moduleutil.utils.ColorManager;
import com.xscm.moduleutil.utils.SpUtil; import com.xscm.moduleutil.utils.SpUtil;
import com.xscm.moduleutil.widget.PaymentUtil; import com.xscm.moduleutil.widget.PaymentUtil;
import com.tencent.mm.opensdk.openapi.IWXAPI; import com.tencent.mm.opensdk.openapi.IWXAPI;
@@ -142,6 +144,9 @@ public class RechargeDialogFragment extends BaseMvpDialogFragment<RechargeDialog
}else{ }else{
mBinding.r4.setVisibility(View.GONE); mBinding.r4.setVisibility(View.GONE);
} }
ThemeableDrawableUtils.setThemeableRoundedBackground(mBinding.tvPayment, ColorManager.getInstance().getPrimaryColorInt(), 53);
mBinding.tvPayment.setTextColor(ColorManager.getInstance().getButtonColorInt());
} }
@Override @Override

View File

@@ -80,7 +80,7 @@ public interface ApiServer {
@FormUrlEncoded @FormUrlEncoded
@POST(Constants.dailyTasksReceive) @POST(Constants.dailyTasksReceive)
Call<ResponseBody> dailyTasksReceive(@Field("task_id") String task_id); Call<ResponseBody> dailyTasksReceive(@Field("task_id") String task_id,@Field("student_id") String student_id);
@FormUrlEncoded @FormUrlEncoded
@POST(Constants.dailyTasksComplete) @POST(Constants.dailyTasksComplete)
@@ -498,6 +498,10 @@ public interface ApiServer {
@POST(Constants.JOIN_ROOM) @POST(Constants.JOIN_ROOM)
Call<BaseModel<RoomInfoResp>> roomGetIn(@Field("room_id") String roomId, @Field("password") String password); Call<BaseModel<RoomInfoResp>> roomGetIn(@Field("room_id") String roomId, @Field("password") String password);
@FormUrlEncoded
@POST(Constants.TASK_JUMP_ROOM)
Call<BaseModel<String>> taskJumpRoomId(@Field("task_id") String taskId);
@FormUrlEncoded @FormUrlEncoded
@POST(Constants.DELETE_ALBUM_IMAGE) @POST(Constants.DELETE_ALBUM_IMAGE)
Call<BaseModel<String>> deleteAlbumImage(@Field("id") String id); Call<BaseModel<String>> deleteAlbumImage(@Field("id") String id);
@@ -915,4 +919,14 @@ public interface ApiServer {
@FormUrlEncoded @FormUrlEncoded
@POST(Constants.POST_SIGN_REFUSE) @POST(Constants.POST_SIGN_REFUSE)
Call<BaseModel<String>> signRefuse(@Field("room_id") String room_id); Call<BaseModel<String>> signRefuse(@Field("room_id") String room_id);
@GET(Constants.GET_SIGN_IN_LIST)
Call<BaseModel<List<SignInData>>> signIn();
@GET(Constants.POST_DAILY_TASKS_SIGN)
Call<BaseModel<String>> postDailyTasksSign();
@GET(Constants.POST_DAILY_TASKS_SIGN_STATUS)
Call<BaseModel<TasksSignStatus>> postDailyTasksSignStatus();
} }

View File

@@ -887,8 +887,8 @@ public class RetrofitClient {
sApiServer.roomRanking(type).compose(new DefaultTransformer<>()).subscribe(observer); sApiServer.roomRanking(type).compose(new DefaultTransformer<>()).subscribe(observer);
} else if (ranking_type.equals("1") || ranking_type.equals("2")) { } else if (ranking_type.equals("1") || ranking_type.equals("2")) {
sApiServer.wealthRanking(ranking_type, type).compose(new DefaultTransformer<>()).subscribe(observer); sApiServer.wealthRanking(ranking_type, type).compose(new DefaultTransformer<>()).subscribe(observer);
} else if (ranking_type.equals("3")) { } else if (ranking_type.equals("3")) {//2025年12月11日14:57:44原是传递的type现在修改成0.只是将真爱榜变成心动榜
sApiServer.loveRanking(type).compose(new DefaultTransformer<>()).subscribe(observer); sApiServer.loveRanking("0").compose(new DefaultTransformer<>()).subscribe(observer);
} else if (ranking_type.equals("4")) { } else if (ranking_type.equals("4")) {
sApiServer.guildRanking().compose(new DefaultTransformer<>()).subscribe(observer); sApiServer.guildRanking().compose(new DefaultTransformer<>()).subscribe(observer);
} }
@@ -921,6 +921,8 @@ public class RetrofitClient {
BaseModel<List<MyBagDataBean>> baseModel = response.body(); BaseModel<List<MyBagDataBean>> baseModel = response.body();
if (baseModel.getCode() == 1) { if (baseModel.getCode() == 1) {
observer.onNext(baseModel.getData()); observer.onNext(baseModel.getData());
}else if (baseModel.getCode() == 0) {
observer.onNext(new ArrayList<>());
} }
} }
} }
@@ -940,6 +942,8 @@ public class RetrofitClient {
BaseModel<List<MyBagDataBean>> baseModel = response.body(); BaseModel<List<MyBagDataBean>> baseModel = response.body();
if (baseModel.getCode() == 1) { if (baseModel.getCode() == 1) {
observer.onNext(baseModel.getData()); observer.onNext(baseModel.getData());
}else if (baseModel.getCode() == 0) {
observer.onNext(new ArrayList<>());
} }
} }
} }
@@ -961,7 +965,7 @@ public class RetrofitClient {
if (baseModel.getCode() == 1) { if (baseModel.getCode() == 1) {
observer.onNext(baseModel.getData()); observer.onNext(baseModel.getData());
} else { } else {
observer.onNext(null); // observer.onNext(null);
} }
} }
} }
@@ -982,7 +986,7 @@ public class RetrofitClient {
if (baseModel.getCode() == 1) { if (baseModel.getCode() == 1) {
observer.onNext(baseModel.getMsg()); observer.onNext(baseModel.getMsg());
} else { } else {
observer.onNext(null); // observer.onNext(null);
} }
} }
} }
@@ -1058,8 +1062,8 @@ public class RetrofitClient {
sApiServer.dailyTasksOpenBox(gift_box_id).compose(new DefaultTransformer<>()).subscribe(observer); sApiServer.dailyTasksOpenBox(gift_box_id).compose(new DefaultTransformer<>()).subscribe(observer);
} }
public void dailyTasksReceive(String task_id, BaseObserver<String> observer) { public void dailyTasksReceive(String task_id,String student_id, BaseObserver<String> observer) {
sApiServer.dailyTasksReceive(task_id).enqueue(new Callback<ResponseBody>() { sApiServer.dailyTasksReceive(task_id,student_id).enqueue(new Callback<ResponseBody>() {
@Override @Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) { public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
@@ -2277,6 +2281,26 @@ public class RetrofitClient {
}); });
} }
public void taskJumpRoomId(String taskId, BaseObserver<String> observer) {
sApiServer.taskJumpRoomId(taskId).enqueue(new Callback<BaseModel<String>>() {
@Override
public void onResponse(Call<BaseModel<String>> call, Response<BaseModel<String>> response) {
if (response.code() == 200) {
BaseModel<String> stringBaseModel = response.body();
if (stringBaseModel.getCode() == 1) {
observer.onNext(stringBaseModel.getData());
}
}
}
@Override
public void onFailure(Call<BaseModel<String>> call, Throwable t) {
}
});
}
public void updatePassword(String roomId, String password, BaseObserver<String> observer) { public void updatePassword(String roomId, String password, BaseObserver<String> observer) {
sApiServer.updatePassword(roomId, password).enqueue(new Callback<BaseModel<String>>() { sApiServer.updatePassword(roomId, password).enqueue(new Callback<BaseModel<String>>() {
@@ -2452,7 +2476,11 @@ public class RetrofitClient {
if (response.code() == 200) { if (response.code() == 200) {
BaseModel<IndexRecommendRoom> indexRecommendRoomBaseModel = response.body(); BaseModel<IndexRecommendRoom> indexRecommendRoomBaseModel = response.body();
if (indexRecommendRoomBaseModel.getCode() == 1) { if (indexRecommendRoomBaseModel.getCode() == 1) {
observer.onNext(indexRecommendRoomBaseModel.getData()); if (indexRecommendRoomBaseModel.getData() == null) {
observer.onNext(new IndexRecommendRoom());
}else {
observer.onNext(indexRecommendRoomBaseModel.getData());
}
} else if (indexRecommendRoomBaseModel.getCode() == 0) { } else if (indexRecommendRoomBaseModel.getCode() == 0) {
ToastUtils.showShort(indexRecommendRoomBaseModel.getMsg()); ToastUtils.showShort(indexRecommendRoomBaseModel.getMsg());
} else if (indexRecommendRoomBaseModel.getCode() == 301) { } else if (indexRecommendRoomBaseModel.getCode() == 301) {
@@ -4909,6 +4937,83 @@ public class RetrofitClient {
} }
} }
public void signIn(BaseObserver<List<SignInData>> observer) {
sApiServer.signIn().enqueue(new Callback<BaseModel<List<SignInData>>>(){
@Override
public void onResponse(Call<BaseModel<List<SignInData>>> call, Response<BaseModel<List<SignInData>>> response) {
if (response.code()==200){
BaseModel<List<SignInData>> baseModel = response.body();
if (baseModel.getCode()==1 ){
observer.onNext(baseModel.getData()!=null ? baseModel.getData() : new ArrayList<SignInData>());
}else if (baseModel.getCode()==0){
com.hjq.toast.ToastUtils.show(baseModel.getMsg());
}else if (baseModel.getCode()==301){
try {
CommonAppContext.getInstance().clearLoginInfo();
ToastUtils.showShort(baseModel.getMsg());
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
}else {
LogUtils.e("signIn",response.errorBody());
}
}
@Override
public void onFailure(Call<BaseModel<List<SignInData>>> call, Throwable t) {
LogUtils.e("signIn", t.fillInStackTrace());
}
});
}
public void dailyTasksSign(BaseObserver<String> observer) {
sApiServer.postDailyTasksSign().enqueue(new Callback<BaseModel<String>>(){
@Override
public void onResponse(Call<BaseModel<String>> call, Response<BaseModel<String>> response) {
onNextRetu(response, observer);
}
@Override
public void onFailure(Call<BaseModel<String>> call, Throwable t) {
LogUtils.e("signIn", t.fillInStackTrace());
}
});
}
public void tasksSignStatus(BaseObserver<TasksSignStatus> observer) {
sApiServer.postDailyTasksSignStatus().enqueue(new Callback<BaseModel<TasksSignStatus>>(){
@Override
public void onResponse(Call<BaseModel<TasksSignStatus>> call, Response<BaseModel<TasksSignStatus>> response) {
if (response.code()==200){
BaseModel<TasksSignStatus> baseModel = response.body();
if (baseModel.getCode()==1){
observer.onNext(baseModel.getData());
}else if (baseModel.getCode()==0){
com.hjq.toast.ToastUtils.show(baseModel.getMsg());
}else if (baseModel.getCode()==301){
try {
CommonAppContext.getInstance().clearLoginInfo();
ToastUtils.showShort(baseModel.getMsg());
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
}else {
LogUtils.e("postDailyTasksSignStatus",response.errorBody());
}
}
@Override
public void onFailure(Call<BaseModel<TasksSignStatus>> call, Throwable t) {
LogUtils.e("postDailyTasksSignStatus", t.fillInStackTrace());
}
});
}
} }

View File

@@ -17,6 +17,7 @@ import com.xscm.moduleutil.event.RoomJoinMountModel;
import com.xscm.moduleutil.event.UnreadCountEvent; import com.xscm.moduleutil.event.UnreadCountEvent;
import com.xscm.moduleutil.http.RetrofitClient; import com.xscm.moduleutil.http.RetrofitClient;
import com.xscm.moduleutil.rtc.MusicPlayBean; import com.xscm.moduleutil.rtc.MusicPlayBean;
import com.xscm.moduleutil.utils.CustomMsgCode;
import com.xscm.moduleutil.utils.SpUtil; import com.xscm.moduleutil.utils.SpUtil;
import com.tencent.imsdk.v2.V2TIMAdvancedMsgListener; import com.tencent.imsdk.v2.V2TIMAdvancedMsgListener;
import com.tencent.imsdk.v2.V2TIMCallback; import com.tencent.imsdk.v2.V2TIMCallback;
@@ -66,6 +67,8 @@ public class MessageListenerSingleton {
private final Map<String, List<RoomMessageEvent>> cachedMessages = new ConcurrentHashMap<>(); private final Map<String, List<RoomMessageEvent>> cachedMessages = new ConcurrentHashMap<>();
private final Set<String> joinedRooms = ConcurrentHashMap.newKeySet(); private final Set<String> joinedRooms = ConcurrentHashMap.newKeySet();
private OnMsgTaskListener onMsgTaskListener;
// private boolean listenersAdded = false; // 标记监听器是否已添加 // private boolean listenersAdded = false; // 标记监听器是否已添加
// 1. 添加新的监听器接口 // 1. 添加新的监听器接口
public interface PublicScreenMessageListener { public interface PublicScreenMessageListener {
@@ -321,6 +324,10 @@ public class MessageListenerSingleton {
if (event.getMsgType() == 130 || event.getMsgType() == 131) { if (event.getMsgType() == 130 || event.getMsgType() == 131) {
// EventBus.getDefault().post(event); // EventBus.getDefault().post(event);
RetrofitClient.getInstance().getCpListener().onReceiveMsg(event); RetrofitClient.getInstance().getCpListener().onReceiveMsg(event);
} else if (event.getMsgType() == CustomMsgCode.INSTANCE.getCODE_TASK_APPRENTICE_JOIN_ROOM()) {
if (onMsgTaskListener != null) {
onMsgTaskListener.onMsgTask(event);
}
} else { } else {
notifyMessageReceived(event); notifyMessageReceived(event);
} }
@@ -400,7 +407,7 @@ public class MessageListenerSingleton {
// 使用默认解析 // 使用默认解析
event = GsonUtils.fromJson(message, RoomMessageEvent.class); event = GsonUtils.fromJson(message, RoomMessageEvent.class);
} }
LogUtils.e("收到群自定义消息:"+mRoomId+"===" + event); LogUtils.e("收到群自定义消息:" + mRoomId + "===" + event);
// event = GsonUtils.fromJson(message, RoomMessageEvent.class); // event = GsonUtils.fromJson(message, RoomMessageEvent.class);
} catch (Exception e) { } catch (Exception e) {
// 处理 JSON 解析过程中可能出现的异常,例如记录日志 // 处理 JSON 解析过程中可能出现的异常,例如记录日志
@@ -608,6 +615,30 @@ public class MessageListenerSingleton {
} }
// TODO: 2025/11/19 添加发送公共方法messageType发送的typemessage发送的内容 userId发送给谁
public void sendCustomC2CMessage(int messageType, String userId,RoomMessageEvent.T text) {
text.setFromUserInfo(SpUtil.getUserInfo());
LogUtils.e("发送消息", "messageType:" + messageType + "\nuserId:" + userId + "\ntext:" + text,toString());
RoomMessageEvent roomMessageEvent = new RoomMessageEvent(messageType, mRoomId, text);
String json = com.blankj.utilcode.util.GsonUtils.toJson(roomMessageEvent);
// 转换为 byte[]
byte[] binaryData = json.getBytes(StandardCharsets.UTF_8);
// 创建自定义群消息
V2TIMMessage v2TIMMessage = V2TIMManager.getMessageManager().createCustomMessage(binaryData);
v2TIMMessage.setExcludedFromUnreadCount(true);
v2TIMMessage.setExcludedFromContentModeration(true);
// v2TIMMessage.setNeedReadReceipt(true);
//
// // 发送消息
V2TIMManager.getMessageManager().sendMessage(v2TIMMessage, "u" + userId, null, V2TIMMessage.V2TIM_PRIORITY_HIGH,
true,
null,
sendCallback);
}
public void sendCustomC2CMessage125(String userId, byte[] binaryData) { public void sendCustomC2CMessage125(String userId, byte[] binaryData) {
// 创建自定义群消息 // 创建自定义群消息
V2TIMMessage v2TIMMessage = V2TIMManager.getMessageManager().createCustomMessage(binaryData); V2TIMMessage v2TIMMessage = V2TIMManager.getMessageManager().createCustomMessage(binaryData);
@@ -664,4 +695,13 @@ public class MessageListenerSingleton {
public interface OnMessageReceivedListener { public interface OnMessageReceivedListener {
void onMessageReceived(RoomMessageEvent message); void onMessageReceived(RoomMessageEvent message);
} }
public void setOnMsgTaskListener(OnMsgTaskListener listener) {
this.onMsgTaskListener = listener;
}
public interface OnMsgTaskListener {
void onMsgTask(RoomMessageEvent message);
}
} }

View File

@@ -0,0 +1,8 @@
package com.xscm.moduleutil.utils
object CustomMsgCode {
val CODE_TASK_APPRENTICE_JOIN_ROOM_TIMER_ID = "132"
val CODE_TASK_APPRENTICE_JOIN_ROOM = 132
val CODE_TASK_APPRENTICE_JOIN_ROOM_MSG = "您的师傅邀请您进入房间,您是否同意?"
val CODE_TASK_APPRENTICE_JOIN_ROOM_MSG_REFUSE = "您的徒弟拒绝了您的邀请。"
}

View File

@@ -135,7 +135,7 @@ public class DateSelectDialog extends BaseBottomSheetDialog<MeDialogDateSelectBi
int currentDay = TimeUtils.getDay(); int currentDay = TimeUtils.getDay();
// 如果是最大年份且是最大月份,则日期不能超过当前日期 // 如果是最大年份且是最大月份,则日期不能超过当前日期
if (year == currentYear - 16 && month == currentMonth) { if (year == currentYear - 18 && month == currentMonth) {
dayLimit = currentDay; dayLimit = currentDay;
} }
@@ -158,7 +158,7 @@ public class DateSelectDialog extends BaseBottomSheetDialog<MeDialogDateSelectBi
int monthLimit = 12; int monthLimit = 12;
// 如果是最大年份16年前则月份不能超过当前月份 // 如果是最大年份16年前则月份不能超过当前月份
if (year == currentYear - 16) { if (year == currentYear - 18) {
monthLimit = currentMonth; monthLimit = currentMonth;
} }
@@ -175,7 +175,7 @@ public class DateSelectDialog extends BaseBottomSheetDialog<MeDialogDateSelectBi
private List<DateBean> getYear() { private List<DateBean> getYear() {
int currentYear = TimeUtils.getYear(); int currentYear = TimeUtils.getYear();
int minYear = currentYear - 100; // 最小年份设为100年前 int minYear = currentYear - 100; // 最小年份设为100年前
int maxYear = currentYear - 16; // 最大年份设为16年前 int maxYear = currentYear - 18; // 最大年份设为16年前
List<DateBean> yearList = new ArrayList<>(); List<DateBean> yearList = new ArrayList<>();
for (int i = minYear; i <= maxYear; i++) { for (int i = minYear; i <= maxYear; i++) {

View File

@@ -1,16 +1,21 @@
package com.xscm.moduleutil.utils; package com.xscm.moduleutil.utils;
import android.annotation.SuppressLint;
import android.content.Context; import android.content.Context;
import android.os.Environment; import android.os.Environment;
import android.os.Handler; import android.os.Handler;
import android.os.Looper; import android.os.Looper;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import android.util.Log; import android.util.Log;
import com.alibaba.android.arouter.utils.TextUtils; import com.alibaba.android.arouter.utils.TextUtils;
import com.blankj.utilcode.util.FileUtils; import com.blankj.utilcode.util.FileUtils;
import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.ThreadUtils; import com.blankj.utilcode.util.ThreadUtils;
import com.blankj.utilcode.util.ToastUtils;
import java.io.File; import java.io.File;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
@@ -19,6 +24,11 @@ import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import io.reactivex.Observable;
import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
import okhttp3.ResponseBody; import okhttp3.ResponseBody;
import retrofit2.Call; import retrofit2.Call;
import retrofit2.Callback; import retrofit2.Callback;
@@ -41,14 +51,58 @@ public class DownloadUtil {
private static final String PATH_AUDIO = Environment.getExternalStorageDirectory() + "/qipao/audio"; private static final String PATH_AUDIO = Environment.getExternalStorageDirectory() + "/qipao/audio";
public DownloadUtil(Context context) { @SuppressLint("CheckResult")
public DownloadUtil(Context context, String downUrl,final DownloadListener downloadListener) {
// 1. 判空,避免空指针
if (context == null) {
ToastUtils.showShort("Context 不能为 null");
LogUtils.e("Context 不能为 null."+(mApi == null));
return;
}
if (downUrl == null || downUrl.trim().isEmpty()) {
ToastUtils.showShort("下载链接不能为 null 或空!");
LogUtils.e("下载链接不能为 null 或空!."+(mApi == null));
return;
}
this.mContext = context; this.mContext = context;
final String dUrl = downUrl;
File qipaoDir = new File(mContext.getFilesDir(), PATH_APK);
if (qipaoDir.exists() && qipaoDir.isDirectory()) {
Observable.create(new ObservableOnSubscribe<Boolean>() {
@Override
public void subscribe(ObservableEmitter<Boolean> emitter) throws Exception {
LogUtils.e("删除文件中."+(mApi == null));
FileUtils.deleteAllInDir(qipaoDir);
emitter.onNext(true);
}
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(result -> {
LogUtils.e("删除成功."+(mApi == null));
if (mApi == null) {
//初始化网络请求接口
mApi = ApiHelper.getInstance().createService(ApiInterface.class);
int i = dUrl.lastIndexOf('/');//一定是找最后一个'/'出现的位置
String downUrlEnd = "";
if (i != -1) {
downUrlEnd = dUrl.substring(i);
}
mApkPath = new File(mContext.getFilesDir(), PATH_APK + downUrlEnd).getAbsolutePath();
}
downloadFile(dUrl, downloadListener);
});
} else {
LogUtils.e("else ."+(mApi == null));
if (mApi == null) {
//初始化网络请求接口
mApi = ApiHelper.getInstance().createService(ApiInterface.class);
int i = downUrl.lastIndexOf('/');//一定是找最后一个'/'出现的位置
if (i != -1) {
downUrl = downUrl.substring(i);
}
mApkPath = new File(mContext.getFilesDir(), PATH_APK + downUrl).getAbsolutePath();
}
if (mApi == null) { downloadFile(downUrl, downloadListener);
//初始化网络请求接口
mApi = ApiHelper.getInstance().createService(ApiInterface.class);
mApkPath = new File(mContext.getFilesDir(), PATH_APK).getAbsolutePath();
} }
} }

View File

@@ -1,5 +1,7 @@
package com.xscm.moduleutil.utils; package com.xscm.moduleutil.utils;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Calendar; import java.util.Calendar;
@@ -258,6 +260,25 @@ public class TimeUtils {
return "1天"; // 或者 return "0天"; return "1天"; // 或者 return "0天";
} }
/**
* 计算时间差值并向上取整为天数
* @param currentTimeMillis 当前时间(毫秒级时间戳)
* @param createTimeSecond 创建时间(秒级时间戳)
* @return 向上取整后的天数
*/
public static int calculateDays(long currentTimeMillis, long createTimeSecond) {
// 1. 计算时间差(毫秒)
long timeDiffMillis = currentTimeMillis - createTimeSecond;
// 2. 转换为天数1天 = 24*60*60*1000 毫秒)
BigDecimal daysDecimal = new BigDecimal(timeDiffMillis)
.divide(new BigDecimal(24 * 60 * 60 * 1000), 10, RoundingMode.HALF_UP);
// 3. 向上取整(即使是 8.0001 天也会变成 9 天)
return daysDecimal.setScale(0, RoundingMode.CEILING).intValue();
}
/** /**
* 根据生日字符串计算年龄 * 根据生日字符串计算年龄
* @param birthDay 生日字符串,格式为 "yyyy-MM-dd" * @param birthDay 生日字符串,格式为 "yyyy-MM-dd"

View File

@@ -422,6 +422,7 @@ public class AvatarFrameView extends FrameLayout {
mainHandler.post(() -> { mainHandler.post(() -> {
// 检查是否已销毁 // 检查是否已销毁
if (file.exists()) { if (file.exists()) {
LogUtils.e("有缓存:"+file.exists()+"===="+file.getAbsolutePath());
playMp4File(file); playMp4File(file);
} else { } else {
LogUtils.w(TAG, "有缓存2222222222222"); LogUtils.w(TAG, "有缓存2222222222222");

View File

@@ -260,6 +260,7 @@ public class Constants {
public static final String GET_DECORATE = "/api/Decorate/user_decorate";//装扮详情 public static final String GET_DECORATE = "/api/Decorate/user_decorate";//装扮详情
public static final String SET_USER_DECORATE = "/api/Decorate/set_user_decorate";//用户装扮 public static final String SET_USER_DECORATE = "/api/Decorate/set_user_decorate";//用户装扮
public static final String JOIN_ROOM = "/api/Room/join_room";//加入房间 public static final String JOIN_ROOM = "/api/Room/join_room";//加入房间
public static final String TASK_JUMP_ROOM = "/api/Room/task_jump_room";//师徒任务 加入房间
public static final String UPDATEPASSWORD = "/api/room/setRoomPassword";//更新房间秘密啊 public static final String UPDATEPASSWORD = "/api/room/setRoomPassword";//更新房间秘密啊
public static final String GET_ROOM_ONLINE = "/api/Room/room_online_list";//房间在线列表 public static final String GET_ROOM_ONLINE = "/api/Room/room_online_list";//房间在线列表
@@ -360,9 +361,11 @@ public class Constants {
public static final String POST_ROOM_RANKING = "/api/Ranking/room_ranking";//房间榜 public static final String POST_ROOM_RANKING = "/api/Ranking/room_ranking";//房间榜
public static final String GUILD_RANKING = "/api/Ranking/guild_ranking";//公会榜 public static final String GUILD_RANKING = "/api/Ranking/guild_ranking";//公会榜
public static final String POST_LOVE_RANKING = "/api/Ranking/love_ranking";//真爱榜 public static final String POST_LOVE_RANKING = "/api/Ranking/love_ranking";//真爱榜
public static final String GET_TASKS_LIHEN = "/api/Dailytasks/dailyTasksList";//每日任务列表 public static final String GET_TASKS_LIHEN = "/api/Tasks/dailyTasksList";//每日任务列表
public static final String GET_DAILY_TASK_BOX = "/api/Dailytasks/dailyTasksBoxRecord";//礼盒记录 public static final String GET_DAILY_TASK_BOX = "/api/Tasks/dailyTasksBoxRecord";//礼盒记录
public static final String dailyTasksOpenBox = "/api/Dailytasks/dailyTasksOpenBox";//开启礼盒 public static final String dailyTasksOpenBox = "/api/Tasks/dailyTasksOpenBox";//开启礼盒
public static final String dailyTasksReceive = "/api/Tasks/dailyTasksReceive";//领取每日任务奖励
public static final String dailyTasksComplete = "/api/Tasks/dailyTasksComplete";//领取每日任务奖励
public static final String GET_MY_BAG_DATA = "/api/UserGiftPack/get_gift_pack_income";//背包收入 public static final String GET_MY_BAG_DATA = "/api/UserGiftPack/get_gift_pack_income";//背包收入
public static final String GET_MY_BAG_OUTCOME = "/api/UserGiftPack/get_gift_pack_outcome";//背包礼物支出列表 public static final String GET_MY_BAG_OUTCOME = "/api/UserGiftPack/get_gift_pack_outcome";//背包礼物支出列表
public static final String GET_GIFT_PACK = "/api/UserGiftPack/get_gift_pack_list";//获取背包礼物列表 public static final String GET_GIFT_PACK = "/api/UserGiftPack/get_gift_pack_list";//获取背包礼物列表
@@ -386,9 +389,7 @@ public class Constants {
public static final String GET_ACTIVITIES_PERMISSION = "/api/Activities/activities_permission";//活动弹框权限 public static final String GET_ACTIVITIES_PERMISSION = "/api/Activities/activities_permission";//活动弹框权限
public static final String GET_INDEX_RECOMMEND_ROOM = "/api/Index/index_recommend_room";//首页弹窗推荐房间 public static final String GET_INDEX_RECOMMEND_ROOM = "/api/Index/index_recommend_room";//首页弹窗推荐房间
public static final String GET_DAY_DROP_GIFT = "/api/Activities/day_drop_gift";//天降好礼列表接口(弹框) public static final String GET_DAY_DROP_GIFT = "/api/Activities/day_drop_gift";//天降好礼列表接口(弹框)
public static final String dailyTasksReceive = "/api/Dailytasks/dailyTasksReceive";//领取每日任务奖励
public static final String postRoomSwToken = "/api/Room/update_user_sw_token";//获取用户声网token public static final String postRoomSwToken = "/api/Room/update_user_sw_token";//获取用户声网token
public static final String dailyTasksComplete = "/api/Dailytasks/dailyTasksComplete";//领取每日任务奖励
public static final String POST_CANCEL_USER_DECORATE = "/api/Decorate/cancel_user_decorate";//取消装扮 public static final String POST_CANCEL_USER_DECORATE = "/api/Decorate/cancel_user_decorate";//取消装扮
public static final String GET_THEME_DATA = "/api/Theme/get_theme_data";//主题接口 public static final String GET_THEME_DATA = "/api/Theme/get_theme_data";//主题接口
public static final String START_FRIEND = "/api/Friend/start_friend";//点击开始按钮 交友房 public static final String START_FRIEND = "/api/Friend/start_friend";//点击开始按钮 交友房
@@ -436,6 +437,9 @@ public class Constants {
public static final String POST_FREE_RE_SIGN = "/api/Sign/free_re_sign";//免费续约 public static final String POST_FREE_RE_SIGN = "/api/Sign/free_re_sign";//免费续约
public static final String POST_RE_SIGN = "/api/Sign/re_sign";//续签(花金币) public static final String POST_RE_SIGN = "/api/Sign/re_sign";//续签(花金币)
public static final String POST_SIGN_REFUSE = "/api/RoomPit/refuse_sign_room_host_invite";//签约房间主持邀请上签约麦用户拒绝 public static final String POST_SIGN_REFUSE = "/api/RoomPit/refuse_sign_room_host_invite";//签约房间主持邀请上签约麦用户拒绝
public static final String GET_SIGN_IN_LIST = "/api/Tasks/dailyTasksSignList";//签到列表页面
public static final String POST_DAILY_TASKS_SIGN = "/api/Tasks/dailyTasksSign";//每日签到
public static final String POST_DAILY_TASKS_SIGN_STATUS = "/api/Tasks/dailyTasksSignStatus";//每日签到状态

View File

@@ -15,6 +15,8 @@ class CustomViewPager(context: Context, attrs: AttributeSet?) : ViewPager(contex
private var initialX = 0f private var initialX = 0f
private var initialY = 0f private var initialY = 0f
private var isBeingDragged = false
override fun onInterceptTouchEvent(ev: MotionEvent): Boolean { override fun onInterceptTouchEvent(ev: MotionEvent): Boolean {
when (ev.action) { when (ev.action) {
MotionEvent.ACTION_DOWN -> { MotionEvent.ACTION_DOWN -> {
@@ -31,11 +33,34 @@ class CustomViewPager(context: Context, attrs: AttributeSet?) : ViewPager(contex
if (deltaX > deltaY && deltaX > 30) { // 30是阈值可以根据需要调整 if (deltaX > deltaY && deltaX > 30) { // 30是阈值可以根据需要调整
return super.onInterceptTouchEvent(ev) return super.onInterceptTouchEvent(ev)
} }
// 否则,不拦截,让子视图处理
parent.requestDisallowInterceptTouchEvent(true) // 如果是向上滑动,确保父容器不拦截
return false if (deltaY > deltaX && ev.y < initialY) {
parent.requestDisallowInterceptTouchEvent(true)
return false
}
// // 否则,不拦截,让子视图处理
// parent.requestDisallowInterceptTouchEvent(true)
// return false
}
MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> {
isBeingDragged = false
} }
} }
return super.onInterceptTouchEvent(ev) return super.onInterceptTouchEvent(ev)
} }
override fun onTouchEvent(ev: MotionEvent): Boolean {
when (ev.action) {
MotionEvent.ACTION_DOWN -> {
parent.requestDisallowInterceptTouchEvent(true)
}
MotionEvent.ACTION_MOVE -> {
if (isBeingDragged) {
parent.requestDisallowInterceptTouchEvent(true)
}
}
}
return super.onTouchEvent(ev)
}
} }

View File

@@ -10,26 +10,17 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.blankj.utilcode.util.LogUtils; import com.blankj.utilcode.util.LogUtils;
import com.opensource.svgaplayer.SVGACallback;
import com.opensource.svgaplayer.SVGADrawable;
import com.opensource.svgaplayer.SVGAImageView;
import com.opensource.svgaplayer.SVGAParser;
import com.opensource.svgaplayer.SVGAVideoEntity;
import com.tencent.qgame.animplayer.AnimConfig; import com.tencent.qgame.animplayer.AnimConfig;
import com.tencent.qgame.animplayer.AnimView; import com.tencent.qgame.animplayer.AnimView;
import com.tencent.qgame.animplayer.inter.IAnimListener; import com.tencent.qgame.animplayer.inter.IAnimListener;
import com.xscm.moduleutil.R;
import com.xscm.moduleutil.bean.GiftBean; import com.xscm.moduleutil.bean.GiftBean;
import java.io.File; import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.ReentrantLock;
import lombok.Setter; import lombok.Setter;
@@ -276,55 +267,52 @@ public class GiftAnimView extends FrameLayout implements GiftSvgaView.OnAnimatio
if (isLoadEffect && giftModel != null && !TextUtils.isEmpty(giftModel)) { if (isLoadEffect && giftModel != null && !TextUtils.isEmpty(giftModel)) {
String finalGiftModel = giftModel; String finalGiftModel = giftModel;
post(new Runnable() { post(() -> {
@Override String playImage = finalGiftModel;
public void run() { if (playImage.endsWith("mp4")) {
String playImage = finalGiftModel; downloadAndPlay(getContext(), playImage, new DownloadCallback() {
if (playImage.endsWith("mp4")) { @Override
downloadAndPlay(getContext(), playImage, new DownloadCallback() { public void onSuccess(File file) {
@Override post(() -> {
public void onSuccess(File file) { playerMp4View.setVisibility(View.VISIBLE);
post(() -> { svgaView.setVisibility(View.GONE);
playerMp4View.setVisibility(View.VISIBLE); playerMp4View.startPlay(file);
svgaView.setVisibility(View.GONE); });
playerMp4View.startPlay(file);
});
}
@Override
public void onFailure(Exception e) {
LogUtils.e("MP4下载或播放失败: " + e.getMessage());
// 处理失败情况,继续播放下一个
post(() -> {
lock.lock();
try {
isLoadEffect = false;
} finally {
lock.unlock();
}
loadStartSVGAPlayer();
});
}
});
} else if (playImage.endsWith("svga")) {
// File file = downloadAndPlay(getContext(), playImage);
post(() -> {
playerMp4View.setVisibility(View.GONE);
svgaView.setVisibility(View.VISIBLE);
svgaView.loadSVGAPlayerWith(finalGiftModel, false);
});
} else {
lock.lock();
try {
isLoadEffect = false;
} finally {
lock.unlock();
} }
loadStartSVGAPlayer();
// 直接播放缓存文件
}
@Override
public void onFailure(Exception e) {
LogUtils.e("MP4下载或播放失败: " + e.getMessage());
// 处理失败情况,继续播放下一个
post(() -> {
lock.lock();
try {
isLoadEffect = false;
} finally {
lock.unlock();
}
loadStartSVGAPlayer();
});
}
});
} else if (playImage.endsWith("svga")) {
// File file = downloadAndPlay(getContext(), playImage);
post(() -> {
playerMp4View.setVisibility(View.GONE);
svgaView.setVisibility(View.VISIBLE);
svgaView.loadSVGAPlayerWith(finalGiftModel, false);
});
} else {
lock.lock();
try {
isLoadEffect = false;
} finally {
lock.unlock();
}
loadStartSVGAPlayer();
// 直接播放缓存文件
} }
}); });
} }
} }

View File

@@ -37,7 +37,7 @@ class ShineTextView : AppCompatTextView {
var _count: Int = 0 //自行运行动画次数 var _count: Int = 0 //自行运行动画次数
private lateinit var mLinearGradient: LinearGradient private var mLinearGradient: LinearGradient? = null
private var mGradientMatrix: Matrix = Matrix() private var mGradientMatrix: Matrix = Matrix()
private var mViewWidth = 0 private var mViewWidth = 0
private var mTranslate = 0 private var mTranslate = 0
@@ -121,13 +121,13 @@ class ShineTextView : AppCompatTextView {
_count++ _count++
} }
mGradientMatrix.setTranslate(mTranslate.toFloat(), 0f) mGradientMatrix.setTranslate(mTranslate.toFloat(), 0f)
mLinearGradient.setLocalMatrix(mGradientMatrix) mLinearGradient?.setLocalMatrix(mGradientMatrix)
when { when {
shineType == 0 && _count < shineCount -> postInvalidateDelayed(50) shineType == 0 && _count < shineCount -> postInvalidateDelayed(50)
shineType == 1 && _count < 1 -> postInvalidateDelayed(50) shineType == 1 && _count < 1 -> postInvalidateDelayed(50)
else -> { else -> {
mGradientMatrix.setTranslate((1.2 * mViewWidth).toFloat(), 0f) mGradientMatrix.setTranslate((1.2 * mViewWidth).toFloat(), 0f)
mLinearGradient.setLocalMatrix(mGradientMatrix) mLinearGradient?.setLocalMatrix(mGradientMatrix)
} }
} }
} }

View File

@@ -270,7 +270,7 @@ public class RewardGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPr
private void giveGift(String num) { private void giveGift(String num) {
getSelectedGift(); getSelectedGift();
if (roonGiftModel == null) { if (roonGiftModel == null || !roonGiftModel.isChecked()) {
ToastUtils.show("请选择礼物"); ToastUtils.show("请选择礼物");
return; return;
} }

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="90"
android:centerColor="#CFFFDC"
android:endColor="#CFFFDC"
android:startColor="#DEFF85"
android:type="linear"
android:useLevel="true" />
<corners
android:radius="@dimen/dp_16"
/>
</shape>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="180"
android:centerColor="#90FF86"
android:endColor="#E7FE67"
android:startColor="#5CFBBD"
android:type="linear"
android:useLevel="true" />
<stroke android:color="#FFFFF072" android:width="@dimen/dp_1"/>
<corners android:radius="@dimen/dp_99" />
</shape>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#fffcf7eb" />
<corners
android:bottomLeftRadius="4dp"
android:bottomRightRadius="4dp"
android:topLeftRadius="4dp"
android:topRightRadius="4dp" />
</shape>

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="90"
android:centerColor="#CFFFDC"
android:endColor="#CFFFDC"
android:startColor="#DEFF85"
android:type="linear"
android:useLevel="true" />
<corners
android:bottomLeftRadius="4dp"
android:bottomRightRadius="4dp"
android:topLeftRadius="4dp"
android:topRightRadius="4dp" />
</shape>

View File

@@ -90,7 +90,7 @@
android:id="@+id/im_heartssss" android:id="@+id/im_heartssss"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:src="@mipmap/icon_heart" tools:src="@mipmap/icon_heart"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
android:scaleType="fitCenter" android:scaleType="fitCenter"

View File

@@ -43,7 +43,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/dp_1" android:layout_height="@dimen/dp_1"
android:orientation="horizontal" android:orientation="horizontal"
app:layout_constraintGuide_percent="0.59" /> app:layout_constraintGuide_percent="0.62" />
<ImageView <ImageView
android:id="@+id/iv_frame_bg" android:id="@+id/iv_frame_bg"

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 541 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 633 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 505 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 522 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 992 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 B

View File

@@ -299,6 +299,7 @@
<color name="EFF2F8">#EFF2F8</color> <color name="EFF2F8">#EFF2F8</color>
<color name="color_5B5B5B">#5B5B5B</color> <color name="color_5B5B5B">#5B5B5B</color>
<color name="color_C7BF62">#C7BF62</color> <color name="color_C7BF62">#C7BF62</color>
<color name="color_e3fae4">#FFE3FAE4</color>
<!-- 主题色 --> <!-- 主题色 -->

View File

@@ -2,6 +2,9 @@ package com.xscm.modulemain
import android.app.Activity import android.app.Activity
import android.content.Context import android.content.Context
import android.text.TextUtils
import android.view.View
import com.blankj.utilcode.util.ActivityUtils
import com.blankj.utilcode.util.AppUtils import com.blankj.utilcode.util.AppUtils
import com.blankj.utilcode.util.CrashUtils import com.blankj.utilcode.util.CrashUtils
import com.blankj.utilcode.util.LogUtils import com.blankj.utilcode.util.LogUtils
@@ -10,13 +13,22 @@ import com.opensource.svgaplayer.utils.log.SVGALogger
import com.scwang.smartrefresh.layout.SmartRefreshLayout import com.scwang.smartrefresh.layout.SmartRefreshLayout
import com.scwang.smartrefresh.layout.footer.ClassicsFooter import com.scwang.smartrefresh.layout.footer.ClassicsFooter
import com.scwang.smartrefresh.layout.header.ClassicsHeader import com.scwang.smartrefresh.layout.header.ClassicsHeader
import com.xscm.modulemain.activity.room.activity.RoomActivity
import com.xscm.modulemain.dialog.InviteDialog import com.xscm.modulemain.dialog.InviteDialog
import com.xscm.modulemain.manager.RoomManager
import com.xscm.modulemain.utils.TimerManager
import com.xscm.modulemain.widget.WheatLayoutSingManager import com.xscm.modulemain.widget.WheatLayoutSingManager
import com.xscm.moduleutil.base.CommonAppContext import com.xscm.moduleutil.base.CommonAppContext
import com.xscm.moduleutil.bean.IndexRecommendRoom import com.xscm.moduleutil.bean.IndexRecommendRoom
import com.xscm.moduleutil.bean.RoomMessageEvent
import com.xscm.moduleutil.dialog.ConfirmDialog
import com.xscm.moduleutil.http.BaseObserver import com.xscm.moduleutil.http.BaseObserver
import com.xscm.moduleutil.http.RetrofitClient import com.xscm.moduleutil.http.RetrofitClient
import com.xscm.moduleutil.listener.MessageListenerSingleton
import com.xscm.moduleutil.utils.CustomMsgCode
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
import org.json.JSONObject
import java.util.concurrent.TimeUnit
open class Application : CommonAppContext() { open class Application : CommonAppContext() {
@@ -28,6 +40,7 @@ open class Application : CommonAppContext() {
var isAgoraStop = false var isAgoraStop = false
var inviteDialog: InviteDialog? = null var inviteDialog: InviteDialog? = null
var currDialogActivity: Activity? = null
// 单例实例 // 单例实例
companion object { companion object {
@@ -47,10 +60,9 @@ open class Application : CommonAppContext() {
override fun onCreate() { override fun onCreate() {
super.onCreate() super.onCreate()
APP_CONENT = getExternalFilesDir("APP_CONTENT")?.absolutePath.toString()
LOGUTILS_SAVE_PATH = getExternalFilesDir("APP_CONTENT/APP_LOG")?.absolutePath.toString() LOGUTILS_SAVE_PATH = getExternalFilesDir("APP_CONTENT/APP_LOG")?.absolutePath.toString()
CRASHUTILS_SAVE_PATH = getExternalFilesDir("APP_CONTENT/APP_CRASH")?.absolutePath.toString() CRASHUTILS_SAVE_PATH = getExternalFilesDir("APP_CONTENT/APP_CRASH")?.absolutePath.toString()
getExternalFilesDir("")
APP_CONENT = getExternalFilesDir("APP_CONTENT")?.absolutePath.toString()
// 初始化单例实例 // 初始化单例实例
instance = this instance = this
@@ -65,9 +77,133 @@ open class Application : CommonAppContext() {
initCrashUtils() initCrashUtils()
initSmartRefreshLayout() initSmartRefreshLayout()
initImMsg()
}
private fun initImMsg() {
MessageListenerSingleton.getInstance().setOnMsgTaskListener { event ->
when (event.msgType) {
CustomMsgCode.CODE_TASK_APPRENTICE_JOIN_ROOM -> {
TimerManager.cancelTimer(CustomMsgCode.CODE_TASK_APPRENTICE_JOIN_ROOM_TIMER_ID)
try {
val json = JSONObject(event.text.text)
if (!json.isNull("status")) {
event.text.status = json.getString("status")
}
if (TextUtils.isEmpty(event.text.status))
return@setOnMsgTaskListener
when (event.text.status) {
"1" -> {//1:邀请
if (!json.isNull("room_id"))
event.text.room_id = json.getString("room_id")
if (event?.text?.room_id.isNullOrEmpty())
return@setOnMsgTaskListener
customDialog(
event.text.room_id,
CustomMsgCode.CODE_TASK_APPRENTICE_JOIN_ROOM_MSG,
5,
1,
event.text
)
}
"2" -> {//2:拒绝
customDialog(
"",
CustomMsgCode.CODE_TASK_APPRENTICE_JOIN_ROOM_MSG_REFUSE,
5,
3,
null,
"",
"知道了"
)
}
}
}catch (E: Exception){
LogUtils.e("Exception",E.message.toString())
}
}
}
}
}
private fun customDialog(
roomId: String,
message: String,
downCount: Int,
status: Int = 1,
event: RoomMessageEvent.T?,
confirm: String = "同意",
cancel: String = "拒绝",
) {
// 创建并显示确认对话框
ConfirmDialog(
ActivityUtils.getTopActivity(),
"提示",
message,
confirm,
cancel,
{ v: View? ->
when (status) {
1 -> {
if (!TextUtils.isEmpty(CommonAppContext.getInstance().playId)
&& roomId == CommonAppContext.getInstance().playId
&& ActivityUtils.getTopActivity() is RoomActivity
) {
return@ConfirmDialog
}
if (ActivityUtils.getTopActivity() is RoomActivity) {
(ActivityUtils.getTopActivity() as RoomActivity).refreshRoomInfo(roomId)
return@ConfirmDialog
}
RoomManager.getInstance()
.fetchRoomDataAndEnter(ActivityUtils.getTopActivity(), roomId, "", null)
}
}
},
{ v: View? ->
when (status) {
1 -> {
val text = RoomMessageEvent.T()
val json = JSONObject()
json.put("status", "2")
json.put("room_id", roomId)
text.text = json.toString()
MessageListenerSingleton.getInstance().sendCustomC2CMessage(
CustomMsgCode.CODE_TASK_APPRENTICE_JOIN_ROOM,
event?.fromUserInfo?.user_id.toString(),
text
)
}
}
}, true, downCount
).show()
}
fun inviteApprenticeTaskTimer() {
TimerManager.scheduleTimer(
CustomMsgCode.CODE_TASK_APPRENTICE_JOIN_ROOM_TIMER_ID,
20,
TimeUnit.SECONDS,
onTimeUp = {
customDialog(
"",
CustomMsgCode.CODE_TASK_APPRENTICE_JOIN_ROOM_MSG_REFUSE,
5,
3,
null,
"",
"知道了"
)
})
}
fun bgToForeground() {
AppUtils.registerAppStatusChangedListener(object : Utils.OnAppStatusChangedListener { AppUtils.registerAppStatusChangedListener(object : Utils.OnAppStatusChangedListener {
override fun onForeground(activity: Activity?) {//应用切换到前台 override fun onForeground(activity: Activity?) {//应用切换到前台
if (!CommonAppContext.getInstance().isPlaying) { if (!CommonAppContext.getInstance().isPlaying) {
RetrofitClient.getInstance() RetrofitClient.getInstance()
.index_recommend_room(object : BaseObserver<IndexRecommendRoom>() { .index_recommend_room(object : BaseObserver<IndexRecommendRoom>() {
@@ -75,15 +211,11 @@ open class Application : CommonAppContext() {
} }
override fun onNext(t: IndexRecommendRoom) { override fun onNext(t: IndexRecommendRoom) {
if (t != null) { LogUtils.e(t)
inviteDialog = activity?.let { InviteDialog(it, t) } if (!t.room_id.isNullOrEmpty()) {
if (inviteDialog?.isShowing == false) { showInviteDialog(activity, t)
inviteDialog?.setData(t)
inviteDialog?.show()
}
} }
} }
}) })
} }
} }
@@ -94,6 +226,19 @@ open class Application : CommonAppContext() {
}) })
} }
fun showInviteDialog(activity: Activity?, t: IndexRecommendRoom) {
if (activity != null && activity == currDialogActivity && inviteDialog != null) {
inviteDialog?.setData(t)
return
}
inviteDialog?.dismiss()
inviteDialog = null
inviteDialog = activity?.let { InviteDialog(it, t) }
inviteDialog?.setData(t)
currDialogActivity = activity
}
private fun initLogUtils() { private fun initLogUtils() {
LogUtils.getConfig() LogUtils.getConfig()
.setLogSwitch(true) // 全局开关 .setLogSwitch(true) // 全局开关

View File

@@ -42,6 +42,7 @@ import com.tencent.qcloud.tuikit.tuichat.bean.ChatInfo;
import com.xscm.modulemain.activity.WebViewActivity; import com.xscm.modulemain.activity.WebViewActivity;
import com.xscm.modulemain.activity.main.activity.MainActivity; import com.xscm.modulemain.activity.main.activity.MainActivity;
import com.xscm.modulemain.activity.room.activity.RoomActivity; import com.xscm.modulemain.activity.room.activity.RoomActivity;
import com.xscm.modulemain.activity.user.activity.DailyTasksActivity;
import com.xscm.modulemain.activity.user.activity.HeartCpActivity; import com.xscm.modulemain.activity.user.activity.HeartCpActivity;
import com.xscm.modulemain.activity.user.activity.MyRoomActivity; import com.xscm.modulemain.activity.user.activity.MyRoomActivity;
import com.xscm.modulemain.manager.RoomManager; import com.xscm.modulemain.manager.RoomManager;
@@ -147,6 +148,8 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
((MainActivity) mThis).isShowLoading(false); ((MainActivity) mThis).isShowLoading(false);
} else if (mThis instanceof MyRoomActivity) { } else if (mThis instanceof MyRoomActivity) {
((MyRoomActivity) mThis).isShowLoading(false); ((MyRoomActivity) mThis).isShowLoading(false);
} else if (mThis instanceof DailyTasksActivity) {
((DailyTasksActivity) mThis).isShowLoading(false);
} }
}); });
@@ -1142,5 +1145,9 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
startActivity(intent); startActivity(intent);
} }
public void toActivity(Class<?> clazz) {
Intent intent = new Intent(this, clazz);
startActivity(intent);
}
} }

View File

@@ -1,10 +1,7 @@
package com.xscm.modulemain package com.xscm.modulemain
import android.os.Bundle import android.os.Bundle
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
class TransparentActivity : AppCompatActivity() { class TransparentActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {

View File

@@ -17,6 +17,7 @@ import androidx.fragment.app.Fragment;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.request.target.CustomTarget; import com.bumptech.glide.request.target.CustomTarget;
import com.bumptech.glide.request.transition.Transition; import com.bumptech.glide.request.transition.Transition;
import com.hjq.toast.ToastUtils;
import com.luck.picture.lib.basic.PictureSelector; import com.luck.picture.lib.basic.PictureSelector;
import com.luck.picture.lib.config.PictureConfig; import com.luck.picture.lib.config.PictureConfig;
import com.luck.picture.lib.engine.CropFileEngine; import com.luck.picture.lib.engine.CropFileEngine;
@@ -139,6 +140,11 @@ public class ImproveInfoActivity extends BaseMvpActivity<ImproveInfoPresenter, A
// ToastUtils.showShort("请选择性别"); // ToastUtils.showShort("请选择性别");
return; return;
} }
if(birthdy==null||TextUtils.isEmpty(birthdy)){
ToastUtils.show("请选择生日");
return;
}
if (!inviteCode.isEmpty() || inviteCode != null) { if (!inviteCode.isEmpty() || inviteCode != null) {
// map.put("user_no", inviteCode); // map.put("user_no", inviteCode);
init_code = inviteCode; init_code = inviteCode;

View File

@@ -40,6 +40,7 @@ import com.permissionx.guolindev.callback.RequestCallback;
import com.stx.xhb.xbanner.XBanner; import com.stx.xhb.xbanner.XBanner;
import com.tencent.imsdk.v2.V2TIMManager; import com.tencent.imsdk.v2.V2TIMManager;
import com.tencent.imsdk.v2.V2TIMValueCallback; import com.tencent.imsdk.v2.V2TIMValueCallback;
import com.xscm.modulemain.Application;
import com.xscm.modulemain.BaseMvpActivity; import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.modulemain.R; import com.xscm.modulemain.R;
import com.xscm.modulemain.activity.main.contacts.HomeContacts; import com.xscm.modulemain.activity.main.contacts.HomeContacts;
@@ -89,6 +90,7 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import io.reactivex.Observable; import io.reactivex.Observable;
@@ -175,6 +177,8 @@ public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBin
} }
MessageListenerSingleton.getInstance().ensureListenersAdded(); MessageListenerSingleton.getInstance().ensureListenersAdded();
CommonAppContext.getInstance().upMqtt();
Application.Companion.getInstance().bgToForeground();
} }
@Override @Override
@@ -478,7 +482,7 @@ public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBin
//// RoomManager.instance( CommonAppContext.getInstance()).joinRoomWithRoomId(CommonAppContext.getInstance().playId, true); //// RoomManager.instance( CommonAppContext.getInstance()).joinRoomWithRoomId(CommonAppContext.getInstance().playId, true);
// return; // return;
// } // }
CommonAppContext.getInstance().upMqtt();
MvpPre.loginIm(); MvpPre.loginIm();
Logger.i("MainActivity", "onResume"); Logger.i("MainActivity", "onResume");
// Beta.checkAppUpgrade(false, false); // Beta.checkAppUpgrade(false, false);
@@ -888,11 +892,8 @@ public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBin
@Override @Override
public void index_recommend_room(IndexRecommendRoom indexRecommendRoom) { public void index_recommend_room(IndexRecommendRoom indexRecommendRoom) {
if (indexRecommendRoom != null && !Objects.requireNonNull(indexRecommendRoom.getRoom_id()).isEmpty()) {
if (indexRecommendRoom != null) { Application.Companion.getInstance().showInviteDialog(this,indexRecommendRoom);
inviteDialog = new InviteDialog(this, indexRecommendRoom);
inviteDialog.setData(indexRecommendRoom);
inviteDialog.show();
} }
} }

View File

@@ -291,7 +291,8 @@ public class ReleaseActivity extends BaseMvpActivity<ReleasePresenter, ActivityR
TextView btnCancel = dialog.findViewById(R.id.btn_cancel); TextView btnCancel = dialog.findViewById(R.id.btn_cancel);
TextView btnConfirm = dialog.findViewById(R.id.btn_confirm); TextView btnConfirm = dialog.findViewById(R.id.btn_confirm);
btnConfirm.setTextColor(Color.WHITE); btnConfirm.setTextColor(Color.WHITE);
TextView tvTitle = dialog.findViewById(R.id.tv_title);
tvTitle.setText("选择话题");
assert recyclerView != null; assert recyclerView != null;
recyclerView.setLayoutManager(new LinearLayoutManager(this)); recyclerView.setLayoutManager(new LinearLayoutManager(this));
MultiSelectAdapter adapter = new MultiSelectAdapter(list); MultiSelectAdapter adapter = new MultiSelectAdapter(list);

View File

@@ -64,10 +64,12 @@ public class RedResultActivity extends BaseMvpActivity<RedEnvelopesPresenter, Fr
@Override @Override
public void onRefresh(@NonNull @NotNull RefreshLayout refreshLayout) { public void onRefresh(@NonNull @NotNull RefreshLayout refreshLayout) {
MvpPre.getRedpacketDetail(redpacketId);
} }
@Override @Override
public void onLoadMore(@NonNull @NotNull RefreshLayout refreshLayout) { public void onLoadMore(@NonNull @NotNull RefreshLayout refreshLayout) {
MvpPre.getRedpacketDetail(redpacketId);
} }
}); });
} }
@@ -83,6 +85,8 @@ public class RedResultActivity extends BaseMvpActivity<RedEnvelopesPresenter, Fr
if (isFinishing() || isDestroyed()) { if (isFinishing() || isDestroyed()) {
return; return;
} }
mBinding.smartRefreshLayout.finishLoadMore();
mBinding.smartRefreshLayout.finishRefresh();
if (redpacketDetail != null) { if (redpacketDetail != null) {
ImageUtils.loadHeadCC(redpacketDetail.getRedpacket_info().getAvatar(), mBinding.userAvatar); ImageUtils.loadHeadCC(redpacketDetail.getRedpacket_info().getAvatar(), mBinding.userAvatar);
mBinding.userName.setText(redpacketDetail.getRedpacket_info().getNickname()); mBinding.userName.setText(redpacketDetail.getRedpacket_info().getNickname());

View File

@@ -47,6 +47,7 @@ import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.fragment.app.DialogFragment import androidx.fragment.app.DialogFragment
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import com.alibaba.android.arouter.facade.annotation.Autowired import com.alibaba.android.arouter.facade.annotation.Autowired
import com.alibaba.android.arouter.facade.annotation.Route import com.alibaba.android.arouter.facade.annotation.Route
@@ -69,6 +70,7 @@ import com.tencent.imsdk.v2.V2TIMUserFullInfo
import com.tencent.imsdk.v2.V2TIMValueCallback import com.tencent.imsdk.v2.V2TIMValueCallback
import com.xscm.modulemain.BaseMvpActivity import com.xscm.modulemain.BaseMvpActivity
import com.xscm.modulemain.R import com.xscm.modulemain.R
import com.xscm.modulemain.TransparentActivity
import com.xscm.modulemain.activity.main.activity.MainActivity import com.xscm.modulemain.activity.main.activity.MainActivity
import com.xscm.modulemain.activity.room.contacts.RoomContacts import com.xscm.modulemain.activity.room.contacts.RoomContacts
import com.xscm.modulemain.activity.room.fragment.ChatRoomFragment import com.xscm.modulemain.activity.room.fragment.ChatRoomFragment
@@ -94,7 +96,6 @@ import com.xscm.modulemain.dialog.RoomMessageDialogFragment
import com.xscm.modulemain.dialog.RoomOnlineDialogFragment import com.xscm.modulemain.dialog.RoomOnlineDialogFragment
import com.xscm.modulemain.dialog.RoomPkDialogFragment import com.xscm.modulemain.dialog.RoomPkDialogFragment
import com.xscm.modulemain.dialog.RoomSettingFragment import com.xscm.modulemain.dialog.RoomSettingFragment
import com.xscm.modulemain.dialog.RoomUserInfoFragment
import com.xscm.modulemain.dialog.SoundEffectsDialogFragment import com.xscm.modulemain.dialog.SoundEffectsDialogFragment
import com.xscm.modulemain.dialog.TourClubDialogFragment import com.xscm.modulemain.dialog.TourClubDialogFragment
import com.xscm.modulemain.manager.RoomManager import com.xscm.modulemain.manager.RoomManager
@@ -170,7 +171,6 @@ import com.xscm.moduleutil.utils.roomview.GiftDisplayManager
import com.xscm.moduleutil.widget.CircularProgressView import com.xscm.moduleutil.widget.CircularProgressView
import com.xscm.moduleutil.widget.CustomMusicFloatingView import com.xscm.moduleutil.widget.CustomMusicFloatingView
import com.xscm.moduleutil.widget.QXGiftPlayerManager import com.xscm.moduleutil.widget.QXGiftPlayerManager
import com.xscm.moduleutil.widget.RoomKtvWheatView
import com.xscm.moduleutil.widget.SilentCountDownTimer import com.xscm.moduleutil.widget.SilentCountDownTimer
import com.xscm.moduleutil.widget.ViewUtils import com.xscm.moduleutil.widget.ViewUtils
import com.xscm.moduleutil.widget.ViewUtils.OnViewCreatedListener import com.xscm.moduleutil.widget.ViewUtils.OnViewCreatedListener
@@ -190,6 +190,7 @@ import java.lang.ref.WeakReference
import java.nio.charset.StandardCharsets import java.nio.charset.StandardCharsets
import java.util.Arrays import java.util.Arrays
import java.util.Date import java.util.Date
import java.util.concurrent.TimeUnit
import java.util.stream.Collectors import java.util.stream.Collectors
@Route(path = ARouteConstants.ROOM_DETAILS) @Route(path = ARouteConstants.ROOM_DETAILS)
@@ -232,9 +233,6 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
private var circularProgress: CircularProgressView? = null private var circularProgress: CircularProgressView? = null
private var publicScreenFragment: ChatRoomFragment? = null // 添加成员变量 private var publicScreenFragment: ChatRoomFragment? = null // 添加成员变量
// 添加成员变量
private var isLayoutAdjusted = false
// 存储当前显示的弹框引用 // 存储当前显示的弹框引用
private val activeDialogs: MutableList<DialogInterface> = ArrayList() private val activeDialogs: MutableList<DialogInterface> = ArrayList()
private val activeDialogFragments: MutableList<Fragment> = ArrayList() private val activeDialogFragments: MutableList<Fragment> = ArrayList()
@@ -243,6 +241,8 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
private var appStateListener: AppStateListener? = null private var appStateListener: AppStateListener? = null
private var qxRedPacketManager: QXRedPacketManager? = null private var qxRedPacketManager: QXRedPacketManager? = null
//用户列表用
private var mOnlineBean: RoomOnline? = null
override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean { override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean {
if (keyCode == KeyEvent.KEYCODE_BACK && event.action == KeyEvent.ACTION_DOWN) { if (keyCode == KeyEvent.KEYCODE_BACK && event.action == KeyEvent.ACTION_DOWN) {
@@ -515,15 +515,10 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
mBinding?.roomTop?.userRecyclerView?.adapter = likeUserAdapter mBinding?.roomTop?.userRecyclerView?.adapter = likeUserAdapter
likeUserAdapter!!.onItemClickListener = likeUserAdapter!!.onItemClickListener =
BaseQuickAdapter.OnItemClickListener { adapter, view, position -> BaseQuickAdapter.OnItemClickListener { adapter, view, position ->
val fragment = RoomOnlineDialogFragment.show( showUserListDialog(
roomId, "", mRoomUserBean, mRoomInfoResp, roomId, "", mRoomUserBean, mRoomInfoResp,
supportFragmentManager supportFragmentManager
) )
LogUtils.e("fragment_onItemClickListener: ${(fragment != null)}")
if (fragment != null) {
addActiveDialogFragment(fragment) // 添加到管理列表
}
} }
mBinding!!.ivChat.setOnClickListener { view: View -> mBinding!!.ivChat.setOnClickListener { view: View ->
@@ -903,6 +898,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
override fun onSelfInfoUpdated(info: V2TIMUserFullInfo?) {} override fun onSelfInfoUpdated(info: V2TIMUserFullInfo?) {}
} }
@SuppressLint("CheckResult")
private fun setView(resp: RoomInfoResp?, isSwitchRoomType: Boolean = false) { private fun setView(resp: RoomInfoResp?, isSwitchRoomType: Boolean = false) {
if (resp == null) if (resp == null)
return return
@@ -1014,6 +1010,17 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
setupEffectView() setupEffectView()
MvpPre?.roomRedPackets(roomId) MvpPre?.roomRedPackets(roomId)
Observable.timer(1000, TimeUnit.MILLISECONDS).observeOn(
AndroidSchedulers.mainThread()
).subscribe { aLong: Long? ->
if (ActivityUtils.getTopActivity() is RoomActivity) {
startActivity(
Intent(ActivityUtils.getTopActivity(), TransparentActivity::class.java)
)
}
}
} }
@@ -1519,7 +1526,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
roomFragment?.handleRoomMessage(messageEvent) roomFragment?.handleRoomMessage(messageEvent)
} else if (msgType == EMMessageInfo.QXRoomMessageTypeSignDelayText) { } else if (msgType == EMMessageInfo.QXRoomMessageTypeSignDelayText) {
roomFragment?.handleRoomMessage(messageEvent) roomFragment?.handleRoomMessage(messageEvent)
}else if (msgType == EMMessageInfo.QXRoomMessageTypeSignTipText) { } else if (msgType == EMMessageInfo.QXRoomMessageTypeSignTipText) {
roomFragment?.handleRoomMessage(messageEvent) roomFragment?.handleRoomMessage(messageEvent)
} }
} }
@@ -1925,11 +1932,13 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
roomFragment!!.upRoomInfoData(mRoomInfoResp) roomFragment!!.upRoomInfoData(mRoomInfoResp)
roomFragment?.handleRoomMessage(messageEvent) roomFragment?.handleRoomMessage(messageEvent)
} }
RoomType.SIGN_CONTRACT ->{
RoomType.SIGN_CONTRACT -> {
mRoomInfoResp?.room_info?.pit_list!![pitNumber.toInt() - 1] = RoomPitBean(pitNumber) mRoomInfoResp?.room_info?.pit_list!![pitNumber.toInt() - 1] = RoomPitBean(pitNumber)
roomFragment!!.upRoomInfoData(mRoomInfoResp) roomFragment!!.upRoomInfoData(mRoomInfoResp)
roomFragment?.handleRoomMessage(messageEvent) roomFragment?.handleRoomMessage(messageEvent)
} }
else -> { else -> {
roomFragment!!.updateSeatViewExchangedWithPitArray(mRoomInfoResp) roomFragment!!.updateSeatViewExchangedWithPitArray(mRoomInfoResp)
} }
@@ -2002,6 +2011,8 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
LogUtils.e("1020_mRoomBean", mRoomInfoResp?.room_info.toString()) LogUtils.e("1020_mRoomBean", mRoomInfoResp?.room_info.toString())
EventBus.getDefault().post(mRoomInfoResp?.room_info) EventBus.getDefault().post(mRoomInfoResp?.room_info)
changeBackgroundColor(mRoomInfoResp?.room_info?.room_background) changeBackgroundColor(mRoomInfoResp?.room_info?.room_background)
ImageUtils.loadHeadCC(mRoomInfoResp?.room_info?.room_cover, mBinding!!.roomTop.avatar)
mBinding?.roomTop?.name?.text = mRoomInfoResp?.room_info?.room_name
} }
private fun handleMsgType1011(messageEvent: RoomMessageEvent, text: T?) { private fun handleMsgType1011(messageEvent: RoomMessageEvent, text: T?) {
@@ -2620,13 +2631,10 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
} else if (id == R.id.btn_close_live) { //退出房间 } else if (id == R.id.btn_close_live) { //退出房间
showExitRoomDialog() showExitRoomDialog()
} else if (id == R.id.tv_num) { } else if (id == R.id.tv_num) {
val fragment = RoomOnlineDialogFragment.show( showUserListDialog(
roomId, "", mRoomUserBean, mRoomInfoResp, roomId, "", mRoomUserBean, mRoomInfoResp,
supportFragmentManager supportFragmentManager
) )
if (fragment != null) {
addActiveDialogFragment(fragment) // 添加到管理列表
}
} else if (id == R.id.rl) { } else if (id == R.id.rl) {
MvpPre!!.clearUserCharm(roomId, "") MvpPre!!.clearUserCharm(roomId, "")
} else if (id == R.id.ll_input) { } else if (id == R.id.ll_input) {
@@ -3377,7 +3385,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
// ) // )
// MessageListenerSingleton.getInstance() // MessageListenerSingleton.getInstance()
// .joinGroup(mRoomInfoResp?.room_info?.head_line?.room_id) // .joinGroup(mRoomInfoResp?.room_info?.head_line?.room_id)
roomId2=mRoomInfoResp?.room_info?.head_line?.room_id roomId2 = mRoomInfoResp?.room_info?.head_line?.room_id
getHour() getHour()
MvpPre?.getRoomIn(mRoomInfoResp?.room_info?.head_line?.room_id, "") MvpPre?.getRoomIn(mRoomInfoResp?.room_info?.head_line?.room_id, "")
} else { } else {
@@ -3778,7 +3786,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
} }
fun refreshRoomInfo(roomId: String) { fun refreshRoomInfo(roomId: String) {
roomId2=roomId roomId2 = roomId
getHour() getHour()
MvpPre?.getRoomIn(roomId, "") MvpPre?.getRoomIn(roomId, "")
} }
@@ -3814,84 +3822,12 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
} }
} }
override fun onWindowFocusChanged(hasFocus: Boolean) {
super.onWindowFocusChanged(hasFocus)
LogUtils.e("RoomActivity", "onWindowFocusChanged")
if (hasFocus && !isLayoutAdjusted) {
// adjustLayoutHeights()
isLayoutAdjusted = true
}
}
var maxHeightDp: Int = 333
/** // TODO: 根据返回的在线列表获取对应的值,查看是否有在线用户
* 动态调整布局高度以适配不同设备
*/
private fun adjustLayoutHeights() {
if (mBinding == null) return
try {
// 获取主容器
val mainContainer = mBinding!!.mainContentContainer
val pager: View = mBinding!!.vpRoomPager
val easeContainer: View = mBinding!!.easeContainer
if (mainContainer != null && pager != null && easeContainer != null) {
// 强制测量主容器
val widthSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)
val heightSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)
mainContainer.measure(widthSpec, heightSpec)
var containerHeight = mainContainer.measuredHeight
if (containerHeight <= 0) {
// 如果测量不到高度,使用布局参数中的高度
val containerParams =
mainContainer.layoutParams as ConstraintLayout.LayoutParams
containerHeight = (resources.displayMetrics.heightPixels
- statusBarHeight
- resources.getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_50) // room_top 高度
- resources.getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15) * 3) // 底部控件高度
}
// 确保最小高度
if (containerHeight > 0) {
// 设置 vp_room_pager 占用 70% 空间
val pagerParams = pager.layoutParams as ConstraintLayout.LayoutParams
pagerParams.height = SystemUtils.getWidth(maxHeightDp)
pager.layoutParams = pagerParams
// 设置 ease_container 占用 30% 空间
val easeParams = easeContainer.layoutParams as ConstraintLayout.LayoutParams
easeParams.height = 0
easeContainer.layoutParams = easeParams
// 请求重新布局
mainContainer.requestLayout()
}
}
} catch (e: Exception) {
LogUtils.e("adjustLayoutHeights error: " + e.message)
}
}
private val statusBarHeight: Int
/**
* 获取状态栏高度
*/
get() {
var result = 0
val resourceId =
resources.getIdentifier("status_bar_height", "dimen", "android")
if (resourceId > 0) {
result = resources.getDimensionPixelSize(resourceId)
}
return result
}
// TODO: 根据返回的在线列表获取对应的值,查看是否有在线用户
override fun getRoomOnline(onlineBean: RoomOnline?) { override fun getRoomOnline(onlineBean: RoomOnline?) {
if (onlineBean != null) { if (onlineBean != null) {
mOnlineBean = onlineBean
val onlineBeans: MutableList<RoomOnlineBean> = ArrayList() val onlineBeans: MutableList<RoomOnlineBean> = ArrayList()
if (onlineBean.on_pit.size > 0) { if (onlineBean.on_pit.size > 0) {
onlineBeans.addAll(onlineBean.on_pit) onlineBeans.addAll(onlineBean.on_pit)
@@ -3908,6 +3844,25 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
} }
} }
fun showUserListDialog(
roomId: String?,
pitNumber: String?,
mRoomUserBean: RoomUserBean?,
mRoomInfoResp: RoomInfoResp?,
supportFragmentManager: FragmentManager
) {
val fragment = RoomOnlineDialogFragment.show(
roomId, pitNumber, mOnlineBean, mRoomUserBean, mRoomInfoResp,
supportFragmentManager
)
LogUtils.e("fragment_onItemClickListener: ${(fragment != null)}")
if (fragment != null) {
addActiveDialogFragment(fragment) // 添加到管理列表
}
}
override fun applyPit() { override fun applyPit() {
} }
@@ -4090,6 +4045,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
"@@@", "@@@",
"上一个房间的roonid" + AgoraManager.getInstance().lastRoomId "上一个房间的roonid" + AgoraManager.getInstance().lastRoomId
) )
MessageListenerSingleton.getInstance().joinGroup(AgoraManager.getInstance().lastRoomId)
MvpPre?.getRoomIn(AgoraManager.getInstance().lastRoomId, "") MvpPre?.getRoomIn(AgoraManager.getInstance().lastRoomId, "")
AgoraManager.getInstance().lastRoomId = "" AgoraManager.getInstance().lastRoomId = ""
} }

View File

@@ -226,11 +226,11 @@ public class SearchActivity extends BaseMvpActivity<SearchPresenter, ActivitySea
} else { } else {
mBinding.recycleViewRoom.setVisibility(View.VISIBLE); mBinding.recycleViewRoom.setVisibility(View.VISIBLE);
mBinding.rlRoom.setVisibility(View.VISIBLE); mBinding.rlRoom.setVisibility(View.VISIBLE);
if (data.getRooms().size() > 2) { // if (data.getRooms().size() > 2) {
mSearchRoomResultAdapter.setNewData(data.getRooms().subList(0, 2)); // mSearchRoomResultAdapter.setNewData(data.getRooms().subList(0, 2));
} else { // } else {
mSearchRoomResultAdapter.setNewData(data.getRooms()); mSearchRoomResultAdapter.setNewData(data.getRooms());
} // }
mBinding.tvRoomCount.setText("全部 " + data.getRooms().size()); mBinding.tvRoomCount.setText("全部 " + data.getRooms().size());
} }
if (data.getUsers() != null && data.getUsers().size() != 0) { if (data.getUsers() != null && data.getUsers().size() != 0) {

View File

@@ -5,6 +5,7 @@ import android.app.Activity;
import com.xscm.moduleutil.activity.IPresenter; import com.xscm.moduleutil.activity.IPresenter;
import com.xscm.moduleutil.activity.IView; import com.xscm.moduleutil.activity.IView;
import com.xscm.moduleutil.bean.ActivitiesPermission; import com.xscm.moduleutil.bean.ActivitiesPermission;
import com.xscm.moduleutil.bean.TasksSignStatus;
public final class VoiceContacts { public final class VoiceContacts {
@@ -15,6 +16,8 @@ public final class VoiceContacts {
void hideRecommend(boolean hideRecommend,boolean hideGame); void hideRecommend(boolean hideRecommend,boolean hideGame);
void activitiesPermissionSuccess(ActivitiesPermission activitiesPermission); void activitiesPermissionSuccess(ActivitiesPermission activitiesPermission);
void tasksSignStatus(TasksSignStatus tasksSignStatus);
} }
public interface IIndexPre extends IPresenter { public interface IIndexPre extends IPresenter {
@@ -25,6 +28,8 @@ public final class VoiceContacts {
void activitiesPermission();//活动弹框权限 void activitiesPermission();//活动弹框权限
void tasksSignStatus();
} }
} }

View File

@@ -82,6 +82,7 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
public void applyPit() { public void applyPit() {
} }
public FriendshipRoomFragment() { public FriendshipRoomFragment() {
} }
@@ -93,6 +94,7 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
FriendshipRoomFragment fragment = new FriendshipRoomFragment(roomInfoResp); FriendshipRoomFragment fragment = new FriendshipRoomFragment(roomInfoResp);
return fragment; return fragment;
} }
@Override @Override
public void endFriend(FriendUserBean friendUserBean) { public void endFriend(FriendUserBean friendUserBean) {
if (friendUserBean != null) { if (friendUserBean != null) {
@@ -162,9 +164,6 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
} }
@Override @Override
protected FriendshipRoomPresenter bindPresenter() { protected FriendshipRoomPresenter bindPresenter() {
return new FriendshipRoomPresenter(this, getActivity()); return new FriendshipRoomPresenter(this, getActivity());
@@ -239,7 +238,7 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
initPopupWindow(); initPopupWindow();
roomId = roomInfoResp.getRoom_info().getRoom_id(); roomId = roomInfoResp.getRoom_info().getRoom_id();
for (int i = 0; i < roomInfoResp.getRoom_info().getPit_list().size(); i++) { for (int i = 0; i < roomInfoResp.getRoom_info().getPit_list().size(); i++) {
RoomPitBean roomPitBean = roomInfoResp.getRoom_info().getPit_list().get(i); RoomPitBean roomPitBean = roomInfoResp.getRoom_info().getPit_list().get(i);
if (i == 6 || i == 7) { if (i == 6 || i == 7) {
@@ -359,12 +358,12 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
if (checkWeather(pitBean.getPit_number())) { if (checkWeather(pitBean.getPit_number())) {
showPopupMenu(wheatView); // v 是点击的按钮视图 showPopupMenu(wheatView); // v 是点击的按钮视图
} else if (pitBean.getPit_number().equals("10")) { } else if (pitBean.getPit_number().equals("10")) {
if (ActivityUtils.getTopActivity() instanceof RoomActivity) { if (getActivity() != null && getActivity() instanceof RoomActivity) {
if (((RoomActivity) ActivityUtils.getTopActivity()).getHostUser() < 4) { if (((RoomActivity) getActivity()).getHostUser() < 4) {
if (((RoomActivity) ActivityUtils.getTopActivity()).isFastDoubleClick(roomInfoResp.getUser_info().getUser_id() + "", pitBean.getPit_number())) { if (((RoomActivity) getActivity()).isFastDoubleClick(roomInfoResp.getUser_info().getUser_id() + "", pitBean.getPit_number())) {
return; return;
} }
RoomOnlineDialogFragment.show(roomId, "10", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager()); ((RoomActivity) getActivity()).showUserListDialog(roomId, "10", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
} else { } else {
com.hjq.toast.ToastUtils.show("请等待主持抱麦"); com.hjq.toast.ToastUtils.show("请等待主持抱麦");
} }
@@ -505,7 +504,7 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
continue; continue;
RoomPitBean roomPitBean = roomInfoResp.getRoom_info().getPit_list().get(i); RoomPitBean roomPitBean = roomInfoResp.getRoom_info().getPit_list().get(i);
if (roomPitBean.getUser_id() == null || roomPitBean.getUser_id().isEmpty()){ if (roomPitBean.getUser_id() == null || roomPitBean.getUser_id().isEmpty()) {
continue; continue;
} }
@@ -713,7 +712,9 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
tvHugMic.setOnClickListener(v -> { tvHugMic.setOnClickListener(v -> {
// 处理抱麦逻辑 // 处理抱麦逻辑
RoomOnlineDialogFragment.show(roomId, pitNumber, roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager()); if (getActivity() != null && getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).showUserListDialog(roomId, pitNumber, roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
}
popupWindow.dismiss(); popupWindow.dismiss();
}); });
} }

View File

@@ -72,6 +72,7 @@ public class HotListFragment extends BaseMvpFragment<HotListPresenter, FragmentH
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
page=1;
MvpPre.getRoomList(2, "1", "20", "1", label_id); MvpPre.getRoomList(2, "1", "20", "1", label_id);
} }
@@ -150,17 +151,17 @@ public class HotListFragment extends BaseMvpFragment<HotListPresenter, FragmentH
} else { } else {
// 检查是否有重复数据 // 检查是否有重复数据
boolean hasDuplicate = false; boolean hasDuplicate = false;
List<TopRoom> currentData = mAdapter.getData(); // List<TopRoom> currentData = mAdapter.getData();
if (!currentData.isEmpty() && !data.isEmpty()) { // if (!currentData.isEmpty() && !data.isEmpty()) {
// 检查第一条数据是否已经存在 // // 检查第一条数据是否已经存在
TopRoom firstNewData = data.get(0); // TopRoom firstNewData = data.get(0);
for (TopRoom item : currentData) { // for (TopRoom item : currentData) {
if (item.getRoom_id().equals(firstNewData.getRoom_id())) { // if (item.getRoom_id().equals(firstNewData.getRoom_id())) {
hasDuplicate = true; // hasDuplicate = true;
break; // break;
} // }
} // }
} // }
if (!hasDuplicate) { if (!hasDuplicate) {
mAdapter.addData(data); // 加载更多时添加数据 mAdapter.addData(data); // 加载更多时添加数据

View File

@@ -406,7 +406,9 @@ public class RoomAuctionFragment extends BaseMvpFragment<RoomAuctionPresenterTow
if (wheatView2.getUserId() != null) { if (wheatView2.getUserId() != null) {
if (wheatView2.getUserId().equals("")) { if (wheatView2.getUserId().equals("")) {
if ((wheatView.getUserId() != null && wheatView.getUserId().equals(SpUtil.getUserId() + "") || getHostUser() < 4)) { if ((wheatView.getUserId() != null && wheatView.getUserId().equals(SpUtil.getUserId() + "") || getHostUser() < 4)) {
RoomOnlineDialogFragment.show(roomInfoResp.getRoom_info().getRoom_id(), 888 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager()); if (getActivity() != null && getActivity() instanceof RoomActivity) {
((RoomActivity)getActivity()).showUserListDialog(roomInfoResp.getRoom_info().getRoom_id(), 888 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
}
} }
} else { } else {
if (roomInfoResp.getRoom_auction() != null && roomInfoResp.getRoom_auction().getAuction_user() != null) { if (roomInfoResp.getRoom_auction() != null && roomInfoResp.getRoom_auction().getAuction_user() != null) {

View File

@@ -49,6 +49,7 @@ import org.greenrobot.eventbus.ThreadMode;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import io.reactivex.Observable; import io.reactivex.Observable;
@@ -494,18 +495,18 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
isLoadSuccess = false; isLoadSuccess = false;
errorMsg = "Fragment未进入Resumed状态"; errorMsg = "Fragment未进入Resumed状态";
} }
LogUtils.e("switchFragment :"+errorMsg +",isLoadSuccess:"+isLoadSuccess); LogUtils.e("switchFragment :" + errorMsg + ",isLoadSuccess:" + isLoadSuccess);
// 处理失败情况 // 处理失败情况
if (!isLoadSuccess) { if (!isLoadSuccess) {
Log.e("FragmentCheck", errorMsg); Log.e("FragmentCheck", errorMsg);
if (retryCount == MAX_COUNT){ if (retryCount == MAX_COUNT) {
LogUtils.e("switchFragment retryCount == MAX_COUNT"); LogUtils.e("switchFragment retryCount == MAX_COUNT");
return; return;
} }
// 可以考虑自动恢复或通知用户 // 可以考虑自动恢复或通知用户
Observable.timer(1000, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread()).subscribe( Observable.timer(1000, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread()).subscribe(
aLong ->{ aLong -> {
retryCount++; retryCount++;
LogUtils.e("switchFragment retry"); LogUtils.e("switchFragment retry");
switchFragment(newFragment, containerId, true); switchFragment(newFragment, containerId, true);
@@ -518,11 +519,12 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
@SuppressLint("CheckResult") @SuppressLint("CheckResult")
private void performFragmentReplacement(Fragment newFragment) { private void performFragmentReplacement(Fragment newFragment) {
if (getActivity() != null && getActivity() instanceof RoomActivity) {
if (newFragment instanceof RoomKtvFragment){ if (newFragment instanceof RoomKtvFragment) {
((RoomActivity)ActivityUtils.getTopActivity()).getBinding().recyclerView.setVisibility(View.VISIBLE); Objects.requireNonNull(((RoomActivity) getActivity()).getBinding()).recyclerView.setVisibility(View.VISIBLE);
}else { } else {
((RoomActivity)ActivityUtils.getTopActivity()).getBinding().recyclerView.setVisibility(View.GONE); Objects.requireNonNull(((RoomActivity) getActivity()).getBinding()).recyclerView.setVisibility(View.GONE);
}
} }
if (getChildFragmentManager().isDestroyed()) { if (getChildFragmentManager().isDestroyed()) {
@@ -567,8 +569,9 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
currentFragment = newFragment; currentFragment = newFragment;
Observable.timer(1000, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread()).subscribe( Observable.timer(1000, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread()).subscribe(
aLong ->{ aLong -> {
startActivity(new Intent(ActivityUtils.getTopActivity(), TransparentActivity.class)); if (ActivityUtils.getTopActivity() instanceof RoomActivity)
startActivity(new Intent(ActivityUtils.getTopActivity(), TransparentActivity.class));
} }
); );
} }

View File

@@ -141,10 +141,12 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
roomPitBean = pitBean; roomPitBean = pitBean;
showPopupMenu(roomJukeboxWheatView); // v 是点击的按钮视图 showPopupMenu(roomJukeboxWheatView); // v 是点击的按钮视图
} else if ((finalI + 1) == 10) { } else if ((finalI + 1) == 10) {
if (ActivityUtils.getTopActivity() instanceof RoomActivity) { if (getActivity() instanceof RoomActivity) {
if (((RoomActivity) ActivityUtils.getTopActivity()).getHostUser() < 4) { if (((RoomActivity) ActivityUtils.getTopActivity()).getHostUser() < 4) {
if (!isFastDoubleClick("online_dialog", finalI + 1 + "")) { if (!isFastDoubleClick("online_dialog", finalI + 1 + "")) {
RoomOnlineDialogFragment.show(roomId, finalI + 1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager()); if (getActivity() != null && getActivity() instanceof RoomActivity) {
((RoomActivity)getActivity()).showUserListDialog(roomId, finalI + 1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
}
} }
} else { } else {
com.hjq.toast.ToastUtils.show("请等待主持抱麦"); com.hjq.toast.ToastUtils.show("请等待主持抱麦");
@@ -336,7 +338,9 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
tvHugMic.setOnClickListener(v -> { tvHugMic.setOnClickListener(v -> {
// 处理抱麦逻辑 // 处理抱麦逻辑
RoomOnlineDialogFragment.show(roomId, pitNumber, roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager()); if (getActivity() != null && getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).showUserListDialog(roomId, pitNumber, roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
}
popupWindow.dismiss(); popupWindow.dismiss();
}); });
} }
@@ -757,8 +761,8 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
mBinding.wvZc.pitBean.setImageType(false); mBinding.wvZc.pitBean.setImageType(false);
mBinding.wvZc.setData(mBinding.wvZc.pitBean); mBinding.wvZc.setData(mBinding.wvZc.pitBean);
} else { } else {
for (int i = 0; i < roomPitBeans.size(); i++) { for (int i = 0; i < roomPitBeans.size(); i++) {
RoomPitBean roomPitBean = roomPitBeans.get(i);
if (roomPitBean.getUser_id().equals(userId)) { if (roomPitBean.getUser_id().equals(userId)) {
roomPitBean.setImageType(true); roomPitBean.setImageType(true);
} else { } else {
@@ -766,9 +770,6 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
} }
viewList.get(i).setData(roomPitBean); viewList.get(i).setData(roomPitBean);
} }
// adapter.notifyDataSetChanged();
} }
} else { } else {
mBinding.ciUserAva.setImageResource(0); mBinding.ciUserAva.setImageResource(0);

View File

@@ -48,6 +48,7 @@ import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode; import org.greenrobot.eventbus.ThreadMode;
import java.util.List; import java.util.List;
import java.util.Objects;
import io.agora.karaoke_view.v11.KaraokeEvent; import io.agora.karaoke_view.v11.KaraokeEvent;
import io.agora.karaoke_view.v11.KaraokeView; import io.agora.karaoke_view.v11.KaraokeView;
@@ -298,8 +299,8 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
} else { } else {
setVisibilityView(4); setVisibilityView(4);
} }
}catch (Exception e){ } catch (Exception e) {
LogUtils.e("RoomKtvFragment","sv()"+e.getMessage()); LogUtils.e("RoomKtvFragment", "sv()" + e.getMessage());
} }
} }
@@ -311,7 +312,9 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
mBinding.lyricsView.setActiveLineUpcomingTextColor(getResources().getColor(com.xscm.moduleutil.R.color.color_0DFFB9)); mBinding.lyricsView.setActiveLineUpcomingTextColor(getResources().getColor(com.xscm.moduleutil.R.color.color_0DFFB9));
mBinding.lyricsView.setCurrentLineHighlightedTextColor(getResources().getColor(com.xscm.moduleutil.R.color.color_0DFFB9)); mBinding.lyricsView.setCurrentLineHighlightedTextColor(getResources().getColor(com.xscm.moduleutil.R.color.color_0DFFB9));
mBinding.lyricsView.setCurrentLineTextColor(getResources().getColor(com.xscm.moduleutil.R.color.color_0DFFB9)); mBinding.lyricsView.setCurrentLineTextColor(getResources().getColor(com.xscm.moduleutil.R.color.color_0DFFB9));
((RoomActivity) ActivityUtils.getTopActivity()).getBinding().recyclerView.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false)); if (getActivity() != null && getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).getBinding().recyclerView.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
}
mBinding.muName.setText("暂无歌曲"); mBinding.muName.setText("暂无歌曲");
mBinding.muXName.setText("暂无歌曲"); mBinding.muXName.setText("暂无歌曲");
startRotateAnimation(); startRotateAnimation();
@@ -350,7 +353,9 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
}); });
} }
}; };
((RoomActivity) ActivityUtils.getTopActivity()).getBinding().recyclerView.setAdapter(adapter); if (getActivity() != null && getActivity() instanceof RoomActivity) {
Objects.requireNonNull(((RoomActivity) getActivity()).getBinding()).recyclerView.setAdapter(adapter);
}
isRotate = false; isRotate = false;
RoomKtvWheatView muYc = mBinding.muYc; RoomKtvWheatView muYc = mBinding.muYc;
@@ -426,9 +431,9 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
if (!muJb.getUserId().equals("")) { if (!muJb.getUserId().equals("")) {
RoomUserInfoFragment.show(roomInfoResp.getRoom_info().getRoom_id(), muJb.getUserId(), muJb.pitNumber, getHostUser(), false, 2, isNumberWhether(), getChildFragmentManager()); RoomUserInfoFragment.show(roomInfoResp.getRoom_info().getRoom_id(), muJb.getUserId(), muJb.pitNumber, getHostUser(), false, 2, isNumberWhether(), getChildFragmentManager());
} else { } else {
if (ActivityUtils.getTopActivity() instanceof RoomActivity) { if (getActivity() != null && getActivity() instanceof RoomActivity) {
if (((RoomActivity) ActivityUtils.getTopActivity()).getHostUser() < 4) { if (getActivity() != null && ((RoomActivity) getActivity()).getHostUser() < 4) {
RoomOnlineDialogFragment.show(roomInfoResp.getRoom_info().getRoom_id(), "10", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager()); ((RoomActivity)getActivity()).showUserListDialog(roomInfoResp.getRoom_info().getRoom_id(), "10", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
} else { } else {
com.hjq.toast.ToastUtils.show("请等待主持抱麦"); com.hjq.toast.ToastUtils.show("请等待主持抱麦");
} }
@@ -546,7 +551,7 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
AgoraManager.getInstance().stopMuisc(); AgoraManager.getInstance().stopMuisc();
MvpPre.changeSong(roomInfoResp.getRoom_info().getRoom_id(), did); MvpPre.changeSong(roomInfoResp.getRoom_info().getRoom_id(), did);
} else if (id == R.id.ll_ds) { } else if (id == R.id.ll_ds) {
if (mBinding.muYc.pitBean.getUser_id() != null && !mBinding.muYc.pitBean.getUser_id().equals("")&& !mBinding.muYc.pitBean.getUser_id().equals("0")) { if (mBinding.muYc.pitBean.getUser_id() != null && !mBinding.muYc.pitBean.getUser_id().equals("") && !mBinding.muYc.pitBean.getUser_id().equals("0")) {
UserInfo userInfo = new UserInfo(); UserInfo userInfo = new UserInfo();
userInfo.setAvatar(roomInfoResp.getSong_user_info().getAvatar()); userInfo.setAvatar(roomInfoResp.getSong_user_info().getAvatar());
userInfo.setNickname(roomInfoResp.getSong_user_info().getNickname()); userInfo.setNickname(roomInfoResp.getSong_user_info().getNickname());

View File

@@ -2,7 +2,6 @@ package com.xscm.modulemain.activity.room.fragment
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.os.Bundle import android.os.Bundle
import android.os.Handler
import android.view.Gravity import android.view.Gravity
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
@@ -12,6 +11,7 @@ import android.widget.TextView
import com.blankj.utilcode.util.ActivityUtils import com.blankj.utilcode.util.ActivityUtils
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.room.activity.RoomActivity
import com.xscm.modulemain.activity.room.contacts.MentorShipContacts import com.xscm.modulemain.activity.room.contacts.MentorShipContacts
import com.xscm.modulemain.activity.room.presenter.MentorShipPresenter import com.xscm.modulemain.activity.room.presenter.MentorShipPresenter
import com.xscm.modulemain.databinding.FragmentMentorShipBinding import com.xscm.modulemain.databinding.FragmentMentorShipBinding
@@ -33,19 +33,19 @@ import com.xscm.moduleutil.bean.room.RoomPitBean
import com.xscm.moduleutil.bean.room.RoomUserBean import com.xscm.moduleutil.bean.room.RoomUserBean
import com.xscm.moduleutil.dialog.ConfirmDialog import com.xscm.moduleutil.dialog.ConfirmDialog
import com.xscm.moduleutil.utils.ClickUtils import com.xscm.moduleutil.utils.ClickUtils
import io.reactivex.disposables.Disposable
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob import kotlinx.coroutines.SupervisorJob
import kotlinx.coroutines.cancel import kotlinx.coroutines.cancel
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
/** /**
* 签约房 * 签约房
* 1234 5 9 * 1234 5 9
*/ */
class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) : class RoomMentorShipFragment(var mRoomInfoResp: RoomInfoResp?) :
BaseMvpFragment<MentorShipPresenter, FragmentMentorShipBinding>(), MentorShipContacts.View, BaseMvpFragment<MentorShipPresenter, FragmentMentorShipBinding>(), MentorShipContacts.View,
View.OnClickListener { View.OnClickListener {
@@ -65,7 +65,7 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
private var popupWindow: PopupWindow? = null private var popupWindow: PopupWindow? = null
private var mPitBean: RoomPitBean? = null private var mPitBean: RoomPitBean? = null
private var mRoomId: String = mRoomInfo?.room_info?.room_id!! private var mRoomId: String = mRoomInfoResp?.room_info?.room_id!!
private var mSignPitBean: RoomPitBean? = null private var mSignPitBean: RoomPitBean? = null
private var mSignId: String? = null private var mSignId: String? = null
@@ -75,7 +75,7 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
private val startOrDelay = arrayOf("开始", "延时") private val startOrDelay = arrayOf("开始", "延时")
private var mUserInfo: RoomUserBean? = mRoomInfo?.user_info private var mUserInfo: RoomUserBean? = mRoomInfoResp?.user_info
private var dialogMentorShip: DialogMentorShip? = null private var dialogMentorShip: DialogMentorShip? = null
@@ -83,6 +83,9 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
private var signTypeDialog: DialogSignType? = null private var signTypeDialog: DialogSignType? = null
private var disposable: Disposable? = null
private val ivForMai = arrayOf( private val ivForMai = arrayOf(
com.xscm.moduleutil.R.mipmap.icon_apply_for_mai, com.xscm.moduleutil.R.mipmap.icon_apply_for_mai,
com.xscm.moduleutil.R.mipmap.icon_show_alent, com.xscm.moduleutil.R.mipmap.icon_show_alent,
@@ -116,9 +119,9 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
mBinding.tvTimeLeft.visibility = View.GONE mBinding.tvTimeLeft.visibility = View.GONE
for ((idx, view) in viewList.withIndex()) { for ((idx, view) in viewList.withIndex()) {
if (mRoomInfo?.room_info?.pit_list!!.size > indexList[idx].toInt() - 1) { if (mRoomInfoResp?.room_info?.pit_list!!.size > indexList[idx].toInt() - 1) {
view.setRoomWheatNumber(indexList[idx]) view.setRoomWheatNumber(indexList[idx])
val bean = mRoomInfo?.room_info?.pit_list!![indexList[idx].toInt() - 1] val bean = mRoomInfoResp?.room_info?.pit_list!![indexList[idx].toInt() - 1]
if (idx == 0) { if (idx == 0) {
view.setHostTv(mBinding.tvHostName) view.setHostTv(mBinding.tvHostName)
} else if (idx == 1) { } else if (idx == 1) {
@@ -139,7 +142,7 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
if (!view.getUserId().equals("") && !view.getUserId().equals("0")) { if (!view.getUserId().equals("") && !view.getUserId().equals("0")) {
RoomUserInfoFragment.show( RoomUserInfoFragment.show(
mRoomInfo?.room_info?.room_id, mRoomInfoResp?.room_info?.room_id,
view.getUserId(), view.getUserId(),
view.pitNumber, view.pitNumber,
getHostUser(), getHostUser(),
@@ -154,7 +157,7 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
} else { } else {
when (indexList[idx]) { when (indexList[idx]) {
"9" -> { "9" -> {
MvpPre.applyPit(mRoomInfo?.room_info?.room_id!!, "9") MvpPre.applyPit(mRoomInfoResp?.room_info?.room_id!!, "9")
} }
"2" -> { "2" -> {
@@ -163,14 +166,14 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
"1", "3", "4", "5" -> { "1", "3", "4", "5" -> {
mPitBean = mPitBean =
mRoomInfo?.room_info?.pit_list!![indexList[idx].toInt() - 1] mRoomInfoResp?.room_info?.pit_list!![indexList[idx].toInt() - 1]
// 处理抱麦逻辑 // 处理抱麦逻辑
RoomOnlineDialogFragment.show( (activity as RoomActivity).showUserListDialog(
mRoomId, mRoomId,
mPitBean?.pit_number, mPitBean?.pit_number,
mRoomInfo?.user_info, mRoomInfoResp?.user_info,
mRoomInfo, mRoomInfoResp,
childFragmentManager childFragmentManager
) )
} }
@@ -186,10 +189,10 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
mBinding.tvTimeRight.setOnClickListener(this) mBinding.tvTimeRight.setOnClickListener(this)
mBinding.ivHelp.setOnClickListener(this) mBinding.ivHelp.setOnClickListener(this)
if (mRoomInfo?.sign_info?.sign_id != "-1") { if (mRoomInfoResp?.sign_info?.sign_id != "-1") {
mSignId = mRoomInfo?.sign_info?.sign_id mSignId = mRoomInfoResp?.sign_info?.sign_id
if (mRoomInfo?.sign_info?.sign_status == 1) { if (mRoomInfoResp?.sign_info?.sign_status == 1) {
startTimer(mRoomInfo?.sign_info?.end_time!!) startTimer(mRoomInfoResp?.sign_info?.end_time!!)
if (mUserInfo?.user_id?.toString().equals(mSignPitBean?.user_id)) { if (mUserInfo?.user_id?.toString().equals(mSignPitBean?.user_id)) {
setIvForMai(1) setIvForMai(1)
} else if (!mSignPitBean?.user_id.equals("0")) { } else if (!mSignPitBean?.user_id.equals("0")) {
@@ -201,9 +204,9 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
setIvForMai(0) setIvForMai(0)
} }
mBinding.tvSignDay.visibility = View.VISIBLE mBinding.tvSignDay.visibility = View.VISIBLE
mBinding.tvLeftPrice.text = mRoomInfo?.sign_info?.current_body_value.toString() mBinding.tvLeftPrice.text = mRoomInfoResp?.sign_info?.current_body_value.toString()
mBinding.tvSignDay.text = "签约${mRoomInfo?.sign_info?.sign_day}" mBinding.tvSignDay.text = "签约${mRoomInfoResp?.sign_info?.sign_day}"
} else { } else {
setIvForMai(0) setIvForMai(0)
} }
@@ -215,7 +218,8 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
R.id.iv_apply_for_mai -> { R.id.iv_apply_for_mai -> {
when (mBinding.ivApplyForMai.tag) { when (mBinding.ivApplyForMai.tag) {
ivForMai[0] -> { ivForMai[0] -> {
MvpPre!!.applyPit(mRoomInfo?.room_info?.room_id!!, "") mBinding.ivApplyForMai.isClickable = false
MvpPre!!.applyPit(mRoomInfoResp?.room_info?.room_id!!, "")
} }
ivForMai[1] -> { ivForMai[1] -> {
@@ -265,52 +269,80 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
} }
} }
@SuppressLint("CheckResult")
private fun showBtn(isSignUser: Boolean = false) { private fun showBtn(isSignUser: Boolean = false) {
if (isStart) { activity?.runOnUiThread {
mBinding.tvTimeLeft.text = startOrDelay[1] if (isStart) {
mBinding.tvTime.visibility = View.VISIBLE mBinding.tvTimeLeft.text = startOrDelay[1]
mBinding.groupLeftPrice.visibility = View.VISIBLE mBinding.tvTime.visibility = View.VISIBLE
if (getHostUser() < 4) { mBinding.groupLeftPrice.visibility = View.VISIBLE
mBinding.tvTimeRight.visibility = View.VISIBLE if (getHostUser() < 4) {
} mBinding.tvTimeRight.visibility = View.VISIBLE
} else { } else {
mBinding.tvTimeLeft.text = startOrDelay[0] mBinding.tvTimeRight.visibility = View.GONE
mBinding.tvTimeLeft.visibility = View.GONE }
mBinding.tvTime.visibility = View.GONE } else {
mBinding.tvTimeRight.visibility = View.GONE mBinding.tvTimeLeft.text = startOrDelay[0]
mBinding.groupLeftPrice.visibility = View.GONE
if (!isSignUser) { mBinding.tvTimeRight.visibility = View.GONE
mBinding.tvLeftPrice.text = "0" mBinding.tvTime.visibility = View.GONE
mBinding.tvSignDay.visibility = View.GONE mBinding.tvJsq.visibility = View.GONE
mBinding.tvTimeLeft.visibility = View.GONE
mBinding.groupLeftPrice.visibility = View.GONE
if (!isSignUser) {
mBinding.tvLeftPrice.text = "0"
mBinding.tvSignDay.visibility = View.GONE
}
mBinding.tvTime.text = "倒计时 00:00:00"
setIvForMai(0)
} }
mBinding.tvTime.text = "倒计时 00:00:00" if (viewList[0].pitBean.user_id.equals(mUserInfo?.user_id.toString()) && !mSignPitBean?.user_id.equals(
setIvForMai(0) "0"
)
) {
mBinding.tvTimeLeft.visibility = View.VISIBLE
} else {
mBinding.tvTimeLeft.visibility = View.GONE
}
} }
LogUtils.e( LogUtils.e(
"showBtn", "showBtn ${Thread.currentThread()}",
"showBtn: $isSignUser isStart: $isStart viewList[0].pitBean.user_id: ${viewList[0].pitBean.user_id} mSignPitBean?.user_id: ${mSignPitBean?.user_id} mRoomInfo?.user_info?.user_id: ${mRoomInfo?.user_info?.user_id} mUserInfo?.user_id: ${mUserInfo?.user_id}" "showBtn: isSignUser: $isSignUser " +
"\nisStart: $isStart " +
"\n viewList[0].pitBean.user_id: ${viewList[0].pitBean.user_id} " +
"\n mSignPitBean?.user_id: ${mSignPitBean?.user_id} " +
"\n mRoomInfo?.user_info?.user_id: ${mRoomInfoResp?.user_info?.user_id} " +
"\n mUserInfo?.user_id: ${mUserInfo?.user_id}" +
"\n mBinding.tvTimeRight: ${mBinding.tvTimeRight.visibility == View.VISIBLE}" +
"\n mBinding.tvTime: ${mBinding.tvTime.visibility == View.VISIBLE}" +
"\n mBinding.tvTimeLeft: ${mBinding.tvTimeLeft.visibility == View.VISIBLE}"
) )
if (viewList[0].pitBean.user_id.equals(mUserInfo?.user_id.toString()) && !mSignPitBean?.user_id.equals(
"0"
)
) {
mBinding.tvTimeLeft.visibility = View.VISIBLE
} else {
mBinding.tvTimeLeft.visibility = View.GONE
}
} }
// 核心工具方法:检查 Fragment 是否和 Activity 有效绑定
private fun checkFragmentAttached(): Boolean {
// 依次检查Fragment 是否附加到 Activity、是否已销毁、是否处于正常状态
return isAdded && !isDetached && !requireActivity().isFinishing && !requireActivity().isDestroyed
}
fun roomInfoUpdate(mRoomInfoResp: RoomInfoResp) { fun roomInfoUpdate(roomInfoResp: RoomInfoResp) {
mRoomInfo = mRoomInfoResp this.mRoomInfoResp = roomInfoResp
mUserInfo = mRoomInfo?.user_info mUserInfo = this.mRoomInfoResp?.user_info
mRoomId = this.mRoomInfoResp?.room_info?.room_id!!
showBtn() showBtn()
} }
fun roomTypeSwitch(mRoomInfoResp: RoomInfoResp) { fun roomTypeSwitch(roomInfoResp: RoomInfoResp) {
mRoomInfo = mRoomInfoResp this.mRoomInfoResp = roomInfoResp
mUserInfo = mRoomInfo?.user_info mUserInfo = this.mRoomInfoResp?.user_info
mRoomId = this.mRoomInfoResp?.room_info?.room_id!!
initView() initView()
} }
@@ -318,7 +350,7 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
val pitNumber = messageEvent.text.pit_number val pitNumber = messageEvent.text.pit_number
if (indexList.contains(pitNumber)) { if (indexList.contains(pitNumber)) {
val viewPos = indexList.indexOf(pitNumber) val viewPos = indexList.indexOf(pitNumber)
val pitBean = mRoomInfo?.room_info?.pit_list!![pitNumber.toInt() - 1] val pitBean = mRoomInfoResp?.room_info?.pit_list!![pitNumber.toInt() - 1]
viewList[viewPos].setData(pitBean) viewList[viewPos].setData(pitBean)
if (pitNumber == "1") { if (pitNumber == "1") {
mSignPitBean = pitBean mSignPitBean = pitBean
@@ -331,7 +363,7 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
val pitNumber = messageEvent.text.pit_number val pitNumber = messageEvent.text.pit_number
if (indexList.contains(pitNumber)) { if (indexList.contains(pitNumber)) {
val viewPos = indexList.indexOf(pitNumber) val viewPos = indexList.indexOf(pitNumber)
val pitBean = mRoomInfo?.room_info?.pit_list!![pitNumber.toInt() - 1] val pitBean = mRoomInfoResp?.room_info?.pit_list!![pitNumber.toInt() - 1]
viewList[viewPos].setData(pitBean) viewList[viewPos].setData(pitBean)
if (pitNumber == "1") { if (pitNumber == "1") {
mSignPitBean = pitBean mSignPitBean = pitBean
@@ -345,6 +377,8 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
* sign_id 场次id这个出价的时候要传回来 * sign_id 场次id这个出价的时候要传回来
*/ */
fun event1090(messageEvent: RoomMessageEvent?) { fun event1090(messageEvent: RoomMessageEvent?) {
mBinding.ivApplyForMai.isClickable = true
mSignId = messageEvent?.text?.sign_id mSignId = messageEvent?.text?.sign_id
val endTime = messageEvent?.text?.end_time val endTime = messageEvent?.text?.end_time
val signDay = messageEvent?.text?.sign_day val signDay = messageEvent?.text?.sign_day
@@ -354,7 +388,6 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
signTypeDialog?.show(0) signTypeDialog?.show(0)
mBinding.tvTimeLeft.text = startOrDelay[1] mBinding.tvTimeLeft.text = startOrDelay[1]
mBinding.tvLeftPrice.text = currBodyValue mBinding.tvLeftPrice.text = currBodyValue
mBinding.tvSignDay.visibility = View.VISIBLE mBinding.tvSignDay.visibility = View.VISIBLE
@@ -385,17 +418,6 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
pitBean.charm = fromUserInfo.charm pitBean.charm = fromUserInfo.charm
viewList[indexList.indexOf("2")].setData(pitBean) viewList[indexList.indexOf("2")].setData(pitBean)
//当前麦上出价,需要更麦上数据
// for (i in 0 until viewList.size) {
// if(i == 1 || i == 2){
// continue
// }
// if (viewList[i].pitBean?.user_id != "0" && viewList[i].pitBean?.user_id == pitBean.user_id) {
// viewList[i].setData(mRoomInfo?.room_info?.pit_list!![indexList[i].toInt() - 1])
// }
// }
if (dialogMentorShip != null && dialogMentorShip?.isShowing!!) { if (dialogMentorShip != null && dialogMentorShip?.isShowing!!) {
MvpPre!!.signCoinList(mSignId!!) MvpPre!!.signCoinList(mSignId!!)
} }
@@ -447,8 +469,6 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
override fun onItemClick(coin: String) { override fun onItemClick(coin: String) {
dialogMentorShip?.setClickable(false) dialogMentorShip?.setClickable(false)
MvpPre!!.signCoin(mSignId!!, coin) MvpPre!!.signCoin(mSignId!!, coin)
} }
}) })
@@ -470,6 +490,16 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
// 观察时间变化 // 观察时间变化
scope.launch { scope.launch {
timer.timeLeft.collect { time -> timer.timeLeft.collect { time ->
LogUtils.e("startTimer:" + time)
if (time / 1000 <= 10) {
mBinding.tvJsq.visibility = View.VISIBLE
mBinding.tvJsq.text = (time / 1000).toString()
if ((time / 1000).toInt() <= 0) {
mBinding.tvJsq.visibility = View.GONE
}
} else {
mBinding.tvJsq.visibility = View.GONE
}
val formattedTime = timer.formatTime(time) val formattedTime = timer.formatTime(time)
// 更新UI显示 // 更新UI显示
updateTimerDisplay(formattedTime) updateTimerDisplay(formattedTime)
@@ -488,6 +518,7 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
private fun updateTimerDisplay(time: String) { private fun updateTimerDisplay(time: String) {
// 在这里更新你的UI比如 // 在这里更新你的UI比如
mBinding.tvTime.text = "倒计时 ${time}" mBinding.tvTime.text = "倒计时 ${time}"
LogUtils.e("updateTimerDisplay:" + mBinding.tvTime.text.toString() + "\n" + (mBinding.tvTime.visibility == View.VISIBLE))
} }
// 延迟后重新开始计时 // 延迟后重新开始计时
@@ -503,7 +534,7 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
val fromUserId = messageEvent.text.fromUserInfo.user_id val fromUserId = messageEvent.text.fromUserInfo.user_id
for (i in 0 until viewList.size) { for (i in 0 until viewList.size) {
if (viewList[i].pitBean?.user_id == fromUserId.toString()) { if (viewList[i].pitBean?.user_id == fromUserId.toString()) {
val pitBean = mRoomInfo?.room_info?.pit_list!![indexList[i].toInt() - 1] val pitBean = mRoomInfoResp?.room_info?.pit_list!![indexList[i].toInt() - 1]
viewList[i].setData(pitBean) viewList[i].setData(pitBean)
break break
} }
@@ -515,7 +546,7 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
val toId = messageEvent.text.to_pit_number val toId = messageEvent.text.to_pit_number
if (indexList.contains(fromId)) { if (indexList.contains(fromId)) {
val viewPos = indexList.indexOf(fromId) val viewPos = indexList.indexOf(fromId)
val pitBean = mRoomInfo?.room_info?.pit_list!![fromId.toInt() - 1] val pitBean = mRoomInfoResp?.room_info?.pit_list!![fromId.toInt() - 1]
viewList[viewPos].setData(pitBean) viewList[viewPos].setData(pitBean)
if (fromId == "1") { if (fromId == "1") {
mSignPitBean = pitBean mSignPitBean = pitBean
@@ -524,7 +555,7 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
if (indexList.contains(toId)) { if (indexList.contains(toId)) {
val viewPos = indexList.indexOf(toId) val viewPos = indexList.indexOf(toId)
val pitBean = mRoomInfo?.room_info?.pit_list!![toId.toInt() - 1] val pitBean = mRoomInfoResp?.room_info?.pit_list!![toId.toInt() - 1]
viewList[viewPos].setData(pitBean) viewList[viewPos].setData(pitBean)
if (toId == "1") { if (toId == "1") {
mSignPitBean = pitBean mSignPitBean = pitBean
@@ -619,8 +650,11 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
tvHugMic.setOnClickListener { v: View? -> tvHugMic.setOnClickListener { v: View? ->
// 处理抱麦逻辑 // 处理抱麦逻辑
RoomOnlineDialogFragment.show( (activity as RoomActivity).showUserListDialog(
mRoomId, mPitBean?.pit_number, mRoomInfo?.user_info, mRoomInfo, mRoomId,
mPitBean?.pit_number,
mRoomInfoResp?.user_info,
mRoomInfoResp,
childFragmentManager childFragmentManager
) )
popupWindow!!.dismiss() popupWindow!!.dismiss()
@@ -629,11 +663,11 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
private fun getHostUser(): Int { private fun getHostUser(): Int {
return if (mRoomInfo?.user_info?.is_room_owner == 1) { return if (mRoomInfoResp?.user_info?.is_room_owner == 1) {
1 1
} else if (mRoomInfo?.user_info?.is_management == 1) { } else if (mRoomInfoResp?.user_info?.is_management == 1) {
2 2
} else if (mRoomInfo?.user_info?.is_host == 1) { } else if (mRoomInfoResp?.user_info?.is_host == 1) {
3 3
} else { } else {
4 4
@@ -641,7 +675,7 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
} }
private fun isNumberWhether(): Int { private fun isNumberWhether(): Int {
if (mRoomInfo?.user_info?.pit_number == 9) { if (mRoomInfoResp?.user_info?.pit_number == 9) {
return 1 return 1
} }
return 0 return 0
@@ -715,10 +749,10 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
"确认", "确认",
"拒绝", "拒绝",
{ v: View? -> { v: View? ->
MvpPre.applyPit(mRoomInfo?.room_info?.room_id!!, "1") MvpPre.applyPit(mRoomInfoResp?.room_info?.room_id!!, "1")
}, },
{ v: View? -> { v: View? ->
MvpPre.signRefuse(mRoomInfo?.room_info?.room_id!!) MvpPre.signRefuse(mRoomInfoResp?.room_info?.room_id!!)
}, true, 5 }, true, 5
).show() ).show()
} }

View File

@@ -183,10 +183,10 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
roomPitBean = pitBean; roomPitBean = pitBean;
showPopupMenu(view); // v 是点击的按钮视图 showPopupMenu(view); // v 是点击的按钮视图
} else if (pitNumber1 == 10) { } else if (pitNumber1 == 10) {
if (ActivityUtils.getTopActivity() instanceof RoomActivity){ if (getActivity() != null && getActivity() instanceof RoomActivity){
if (((RoomActivity) ActivityUtils.getTopActivity()).getHostUser() < 4){ if (getActivity() != null && ((RoomActivity) getActivity()).getHostUser() < 4){
if (!isFastDoubleClick("online_dialog", pitNumber1 + "")) { if (!isFastDoubleClick("online_dialog", pitNumber1 + "")) {
RoomOnlineDialogFragment.show(roomId, pitNumber1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager()); ((RoomActivity)getActivity()).showUserListDialog(roomId, pitNumber1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
} }
}else { }else {
com.hjq.toast.ToastUtils.show("请等待主持抱麦"); com.hjq.toast.ToastUtils.show("请等待主持抱麦");
@@ -338,7 +338,9 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
tvHugMic.setOnClickListener(v -> { tvHugMic.setOnClickListener(v -> {
// 处理抱麦逻辑 // 处理抱麦逻辑
RoomOnlineDialogFragment.show(roomId, pitNumber, roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager()); if(getActivity() != null && getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).showUserListDialog(roomId, pitNumber, roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
}
popupWindow.dismiss(); popupWindow.dismiss();
}); });
} }
@@ -713,9 +715,10 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
} else if (pitNumber1 == 10) { } else if (pitNumber1 == 10) {
// 添加防重复点击检查 // 添加防重复点击检查
if (!isFastDoubleClick("online_dialog", pitNumber1 + "")) { if (!isFastDoubleClick("online_dialog", pitNumber1 + "")) {
RoomOnlineDialogFragment.show(roomId, pitNumber1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager()); if (getActivity() != null && getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).showUserListDialog(roomId, pitNumber1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
}
} }
// RoomOnlineDialogFragment.show(roomId, pitNumber1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
} else { } else {
MvpPre.applyPit(roomId, pitNumber1 + ""); MvpPre.applyPit(roomId, pitNumber1 + "");
} }
@@ -783,9 +786,10 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
} else if (pitNumber1 == 10) { } else if (pitNumber1 == 10) {
// 添加防重复点击检查 // 添加防重复点击检查
if (!isFastDoubleClick("online_dialog", pitNumber1 + "")) { if (!isFastDoubleClick("online_dialog", pitNumber1 + "")) {
RoomOnlineDialogFragment.show(roomId, pitNumber1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager()); if (getActivity() != null && getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).showUserListDialog(roomId, pitNumber1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
}
} }
// RoomOnlineDialogFragment.show(roomId, pitNumber1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
} else { } else {
MvpPre.applyPit(roomId, pitNumber1 + ""); MvpPre.applyPit(roomId, pitNumber1 + "");
} }

View File

@@ -145,6 +145,7 @@ public class SongHistoryFragment extends BaseMvpFragment<RequestSongPresenter,Fr
@Override @Override
public void onRefresh(@NonNull RefreshLayout refreshLayout) { public void onRefresh(@NonNull RefreshLayout refreshLayout) {
page = 1; page = 1;
songList.clear();
MvpPre.singerSongList(roomId, type, page + "", "10"); MvpPre.singerSongList(roomId, type, page + "", "10");
} }
}); });
@@ -154,6 +155,7 @@ public class SongHistoryFragment extends BaseMvpFragment<RequestSongPresenter,Fr
// 根据选择的时间筛选条件更新历史记录列表 // 根据选择的时间筛选条件更新历史记录列表
// 可以在这里调用接口获取对应时间段的历史记录 // 可以在这里调用接口获取对应时间段的历史记录
page = 1; page = 1;
songList.clear();
MvpPre.singerSongList(roomId, type, page + "", "10"); MvpPre.singerSongList(roomId, type, page + "", "10");
} }
@@ -181,7 +183,7 @@ public class SongHistoryFragment extends BaseMvpFragment<RequestSongPresenter,Fr
@Override @Override
public void singerSongList(SongPlaylist s) { public void singerSongList(SongPlaylist s) {
if (s != null &&s.getLists()!=null && s.getLists().size() > 0 ) { if (s != null && !s.getLists().isEmpty()) {
// 判断当前是刷新还是加载更多 // 判断当前是刷新还是加载更多
RefreshState state = mBinding.smartRefreshLayout.getState(); RefreshState state = mBinding.smartRefreshLayout.getState();
if (state == RefreshState.Refreshing) { if (state == RefreshState.Refreshing) {
@@ -192,7 +194,7 @@ public class SongHistoryFragment extends BaseMvpFragment<RequestSongPresenter,Fr
mBinding.smartRefreshLayout.finishRefresh(true); mBinding.smartRefreshLayout.finishRefresh(true);
} else if (state == RefreshState.Loading) { } else if (state == RefreshState.Loading) {
// 加载更多,添加数据到列表 // 加载更多,添加数据到列表
if (s.getLists().size() > 0) { if (!s.getLists().isEmpty()) {
// 只添加新加载的数据,而不是整个列表 // 只添加新加载的数据,而不是整个列表
songList.addAll(s.getLists()); songList.addAll(s.getLists());
adapter.addData(s.getLists()); adapter.addData(s.getLists());
@@ -210,6 +212,8 @@ public class SongHistoryFragment extends BaseMvpFragment<RequestSongPresenter,Fr
} }
} else { } else {
// songList.clear();
adapter.notifyDataSetChanged();
// 数据为空 // 数据为空
if (mBinding.smartRefreshLayout.getState() == RefreshState.Refreshing) { if (mBinding.smartRefreshLayout.getState() == RefreshState.Refreshing) {
mBinding.smartRefreshLayout.finishRefresh(false); mBinding.smartRefreshLayout.finishRefresh(false);

View File

@@ -17,10 +17,12 @@ import com.xscm.modulemain.activity.room.activity.SearchActivity;
import com.xscm.modulemain.activity.room.contacts.VoiceContacts; import com.xscm.modulemain.activity.room.contacts.VoiceContacts;
import com.xscm.modulemain.databinding.FragmentVoiceBinding; import com.xscm.modulemain.databinding.FragmentVoiceBinding;
import com.xscm.modulemain.activity.room.presenter.VoicePresenter; import com.xscm.modulemain.activity.room.presenter.VoicePresenter;
import com.xscm.modulemain.dialog.SignInDialog;
import com.xscm.moduleutil.adapter.MyFragmentPagerAdapter; import com.xscm.moduleutil.adapter.MyFragmentPagerAdapter;
import com.xscm.moduleutil.base.BaseMvpFragment; import com.xscm.moduleutil.base.BaseMvpFragment;
import com.xscm.moduleutil.bean.ActivitiesPermission; import com.xscm.moduleutil.bean.ActivitiesPermission;
import com.xscm.moduleutil.bean.FirstChargeGiftBean; import com.xscm.moduleutil.bean.FirstChargeGiftBean;
import com.xscm.moduleutil.bean.TasksSignStatus;
import com.xscm.moduleutil.dialog.FirstChargeDialog; import com.xscm.moduleutil.dialog.FirstChargeDialog;
import com.xscm.moduleutil.dialog.RechargeDialogFragment; import com.xscm.moduleutil.dialog.RechargeDialogFragment;
import com.xscm.modulemain.dialog.YouthModelDialog; import com.xscm.modulemain.dialog.YouthModelDialog;
@@ -33,6 +35,8 @@ import java.util.concurrent.TimeUnit;
import io.reactivex.Observable; import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
import kotlin.Unit;
import kotlin.jvm.functions.Function0;
public class VoiceFragment extends BaseMvpFragment<VoicePresenter, FragmentVoiceBinding> implements VoiceContacts.View { public class VoiceFragment extends BaseMvpFragment<VoicePresenter, FragmentVoiceBinding> implements VoiceContacts.View {
@@ -98,7 +102,7 @@ public class VoiceFragment extends BaseMvpFragment<VoicePresenter, FragmentVoice
// 记录已经显示过青少年模式弹窗 // 记录已经显示过青少年模式弹窗
SpUtil.setBooleanValue("youth_model_shown", true); SpUtil.setBooleanValue("youth_model_shown", true);
dialog.dismiss(); dialog.dismiss();
MvpPre.activitiesPermission(); MvpPre.tasksSignStatus();
// 在这里可以继续显示其他弹窗,如首充弹窗 // 在这里可以继续显示其他弹窗,如首充弹窗
} }
@@ -177,6 +181,23 @@ public class VoiceFragment extends BaseMvpFragment<VoicePresenter, FragmentVoice
} }
} }
@Override
public void tasksSignStatus(TasksSignStatus tasksSignStatus) {
if (tasksSignStatus.getStatus()==1){
MvpPre.activitiesPermission();
}else {
SignInDialog signInDialog = new SignInDialog(getContext());
signInDialog.setOnCloseListener(new Function0<Unit>() {
@Override
public Unit invoke() {
MvpPre.activitiesPermission();
return null;
}
});
signInDialog.show();
}
}
private void setDialog(){ private void setDialog(){
if(ActivityUtils.getTopActivity() instanceof MainActivity){ if(ActivityUtils.getTopActivity() instanceof MainActivity){
((MainActivity)ActivityUtils.getTopActivity()).dialogUp(); ((MainActivity)ActivityUtils.getTopActivity()).dialogUp();

View File

@@ -4,6 +4,7 @@ import android.content.Context;
import com.xscm.modulemain.activity.room.contacts.VoiceContacts; import com.xscm.modulemain.activity.room.contacts.VoiceContacts;
import com.xscm.moduleutil.bean.ActivitiesPermission; import com.xscm.moduleutil.bean.ActivitiesPermission;
import com.xscm.moduleutil.bean.TasksSignStatus;
import com.xscm.moduleutil.http.BaseObserver; import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.presenter.BasePresenter; import com.xscm.moduleutil.presenter.BasePresenter;
@@ -134,4 +135,22 @@ public class VoicePresenter extends BasePresenter<VoiceContacts.View> implements
} }
}); });
} }
@Override
public void tasksSignStatus() {
api.tasksSignStatus(new BaseObserver<TasksSignStatus>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
}
@Override
public void onNext(TasksSignStatus tasksSignStatus) {
if (MvpRef==null)
MvpRef=new WeakReference<>(mView);
MvpRef.get().tasksSignStatus(tasksSignStatus);
}
});
}
} }

View File

@@ -1,14 +1,20 @@
package com.xscm.modulemain.activity.user.activity; package com.xscm.modulemain.activity.user.activity;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.text.TextUtils;
import android.view.View; import android.view.View;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
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.blankj.utilcode.util.LogUtils;
import com.xscm.modulemain.Application;
import com.xscm.modulemain.R; import com.xscm.modulemain.R;
import com.xscm.modulemain.activity.room.activity.RoomActivity;
import com.xscm.modulemain.adapter.TaskBoxAdapter; import com.xscm.modulemain.adapter.TaskBoxAdapter;
import com.xscm.modulemain.adapter.TaskDataAdapter; import com.xscm.modulemain.adapter.TaskDataAdapter;
import com.xscm.modulemain.adapter.TaskSectionAdapter; import com.xscm.modulemain.adapter.TaskSectionAdapter;
@@ -18,13 +24,20 @@ import com.xscm.modulemain.activity.user.conacts.DailyTasksConacts;
import com.xscm.modulemain.activity.user.presenter.DailyTasksPresenter; import com.xscm.modulemain.activity.user.presenter.DailyTasksPresenter;
import com.xscm.modulemain.BaseMvpActivity; import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.modulemain.activity.WebViewActivity; import com.xscm.modulemain.activity.WebViewActivity;
import com.xscm.modulemain.dialog.SignInDialog;
import com.xscm.modulemain.manager.RoomManager; import com.xscm.modulemain.manager.RoomManager;
import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.bean.RoomMessageEvent;
import com.xscm.moduleutil.utils.CustomMsgCode;
import com.xscm.moduleutil.base.WebUrlConstants; import com.xscm.moduleutil.base.WebUrlConstants;
import com.xscm.moduleutil.bean.GiftBoxBean; import com.xscm.moduleutil.bean.GiftBoxBean;
import com.xscm.moduleutil.bean.GiftName; import com.xscm.moduleutil.bean.GiftName;
import com.xscm.moduleutil.bean.TaskItem; import com.xscm.moduleutil.listener.MessageListenerSingleton;
import com.xscm.moduleutil.utils.ARouteConstants; import com.xscm.moduleutil.utils.ARouteConstants;
import com.xscm.moduleutil.utils.ColorManager; import com.xscm.moduleutil.utils.ColorManager;
import com.xscm.moduleutil.utils.SpUtil;
import org.json.JSONObject;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -32,6 +45,8 @@ import java.util.concurrent.TimeUnit;
import io.reactivex.Observable; import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
import kotlin.Unit;
import kotlin.jvm.functions.Function0;
/** /**
* @author qx * @author qx
@@ -46,6 +61,10 @@ public class DailyTasksActivity extends BaseMvpActivity<DailyTasksPresenter, Act
private TaskDataAdapter taskDataAdapter; private TaskDataAdapter taskDataAdapter;
private List<GiftBoxBean.TaskDataBean> taskList = new ArrayList<>();
private boolean isJoinRoom = false;
@Override @Override
protected DailyTasksPresenter bindPresenter() { protected DailyTasksPresenter bindPresenter() {
return new DailyTasksPresenter(this, this); return new DailyTasksPresenter(this, this);
@@ -78,6 +97,31 @@ public class DailyTasksActivity extends BaseMvpActivity<DailyTasksPresenter, Act
mBinding.rvTask.setLayoutManager(new GridLayoutManager(this, 2, GridLayoutManager.VERTICAL, false)); mBinding.rvTask.setLayoutManager(new GridLayoutManager(this, 2, GridLayoutManager.VERTICAL, false));
mBinding.rvTask.setAdapter(mTaskBoxAdapter); mBinding.rvTask.setAdapter(mTaskBoxAdapter);
mBinding.rvTaskToday.setLayoutManager(new GridLayoutManager(this, 1));
mTaskDataAdapter = new TaskSectionAdapter(taskList);
mBinding.rvTaskToday.setAdapter(mTaskDataAdapter);
mTaskDataAdapter.setOnItemClickListener(new TaskSectionAdapter.OnItemClickListener() {
@Override
public void onItemClick(GiftBoxBean.TaskDataBean taskItem, GiftBoxBean.TaskDataBean.DailyTasksBean item) {
LogUtils.e("taskStatus:" + item.toString() + "\n taskItem:" + taskItem.toString());
switch (item.getTask_status()) {
case 1://未开始
taskStatus1(item);
break;
case 2://待领取
MvpPre.dailyTasksReceive(item.getTask_id() + "", item.getStudent_id());
break;
case 3://已完成
if (item.getTask_id() == 1) {
SignInDialog sginDialog = new SignInDialog(DailyTasksActivity.this);
sginDialog.show();
}
break;
}
}
});
mBinding.imGz.setOnClickListener(v -> { mBinding.imGz.setOnClickListener(v -> {
Intent intent = new Intent(this, WebViewActivity.class); Intent intent = new Intent(this, WebViewActivity.class);
@@ -93,6 +137,16 @@ public class DailyTasksActivity extends BaseMvpActivity<DailyTasksPresenter, Act
} }
public void isShowLoading(boolean b) {
if (b) {
mBinding.coolWaitView.setVisibility(View.VISIBLE);
} else {
Observable.timer(5, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread()).subscribe(aLong -> {
mBinding.coolWaitView.setVisibility(View.GONE);
});
}
}
@Override @Override
protected int getLayoutId() { protected int getLayoutId() {
return R.layout.activity_daily_tasks; return R.layout.activity_daily_tasks;
@@ -103,59 +157,74 @@ public class DailyTasksActivity extends BaseMvpActivity<DailyTasksPresenter, Act
mBinding.tvTitle.setText("今日累计充值获得金币:" + (giftBoxBean.getUser_gold() != null ? giftBoxBean.getUser_gold() : "0")); mBinding.tvTitle.setText("今日累计充值获得金币:" + (giftBoxBean.getUser_gold() != null ? giftBoxBean.getUser_gold() : "0"));
mTaskBoxAdapter.setNewData(giftBoxBean.getGift_box_list()); mTaskBoxAdapter.setNewData(giftBoxBean.getGift_box_list());
mBinding.rvTaskToday.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)); taskList.clear();
List<TaskItem> sections = new ArrayList<>();
// 每日任务
sections.add(new TaskItem("今日任务", giftBoxBean.getTasks().getDaily_tasks()));
// 特殊任务
sections.add(new TaskItem("特殊任务", giftBoxBean.getTasks().getDaily_tasks_special()));//
// 师徒任务
if (giftBoxBean.getTasks().getTeacher_tasks() != null && giftBoxBean.getTasks().getTeacher_tasks().size() > 0) {
sections.add(new TaskItem("师徒任务", giftBoxBean.getTasks().getTeacher_tasks()));
}
// 平台任务
sections.add(new TaskItem("平台任务", giftBoxBean.getTasks().getUsual_tasks()));
mTaskDataAdapter = new TaskSectionAdapter(sections);
mBinding.rvTaskToday.setAdapter(mTaskDataAdapter);
mTaskDataAdapter.setOnItemClickListener(new TaskSectionAdapter.OnItemClickListener() {
@Override
public void onItemClick(TaskItem taskItem, GiftBoxBean.TaskDataBean.DailyTasksBean item) {
if (taskItem.getTitle().equals("今日任务") || taskItem.getTitle().equals("平台任务") || taskItem.getTitle().equals("师徒任务")) {
if (item.getTask_status() == 2) {
MvpPre.dailyTasksReceive(item.getTask_id() + "");
}
} else {
if (item.getTask_status() == 2) {
MvpPre.dailyTasksReceive(item.getTask_id() + "");
} else if (item.getTask_status() == 1) {
mBinding.coolWaitView.setVisibility(View.VISIBLE);
// if (item.getTask_id() == 9) {
RoomManager.getInstance().fetchRoomDataAndEnter(DailyTasksActivity.this, item.getFrom_id(), "", item.getTask_id() + "");
finish();
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("roomId", item.getFrom_id()).withString("taskId", item.getTask_id() + "").navigation();
// } else {
// RoomManager.getInstance().fetchRoomDataAndEnter(DailyTasksActivity.this, item.getFrom_id(), "", item.getTask_id() + "");
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("roomId", item.getFrom_id()).withString("taskId", item.getTask_id() + "").navigation();
// }
}
}
}
});
giftBoxBean.getTasks().stream()
.filter(task -> !task.getTask_list().isEmpty())
.forEach(taskList::add);
mTaskDataAdapter.notifyDataSetChanged();
} }
private void taskStatus1(GiftBoxBean.TaskDataBean.DailyTasksBean item) {
switch (item.getTask_id()) {
case 1:
SignInDialog sginDialog = new SignInDialog(this);
sginDialog.setOnCloseListener(new Function0<Unit>() {
@Override
public Unit invoke() {
MvpPre.tasksLihen();
return null;
}
});
sginDialog.show();
break;
default:
switch (item.getJump_type()) {
case 1:
toActivity(RealNameActivity.class);
break;
case 2:
toActivity(CreateAlbumActivity.class);
break;
case 3:
toActivity(BindCardActivity.class);
break;
case 4:
mBinding.coolWaitView.setVisibility(View.VISIBLE);
MvpPre.taskJumpRoom(item, item.getTask_id() + "");
break;
case 5:
//跳转加入公会
Intent intent = new Intent(DailyTasksActivity.this, WebViewActivity.class);
intent.putExtra("url", String.format(WebUrlConstants.INSTANCE.getWEB_GUILD_URL(), SpUtil.getToken(), ""));
intent.putExtra("title", "公会");
startActivity(intent);
break;
case 6:
toActivity(RechargeActivity.class);
break;
case 0:
break;
}
break;
}
}
@SuppressLint("CheckResult")
@Override @Override
protected void onPause() { protected void onPause() {
super.onPause(); super.onPause();
Observable.timer(5, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread()).subscribe(aLong -> { Observable.timer(5, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread()).subscribe(aLong -> {
mBinding.coolWaitView.setVisibility(View.GONE); mBinding.coolWaitView.setVisibility(View.GONE);
if (!isFinishing() && isJoinRoom) {
finish();
}
}); });
} }
@Override @Override
public void dailyTasksOpenBox(GiftName giftName) { public void dailyTasksOpenBox(GiftName giftName) {
ToastUtils.show(giftName.getGift_name()); ToastUtils.show(giftName.getGift_name());
@@ -167,4 +236,52 @@ public class DailyTasksActivity extends BaseMvpActivity<DailyTasksPresenter, Act
ToastUtils.show("任务完成"); ToastUtils.show("任务完成");
MvpPre.tasksLihen(); MvpPre.tasksLihen();
} }
@Override
public void taskJumpRoom(GiftBoxBean.TaskDataBean.DailyTasksBean item, String roomId) {
if (TextUtils.isEmpty(roomId) || roomId.equals("0")) {
ToastUtils.show("暂无此类型房间。");
mBinding.coolWaitView.setVisibility(View.GONE);
return;
}
switch (item.getTask_id()) {
case 21:
case 22:
case 23:
RoomMessageEvent.T text = new RoomMessageEvent.T();
try {
JSONObject jsonObject = new JSONObject();
jsonObject.put("status", "1");
jsonObject.put("room_id", roomId);
text.setText(jsonObject.toString());
MessageListenerSingleton.getInstance().sendCustomC2CMessage(
CustomMsgCode.INSTANCE.getCODE_TASK_APPRENTICE_JOIN_ROOM(),
item.getStudent_id(), text);
Application.Companion.getInstance().inviteApprenticeTaskTimer();
} catch (Exception e) {
e.printStackTrace();
}
break;
}
try {
if (ActivityUtils.getActivityList().size() > 1) {
if (ActivityUtils.getActivityList().get(ActivityUtils.getActivityList().size() - 2) instanceof RoomActivity) {
if (!TextUtils.isEmpty(CommonAppContext.getInstance().playId) && CommonAppContext.getInstance().playId.equals(roomId)) {
finish();
return;
}
((RoomActivity) ActivityUtils.getActivityList().get(ActivityUtils.getActivityList().size() - 2)).refreshRoomInfo(roomId);
finish();
return;
}
}
RoomManager.getInstance().fetchRoomDataAndEnter(DailyTasksActivity.this, roomId, "", null);
isJoinRoom = true;
} catch (Exception e) {
e.printStackTrace();
LogUtils.e("taskJumpRoom error: " + e.getMessage());
}
}
} }

View File

@@ -37,7 +37,7 @@ public class GiftBoxRecordActivity extends BaseMvpActivity<GiftBoxRecordPresente
@Override @Override
protected void initData() { protected void initData() {
MvpPre.dailyTasksBoxRecord(); MvpPre.dailyTasksBoxRecord();
mBinding.topBar.setTitle("每日任务"); mBinding.topBar.setTitle("礼盒记录");
} }

View File

@@ -1,5 +1,6 @@
package com.xscm.modulemain.activity.user.activity package com.xscm.modulemain.activity.user.activity
import android.annotation.SuppressLint
import android.os.Bundle import android.os.Bundle
import com.alibaba.android.arouter.launcher.ARouter import com.alibaba.android.arouter.launcher.ARouter
import com.scwang.smartrefresh.layout.api.RefreshLayout import com.scwang.smartrefresh.layout.api.RefreshLayout
@@ -40,7 +41,7 @@ class HeartCpActivity : BaseMvpActivity<HeartCpPresenter, ActivityHeartCpBinding
private var leftUserId: Int = 0 private var leftUserId: Int = 0
private var rightUserId: Int = 0 private var rightUserId: Int = 0
private var page: Int=1 private var page: Int = 1
override fun doDone() { override fun doDone() {
super.doDone() super.doDone()
@@ -49,10 +50,10 @@ class HeartCpActivity : BaseMvpActivity<HeartCpPresenter, ActivityHeartCpBinding
override fun initData() { override fun initData() {
if (userId == 0){ if (userId == 0) {
userId=intent.getStringExtra("userId")?.toInt()!! userId = intent.getStringExtra("userId")?.toInt()!!
} }
MvpPre.getHeartCpData(userId,page) MvpPre.getHeartCpData(userId, page)
mBinding.ivBack.setOnClickListener { mBinding.ivBack.setOnClickListener {
finish() finish()
@@ -85,7 +86,7 @@ class HeartCpActivity : BaseMvpActivity<HeartCpPresenter, ActivityHeartCpBinding
adapter?.setOnItemClickListener { adapter, view, position -> adapter?.setOnItemClickListener { adapter, view, position ->
ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE) ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE)
.withString("userId", mHeartData?.gift_log!![position].from_user_id.toString()) .withString("userId", dataList?.get(position)?.from_user_id.toString())
.navigation(); .navigation();
finish() finish()
} }
@@ -94,12 +95,12 @@ class HeartCpActivity : BaseMvpActivity<HeartCpPresenter, ActivityHeartCpBinding
OnRefreshLoadMoreListener { OnRefreshLoadMoreListener {
override fun onLoadMore(refreshLayout: RefreshLayout) { override fun onLoadMore(refreshLayout: RefreshLayout) {
page++ page++
MvpPre.getHeartCpData(userId,page) MvpPre.getHeartCpData(userId, page)
} }
override fun onRefresh(refreshLayout: RefreshLayout) { override fun onRefresh(refreshLayout: RefreshLayout) {
page = 1 // 重置页码 page = 1 // 重置页码
MvpPre.getHeartCpData(userId,page) MvpPre.getHeartCpData(userId, page)
} }
}) })
@@ -112,13 +113,13 @@ class HeartCpActivity : BaseMvpActivity<HeartCpPresenter, ActivityHeartCpBinding
} }
@SuppressLint("NotifyDataSetChanged")
override fun getHeartCpData(heartCpBean: HeartCpBean?) { override fun getHeartCpData(heartCpBean: HeartCpBean?) {
mBinding.smartRefreshLayout.finishRefresh() mBinding.smartRefreshLayout.finishRefresh()
mBinding.smartRefreshLayout.finishLoadMore() mBinding.smartRefreshLayout.finishLoadMore()
if (heartCpBean == null) { if (heartCpBean == null) {
return return
} }
mHeartData = heartCpBean
if (userId == heartCpBean.user_id1) { if (userId == heartCpBean.user_id1) {
ImageUtils.loadHeadCC(heartCpBean.user_info1.avatar, mBinding.ivHeadLeft) ImageUtils.loadHeadCC(heartCpBean.user_info1.avatar, mBinding.ivHeadLeft)
@@ -142,15 +143,14 @@ class HeartCpActivity : BaseMvpActivity<HeartCpPresenter, ActivityHeartCpBinding
} }
if (page == 1) { if (page == 1) {
adapter?.setNewData(heartCpBean.gift_log) dataList?.clear()
}else{
adapter?.addData(heartCpBean.gift_log)
} }
dataList?.addAll(heartCpBean.gift_log)
val day = TimeUtils.formatDurationDaysOnly( adapter?.notifyDataSetChanged()
heartCpBean.createtime * 1000 - System.currentTimeMillis() val day = TimeUtils.calculateDays(
System.currentTimeMillis(), heartCpBean.createtime * 1000
) )
mBinding.tvHeartTime.text = "我们在一起${day}" mBinding.tvHeartTime.text = "我们在一起${day}"
} }
} }

View File

@@ -271,7 +271,9 @@ public class MyRoomActivity extends BaseMvpActivity<MyRoomPresenter, RoomActivit
return; return;
} }
MvpPre.check_create_room(); // MvpPre.check_create_room();
startActivity(new Intent(MyRoomActivity.this, CreatedRoomActivity.class));
finish();
} }
}); });
} }

View File

@@ -112,7 +112,7 @@ public class NoblePaymentActivity extends BaseMvpActivity<NobleTitlePresenter, A
return; return;
} }
if (selectedItem.getType() == null) { if (selectedItem==null || selectedItem.getType() == null) {
ToastUtils.show("请选择支付方式"); ToastUtils.show("请选择支付方式");
return; return;
} }

View File

@@ -99,7 +99,8 @@ public class RechargeActivity extends BaseMvpActivity<RechargePresenter, Activit
ViewGroup.LayoutParams layoutParams = mBinding.recyclerView.getLayoutParams(); ViewGroup.LayoutParams layoutParams = mBinding.recyclerView.getLayoutParams();
layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT; // 使用你定义的getWidth方法 layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT; // 使用你定义的getWidth方法
layoutParams.height = SystemUtils.getWidth(372); // 示例高度 // layoutParams.height = SystemUtils.getWidth(372); // 示例高度
layoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT; // 示例高度
mBinding.recyclerView.setLayoutParams(layoutParams); mBinding.recyclerView.setLayoutParams(layoutParams);
} }

View File

@@ -124,41 +124,6 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
mBinding.progressArc.setProgress(0); mBinding.progressArc.setProgress(0);
mBinding.progressArc.setMax(100); // 设置最大值 mBinding.progressArc.setMax(100); // 设置最大值
mBinding.progressArc.setIndeterminate(false); mBinding.progressArc.setIndeterminate(false);
// 设置长按录音逻辑
// mBinding.recordButton.setOnTouchListener(new View.OnTouchListener() {
// @Override
// public boolean onTouch(View v, MotionEvent event) {
// switch (event.getAction()) {
// case MotionEvent.ACTION_DOWN:
// if (!isRecording && !isPlaying) {
// // 长按时改变按钮图案为类似试听后的图案
// mBinding.recordButton.setImageResource(R.mipmap.but_tz);
//
// // 如果之前已经录制过内容,则继续录制
// if (hasRecordedBefore && recordingFile != null && recordingFile.exists()) {
// isAppendRecording = true;
// startRecording();
// } else {
// // 首次录音或重录后
// isAppendRecording = false;
// startRecording();
// }
// }
// return true;
// case MotionEvent.ACTION_UP:
// if (isRecording) {
// stopRecording();
// // 手指离开后恢复默认图案
// mBinding.recordButton.setImageResource(R.mipmap.but_ly);
// }
// return true;
// default:
// return false;
// }
// }
// });
mBinding.recordButton.setOnTouchListener(new View.OnTouchListener() { mBinding.recordButton.setOnTouchListener(new View.OnTouchListener() {
private Runnable longPressRunnable; private Runnable longPressRunnable;
@@ -243,10 +208,10 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
mBinding.playButton.setCompoundDrawablesWithIntrinsicBounds(0, R.mipmap.but_st, 0, 0); mBinding.playButton.setCompoundDrawablesWithIntrinsicBounds(0, R.mipmap.but_st, 0, 0);
} else { } else {
// 检查录音文件是否存在 // 检查录音文件是否存在
if (recordingFile == null || !recordingFile.exists()) { // if (recordingFile == null || !recordingFile.exists()) {
Toast.makeText(SingerVerificationActivity.this, "没有录制的文件", Toast.LENGTH_SHORT).show(); // Toast.makeText(SingerVerificationActivity.this, "没有录制的文件", Toast.LENGTH_SHORT).show();
return; // return;
} // }
// 检查录音时长 // 检查录音时长
if (recordingDuration <= 0) { if (recordingDuration <= 0) {
@@ -353,10 +318,9 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
mediaRecorder.prepare(); mediaRecorder.prepare();
mediaRecorder.start(); mediaRecorder.start();
// 如果是第一次录音,初始化录音文件 // 修复不再根据是否追加录音来设置recordingFile
if (!isAppendRecording) { // recordingFile将在停止录音时通过mergeAudioFiles()方法设置
recordingFile = segmentFile; // 这样可以确保每次录音都能正确合并
}
} catch (IOException e) { } catch (IOException e) {
LogUtils.e("SingerVerification", "录音失败: " + e.getMessage()); LogUtils.e("SingerVerification", "录音失败: " + e.getMessage());
// 从列表中移除失败的文件 // 从列表中移除失败的文件
@@ -442,16 +406,28 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
timer.cancel(); timer.cancel();
timer = null; timer = null;
} }
// 计算当前录音片段的时长
long currentSegmentDuration = System.currentTimeMillis() - recordingStartTime;
// 检查当前录音片段是否太短小于1秒
if (currentSegmentDuration < 1000 && recordingSegments.size() > 1) {
// 如果当前录音片段太短且不是第一个片段,则移除它
File lastSegment = recordingSegments.get(recordingSegments.size() - 1);
if (lastSegment.exists()) {
lastSegment.delete();
}
recordingSegments.remove(recordingSegments.size() - 1);
LogUtils.d("SingerVerification", "移除过短的录音片段: " + lastSegment.getAbsolutePath());
}
// 处理录音片段 // 处理录音片段
if (recordingSegments.size() > 1) { // 修复:每次停止录音时都合并所有片段,确保录音连续性
// 如果有多个录音片段,合并它们 if (recordingSegments.size() >= 1) {
// 始终合并所有录音片段,确保连续性
mergeAudioFiles(); mergeAudioFiles();
// 更新录音时长为所有片段的总时长 // 更新录音时长为所有片段的总时长
updateRecordingDuration(); updateRecordingDuration();
} else if (recordingSegments.size() == 1) {
// 只有一个录音片段,直接使用
recordingFile = recordingSegments.get(0);
} }
// 更新状态 // 更新状态
@@ -749,11 +725,9 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
handleMergeError(e); handleMergeError(e);
} finally { } finally {
cleanupResources(muxer, buffer); cleanupResources(muxer, buffer);
// 修复:延迟删除原始音频片段,确保合并文件已经完全写入且被使用 // 修复:不删除录音片段,以便后续继续追加录音
// 延迟删除,给用户足够时间试听 // 只在用户点击"重新录音"时才删除所有片段
new Handler().postDelayed(() -> { // cleanupSegments(processedSegments);
cleanupSegments(processedSegments);
}, 30000); // 延迟30秒删除确保用户有足够时间试听
} }
} }

View File

@@ -80,7 +80,7 @@ class TotalRevenueActivity : BaseMvpActivity<UserFamilyPresenter, ActivityTotalR
mBinding.smartRefreshLayout.setOnRefreshLoadMoreListener(object : mBinding.smartRefreshLayout.setOnRefreshLoadMoreListener(object :
OnRefreshLoadMoreListener { OnRefreshLoadMoreListener {
override fun onRefresh(refreshLayout: RefreshLayout) { override fun onRefresh(refreshLayout: RefreshLayout) {
page++ page = 1 // 重置页码
MvpPre?.familyEarnings( MvpPre?.familyEarnings(
userId.toString(), userId.toString(),
page, page,
@@ -90,7 +90,9 @@ class TotalRevenueActivity : BaseMvpActivity<UserFamilyPresenter, ActivityTotalR
} }
override fun onLoadMore(refreshLayout: RefreshLayout) { override fun onLoadMore(refreshLayout: RefreshLayout) {
page = 1 // 重置页码
page++
MvpPre?.familyEarnings( MvpPre?.familyEarnings(
userId.toString(), userId.toString(),
page, page,
@@ -133,7 +135,6 @@ class TotalRevenueActivity : BaseMvpActivity<UserFamilyPresenter, ActivityTotalR
// 显示没有更多数据的提示 // 显示没有更多数据的提示
// 设置一个特殊的空视图,表示没有更多数据 // 设置一个特殊的空视图,表示没有更多数据
// 重要page--,因为这次加载没有新数据 // 重要page--,因为这次加载没有新数据
page--
} }
// 非第一页有数据 // 非第一页有数据
else -> { else -> {

View File

@@ -127,7 +127,7 @@ public class UnderageActivity extends BaseMvpActivity<UnderagePresenter, Activit
// 密码正确,关闭页面 // 密码正确,关闭页面
// ToastUtils.showShort("密码验证成功"); // ToastUtils.showShort("密码验证成功");
ARouter.getInstance().build(ARouteConstants.ME).navigation(); // ARouter.getInstance().build(ARouteConstants.ME).navigation();
ActivityUtils.finishActivity(WebViewActivity.class); ActivityUtils.finishActivity(WebViewActivity.class);
finish(); finish();
} else { } else {

View File

@@ -1,5 +1,7 @@
package com.xscm.modulemain.activity.user.activity; package com.xscm.modulemain.activity.user.activity;
import static android.view.View.GONE;
import android.graphics.Color; import android.graphics.Color;
import android.view.View; import android.view.View;
@@ -30,7 +32,7 @@ public class UserPlaylistActivity extends BaseMvpActivity<SingerVerificationPres
private int page = 0; private int page = 0;
private UserPlaylistAdapter mAdapter; private UserPlaylistAdapter mAdapter;
private List<SongPlaylist.SongPlaylistBean> mSongPlaylistBean; private List<SongPlaylist.SongPlaylistBean> mSongPlaylistBean = new ArrayList<>();
@Override @Override
protected void initView() { protected void initView() {
@@ -60,7 +62,7 @@ public class UserPlaylistActivity extends BaseMvpActivity<SingerVerificationPres
mBinding.recycleView.setLayoutManager(new LinearLayoutManager(this)); mBinding.recycleView.setLayoutManager(new LinearLayoutManager(this));
// 初始化适配器 // 初始化适配器
mAdapter = new UserPlaylistAdapter(this, new ArrayList<>()); mAdapter = new UserPlaylistAdapter(this, mSongPlaylistBean);
mBinding.recycleView.setAdapter(mAdapter); mBinding.recycleView.setAdapter(mAdapter);
// 设置滑动操作 // 设置滑动操作
// ItemTouchHelper itemTouchHelper = UserPlaylistAdapter.getItemTouchHelper(mAdapter); // ItemTouchHelper itemTouchHelper = UserPlaylistAdapter.getItemTouchHelper(mAdapter);
@@ -146,31 +148,24 @@ public class UserPlaylistActivity extends BaseMvpActivity<SingerVerificationPres
@Override @Override
public void getSong(SongPlaylist s) { public void getSong(SongPlaylist s) {
if (mAdapter != null) { if (s != null) {
if (page == 1) { if (!s.getLists().isEmpty()) {
// 第一页,直接设置数据 if (page == 1) {
if (s == null || s.getLists() == null || s.getLists().size() == 0) { mSongPlaylistBean.clear();
return;
}
mSongPlaylistBean = s.getLists();
mAdapter.setNewData(s.getLists());
} else {
if (s == null || s.getLists() == null || s.getLists().size() == 0) {
return;
} }
mSongPlaylistBean.addAll(s.getLists()); mSongPlaylistBean.addAll(s.getLists());
// 更多页面,添加数据 mAdapter.notifyDataSetChanged();
mAdapter.addData(s.getLists()); // 更新歌单数量
mBinding.tvNum.setText("" + s.getCount() + "首歌");
}else {
if (page == 1) {
mSongPlaylistBean.clear();
}
mAdapter.notifyDataSetChanged();
if(mSongPlaylistBean.size()==0){
mBinding.tvNum.setText("" + mSongPlaylistBean.size() + "首歌");
}
} }
// 更新歌单数量
mBinding.tvNum.setText("" + s.getCount() + "首歌");
}
// 结束刷新或加载更多
if (mBinding.smartRefreshLayout != null) {
mBinding.smartRefreshLayout.finishRefresh();
mBinding.smartRefreshLayout.finishLoadMore();
} }
} }

View File

@@ -15,6 +15,8 @@ public class DailyTasksConacts {
void dailyTasksOpenBox(GiftName giftName); void dailyTasksOpenBox(GiftName giftName);
void dailyTasksComplete(); void dailyTasksComplete();
void taskJumpRoom(GiftBoxBean.TaskDataBean.DailyTasksBean item,String taskId);
} }
public interface IMePre extends IPresenter { public interface IMePre extends IPresenter {
@@ -23,7 +25,9 @@ public class DailyTasksConacts {
void dailyTasksOpenBox(String gift_box_id); void dailyTasksOpenBox(String gift_box_id);
void dailyTasksReceive(String task_id); void dailyTasksReceive(String task_id,String student_id);
void taskJumpRoom(GiftBoxBean.TaskDataBean.DailyTasksBean item,String roomId);
} }
} }

View File

@@ -182,7 +182,7 @@ public class UserHomepageFragment extends BaseMvpFragment<UserHomepagePresenter,
if (!userInfo.getIcon().isEmpty()) { if (!userInfo.getIcon().isEmpty()) {
mBinding.headerInfo.flexEntry.setVisibility(VISIBLE); mBinding.headerInfo.flexEntry.setVisibility(VISIBLE);
for (String url : userInfo.getIcon()) { for (String url : userInfo.getIcon()) {
if (url.contains("http")) { if (url != null && url.contains("http")) {
ImageView imageView1 = new ImageView(Application.getInstance()); ImageView imageView1 = new ImageView(Application.getInstance());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT,

View File

@@ -357,7 +357,7 @@ public class VocalRangeFragment extends BaseMvpFragment<MePresenter, FragmentVoc
if (images != null && !images.isEmpty()) { if (images != null && !images.isEmpty()) {
for (String url : images) { for (String url : images) {
if (url.contains("http")) { if (url!=null && url.contains("http")) {
ImageView imageView = new ImageView(getContext()); ImageView imageView = new ImageView(getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57), getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),

View File

@@ -6,19 +6,25 @@ import com.xscm.modulemain.activity.user.conacts.DailyTasksConacts;
import com.xscm.moduleutil.bean.GiftBoxBean; import com.xscm.moduleutil.bean.GiftBoxBean;
import com.xscm.moduleutil.bean.GiftName; import com.xscm.moduleutil.bean.GiftName;
import com.xscm.moduleutil.http.BaseObserver; import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.http.RetrofitClient;
import com.xscm.moduleutil.presenter.BasePresenter; import com.xscm.moduleutil.presenter.BasePresenter;
import java.lang.ref.WeakReference;
import io.reactivex.disposables.Disposable; import io.reactivex.disposables.Disposable;
public class DailyTasksPresenter extends BasePresenter<DailyTasksConacts.View> implements DailyTasksConacts.IMePre{ public class DailyTasksPresenter extends BasePresenter<DailyTasksConacts.View> implements DailyTasksConacts.IMePre{
DailyTasksConacts.View mView;
public DailyTasksPresenter(DailyTasksConacts.View view, Context context) { public DailyTasksPresenter(DailyTasksConacts.View view, Context context) {
super(view, context); super(view, context);
mView = view;
} }
//获取礼盒列表 //获取礼盒列表
@Override @Override
public void tasksLihen() { public void tasksLihen() {
api.tasksLihen(new BaseObserver<GiftBoxBean>() { RetrofitClient.getInstance().tasksLihen(new BaseObserver<GiftBoxBean>() {
@Override @Override
public void onSubscribe(Disposable d) { public void onSubscribe(Disposable d) {
addDisposable(d); addDisposable(d);
@@ -26,6 +32,9 @@ public class DailyTasksPresenter extends BasePresenter<DailyTasksConacts.View> i
@Override @Override
public void onNext(GiftBoxBean giftBoxBean) { public void onNext(GiftBoxBean giftBoxBean) {
if (MvpRef == null){
MvpRef = new WeakReference<>(mView);
}
MvpRef.get().setGiftBox(giftBoxBean); MvpRef.get().setGiftBox(giftBoxBean);
} }
}); });
@@ -33,7 +42,7 @@ public class DailyTasksPresenter extends BasePresenter<DailyTasksConacts.View> i
@Override @Override
public void dailyTasksOpenBox(String gift_box_id) { public void dailyTasksOpenBox(String gift_box_id) {
api.dailyTasksOpenBox(gift_box_id, new BaseObserver<GiftName>() { RetrofitClient.getInstance().dailyTasksOpenBox(gift_box_id, new BaseObserver<GiftName>() {
@Override @Override
public void onSubscribe(Disposable d) { public void onSubscribe(Disposable d) {
addDisposable(d); addDisposable(d);
@@ -41,14 +50,17 @@ public class DailyTasksPresenter extends BasePresenter<DailyTasksConacts.View> i
@Override @Override
public void onNext(GiftName giftName) { public void onNext(GiftName giftName) {
if (MvpRef == null){
MvpRef = new WeakReference<>(mView);
}
MvpRef.get().dailyTasksOpenBox(giftName); MvpRef.get().dailyTasksOpenBox(giftName);
} }
}); });
} }
@Override @Override
public void dailyTasksReceive(String task_id) { public void dailyTasksReceive(String task_id,String student_id) {
api.dailyTasksReceive(task_id, new BaseObserver<String>() { RetrofitClient.getInstance().dailyTasksReceive(task_id,student_id, new BaseObserver<String>() {
@Override @Override
public void onSubscribe(Disposable d) { public void onSubscribe(Disposable d) {
@@ -57,11 +69,33 @@ public class DailyTasksPresenter extends BasePresenter<DailyTasksConacts.View> i
@Override @Override
public void onNext(String s) { public void onNext(String s) {
if (MvpRef == null){
MvpRef = new WeakReference<>(mView);
}
MvpRef.get().dailyTasksComplete(); MvpRef.get().dailyTasksComplete();
} }
}); });
} }
@Override
public void taskJumpRoom(GiftBoxBean.TaskDataBean.DailyTasksBean item,String taskId) {
RetrofitClient.getInstance().taskJumpRoomId(taskId, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(String s) {
if (MvpRef == null){
MvpRef = new WeakReference<>(mView);
}
MvpRef.get().taskJumpRoom(item,s);
}
});
}
} }

View File

@@ -55,6 +55,7 @@ public class MyBagPresenter extends BasePresenter<MyBagConacts.View> implements
MvpRef=new WeakReference<>(mView); MvpRef=new WeakReference<>(mView);
} }
MvpRef.get().packOutcome(myBagDataBeans); MvpRef.get().packOutcome(myBagDataBeans);
MvpRef.get().finishRefreshLoadMore();
} }
}); });
} }

View File

@@ -78,36 +78,57 @@ class BosomFriendAdapter(data: MutableList<MultiItemEntity>) : BaseMultiItemQuic
holder.setText(R.id.tv_heartbeat, noCpBean.relation_name) holder.setText(R.id.tv_heartbeat, noCpBean.relation_name)
// 显示关系名称 // 显示关系名称
holder.setText(R.id.tv_cp_lv, noCpBean.relation_name) // holder.setText(R.id.tv_cp_lv, noCpBean.relation_name)
var meHeadView: MeHeadView var meHeadView: MeHeadView
var meHeadView2: MeHeadView var meHeadView2: MeHeadView
meHeadView = holder.getView(R.id.user_nav1) meHeadView = holder.getView(R.id.user_nav1)
meHeadView2 = holder.getView(R.id.user_nav2) meHeadView2 = holder.getView(R.id.user_nav2)
meHeadView.setSex(noCpBean.relation_list[0].sex1,noCpBean.relation_list[0].avatar1,noCpBean.relation_list[0].dress1) if (noCpBean.relation_list[0].user_id1 == userId.toInt()){
meHeadView2.setSex(noCpBean.relation_list[0].sex2,noCpBean.relation_list[0].avatar2,noCpBean.relation_list[0].dress2) meHeadView.setSex(noCpBean.relation_list[0].sex1,noCpBean.relation_list[0].avatar1,noCpBean.relation_list[0].dress1)
holder.setText(R.id.tv_nickname1, noCpBean.relation_list[0].nickname1)
holder.setText(R.id.tv_nickname2, noCpBean.relation_list[0].nickname2)
meHeadView2.setSex(noCpBean.relation_list[0].sex2,noCpBean.relation_list[0].avatar2,noCpBean.relation_list[0].dress2)
}else{
meHeadView.setSex(noCpBean.relation_list[0].sex2,noCpBean.relation_list[0].avatar2,noCpBean.relation_list[0].dress2)
holder.setText(R.id.tv_nickname1, noCpBean.relation_list[0].nickname2)
holder.setText(R.id.tv_nickname2, noCpBean.relation_list[0].nickname1)
meHeadView2.setSex(noCpBean.relation_list[0].sex1,noCpBean.relation_list[0].avatar1,noCpBean.relation_list[0].dress1)
}
// 设置点击事件
holder.getView<View>(R.id.user_nav1).setOnClickListener {
if(noCpBean.relation_list[0].user_id1 == userId.toInt()){
onItemClickListener?.onUserClick(noCpBean.relation_list[0].user_id1.toString())
}else{
onItemClickListener?.onUserClick(noCpBean.relation_list[0].user_id2.toString())
}
// 点击第一个用户头像
}
holder.getView<View>(R.id.user_nav2).setOnClickListener {
// 点击第二个用户头像
// onItemClickListener?.onUserClick(noCpBean.relation_list[0].user_id2.toString())
if(noCpBean.relation_list[0].user_id2 == userId.toInt()){
onItemClickListener?.onUserClick(noCpBean.relation_list[0].user_id2.toString())
}else{
onItemClickListener?.onUserClick(noCpBean.relation_list[0].user_id1.toString())
}
}
// 显示relation_list内容 // 显示relation_list内容
// ImageUtils.loadHead(noCpBean.relation_list[0].avatar1, holder.getView(R.id.user_nav1)) // ImageUtils.loadHead(noCpBean.relation_list[0].avatar1, holder.getView(R.id.user_nav1))
holder.setText(R.id.tv_nickname1, noCpBean.relation_list[0].nickname1)
// ImageUtils.loadHead(noCpBean.relation_list[0].avatar2, holder.getView(R.id.user_nav2)) // ImageUtils.loadHead(noCpBean.relation_list[0].avatar2, holder.getView(R.id.user_nav2))
holder.setText(R.id.tv_nickname2, noCpBean.relation_list[0].nickname2)
if (noCpBean.relation_list[0].user_id1 == SpUtil.getUserId() || noCpBean.relation_list[0].user_id2 == SpUtil.getUserId()) { if (noCpBean.relation_list[0].user_id1== SpUtil.getUserId()||noCpBean.relation_list[0].user_id2== SpUtil.getUserId()) {
holder.setVisible(R.id.icon_cp_zd, true) holder.setVisible(R.id.icon_cp_zd, true)
holder.setVisible(R.id.icon_cp_dele, true) holder.setVisible(R.id.icon_cp_dele, true)
} else { } else {
holder.setVisible(R.id.icon_cp_zd, false) holder.setVisible(R.id.icon_cp_zd, false)
holder.setVisible(R.id.icon_cp_dele, false) holder.setVisible(R.id.icon_cp_dele, false)
} }
// 设置点击事件
holder.getView<View>(R.id.user_nav1).setOnClickListener {
// 点击第一个用户头像
onItemClickListener?.onUserClick(noCpBean.relation_list[0].user_id1.toString())
}
holder.getView<View>(R.id.user_nav2).setOnClickListener {
// 点击第二个用户头像
onItemClickListener?.onUserClick(noCpBean.relation_list[0].user_id2.toString())
}
// 设置删除按钮点击事件 // 设置删除按钮点击事件
holder.getView<View>(R.id.icon_cp_dele).setOnClickListener { holder.getView<View>(R.id.icon_cp_dele).setOnClickListener {
@@ -188,7 +209,7 @@ class BosomFriendAdapter(data: MutableList<MultiItemEntity>) : BaseMultiItemQuic
meHeadView=holder.getView(R.id.user_nav1) meHeadView=holder.getView(R.id.user_nav1)
meHeadView2=holder.getView(R.id.user_nav2) meHeadView2=holder.getView(R.id.user_nav2)
if (relation1.user_id1== SpUtil.getUserId()){ if (relation1.user_id1== userId.toInt()){
meHeadView.setSex(relation1.sex2,relation1.avatar2,relation1.dress2) meHeadView.setSex(relation1.sex2,relation1.avatar2,relation1.dress2)
holder.setText(R.id.tv_nickname1, relation1.nickname2) holder.setText(R.id.tv_nickname1, relation1.nickname2)
@@ -197,7 +218,7 @@ class BosomFriendAdapter(data: MutableList<MultiItemEntity>) : BaseMultiItemQuic
holder.setText(R.id.tv_nickname1, relation1.nickname1) holder.setText(R.id.tv_nickname1, relation1.nickname1)
} }
if (relation2.user_id1== SpUtil.getUserId()){ if (relation2.user_id1==userId.toInt()){
meHeadView2.setSex(relation2.sex2,relation2.avatar2,relation2.dress2) meHeadView2.setSex(relation2.sex2,relation2.avatar2,relation2.dress2)
holder.setText(R.id.tv_nickname2, relation2.nickname2) holder.setText(R.id.tv_nickname2, relation2.nickname2)
}else{ }else{
@@ -215,7 +236,7 @@ class BosomFriendAdapter(data: MutableList<MultiItemEntity>) : BaseMultiItemQuic
holder.setText(R.id.tv_gx_time2, TimeUtils.formatDurationDaysOnly(noCpBean.relation_list[1].end_time.toLong()* 1000 - System.currentTimeMillis())) holder.setText(R.id.tv_gx_time2, TimeUtils.formatDurationDaysOnly(noCpBean.relation_list[1].end_time.toLong()* 1000 - System.currentTimeMillis()))
holder.getView<View>(R.id.user_nav1).setOnClickListener { holder.getView<View>(R.id.user_nav1).setOnClickListener {
if (relation1.user_id1== SpUtil.getUserId()){ if (relation1.user_id1== userId.toInt()){
// 点击第一个用户头像 // 点击第一个用户头像
onItemClickListener?.onUserClick(relation1.user_id2.toString()) onItemClickListener?.onUserClick(relation1.user_id2.toString())
}else { }else {
@@ -225,7 +246,7 @@ class BosomFriendAdapter(data: MutableList<MultiItemEntity>) : BaseMultiItemQuic
} }
holder.getView<View>(R.id.user_nav2).setOnClickListener { holder.getView<View>(R.id.user_nav2).setOnClickListener {
if (relation2.user_id1== SpUtil.getUserId()) { if (relation2.user_id1== userId.toInt()) {
// 点击第二个用户头像 // 点击第二个用户头像
onItemClickListener?.onUserClick(relation2.user_id2.toString()) onItemClickListener?.onUserClick(relation2.user_id2.toString())
}else{ }else{
@@ -251,7 +272,7 @@ class BosomFriendAdapter(data: MutableList<MultiItemEntity>) : BaseMultiItemQuic
meHeadView2=holder.getView(R.id.user_nav2) meHeadView2=holder.getView(R.id.user_nav2)
meHeadView3=holder.getView(R.id.user_nav3) meHeadView3=holder.getView(R.id.user_nav3)
if (relation1.user_id1== SpUtil.getUserId()){ if (relation1.user_id1== userId.toInt()){
meHeadView.setSex(relation1.sex2,relation1.avatar2,relation1.dress2) meHeadView.setSex(relation1.sex2,relation1.avatar2,relation1.dress2)
holder.setText(R.id.tv_nickname1, relation1.nickname2) holder.setText(R.id.tv_nickname1, relation1.nickname2)
}else{ }else{
@@ -259,7 +280,7 @@ class BosomFriendAdapter(data: MutableList<MultiItemEntity>) : BaseMultiItemQuic
holder.setText(R.id.tv_nickname1, relation1.nickname1) holder.setText(R.id.tv_nickname1, relation1.nickname1)
} }
if (relation2.user_id1== SpUtil.getUserId()){ if (relation2.user_id1== userId.toInt()){
meHeadView2.setSex(relation2.sex2,relation2.avatar2,relation2.dress2) meHeadView2.setSex(relation2.sex2,relation2.avatar2,relation2.dress2)
holder.setText(R.id.tv_nickname2, relation2.nickname2) holder.setText(R.id.tv_nickname2, relation2.nickname2)
}else{ }else{
@@ -267,7 +288,7 @@ class BosomFriendAdapter(data: MutableList<MultiItemEntity>) : BaseMultiItemQuic
holder.setText(R.id.tv_nickname2, relation2.nickname1) holder.setText(R.id.tv_nickname2, relation2.nickname1)
} }
if (relation3.user_id1== SpUtil.getUserId()){ if (relation3.user_id1==userId.toInt()){
meHeadView3.setSex(relation3.sex2,relation3.avatar2,relation3.dress2) meHeadView3.setSex(relation3.sex2,relation3.avatar2,relation3.dress2)
holder.setText(R.id.tv_nickname3, relation3.nickname2) holder.setText(R.id.tv_nickname3, relation3.nickname2)
}else{ }else{
@@ -292,7 +313,7 @@ class BosomFriendAdapter(data: MutableList<MultiItemEntity>) : BaseMultiItemQuic
holder.setText(R.id.tv_gx_time3, TimeUtils.formatDurationDaysOnly(noCpBean.relation_list[2].end_time.toLong()* 1000 - System.currentTimeMillis())) holder.setText(R.id.tv_gx_time3, TimeUtils.formatDurationDaysOnly(noCpBean.relation_list[2].end_time.toLong()* 1000 - System.currentTimeMillis()))
holder.getView<View>(R.id.user_nav1).setOnClickListener { holder.getView<View>(R.id.user_nav1).setOnClickListener {
if (relation1.user_id1== SpUtil.getUserId()){ if (relation1.user_id1== userId.toInt()){
// 点击第一个用户头像 // 点击第一个用户头像
onItemClickListener?.onUserClick(relation1.user_id2.toString()) onItemClickListener?.onUserClick(relation1.user_id2.toString())
}else { }else {
@@ -302,7 +323,7 @@ class BosomFriendAdapter(data: MutableList<MultiItemEntity>) : BaseMultiItemQuic
} }
holder.getView<View>(R.id.user_nav2).setOnClickListener { holder.getView<View>(R.id.user_nav2).setOnClickListener {
if (relation2.user_id1== SpUtil.getUserId()) { if (relation2.user_id1== userId.toInt()) {
// 点击第二个用户头像 // 点击第二个用户头像
onItemClickListener?.onUserClick(relation2.user_id2.toString()) onItemClickListener?.onUserClick(relation2.user_id2.toString())
}else{ }else{
@@ -310,7 +331,7 @@ class BosomFriendAdapter(data: MutableList<MultiItemEntity>) : BaseMultiItemQuic
} }
} }
holder.getView<View>(R.id.user_nav3).setOnClickListener { holder.getView<View>(R.id.user_nav3).setOnClickListener {
if (relation3.user_id1== SpUtil.getUserId()) { if (relation3.user_id1==userId.toInt()) {
// 点击第三个用户头像 // 点击第三个用户头像
onItemClickListener?.onUserClick(relation3.user_id2.toString()) onItemClickListener?.onUserClick(relation3.user_id2.toString())
}else{ }else{

View File

@@ -227,7 +227,7 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
tvName.setEndColor(Color.parseColor(emMessage.getText().getFromUserInfo().getNickname_color())); tvName.setEndColor(Color.parseColor(emMessage.getText().getFromUserInfo().getNickname_color()));
tvName.setShine(true); tvName.setShine(true);
tvName.setShineType(0); tvName.setShineType(0);
}else { } else {
tvName.setStartColor(Color.parseColor("#FFFFFFFF")); tvName.setStartColor(Color.parseColor("#FFFFFFFF"));
tvName.setShineColor(Color.parseColor("#FFFFFFFF")); tvName.setShineColor(Color.parseColor("#FFFFFFFF"));
tvName.setEndColor(Color.parseColor("#FFFFFFFF")); tvName.setEndColor(Color.parseColor("#FFFFFFFF"));
@@ -245,7 +245,7 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
LinearLayout ll_images = helper.getView(com.xscm.moduleutil.R.id.line); LinearLayout ll_images = helper.getView(com.xscm.moduleutil.R.id.line);
ll_images.removeAllViews(); ll_images.removeAllViews();
for (String url : images) { for (String url : images) {
if (url.contains("http")) { if (url != null && url.contains("http")) {
ImageView imageView = new ImageView(helper.itemView.getContext()); ImageView imageView = new ImageView(helper.itemView.getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57), helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
@@ -264,7 +264,7 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
String bubbleId = emMessage.getRoomId() + "_" + helper.getLayoutPosition() + "_bubble"; String bubbleId = emMessage.getRoomId() + "_" + helper.getLayoutPosition() + "_bubble";
View bubbleView = helper.getView(com.xscm.moduleutil.R.id.bubble); View bubbleView = helper.getView(com.xscm.moduleutil.R.id.bubble);
bubbleView.setTag(bubbleId); bubbleView.setTag(bubbleId);
if (emMessage.getText().getFromUserInfo().getChat_bubble() != null && !emMessage.getText().getFromUserInfo().getChat_bubble().isEmpty()) { if (emMessage.getText().getFromUserInfo().getChat_bubble() != null && !emMessage.getText().getFromUserInfo().getChat_bubble().isEmpty()) {
// 使用 Glide 加载图片并设置名称 // 使用 Glide 加载图片并设置名称
String imageUrl = emMessage.getText().getFromUserInfo().getChat_bubble(); String imageUrl = emMessage.getText().getFromUserInfo().getChat_bubble();

View File

@@ -51,10 +51,10 @@ public class ExpandColumnAdapter extends BaseQuickAdapter<ExpandColumnBean, Base
@Override @Override
protected void convert(BaseViewHolder helper, ExpandColumnBean item) { protected void convert(BaseViewHolder helper, ExpandColumnBean item) {
helper.addOnClickListener(R.id.dy_head_image); helper.addOnClickListener(R.id.dy_head_image);
ImageView iv_sex=helper.getView(R.id.iv_user_sex); ImageView iv_sex = helper.getView(R.id.iv_user_sex);
//先让单图,多图,音频的布局显示 //先让单图,多图,音频的布局显示
helper.getView(R.id.dy_image_recyc).setVisibility(View.VISIBLE); helper.getView(R.id.dy_image_recyc).setVisibility(View.VISIBLE);
helper.setText(R.id.tv_agree,TimeUtils.getAgeByBirthDay(item.getBirthday())+""); helper.setText(R.id.tv_agree, TimeUtils.getAgeByBirthDay(item.getBirthday()) + "");
//昵称 //昵称
helper.setText(com.xscm.moduleutil.R.id.dy_name_text, item.getNickname()); helper.setText(com.xscm.moduleutil.R.id.dy_name_text, item.getNickname());
ShineTextView tvName = helper.getView(com.xscm.moduleutil.R.id.dy_name_text); ShineTextView tvName = helper.getView(com.xscm.moduleutil.R.id.dy_name_text);
@@ -64,7 +64,7 @@ public class ExpandColumnAdapter extends BaseQuickAdapter<ExpandColumnBean, Base
tvName.setEndColor(Color.parseColor(item.getNickname_color())); tvName.setEndColor(Color.parseColor(item.getNickname_color()));
tvName.setShine(true); tvName.setShine(true);
tvName.setShineType(0); tvName.setShineType(0);
}else { } else {
tvName.setStartColor(Color.BLACK); tvName.setStartColor(Color.BLACK);
tvName.setShineColor(Color.BLACK); tvName.setShineColor(Color.BLACK);
tvName.setEndColor(Color.BLACK); tvName.setEndColor(Color.BLACK);
@@ -73,9 +73,9 @@ public class ExpandColumnAdapter extends BaseQuickAdapter<ExpandColumnBean, Base
} }
// helper.setTextColor(R.id.dy_name_text,(item.getNickname_color()!=null && !item.getNickname_color().isEmpty())? Color.parseColor(item.getNickname_color()):Color.parseColor("#333333")); // helper.setTextColor(R.id.dy_name_text,(item.getNickname_color()!=null && !item.getNickname_color().isEmpty())? Color.parseColor(item.getNickname_color()):Color.parseColor("#333333"));
helper.setText(R.id.tv_address, item.getLoginip()); helper.setText(R.id.tv_address, item.getLoginip());
if (item.getUser_id().equals(SpUtil.getUserId()+"")){ if (item.getUser_id().equals(SpUtil.getUserId() + "")) {
helper.setVisible(R.id.gensui, false); helper.setVisible(R.id.gensui, false);
}else { } else {
helper.setVisible(R.id.gensui, true); helper.setVisible(R.id.gensui, true);
} }
@@ -119,7 +119,7 @@ public class ExpandColumnAdapter extends BaseQuickAdapter<ExpandColumnBean, Base
recyclerView.setOnItemClickListener((parent, view, position, id) -> { recyclerView.setOnItemClickListener((parent, view, position, id) -> {
FullScreenUtil.showFullScreenDialog(mContext, position, oneImageYuanJiaoAdapter.getList_adapter()); FullScreenUtil.showFullScreenDialog(mContext, position, oneImageYuanJiaoAdapter.getList_adapter());
}); });
}else { } else {
helper.getView(R.id.dy_image_recyc).setVisibility(View.GONE); helper.getView(R.id.dy_image_recyc).setVisibility(View.GONE);
} }
@@ -129,7 +129,7 @@ public class ExpandColumnAdapter extends BaseQuickAdapter<ExpandColumnBean, Base
List<String> images = item.getIcon(); // 获取图片列表 List<String> images = item.getIcon(); // 获取图片列表
for (String url : images) { for (String url : images) {
if (url.contains("http")) { if (url != null && url.contains("http")) {
ImageView imageView = new ImageView(mContext); ImageView imageView = new ImageView(mContext);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(

View File

@@ -224,12 +224,10 @@ public class PlaceholderFragment extends BaseMvpFragment<PlaceholderPresenter,
ImageUtils.loadHeadCC(item.getUser_avatar(), helper.getView(R.id.iv_three_cp1_head)); ImageUtils.loadHeadCC(item.getUser_avatar(), helper.getView(R.id.iv_three_cp1_head));
ImageUtils.loadHeadCC(item.getUser_avatar1(), helper.getView(R.id.iv_three_cp2_head)); ImageUtils.loadHeadCC(item.getUser_avatar1(), helper.getView(R.id.iv_three_cp2_head));
// helper.setText(R.id.tv_charm, item.getNumber());
helper.setText(R.id.tv_name, item.getNickname()); helper.setText(R.id.tv_name, item.getNickname());
helper.setVisible( R.id.tv_cp_name,true).setText(R.id.tv_cp_name, item.getNickname1()); helper.setVisible( R.id.tv_cp_name,true).setText(R.id.tv_cp_name, item.getNickname1());
helper.setText(R.id.tv_no, String.valueOf(item.getRank())); helper.setText(R.id.tv_no, String.valueOf(item.getRank()));
// ((BeautifulNameView) helper.getView(R.id.bnv_rank_list)).setTextColor(!TextUtils.isEmpty(item.getId_color()) ? Color.parseColor(item.getId_color()) : getResources().getColor(R.color.color_FF333333)); helper.setText(R.id.tv_charm, "Lv "+item.getTotal());
// ((BeautifulNameView) helper.getView(R.id.bnv_rank_list)).setText(item.getNickname2());
} else if (index == 1 || index == 2) { } else if (index == 1 || index == 2) {
rl.setVisibility(View.GONE); rl.setVisibility(View.GONE);
helper.getView(R.id.riv_avatar).setVisibility(View.VISIBLE); helper.getView(R.id.riv_avatar).setVisibility(View.VISIBLE);
@@ -534,8 +532,8 @@ public class PlaceholderFragment extends BaseMvpFragment<PlaceholderPresenter,
// ImageView imVip3 = mBinding.includeTopBar.ivVip3; // ImageView imVip3 = mBinding.includeTopBar.ivVip3;
// ImageView imLevel3 = mBinding.includeTopBar.ivLevel3; // ImageView imLevel3 = mBinding.includeTopBar.ivLevel3;
TextView tvId3 = mBinding.includeTopBar.tvId3; TextView tvId3 = mBinding.includeTopBar.tvId3;
GifAvatarOvalView ivOneCp1Hhead = mBinding.includeTopBar.ivSecondCp1Head; GifAvatarOvalView ivOneCp1Hhead = mBinding.includeTopBar.ivThreeCp1Head;
GifAvatarOvalView ivOneCp2Hhead = mBinding.includeTopBar.ivSecondCp2Head; GifAvatarOvalView ivOneCp2Hhead = mBinding.includeTopBar.ivThreeCp2Head;
TextView tv_cp_xing1=mBinding.includeTopBar.tvCpXing3; TextView tv_cp_xing1=mBinding.includeTopBar.tvCpXing3;
TextView tv_cp_name1=mBinding.includeTopBar.tvCpName3; TextView tv_cp_name1=mBinding.includeTopBar.tvCpName3;
TextView tv_cp_name2=mBinding.includeTopBar.tvCpName32; TextView tv_cp_name2=mBinding.includeTopBar.tvCpName32;

View File

@@ -44,7 +44,7 @@ public class RoomDetailsAdapter extends BaseMultiItemQuickAdapter<BaseMultiItemE
TextView tv2 = helper.getView(R.id.tv_2); TextView tv2 = helper.getView(R.id.tv_2);
TextView tv3 = helper.getView(R.id.tv_3); TextView tv3 = helper.getView(R.id.tv_3);
TextView tv_go_to_room = helper.getView(R.id.tv_go_to_room); TextView tv_go_to_room = helper.getView(R.id.tv_go_to_room);
ImageUtils.loadImageView(item1.getSender_avatar(), avatarView); ImageUtils.loadCenterCrop(item1.getSender_avatar(), avatarView);
tvName.setText(item1.getSender_nickname()); tvName.setText(item1.getSender_nickname());
tv2.setText(item1.getReceive_nickname()); tv2.setText(item1.getReceive_nickname());
tv3.setText(item1.getGift_name() + "x" + item1.getNumber()); tv3.setText(item1.getGift_name() + "x" + item1.getNumber());

View File

@@ -102,9 +102,9 @@ public class RoomOnlineAdapter extends BaseMultiItemQuickAdapter<RoomOnlineBean,
// }else if (item.getType() == 1 && item.getType_pit() == 0){ // }else if (item.getType() == 1 && item.getType_pit() == 0){
// textView.setVisibility(GONE); // textView.setVisibility(GONE);
// } // }
if(item.getType() == 1) { if (item.getType() == 1) {
textView.setText(item.getPit_number() != 0 ? (item.getPit_number() == 9 ? "主持" : (item.getPit_number() == 10 ? "嘉宾" : item.getPit_number() + "号麦")) : ""); textView.setText(item.getPit_number() != 0 ? (item.getPit_number() == 9 ? "主持" : (item.getPit_number() == 10 ? "嘉宾" : item.getPit_number() + "号麦")) : "");
}else { } else {
textView.setText("抱麦"); textView.setText("抱麦");
} }
@@ -116,7 +116,7 @@ public class RoomOnlineAdapter extends BaseMultiItemQuickAdapter<RoomOnlineBean,
List<String> images = item.getIcon(); // 获取图片列表 List<String> images = item.getIcon(); // 获取图片列表
for (String url : images) { for (String url : images) {
if (url.contains("http")) { if (url != null && url.contains("http")) {
ImageView imageView1 = new ImageView(helper.itemView.getContext()); ImageView imageView1 = new ImageView(helper.itemView.getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT,
@@ -128,7 +128,7 @@ public class RoomOnlineAdapter extends BaseMultiItemQuickAdapter<RoomOnlineBean,
imageView1.setScaleType(ImageView.ScaleType.FIT_START); imageView1.setScaleType(ImageView.ScaleType.FIT_START);
// 使用 Glide 加载图片 // 使用 Glide 加载图片
ImageUtils.loadHeadCC(url, imageView1,params); ImageUtils.loadHeadCC(url, imageView1, params);
llContainer.addView(imageView1); llContainer.addView(imageView1);
} }
} }

View File

@@ -46,7 +46,7 @@ public class RoomSettingAdapter extends BaseMultiItemQuickAdapter<RoomSettingBea
boolean b = isSelected; boolean b = isSelected;
switch (type) { switch (type) {
case RoomSettingBean.QXRoomSettingTypeRoomTypeSing: case RoomSettingBean.QXRoomSettingTypeRoomTypeSing:
return com.xscm.moduleutil.R.mipmap.ic_sing; return com.xscm.moduleutil.R.mipmap.ic_jiaoy;
case RoomSettingBean.QXRoomSettingTypeRoomTypeAuction: case RoomSettingBean.QXRoomSettingTypeRoomTypeAuction:
return com.xscm.moduleutil.R.mipmap.ic_auction; return com.xscm.moduleutil.R.mipmap.ic_auction;
case RoomSettingBean.QXRoomSettingTypeRoomTypeBoy: case RoomSettingBean.QXRoomSettingTypeRoomTypeBoy:
@@ -54,7 +54,7 @@ public class RoomSettingAdapter extends BaseMultiItemQuickAdapter<RoomSettingBea
case RoomSettingBean.QXRoomSettingTypeRoomTypeGirl: case RoomSettingBean.QXRoomSettingTypeRoomTypeGirl:
return com.xscm.moduleutil.R.mipmap.ic_girl; return com.xscm.moduleutil.R.mipmap.ic_girl;
case RoomSettingBean.QXRoomSettingTypeRoomTypeJiaoy: case RoomSettingBean.QXRoomSettingTypeRoomTypeJiaoy:
return com.xscm.moduleutil.R.mipmap.ic_jiaoy; return com.xscm.moduleutil.R.mipmap.ic_sing;
case RoomSettingBean.QXRoomSettingTypeRoomTypeHUYU: case RoomSettingBean.QXRoomSettingTypeRoomTypeHUYU:
return com.xscm.moduleutil.R.mipmap.huyu; return com.xscm.moduleutil.R.mipmap.huyu;
case RoomSettingBean.QXRoomSettingTypeRoomTypeLianG: case RoomSettingBean.QXRoomSettingTypeRoomTypeLianG:

View File

@@ -38,7 +38,7 @@ public class SearchUserResultAdapter extends BaseQuickAdapter<UserResultResp, Ba
helper.setText(R.id.dy_name_text, KeyWordUtil.matcherSearchTitle(Color.parseColor("#FFBC00"), item.getNickname(), keyWord)); helper.setText(R.id.dy_name_text, KeyWordUtil.matcherSearchTitle(Color.parseColor("#FFBC00"), item.getNickname(), keyWord));
helper.setText(R.id.tv_id, "ID:" + item.getUser_code()); helper.setText(R.id.tv_id, "ID:" + item.getUser_code());
MeHeadView headView = helper.getView(R.id.dy_head_image); MeHeadView headView = helper.getView(R.id.dy_head_image);
headView.setData(item.getHead_picture(), "", ""); headView.setSex(item.getSex(),item.getAvatar(), "");
// if (item.getUser_id().equals(SpUtil.getUserId() + "")) { // if (item.getUser_id().equals(SpUtil.getUserId() + "")) {
// helper.setVisible(R.id.gensui, false); // helper.setVisible(R.id.gensui, false);
// } else { // } else {

View File

@@ -1,6 +1,8 @@
package com.xscm.modulemain.adapter; package com.xscm.modulemain.adapter;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.content.res.ColorStateList;
import android.graphics.Color;
import android.text.Spannable; import android.text.Spannable;
import android.text.SpannableString; import android.text.SpannableString;
import android.text.style.ForegroundColorSpan; import android.text.style.ForegroundColorSpan;
@@ -39,13 +41,15 @@ public class TaskBoxAdapter extends BaseQuickAdapter<GiftBoxBean.GiftBean, BaseV
giftName.setText(item.getName()); giftName.setText(item.getName());
giftTitle.setText(item.getTitle()); giftTitle.setText(item.getTitle());
if (position == 0) { if (position == 0) {
itemView.setBackgroundColor(mContext.getResources().getColor(com.xscm.moduleutil.R.color.color_FCE4ED)); // 红色 itemView.setBackgroundResource(R.drawable.shape_8);
itemView.setBackgroundTintList(ColorStateList.valueOf(Color.parseColor("#FFFCE4ED")));
giftName.setTextColor(mContext.getResources().getColor(com.xscm.moduleutil.R.color.color_E24171)); giftName.setTextColor(mContext.getResources().getColor(com.xscm.moduleutil.R.color.color_E24171));
setSpannableText(giftTitle, "最高可获得%d金币", Integer.parseInt(item.getHighest_gain()),com.xscm.moduleutil.R.color.color_E24171); setSpannableText(giftTitle, "最高可获得%d金币", Integer.parseInt(item.getHighest_gain()),com.xscm.moduleutil.R.color.color_E24171);
ImageUtils.loadSetErrorImg(item.getIcon(), helper.getView(R.id.task_box), com.xscm.moduleutil.R.mipmap.task_cj); ImageUtils.loadSetErrorImg(item.getIcon(), helper.getView(R.id.task_box), com.xscm.moduleutil.R.mipmap.task_cj);
} else if (position == 1) { } else if (position == 1) {
itemView.setBackgroundResource(R.drawable.shape_8);
itemView.setBackgroundTintList(ColorStateList.valueOf(Color.parseColor("#FFFDE8AE")));
ImageUtils.loadSetErrorImg(item.getIcon(), helper.getView(R.id.task_box), com.xscm.moduleutil.R.mipmap.task_gj); ImageUtils.loadSetErrorImg(item.getIcon(), helper.getView(R.id.task_box), com.xscm.moduleutil.R.mipmap.task_gj);
itemView.setBackgroundColor(mContext.getResources().getColor(com.xscm.moduleutil.R.color.color_FDE8AE)); // 黄色
giftName.setTextColor(mContext.getResources().getColor(com.xscm.moduleutil.R.color.color_F35F07)); giftName.setTextColor(mContext.getResources().getColor(com.xscm.moduleutil.R.color.color_F35F07));
setSpannableText(giftTitle, "最高可获得%d金币", Integer.parseInt(item.getHighest_gain()),com.xscm.moduleutil.R.color.color_F35F07); setSpannableText(giftTitle, "最高可获得%d金币", Integer.parseInt(item.getHighest_gain()),com.xscm.moduleutil.R.color.color_F35F07);
@@ -73,11 +77,10 @@ public class TaskBoxAdapter extends BaseQuickAdapter<GiftBoxBean.GiftBean, BaseV
helper.setText(R.id.iv_unlock, item.getStatus_str()); helper.setText(R.id.iv_unlock, item.getStatus_str());
View unlockView = helper.getView(R.id.iv_unlock); View unlockView = helper.getView(R.id.iv_unlock);
if (item.getStatus().equals("0")){ if (item.getStatus().equals("0")){
// helper.setImageDrawable(R.id.iv_unlock, mContext.getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.not_unlocked));
unlockView.setClickable(false); unlockView.setClickable(false);
unlockView.setEnabled(false); unlockView.setEnabled(false);
// 可选:改变颜色或透明度来视觉反馈 // 可选:改变颜色或透明度来视觉反馈
unlockView.setAlpha(0.9f); // 半透明表示不可点击 unlockView.setAlpha(0.2f); // 半透明表示不可点击
}else if (item.getStatus().equals("1")){ }else if (item.getStatus().equals("1")){
unlockView.setClickable(true); unlockView.setClickable(true);
unlockView.setEnabled(true); unlockView.setEnabled(true);
@@ -85,18 +88,10 @@ public class TaskBoxAdapter extends BaseQuickAdapter<GiftBoxBean.GiftBean, BaseV
}else if (item.getStatus().equals("2")){ }else if (item.getStatus().equals("2")){
unlockView.setClickable(false); unlockView.setClickable(false);
unlockView.setEnabled(false); unlockView.setEnabled(false);
} unlockView.setAlpha(1.0f); // 恢复正常显示
else {
// helper.setImageDrawable(R.id.iv_unlock, mContext.getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.unlocked));
unlockView.setClickable(false);
unlockView.setEnabled(false);
// 可选:改变颜色或透明度来视觉反馈
unlockView.setAlpha(0.8f); // 半透明表示不可点击
} }
helper.getView(R.id.iv_unlock).setOnClickListener(new View.OnClickListener() { helper.getView(R.id.iv_unlock).setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (onItemClickListener != null) { if (onItemClickListener != null) {

View File

@@ -33,7 +33,7 @@ public class TaskDataAdapter extends BaseQuickAdapter<GiftBoxBean.TaskDataBean.D
TextView textView1= helper.getView(R.id.task_jb); TextView textView1= helper.getView(R.id.task_jb);
if (item.getTask_status()==1){ if (item.getTask_status()==1){
textView.setText("未完成"); textView.setText(item.getTask_type_str());
}else if (item.getTask_status()==2){ }else if (item.getTask_status()==2){
textView.setText(""); textView.setText("");
textView.setBackgroundResource(com.xscm.moduleutil.R.mipmap.task_lq); textView.setBackgroundResource(com.xscm.moduleutil.R.mipmap.task_lq);
@@ -52,17 +52,12 @@ public class TaskDataAdapter extends BaseQuickAdapter<GiftBoxBean.TaskDataBean.D
// textView.setBackgroundResource(com.xscm.moduleutil.R.mipmap.task_ylq); // textView.setBackgroundResource(com.xscm.moduleutil.R.mipmap.task_ylq);
// } // }
if (item.getReward_type()==1){
textView1.setText("金币");
}else if (item.getReward_type()==2){
textView1.setText("钻石");
}
ImageUtils.loadHeadCC(item.getIcon(), helper.getView(R.id.task_pic));
helper.setText(R.id.task_name, item.getTask_name()) ImageUtils.loadCenterCrop(item.getIcon(), helper.getView(R.id.task_pic));
.setText(R.id.task_jb_number, "+"+item.getGold_reward()); helper.setText(R.id.task_name, item.getTask_name());
helper.setText(R.id.task_jb_number, item.getReward_str());
helper.getView(R.id.task_type).setOnClickListener(new View.OnClickListener() { helper.getView(R.id.task_type).setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
if (mItemClickLitener!= null){ if (mItemClickLitener!= null){

View File

@@ -17,14 +17,15 @@ import java.util.List;
public class TaskSectionAdapter extends RecyclerView.Adapter<TaskSectionAdapter.SectionViewHolder> { public class TaskSectionAdapter extends RecyclerView.Adapter<TaskSectionAdapter.SectionViewHolder> {
private List<TaskItem> sections; private List<GiftBoxBean.TaskDataBean> sections;
public TaskSectionAdapter(List<TaskItem> sections) { public TaskSectionAdapter(List<GiftBoxBean.TaskDataBean> sections) {
this.sections = sections; this.sections = sections;
} }
// 定义点击事件接口 // 定义点击事件接口
public interface OnItemClickListener { public interface OnItemClickListener {
void onItemClick(TaskItem taskItem, GiftBoxBean.TaskDataBean.DailyTasksBean item); void onItemClick(GiftBoxBean.TaskDataBean taskItem, GiftBoxBean.TaskDataBean.DailyTasksBean item);
} }
private OnItemClickListener listener; private OnItemClickListener listener;
@@ -32,6 +33,7 @@ public class TaskSectionAdapter extends RecyclerView.Adapter<TaskSectionAdapter.
public void setOnItemClickListener(OnItemClickListener listener) { public void setOnItemClickListener(OnItemClickListener listener) {
this.listener = listener; this.listener = listener;
} }
@NonNull @NonNull
@Override @Override
public SectionViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { public SectionViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
@@ -41,25 +43,18 @@ public class TaskSectionAdapter extends RecyclerView.Adapter<TaskSectionAdapter.
@Override @Override
public void onBindViewHolder(@NonNull SectionViewHolder holder, int position) { public void onBindViewHolder(@NonNull SectionViewHolder holder, int position) {
TaskItem section = sections.get(position); GiftBoxBean.TaskDataBean section = sections.get(position);
holder.title.setText(section.title);
holder.title.setText(section.getTask_type_name());
TaskDataAdapter adapter = new TaskDataAdapter(); TaskDataAdapter adapter = new TaskDataAdapter();
holder.recyclerView.setLayoutManager(new LinearLayoutManager(holder.itemView.getContext())); holder.recyclerView.setLayoutManager(new LinearLayoutManager(holder.itemView.getContext()));
holder.recyclerView.setAdapter(adapter); holder.recyclerView.setAdapter(adapter);
adapter.setNewData(section.tasks); adapter.setNewData(section.getTask_list());
// if (position==2){
// holder.view.setVisibility(View.VISIBLE);
// }else {
// holder.view.setVisibility(View.GONE);
// }
adapter.setItemClickLitener(new TaskDataAdapter.ItemClickLitener() { adapter.setItemClickLitener((view, position1, item) -> {
@Override if (listener != null) {
public void onItemClick(View view, int position, GiftBoxBean.TaskDataBean.DailyTasksBean item) { listener.onItemClick(section, item);
if (listener!= null) {
listener.onItemClick(section,item);
}
} }
}); });
} }

View File

@@ -1,5 +1,6 @@
package com.xscm.modulemain.dialog package com.xscm.modulemain.dialog
import android.app.Activity
import android.content.Context import android.content.Context
import android.os.CountDownTimer import android.os.CountDownTimer
import android.view.Gravity import android.view.Gravity
@@ -72,6 +73,7 @@ class InviteDialog(context: Context, data: IndexRecommendRoom?) :
} }
fun setData(data: IndexRecommendRoom?) { fun setData(data: IndexRecommendRoom?) {
this.data = data this.data = data
// 设置房间数据 // 设置房间数据
data?.let { roomData -> data?.let { roomData ->
@@ -85,6 +87,12 @@ class InviteDialog(context: Context, data: IndexRecommendRoom?) :
// 仍然启动倒计时,让用户可以关闭对话框 // 仍然启动倒计时,让用户可以关闭对话框
startCountDown() startCountDown()
} }
if (isShowing){
return
}
super.show()
} }
/** /**
@@ -95,11 +103,11 @@ class InviteDialog(context: Context, data: IndexRecommendRoom?) :
countDownTimer = object : CountDownTimer(9 * 1000L, 1000) { countDownTimer = object : CountDownTimer(9 * 1000L, 1000) {
override fun onTick(millisUntilFinished: Long) { override fun onTick(millisUntilFinished: Long) {
val secondsLeft = (millisUntilFinished / 1000).toInt() val secondsLeft = (millisUntilFinished / 1000).toInt()
mBinding.btnNegative.setText("" + " (" + secondsLeft + "s)") mBinding.btnNegative.setText("" + " (" + secondsLeft + "s)")
} }
override fun onFinish() { override fun onFinish() {
// 检查是否被主动取消 // 检查是否被主动取消,安全地关闭对话框
dismiss() dismiss()
} }
}.start() }.start()
@@ -118,6 +126,4 @@ class InviteDialog(context: Context, data: IndexRecommendRoom?) :
} }
super.dismiss() super.dismiss()
} }
} }

View File

@@ -622,7 +622,7 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
// return; // return;
// } // }
// } else { // } else {
if (roonGiftModel == null|| roonGiftModel.getGift_id() == null) { if (roonGiftModel == null|| roonGiftModel.getGift_id() == null || !roonGiftModel.isChecked() ) {
ToastUtils.show("请选择礼物"); ToastUtils.show("请选择礼物");
return; return;
} }

View File

@@ -33,13 +33,14 @@ import com.xscm.moduleutil.utils.ImageUtils;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
import java.util.List; import java.util.List;
/** /**
*@author qx * @author qx
*@data 2025/6/21 * @data 2025/6/21
*@description: 设置主持人 * @description: 设置主持人
*/ */
public class RoomHostAddFragment extends BaseMvpDialogFragment<RoomHostPresenter, RoomHostAddFragmentBinding> implements RoomHostContacts.View { public class RoomHostAddFragment extends BaseMvpDialogFragment<RoomHostPresenter, RoomHostAddFragmentBinding> implements RoomHostContacts.View {
private String mRoomId ; private String mRoomId;
private BaseQuickAdapter<RoomSearchResp, BaseViewHolder> mAdapter; private BaseQuickAdapter<RoomSearchResp, BaseViewHolder> mAdapter;
// TODO: Customize parameter initialization // TODO: Customize parameter initialization
@@ -51,11 +52,13 @@ public class RoomHostAddFragment extends BaseMvpDialogFragment<RoomHostPresenter
fragment.setArguments(args); fragment.setArguments(args);
return fragment; return fragment;
} }
@Override @Override
public void initArgs(Bundle arguments) { public void initArgs(Bundle arguments) {
super.initArgs(arguments); super.initArgs(arguments);
mRoomId = arguments.getString("roomId"); mRoomId = arguments.getString("roomId");
} }
// TODO: 2025/3/7 固定dialog显示的位置和大小 // TODO: 2025/3/7 固定dialog显示的位置和大小
@Override @Override
protected void initDialogStyle(Window window) { protected void initDialogStyle(Window window) {
@@ -101,7 +104,7 @@ public class RoomHostAddFragment extends BaseMvpDialogFragment<RoomHostPresenter
public void run() { public void run() {
String keyWord = editable.toString(); String keyWord = editable.toString();
if (!StringUtils.isEmpty(keyWord)) { if (!StringUtils.isEmpty(keyWord)) {
MvpPre.setUserHostList(keyWord,"1"); MvpPre.setUserHostList(keyWord, "1");
} }
} }
}, DELAY); }, DELAY);
@@ -116,7 +119,7 @@ public class RoomHostAddFragment extends BaseMvpDialogFragment<RoomHostPresenter
@Override @Override
protected void convert(BaseViewHolder helper, RoomSearchResp item) { protected void convert(BaseViewHolder helper, RoomSearchResp item) {
helper.setText(R.id.tv_name, item.getName()); helper.setText(R.id.tv_name, item.getName());
ImageUtils.loadHeadCC(item.getPicture(), helper.getView(R.id.image)); ImageUtils.loadHeadCC(item.getPicture(), helper.getView(R.id.image));
helper.setText(R.id.tv_id, item.getCode()); helper.setText(R.id.tv_id, item.getCode());
// if (item.getSex().equals("1")){ // if (item.getSex().equals("1")){
// helper.setBackgroundRes(R.id.tv_gender, com.qxcm.moduleutil.R.mipmap.boyb); // helper.setBackgroundRes(R.id.tv_gender, com.qxcm.moduleutil.R.mipmap.boyb);
@@ -127,9 +130,9 @@ public class RoomHostAddFragment extends BaseMvpDialogFragment<RoomHostPresenter
// ImageUtils.loadImageView(item.getLevel_icon(), helper.getView(R.id.iv_rd)); // ImageUtils.loadImageView(item.getLevel_icon(), helper.getView(R.id.iv_rd));
LinearLayout llContainer = helper.getView(R.id.ll); LinearLayout llContainer = helper.getView(R.id.ll);
llContainer.removeAllViews(); // 清空旧的 ImageView llContainer.removeAllViews(); // 清空旧的 ImageView
if (!item.getIcon().isEmpty()||item.getIcon().size()>0){ if (!item.getIcon().isEmpty() || item.getIcon().size() > 0) {
for (String url : item.getIcon()) { for (String url : item.getIcon()) {
if (url.contains("http")) { if (url != null && url.contains("http")) {
ImageView imageView = new ImageView(getContext()); ImageView imageView = new ImageView(getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57), getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
@@ -154,7 +157,6 @@ public class RoomHostAddFragment extends BaseMvpDialogFragment<RoomHostPresenter
layout.setShadowOffsetX(1); layout.setShadowOffsetX(1);
helper.getView(R.id.iv_add).setOnClickListener(new View.OnClickListener() { helper.getView(R.id.iv_add).setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
@@ -185,7 +187,7 @@ public class RoomHostAddFragment extends BaseMvpDialogFragment<RoomHostPresenter
@Override @Override
public void getUserHostList(List<RoomSearchResp> list) { public void getUserHostList(List<RoomSearchResp> list) {
mAdapter.setNewData(list); mAdapter.setNewData(list);
} }
@Override @Override
@@ -232,7 +234,4 @@ public class RoomHostAddFragment extends BaseMvpDialogFragment<RoomHostPresenter
} }
} }

View File

@@ -29,6 +29,7 @@ import com.xscm.moduleutil.bean.room.RoomUserBean;
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 java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -47,18 +48,23 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment<RoomPresente
private RoomUserBean hostUser; private RoomUserBean hostUser;
protected RoomInfoResp roomInfoResp; protected RoomInfoResp roomInfoResp;
private List<RoomOnlineBean> onlineBeanList = new ArrayList<>();
private RoomOnline mOnlineBean;
@Override @Override
protected RoomPresenter bindPresenter() { protected RoomPresenter bindPresenter() {
return new RoomPresenter(this, getActivity()); return new RoomPresenter(this, getActivity());
} }
public static RoomOnlineDialogFragment show(String id, String pit_number, RoomUserBean hostUser, RoomInfoResp roomInfoResp, FragmentManager fragmentManager) { public static RoomOnlineDialogFragment show(String id, String pit_number, RoomOnline mOnlineBean, RoomUserBean hostUser, RoomInfoResp roomInfoResp, FragmentManager fragmentManager) {
RoomOnlineDialogFragment dialogFragment = new RoomOnlineDialogFragment(); RoomOnlineDialogFragment dialogFragment = new RoomOnlineDialogFragment();
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putString("roomId", id); // 可选:传递参数 args.putString("roomId", id); // 可选:传递参数
args.putString("pit_number", pit_number); args.putString("pit_number", pit_number);
args.putSerializable("hostUser", hostUser); // 可选:传递参数 args.putSerializable("hostUser", hostUser); // 可选:传递参数
args.putSerializable("roomInfoResp", roomInfoResp); args.putSerializable("roomInfoResp", roomInfoResp);
args.putSerializable("mOnlineBean", mOnlineBean);
dialogFragment.setArguments(args); dialogFragment.setArguments(args);
dialogFragment.show(fragmentManager, "RoomOnlineDialogFragment"); dialogFragment.show(fragmentManager, "RoomOnlineDialogFragment");
return dialogFragment; return dialogFragment;
@@ -66,7 +72,7 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment<RoomPresente
@Override @Override
protected void initData() { protected void initData() {
MvpPre.getRoomOnline(getArguments().getString("roomId"), "1", "10"); // MvpPre.getRoomOnline(getArguments().getString("roomId"), "1", "10");
} }
@Override @Override
@@ -88,6 +94,7 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment<RoomPresente
super.onAttach(context); super.onAttach(context);
roomId = getArguments().getString("roomId"); roomId = getArguments().getString("roomId");
pit_number = getArguments().getString("pit_number"); pit_number = getArguments().getString("pit_number");
mOnlineBean = (RoomOnline) getArguments().getSerializable("mOnlineBean");
hostUser = (RoomUserBean) getArguments().getSerializable("hostUser"); hostUser = (RoomUserBean) getArguments().getSerializable("hostUser");
roomInfoResp = (RoomInfoResp) getArguments().getSerializable("roomInfoResp"); roomInfoResp = (RoomInfoResp) getArguments().getSerializable("roomInfoResp");
} }
@@ -99,28 +106,30 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment<RoomPresente
@Override @Override
public void onLoadMore(@NonNull RefreshLayout refreshLayout) { public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
// 添加延迟以避免过于频繁的请求 // 添加延迟以避免过于频繁的请求
page++; page++;
if (MvpPre != null && getArguments() != null) { if (MvpPre != null && getArguments() != null) {
MvpPre.getRoomOnline(getArguments().getString("roomId"), page + "", "10"); MvpPre.getRoomOnline(getArguments().getString("roomId"), page + "", "10");
} else { } else {
refreshLayout.finishLoadMore(false); refreshLayout.finishLoadMore(false);
} }
} }
@Override @Override
public void onRefresh(@NonNull RefreshLayout refreshLayout) { public void onRefresh(@NonNull RefreshLayout refreshLayout) {
page = 1; page = 1;
if (MvpPre != null && getArguments() != null) { if (MvpPre != null && getArguments() != null) {
MvpPre.getRoomOnline(getArguments().getString("roomId"), "1", "10"); MvpPre.getRoomOnline(getArguments().getString("roomId"), "1", "10");
} else { } else {
refreshLayout.finishRefresh(false); refreshLayout.finishRefresh(false);
} }
} }
}); });
List<RoomOnlineBean> roomOnlineBeanList = processOnlineData(mOnlineBean);
onlineBeanList.addAll(roomOnlineBeanList);
updateUserCount(mOnlineBean.getCount());
mBinding.rvComment.setLayoutManager(new LinearLayoutManager(getActivity())); mBinding.rvComment.setLayoutManager(new LinearLayoutManager(getActivity()));
roomOnlineAdapter = new RoomOnlineAdapter(new ArrayList<RoomOnlineBean>()); roomOnlineAdapter = new RoomOnlineAdapter(onlineBeanList);
mBinding.rvComment.setAdapter(roomOnlineAdapter); mBinding.rvComment.setAdapter(roomOnlineAdapter);
roomOnlineAdapter.setListener(new RoomOnlineAdapter.OnJoinButtonClickListener() { roomOnlineAdapter.setListener(new RoomOnlineAdapter.OnJoinButtonClickListener() {
@@ -216,41 +225,15 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment<RoomPresente
return; return;
} }
getActivity().runOnUiThread(() -> { List<RoomOnlineBean> roomOnlineBeanList = processOnlineData(onlineBean);
finishRefreshOrLoad(); updateAdapterData(roomOnlineBeanList);
updateUserCount(onlineBean.getCount());
if (onlineBean == null) {
handleEmptyData();
return;
}
List<RoomOnlineBean> roomOnlineBeanList = processOnlineData(onlineBean);
updateAdapterData(roomOnlineBeanList);
updateUserCount(onlineBean.getCount());
});
} }
private boolean isValidContext() { private boolean isValidContext() {
return getActivity() != null && mBinding != null; return getActivity() != null && mBinding != null;
} }
private void finishRefreshOrLoad() {
if (mBinding.srl == null) return;
if (page <= 1) {
mBinding.srl.finishRefresh();
} else {
mBinding.srl.finishLoadMore();
}
}
private void handleEmptyData() {
if (page <= 1) {
roomOnlineAdapter.setNewData(new ArrayList<>());
} else if (mBinding.srl != null) {
mBinding.srl.finishLoadMoreWithNoMoreData();
}
}
private List<RoomOnlineBean> processOnlineData(RoomOnline onlineBean) { private List<RoomOnlineBean> processOnlineData(RoomOnline onlineBean) {
List<RoomOnlineBean> result = new ArrayList<>(); List<RoomOnlineBean> result = new ArrayList<>();
@@ -296,13 +279,11 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment<RoomPresente
} }
private void updateAdapterData(List<RoomOnlineBean> newData) { private void updateAdapterData(List<RoomOnlineBean> newData) {
if (page <= 1) { if (page == 1) {
roomOnlineAdapter.setNewData(newData); onlineBeanList.clear();
} else if (!newData.isEmpty()) {
roomOnlineAdapter.addData(newData);
} else if (mBinding.srl != null) {
mBinding.srl.finishLoadMoreWithNoMoreData();
} }
onlineBeanList.addAll(newData);
roomOnlineAdapter.notifyDataSetChanged();
} }
private void updateUserCount(int count) { private void updateUserCount(int count) {
@@ -315,11 +296,7 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment<RoomPresente
} }
} }
// @Override
// public void getRoomOnline(List<RoomOnlineBean> onlineBean) {
// roomOnlineAdapter.setNewData(onlineBean);
// mBinding.tvNum.setText("在线用户("+onlineBean.size()+")人");
// }
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();

View File

@@ -119,6 +119,7 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
@Override @Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState); super.onViewCreated(view, savedInstanceState);
LogUtils.e("roomId:" + room_id+",userId:"+user_id);
MvpPre.getRoomUserInfo(room_id, user_id); MvpPre.getRoomUserInfo(room_id, user_id);
} }

View File

@@ -0,0 +1,247 @@
package com.xscm.modulemain.dialog
import android.content.Context
import android.view.Gravity
import android.view.View
import android.view.ViewGroup
import com.blankj.utilcode.util.ScreenUtils
import com.xscm.modulemain.R
import com.xscm.modulemain.databinding.DialogSignBinding
import com.xscm.moduleutil.bean.SignInData
import com.xscm.moduleutil.http.BaseObserver
import com.xscm.moduleutil.http.RetrofitClient
import com.xscm.moduleutil.utils.ImageLoader
import com.xscm.moduleutil.widget.dialog.BaseDialog
import io.reactivex.disposables.Disposable
/**
* 项目名称:羽声语音
* 时间2025/12/9 18:21
* 用途:签到
*/
class SignInDialog(context: Context) : BaseDialog<DialogSignBinding>(context) {
var signInDataLists: List<SignInData>? = ArrayList<SignInData>()
private var onCloseCallback: (() -> Unit)? = null
fun setOnCloseListener(callback: () -> Unit) = apply {
onCloseCallback = callback
}
init {
// 设置对话框从底部弹出
window?.setGravity(Gravity.CENTER)
// 设置对话框的宽度为屏幕宽度
// 2025年12月12日15:56:12 实验这里去掉然后给布局中设置paddingHorizontal效果和这里设置固定宽度是一样的
// window?.setLayout(
// (ScreenUtils.getScreenWidth() * 331f / 375).toInt(),
// ViewGroup.LayoutParams.WRAP_CONTENT
// )
// 添加动画效果
window?.setWindowAnimations(com.xscm.moduleutil.R.style.DialogAnimationt)
setCancelable(false)
setCanceledOnTouchOutside(false)
}
override fun getLayoutId(): Int {
return R.layout.dialog_sign
}
override fun initView() {
mBinding.ivClose.setOnClickListener {
onCloseCallback?.invoke()
dismiss()
}
mBinding.btnSign.setOnClickListener {
RetrofitClient.getInstance().dailyTasksSign(object : BaseObserver<String>() {
override fun onSubscribe(d: Disposable) {
}
override fun onNext(t: String) {
var signInSuccessDialog=SignInSuccessDialog(context)
signInSuccessDialog.viewData(signInData)
signInSuccessDialog.setOnCloseListener {
onCloseCallback?.invoke()
}
signInSuccessDialog.show()
dismiss()
}
})
}
}
override fun initData() {
RetrofitClient.getInstance().signIn(object : BaseObserver<List<SignInData>>() {
override fun onSubscribe(d: Disposable) {
}
override fun onNext(t: List<SignInData>) {
if (t.isNotEmpty()) {
signInDataLists = t
for (i in signInDataLists!!) {
setUpView(i)
}
}else{
onCloseCallback?.invoke()
dismiss()
}
}
})
}
var signInData = SignInData()
fun setUpView(signInData: SignInData) {
if (signInData.is_today == 1) {
this.signInData = signInData
if (signInData.sign_in_status == 1) {
mBinding.btnSign.text = "已签到"
mBinding.btnSign.isEnabled = false
mBinding.btnSign.setBackgroundResource(com.xscm.moduleutil.R.drawable.bg_r53_f3f3f3)
}
}
if (signInData.day == 1) {
mBinding.day1.tvDay.text = signInData.day.toString()
mBinding.day1.tvSiginPrice.text = signInData.gift_name + "*" + signInData.num
if (signInData.sign_in_status == 1) {
mBinding.day1.ivCollected.visibility = View.VISIBLE
mBinding.day1.root.setBackgroundResource(com.xscm.moduleutil.R.drawable.bg_sigin_status)
ImageLoader.loadImage(
context,
mBinding.day1.ivSign,
signInData.base_image,
0.4f
)
} else {
mBinding.day1.ivCollected.visibility = View.GONE
com.xscm.moduleutil.utils.ImageUtils.loadHead(
signInData.base_image,
mBinding.day1.ivSign
)
}
} else if (signInData.day == 2) {
mBinding.day2.tvDay.text = signInData.day.toString()
mBinding.day2.tvSiginPrice.text = signInData.gift_name + "*" + signInData.num
if (signInData.sign_in_status == 1) {
mBinding.day2.ivCollected.visibility = View.VISIBLE
mBinding.day2.root.setBackgroundResource(com.xscm.moduleutil.R.drawable.bg_sigin_status)
ImageLoader.loadImage(
context,
mBinding.day2.ivSign,
signInData.base_image,
0.4f
)
} else {
mBinding.day2.ivCollected.visibility = View.GONE
com.xscm.moduleutil.utils.ImageUtils.loadHead(
signInData.base_image,
mBinding.day2.ivSign
)
}
} else if (signInData.day == 3) {
mBinding.day3.tvDay.text = signInData.day.toString()
mBinding.day3.tvSiginPrice.text = signInData.gift_name + "*" + signInData.num
if (signInData.sign_in_status == 1) {
mBinding.day3.ivCollected.visibility = View.VISIBLE
mBinding.day3.root.setBackgroundResource(com.xscm.moduleutil.R.drawable.bg_sigin_status)
ImageLoader.loadImage(
context,
mBinding.day3.ivSign,
signInData.base_image,
0.4f
)
} else {
mBinding.day3.ivCollected.visibility = View.GONE
com.xscm.moduleutil.utils.ImageUtils.loadHead(
signInData.base_image,
mBinding.day3.ivSign
)
}
} else if (signInData.day == 4) {
mBinding.day4.tvDay.text = signInData.day.toString()
mBinding.day4.tvSiginPrice.text = signInData.gift_name + "*" + signInData.num
if (signInData.sign_in_status == 1) {
mBinding.day4.ivCollected.visibility = View.VISIBLE
mBinding.day4.root.setBackgroundResource(com.xscm.moduleutil.R.drawable.bg_sigin_status)
ImageLoader.loadImage(
context,
mBinding.day4.ivSign,
signInData.base_image,
0.4f
)
} else {
mBinding.day4.ivCollected.visibility = View.GONE
com.xscm.moduleutil.utils.ImageUtils.loadHead(
signInData.base_image,
mBinding.day4.ivSign
)
}
} else if (signInData.day == 5) {
mBinding.day5.tvDay.text = signInData.day.toString()
mBinding.day5.tvSiginPrice.text = signInData.gift_name + "*" + signInData.num
if (signInData.sign_in_status == 1) {
mBinding.day5.ivCollected.visibility = View.VISIBLE
mBinding.day5.root.setBackgroundResource(com.xscm.moduleutil.R.drawable.bg_sigin_status)
ImageLoader.loadImage(
context,
mBinding.day5.ivSign,
signInData.base_image,
0.4f
)
} else {
mBinding.day5.ivCollected.visibility = View.GONE
com.xscm.moduleutil.utils.ImageUtils.loadHead(
signInData.base_image,
mBinding.day5.ivSign
)
}
} else if (signInData.day == 6) {
mBinding.day6.tvDay.text = signInData.day.toString()
mBinding.day6.tvSiginPrice.text = signInData.gift_name + "*" + signInData.num
if (signInData.sign_in_status == 1) {
mBinding.day6.ivCollected.visibility = View.VISIBLE
mBinding.day6.root.setBackgroundResource(com.xscm.moduleutil.R.drawable.bg_sigin_status)
ImageLoader.loadImage(
context,
mBinding.day6.ivSign,
signInData.base_image,
0.4f
)
} else {
mBinding.day6.ivCollected.visibility = View.GONE
com.xscm.moduleutil.utils.ImageUtils.loadHead(
signInData.base_image,
mBinding.day6.ivSign
)
}
} else if (signInData.day == 7) {
mBinding.day7.tvDay.text = signInData.day.toString()
mBinding.day7.tvSiginPrice.text = signInData.gift_name + "*" + signInData.num
if (signInData.sign_in_status == 1) {
mBinding.day7.ivCollected.visibility = View.VISIBLE
mBinding.day7.root.setBackgroundResource(com.xscm.moduleutil.R.drawable.bg_sigin_status)
ImageLoader.loadImage(
context,
mBinding.day7.ivSign,
signInData.base_image,
0.4f
)
} else {
mBinding.day7.ivCollected.visibility = View.GONE
com.xscm.moduleutil.utils.ImageUtils.loadHead(
signInData.base_image,
mBinding.day7.ivSign
)
}
}
}
}

Some files were not shown because too many files have changed in this diff Show More