1:修改注冊的时候,年龄必选,并且更改默认年龄是18年前

2:修改创建房间,本地进行判断改为服务端进行判断
3:修改歌手认证bug
4:修改和用户相关的出现为空的错误
5:修改挚友在用户主页的位置,不丝滑的滑动问题
6:修改搜索页面展示全部房间,用户展示性别
This commit is contained in:
2025-12-11 21:04:25 +08:00
parent ecdd2fc063
commit ed0eccd0ee
24 changed files with 365 additions and 327 deletions

View File

@@ -80,6 +80,7 @@ open class Application : CommonAppContext() {
}
override fun onNext(t: IndexRecommendRoom) {
LogUtils.e(t)
if (!t.room_id.isNullOrEmpty()) {
showInviteDialog(activity, t)
}

View File

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

View File

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

View File

@@ -72,6 +72,7 @@ public class HotListFragment extends BaseMvpFragment<HotListPresenter, FragmentH
@Override
public void onResume() {
super.onResume();
page=1;
MvpPre.getRoomList(2, "1", "20", "1", label_id);
}

View File

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

View File

@@ -124,41 +124,6 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
mBinding.progressArc.setProgress(0);
mBinding.progressArc.setMax(100); // 设置最大值
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() {
private Runnable longPressRunnable;
@@ -243,10 +208,10 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
mBinding.playButton.setCompoundDrawablesWithIntrinsicBounds(0, R.mipmap.but_st, 0, 0);
} else {
// 检查录音文件是否存在
if (recordingFile == null || !recordingFile.exists()) {
Toast.makeText(SingerVerificationActivity.this, "没有录制的文件", Toast.LENGTH_SHORT).show();
return;
}
// if (recordingFile == null || !recordingFile.exists()) {
// Toast.makeText(SingerVerificationActivity.this, "没有录制的文件", Toast.LENGTH_SHORT).show();
// return;
// }
// 检查录音时长
if (recordingDuration <= 0) {
@@ -353,10 +318,9 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
mediaRecorder.prepare();
mediaRecorder.start();
// 如果是第一次录音,初始化录音文件
if (!isAppendRecording) {
recordingFile = segmentFile;
}
// 修复不再根据是否追加录音来设置recordingFile
// recordingFile将在停止录音时通过mergeAudioFiles()方法设置
// 这样可以确保每次录音都能正确合并
} catch (IOException e) {
LogUtils.e("SingerVerification", "录音失败: " + e.getMessage());
// 从列表中移除失败的文件
@@ -442,16 +406,28 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
timer.cancel();
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();
// 更新录音时长为所有片段的总时长
updateRecordingDuration();
} else if (recordingSegments.size() == 1) {
// 只有一个录音片段,直接使用
recordingFile = recordingSegments.get(0);
}
// 更新状态
@@ -749,11 +725,9 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
handleMergeError(e);
} finally {
cleanupResources(muxer, buffer);
// 修复:延迟删除原始音频片段,确保合并文件已经完全写入且被使用
// 延迟删除,给用户足够时间试听
new Handler().postDelayed(() -> {
cleanupSegments(processedSegments);
}, 30000); // 延迟30秒删除确保用户有足够时间试听
// 修复:不删除录音片段,以便后续继续追加录音
// 只在用户点击"重新录音"时才删除所有片段
// cleanupSegments(processedSegments);
}
}

View File

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

View File

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

View File

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

View File

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

View File

@@ -51,10 +51,10 @@ public class ExpandColumnAdapter extends BaseQuickAdapter<ExpandColumnBean, Base
@Override
protected void convert(BaseViewHolder helper, ExpandColumnBean item) {
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.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());
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.setShine(true);
tvName.setShineType(0);
}else {
} else {
tvName.setStartColor(Color.BLACK);
tvName.setShineColor(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.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);
}else {
} else {
helper.setVisible(R.id.gensui, true);
}
@@ -119,7 +119,7 @@ public class ExpandColumnAdapter extends BaseQuickAdapter<ExpandColumnBean, Base
recyclerView.setOnItemClickListener((parent, view, position, id) -> {
FullScreenUtil.showFullScreenDialog(mContext, position, oneImageYuanJiaoAdapter.getList_adapter());
});
}else {
} else {
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(); // 获取图片列表
for (String url : images) {
if (url.contains("http")) {
if (url != null && url.contains("http")) {
ImageView imageView = new ImageView(mContext);
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_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.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()));
// ((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));
// ((BeautifulNameView) helper.getView(R.id.bnv_rank_list)).setText(item.getNickname2());
helper.setText(R.id.tv_charm, "Lv "+item.getTotal());
} else if (index == 1 || index == 2) {
rl.setVisibility(View.GONE);
helper.getView(R.id.riv_avatar).setVisibility(View.VISIBLE);

View File

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

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.tv_id, "ID:" + item.getUser_code());
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() + "")) {
// helper.setVisible(R.id.gensui, false);
// } else {

View File

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