1:羽声新版本

This commit is contained in:
2025-10-24 17:52:11 +08:00
parent 437a623f81
commit a809b02ebb
827 changed files with 25795 additions and 1193698 deletions

View File

@@ -1,7 +1,8 @@
plugins {
alias(libs.plugins.android.library)
alias(libs.plugins.kotlin.android)
}
apply plugin: 'kotlin-kapt'
android {
namespace 'com.example.moduleroom'
compileSdk 35
@@ -34,13 +35,22 @@ android {
enable = true
}
}
// 与 dependencies 同级别
kapt {
arguments {
arg("AROUTER_MODULE_NAME", project.getName())
}
}
dependencies {
implementation libs.appcompat
implementation libs.material
implementation libs.activity
implementation libs.constraintlayout
implementation libs.androidx.legacy.support.v4
implementation libs.lifecycle.livedata.ktx
implementation libs.lifecycle.viewmodel.ktx
implementation libs.androidx.fragment.ktx
testImplementation libs.junit
androidTestImplementation libs.ext.junit
androidTestImplementation libs.espresso.core
@@ -48,9 +58,12 @@ dependencies {
implementation project(':moduleUtil')
implementation project(':moduletablayout')
implementation 'com.alibaba:arouter-api:1.5.2'
// implementation 'com.alibaba:arouter-api:1.5.2'
//annotationProcessor
annotationProcessor 'com.alibaba:arouter-compiler:1.5.2'
// annotationProcessor 'com.alibaba:arouter-compiler:1.5.2'
implementation 'com.alibaba:arouter-api:1.5.2'
kapt 'com.alibaba:arouter-compiler:1.5.2'
implementation 'com.github.JessYanCoding:AndroidAutoSize:v1.2.1'

View File

@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.moduleroom">
<application>
@@ -14,17 +15,44 @@
<activity
android:name=".activity.RoomActivity"
android:exported="false"
android:launchMode="singleInstance"
android:screenOrientation="portrait"
android:launchMode="singleTask"
android:excludeFromRecents="true"
android:exported="true"
android:windowSoftInputMode="adjustPan"
android:enableOnBackInvokedCallback="false"
android:theme="@style/TransparentActivityTheme"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait" />
tools:targetApi="tiramisu" />
<!-- <activity-->
<!-- android:name=".activity.RoomActivity"-->
<!-- android:launchMode="singleInstancePerTask"-->
<!-- android:windowSoftInputMode="adjustPan"-->
<!-- android:enableOnBackInvokedCallback="false"-->
<!-- android:theme="@style/TransparentActivityTheme"-->
<!-- android:configChanges="orientation|screenSize|keyboardHidden"-->
<!-- android:screenOrientation="portrait"-->
<!-- android:exported="true"-->
<!-- />-->
<service
android:name=".service.MediaProjectionService"
android:foregroundServiceType="mediaProjection">
</service>
<service
android:name=".service.ForegroundService"
android:enabled="true"
android:exported="true"
android:foregroundServiceType="microphone|camera|mediaPlayback" />
<service
android:name=".service.CancelNoticeService"
android:enabled="true"
android:exported="true" />
<activity android:name=".activity.RedResultActivity"
android:exported="true"/>
</application>
</manifest>

View File

@@ -1,26 +1,55 @@
package com.example.moduleroom.adapter;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.NinePatchDrawable;
import android.os.Build;
import android.os.Handler;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.TextUtils;
import android.text.style.ForegroundColorSpan;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.ConstraintLayout;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.DataSource;
import com.bumptech.glide.load.engine.GlideException;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.CustomTarget;
import com.bumptech.glide.request.target.SimpleTarget;
import com.bumptech.glide.request.target.Target;
import com.bumptech.glide.request.transition.Transition;
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.example.moduleroom.R;
import com.xscm.modulemain.FakeNinePatchDrawable;
import com.xscm.moduleutil.bean.GiftBean;
import com.xscm.moduleutil.bean.RoomMessageEvent;
import com.xscm.moduleutil.bean.UserInfo;
import com.xscm.moduleutil.bean.room.EMMessageInfo;
import com.xscm.moduleutil.utils.ColorManager;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.logger.Logger;
import com.xscm.moduleutil.widget.GifAvatarOvalView;
import com.xscm.moduleutil.widget.img.BubbleBackgroundHelper;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
/**
@@ -38,6 +67,8 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
private List<EMMessageInfo> allMsgList;
private List<EMMessageInfo> userMsgList;
private List<EMMessageInfo> systemMsgList;
private String messageNameColor = "#00C8FF";//名称的颜色
private String messageGiftColor = "#FFE309";//礼物的颜色
public EaseChatAdapter() {
super(null);
@@ -66,53 +97,129 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
List currData = new ArrayList();
if (type == SHOW_TYPE_ALL) {
currData.addAll(allMsgList);
// if (allMsgList.size() > 20) {
// // 只添加最近的20条消息
// int startIndex = Math.max(0, allMsgList.size() - 20);
// currData.addAll(allMsgList.subList(startIndex, allMsgList.size()));
// }else {
// currData.addAll(allMsgList);
// }
} else if (type == SHOW_TYPE_USER) {
}
if (type == SHOW_TYPE_USER) {
currData.addAll(userMsgList);
} else if (type == SHOW_TYPE_SYSTEM) {
}
if (type == SHOW_TYPE_SYSTEM) {
currData.addAll(systemMsgList);
}
setNewData(currData);
//notifyDataSetChanged();
}
private SpannableStringBuilder getSpannable(RoomMessageEvent message) {
// 在 Android 中实现类似的富文本功能
SpannableStringBuilder spannable = new SpannableStringBuilder(message.getText().getText() != null ? message.getText().getText() : "");
// 设置发送者昵称的颜色
if (message.getText().getFromUserInfo() != null && !TextUtils.isEmpty(message.getText().getFromUserInfo().getNickname())) {
String nickname = message.getText().getFromUserInfo().getNickname();
int startIndex = message.getText().getText().indexOf(nickname);
if (startIndex != -1) {
int endIndex = startIndex + nickname.length();
spannable.setSpan(new ForegroundColorSpan(Color.parseColor(messageNameColor)), startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
// 设置接收者昵称的颜色
if (message.getText().getToUserInfo() != null && !TextUtils.isEmpty(message.getText().getToUserInfo().getNickname())) {
String nickname = message.getText().getToUserInfo().getNickname();
int startIndex = message.getText().getText().indexOf(nickname);
if (startIndex != -1) {
int endIndex = startIndex + nickname.length();
spannable.setSpan(new ForegroundColorSpan(Color.parseColor(messageNameColor)), startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
// 处理礼物名称的颜色设置
if (message.getText().getGiftInfo() != null && !TextUtils.isEmpty(message.getText().getGiftInfo().getGift_name())) {
String[] giftNames = message.getText().getGiftInfo().getGift_name().split(",");
for (String giftName : giftNames) {
List<int[]> occurrences = findAllOccurrencesOfString(message.getText().getText(), giftName);
for (int[] range : occurrences) {
spannable.setSpan(new ForegroundColorSpan(Color.parseColor(messageGiftColor)), range[0], range[1], Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
}
// 处理多个礼物信息的颜色设置
if (message.getText().getGiftInfos() != null && !message.getText().getGiftInfos().isEmpty()) {
for (GiftBean gift : message.getText().getGiftInfos()) {
if (!TextUtils.isEmpty(gift.getGift_name())) {
int startIndex = message.getText().getText().indexOf(gift.getGift_name());
if (startIndex != -1) {
int endIndex = startIndex + gift.getGift_name().length();
spannable.setSpan(new ForegroundColorSpan(Color.parseColor(messageGiftColor)), startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
}
}
// 处理多个接收者信息的颜色设置
if (message.getText().getToUserInfos() != null && !message.getText().getToUserInfos().isEmpty()) {
for (int i = 0; i < message.getText().getToUserInfos().size(); i++) {
UserInfo userModel = message.getText().getToUserInfos().get(i);
if (!TextUtils.isEmpty(userModel.getNickname())) {
List<int[]> occurrences = findAllOccurrencesOfString(message.getText().getText(), userModel.getNickname());
for (int[] range : occurrences) {
spannable.setSpan(new ForegroundColorSpan(Color.parseColor(messageNameColor)), range[0], range[1], Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
}
}
return spannable;
}
/**
* 查找字符串中所有子字符串出现的位置
*
* @param text 原始文本
* @param searchString 要查找的子字符串
* @return 包含所有出现位置的列表,每个位置用 [start, end] 表示
*/
private List<int[]> findAllOccurrencesOfString(String text, String searchString) {
List<int[]> occurrences = new ArrayList<>();
if (TextUtils.isEmpty(text) || TextUtils.isEmpty(searchString)) {
return occurrences;
}
int index = text.indexOf(searchString);
while (index >= 0) {
occurrences.add(new int[]{index, index + searchString.length()});
index = text.indexOf(searchString, index + searchString.length());
}
return occurrences;
}
@Override
protected void convert(BaseViewHolder helper, EMMessageInfo item) {
RoomMessageEvent emMessage = item.getEmMessage();
// EMTextMessageBody txtBody = (EMTextMessageBody) emMessage.getBody();
// Spanned spanned = Html.fromHtml(txtBody.getMessage());
// String message = txtBody.getMessage();
// Log.e("环信消息", message);
// SpanUtils spanUtils = new SpanUtils();
// String role = emMessage.getStringAttribute("role", "0");
// String userIsNew = emMessage.getStringAttribute("user_is_new", "0");
// String rankIcon = emMessage.getStringAttribute("rank_icon", "");
// String nobilityIcon = emMessage.getStringAttribute("nobility_icon", "");
// String nickname = emMessage.getStringAttribute("nickname", "");
// String type = emMessage.getStringAttribute("type", "");
// String charmIcon = emMessage.getStringAttribute("charm_icon", null);
// String user_title = emMessage.getStringAttribute("user_title", null);
// String emoji_special = emMessage.getStringAttribute("face_special", message);
// String userId = emMessage.getStringAttribute("user_id", null);
// Spanned spanned1 = null;
//
TextView tv_content= helper.getView(R.id.tv_content);
TextView tv_content = helper.getView(R.id.tv_content);
switch (helper.getItemViewType()) {
case 1:
helper.getView(R.id.tv_content).setVisibility(View.VISIBLE);
helper.setText(R.id.tv_content, emMessage.getText().getText());
tv_content.setTextColor(ColorManager.getInstance().getPrimaryColorInt());
helper.setText(R.id.tv_content, getSpannable(emMessage));
// helper.setText(R.id.tv_content, emMessage.getText().getText());
// tv_content.setTextColor(ColorManager.getInstance().getPrimaryColorInt());
break;
case 2:
helper.getView(com.xscm.moduleutil.R.id.im_emj).setVisibility(View.VISIBLE);
helper.getView(com.xscm.moduleutil.R.id.tv_content).setVisibility(View.GONE);
ImageUtils.loadHeadCC(emMessage.getText().getFromUserInfo().getAvatar(), helper.getView(com.xscm.moduleutil.R.id.avatar));
helper.setText(com.xscm.moduleutil.R.id.tv_name, emMessage.getText().getFromUserInfo().getNickname());
helper.setText(com.xscm.moduleutil.R.id.tv_content, emMessage.getText().getText());
if (emMessage.getText().getText() != null) {
helper.setText(com.xscm.moduleutil.R.id.tv_content, getSpannable(emMessage));
}
// helper.setText(com.xscm.moduleutil.R.id.tv_content, emMessage.getText().getText());
List<String> images = emMessage.getText().getFromUserInfo().getIcon();
LinearLayout ll_images = helper.getView(com.xscm.moduleutil.R.id.line);
ll_images.removeAllViews();
@@ -120,8 +227,8 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
if (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_37),
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_14)
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_74),
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_17)
);
params.setMargins(0, 0, helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView.setLayoutParams(params);
@@ -131,84 +238,107 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
ll_images.addView(imageView);
}
}
tv_content.setTextColor(ColorManager.getInstance().getPrimaryColorInt());
if (emMessage.getText().getFromUserInfo().getChat_bubble() != null && !emMessage.getText().getFromUserInfo().getChat_bubble().isEmpty()) {
// helper.getView(com.xscm.moduleutil.R.id.bubble).setBackgroundResource(com.xscm.moduleutil.R.mipmap.qipaokang);
// ImageUtils.loadHeadCC(emMessage.getText().getFromUserInfo().getChat_bubble(), helper.getView(com.xscm.moduleutil.R.id.network_background));
// 使用 Glide 加载图片并设置名称
String imageUrl = emMessage.getText().getFromUserInfo().getChat_bubble();
Glide.with(mContext)
.load(imageUrl)
.into(new SimpleTarget<Drawable>() {
@Override
public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
// 将资源转换为 Bitmap
if (resource instanceof BitmapDrawable) {
Bitmap bitmap = ((BitmapDrawable) resource).getBitmap();
// 创建新的文件名
Drawable fakeNinePatch = new FakeNinePatchDrawable(bitmap, 0.4f, 0.4f, 0.6f, 0.5f);
// 保存图片到本地
helper.getView(com.xscm.moduleutil.R.id.bubble).setBackground(fakeNinePatch);
}
}
@Override
public void onLoadFailed(@Nullable Drawable errorDrawable) {
// 加载失败处理
}
});
} else {
helper.getView(com.xscm.moduleutil.R.id.bubble).setBackgroundResource(com.xscm.moduleutil.R.drawable.ease_row_pubilc_user_bg);
}
if (emMessage.getText().getEmoji() != null) {
if (Objects.equals(emMessage.getText().getEmoji().getAnimate_image(), "") || emMessage.getText().getEmoji().getAnimate_image().isEmpty()) {
ImageUtils.loadHeadCC(emMessage.getText().getEmoji().getImage(), helper.getView(com.xscm.moduleutil.R.id.im_emj));
return;
}
if (helper.getView(com.xscm.moduleutil.R.id.im_emj).getTag() != null && helper.getView(com.xscm.moduleutil.R.id.im_emj).getTag().equals(emMessage.getText().getEmoji().getAnimate_image())) {
return; // 已经加载过,不需要重新加载
}
// 使用 RequestListener 监听加载完成
Glide.with(mContext)
.load(emMessage.getText().getEmoji().getAnimate_image())
.listener(new RequestListener<Drawable>() {
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
// 加载完成后执行
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// 清除 Glide 缓存
// Glide.get(mContext).clearDiskCache();
// 更换图片
Glide.with(mContext)
.load(emMessage.getText().getEmoji().getImage())
.into((ImageView) helper.getView(com.xscm.moduleutil.R.id.im_emj));
}
}, 1500);
return false;
}
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
return false;
}
})
.into((ImageView) helper.getView(com.xscm.moduleutil.R.id.im_emj));
// 设置标签,避免重复加载
helper.getView(com.xscm.moduleutil.R.id.im_emj).setTag(emMessage.getText().getEmoji().getAnimate_image());
} else {
helper.getView(com.xscm.moduleutil.R.id.tv_content).setVisibility(View.VISIBLE);
helper.getView(com.xscm.moduleutil.R.id.im_emj).setVisibility(View.GONE);
}
break;
case 3:
// int paddingLeftValues3 = 0;//距离左边距(默认加上8dp间距)
// ivRole = helper.getView(R.id.iv_role);
// ivNew = helper.getView(R.id.iv_new);
// ivGrade = helper.getView(R.id.iv_grade);
// ivTitle = helper.getView(R.id.iv_title_label);
// ivNHobility = helper.getView(R.id.iv_nobility);
// TextView tvContent3 = helper.getView(R.id.tv_content);
// ivRole.setRole(Integer.parseInt(role));
// ivNew.setNew(Integer.parseInt(userIsNew));
// ivGrade.setGrade(rankIcon);
// ivTitle.setLabelView(user_title);
// ivTitle.setLabelView(user_title);
// ivNHobility.setNobility(nobilityIcon);
// ImageUtils.loadIcon(charmIcon, helper.getView(R.id.iv_charm));
// // ---------------------------- 获取 最终的padding值
// //爵位图标判断
// if (ivNHobility.getVisibility() == View.VISIBLE) {
// paddingLeftValues3 += 23;
// }
// //角色图标
// if (ivRole.getVisibility() == View.VISIBLE) {
// paddingLeftValues3 += 27;
// }
// //新人图标
// if (ivNew.getVisibility() == View.VISIBLE) {
// paddingLeftValues3 += 33;
// }
// //等级图标
// if (ivGrade.getVisibility() == View.VISIBLE) {
// paddingLeftValues3 += 33;
// }
//
// //称号图标
// try {
// if (user_title == null || user_title.isEmpty()){
// user_title = "";
// }
// String s = user_title.substring(user_title.lastIndexOf("=") + 1);
// if (TextUtils.isEmpty(s)){
// s = "1";
// }
// int mWidth = (int) (Float.parseFloat(s) * 20);
// int mHeight = 20;
// ViewGroup.LayoutParams layoutParams = ivTitle.getLayoutParams();
// layoutParams.width = ConvertUtils.dp2px(mWidth);
// layoutParams.height = ConvertUtils.dp2px(mHeight);
// ivTitle.setLayoutParams(layoutParams);
// if (ivTitle.getVisibility() == View.VISIBLE) {
// paddingLeftValues3 += (mWidth + 3);
// }
// } catch (Exception e) {
// e.printStackTrace();
// }
// //魅力图标
// if (helper.getView(R.id.iv_charm).getVisibility() == View.VISIBLE) {
// paddingLeftValues3 += 23;
// }
// spanUtils.append(nickname + " ").setForegroundColor(mContext.getResources().getColor(R.color.color_FFFFBC00)).setFontSize(ResourceUtil.getDimen(R.dimen.sp_13))
// .append(spanned);
// tvContent3.setPadding(ResourceUtil.getDimen(String.valueOf(paddingLeftValues3)), 0, 0, 0);
// tvContent3.setText(spanUtils.create());
ImageUtils.loadHeadCC(emMessage.getText().getFromUserInfo().getAvatar(), helper.getView(com.xscm.moduleutil.R.id.avatar));
if (emMessage.getText().getFromUserInfo() != null && emMessage.getText().getFromUserInfo().getChat_bubble() != null && !emMessage.getText().getFromUserInfo().getChat_bubble().isEmpty()) {
helper.getView(com.xscm.moduleutil.R.id.bubble).setBackgroundResource(com.xscm.moduleutil.R.mipmap.qipaokang);
} else {
helper.getView(com.xscm.moduleutil.R.id.bubble).setBackgroundResource(com.xscm.moduleutil.R.drawable.ease_row_pubilc_user_bg);
}
if (emMessage.getText().getFromUserInfo() != null && emMessage.getText().getFromUserInfo().getAvatar() != null) {
ImageUtils.loadHeadCC(emMessage.getText().getFromUserInfo().getAvatar(), helper.getView(com.xscm.moduleutil.R.id.avatar));
}
helper.setText(com.xscm.moduleutil.R.id.tv_name, emMessage.getText().getFromUserInfo().getNickname());
helper.setText(com.xscm.moduleutil.R.id.tv_content, emMessage.getText().getText());
// helper.setText(com.xscm.moduleutil.R.id.tv_content, emMessage.getText().getText());
helper.setText(com.xscm.moduleutil.R.id.tv_content, getSpannable(emMessage));
List<String> images1 = emMessage.getText().getFromUserInfo().getIcon();
LinearLayout ll_images1 = helper.getView(com.xscm.moduleutil.R.id.line);
ll_images1.removeAllViews();
// tv_content.setTextColor(ColorManager.getInstance().getPrimaryColorInt());
if (images1 == null) {
return;
}
for (String url : images1) {
if (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_37),
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_14)
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_74),
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_17)
);
params.setMargins(0, 0, helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView.setLayoutParams(params);
@@ -218,7 +348,7 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
ll_images1.addView(imageView);
}
}
tv_content.setTextColor(ColorManager.getInstance().getPrimaryColorInt());
break;
// case 4:
// TextView tvContent7 = helper.getView(R.id.tv_content);
@@ -381,10 +511,43 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
}
private void loadBubbleBackground(Context context, String bubbleUrl, ConstraintLayout messageTextView) {
// String bubbleUrl = "https://midi01.oss-cn-beijing.aliyuncs.com/iosaixinqipao_17610381079117.png";
BubbleBackgroundHelper.loadBubbleBackground(context, bubbleUrl,
new BubbleBackgroundHelper.OnBubbleBackgroundLoadedListener() {
@Override
public void onBackgroundLoaded(Drawable bubbleDrawable) {
// 设置背景
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
messageTextView.setBackground(bubbleDrawable);
} else {
messageTextView.setBackgroundDrawable(bubbleDrawable);
}
// 设置内边距,让文字不会贴边
int padding = dpToPx(context, 10);
messageTextView.setPadding(padding, padding, padding, padding);
}
@Override
public void onLoadFailed() {
// 加载失败,使用默认背景
messageTextView.setBackgroundResource(com.xscm.moduleutil.R.drawable.ease_row_pubilc_user_bg);
}
});
}
private int dpToPx(Context context, int dp) {
return (int) (dp * context.getResources().getDisplayMetrics().density);
}
@Override
public void onViewRecycled(@NonNull BaseViewHolder holder) {
Logger.e("onViewRecycled", "onViewRecycled");
ImageView ivEmoji = holder.getView(com.xscm.moduleutil.R.id.iv_expression);
GifAvatarOvalView avatarOvalView = holder.getView(com.xscm.moduleutil.R.id.avatar);
// ImageView ivGrade = holder.getView(com.qxcm.moduleutil.R.id.iv_grade);
ImageView ivNobility = holder.getView(com.xscm.moduleutil.R.id.iv_nobility);
ImageView ivCharm = holder.getView(com.xscm.moduleutil.R.id.iv_charm);
@@ -393,6 +556,10 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
return;
}
try {
if (avatarOvalView != null) {
avatarOvalView.setImageDrawable(null);
Glide.with(avatarOvalView.getContext()).clear(avatarOvalView);
}
if (ivEmoji != null) {
ivEmoji.setImageDrawable(null);
Glide.with(ivEmoji.getContext()).clear(ivEmoji);
@@ -455,22 +622,64 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
@Override
public void addData(@NonNull EMMessageInfo data) {
// super.addData(data);
allMsgList.add(data);
if (data.getItemType() == 2) {
userMsgList.add(data);
} else if (data.getItemType() == 3) {
systemMsgList.add(data);
// 添加到对应的存储列表
addToStorageLists(data);
// 维护数据量限制
maintainDataLimits();
// 根据显示类型决定是否添加到适配器
if (shouldAddToAdapter(data)) {
super.addData(data);
// 确保适配器数据量也不超过限制
if (mData.size() > 100) {
int removeCount = mData.size() - 100;
mData.subList(0, removeCount).clear();
notifyDataSetChanged();
}
}
if (listShowType == SHOW_TYPE_ALL
|| ((data.getItemType() == 2) && listShowType == SHOW_TYPE_USER)
|| ((data.getItemType() == 3) && listShowType == SHOW_TYPE_SYSTEM)
) {
super.addData(data);
}
private void addToStorageLists(EMMessageInfo data) {
switch (data.getItemType()) {
case 1: // 系统消息
allMsgList.add(data);
break;
case 2: // 用户消息
userMsgList.add(data);
allMsgList.add(data);
break;
case 3: // 系统消息类型3
systemMsgList.add(data);
allMsgList.add(data);
break;
}
}
private void maintainDataLimits() {
// 确保所有存储列表都不超过最大限制
trimListToMaxSize(allMsgList);
trimListToMaxSize(userMsgList);
trimListToMaxSize(systemMsgList);
}
private void trimListToMaxSize(List<EMMessageInfo> list) {
if (list.size() > 100) {
int removeCount = list.size() - 100;
list.subList(0, removeCount).clear();
}
}
private boolean shouldAddToAdapter(EMMessageInfo data) {
// return (listShowType == SHOW_TYPE_ALL && (data.getItemType() == 1 || data.getItemType() == 2)) ||
// (listShowType == SHOW_TYPE_USER && data.getItemType() == 2) ||
// (listShowType == SHOW_TYPE_SYSTEM && data.getItemType() == 3);
return true;
}
@Override
public void addData(@NonNull Collection<? extends EMMessageInfo> newData) {
// super.addData(newData);
@@ -483,6 +692,4 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
addData(list.get(i));
}
}
}

View File

@@ -44,12 +44,12 @@ public class GiftUserAdapter extends BaseQuickAdapter<RewardUserBean, BaseViewHo
} else {
helper.setVisible(R.id.tv_pit, true);
int pitNumber = Integer.parseInt(item.getPit_number());
if (pitNumber>10){
if (pitNumber > 10) {
helper.setText(R.id.tv_pit, item.getNickname());
}else {
} else {
helper.setText(R.id.tv_pit, String.format("%s号麦", item.getPit_number()));
}
if (item.getPit_number().equals("8")) {
if (item.getPit_number().equals("10")) {
helper.setText(R.id.tv_pit, "嘉宾");
}
if (BaseWheatView.WHEAT_HOST.equals(item.getPit_number())) {
@@ -89,15 +89,32 @@ public class GiftUserAdapter extends BaseQuickAdapter<RewardUserBean, BaseViewHo
}
public int getSelectCount() {
int count = 1;
int count = 0;
List<RewardUserBean> data = getData();
for (RewardUserBean item : data) {
if (item.isSelect()) {
count++;
if (!item.getUser_id().equals(SpUtil.getUserId() + "")) {
if (item.isSelect()) {
count++;
}
}
}
return count;
}
///获取当前选中的人数
public int getUserIdCount(){
int count = 0;
List<RewardUserBean> data = getData();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < data.size(); i++) {
if (!data.get(i).getUser_id().equals(SpUtil.getUserId() + "")) {
if (data.get(i).isSelect()) {
count++;
}
}
}
return count;
}
public List<RewardUserBean> getSelectRoomPitUserModel() {
List<RewardUserBean> selects = getData();
@@ -114,7 +131,7 @@ public class GiftUserAdapter extends BaseQuickAdapter<RewardUserBean, BaseViewHo
List<RewardUserBean> data = getData();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < data.size(); i++) {
if (!data.get(i).getUser_id().equals(SpUtil.getUserId()+"")) {
if (!data.get(i).getUser_id().equals(SpUtil.getUserId() + "")) {
if (data.get(i).isSelect()) {
if (sb.length() > 0) {//该步即不会第一位有逗号,也防止最后一位拼接逗号!
sb.append(",");
@@ -134,9 +151,9 @@ public class GiftUserAdapter extends BaseQuickAdapter<RewardUserBean, BaseViewHo
if (sb.length() > 0) {//该步即不会第一位有逗号,也防止最后一位拼接逗号!
sb.append(",");
}
if (data!=null && data.get(i)!=null && data.get(i).getPit_number()!=null) {
if (data != null && data.get(i) != null && data.get(i).getPit_number() != null) {
sb.append(data.get(i).getPit_number());
}else {
} else {
sb.append("");
}
}
@@ -183,7 +200,7 @@ public class GiftUserAdapter extends BaseQuickAdapter<RewardUserBean, BaseViewHo
for (RewardUserBean item : data) {
if (item.isSelect()) {
ids.add(item.getUser_id());
ids.add(item.getUser_id());
}
}
return ids;

View File

@@ -65,8 +65,8 @@ public class RankingAutcionAdapter extends BaseQuickAdapter<RoomAuction.AuctionL
if (url.contains("http")) {
ImageView imageView1 = new ImageView(getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_37),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_74),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_17)
);
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView1.setLayoutParams(params);

View File

@@ -13,6 +13,7 @@ import com.chad.library.adapter.base.BaseViewHolder;
import com.example.moduleroom.R;
import com.xscm.moduleutil.bean.CharmRankingResp;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.StringUtil;
import com.xscm.moduleutil.utils.logger.Logger;
import java.util.List;
@@ -36,7 +37,7 @@ public class RankingCharmListAdapter extends BaseQuickAdapter<CharmRankingResp,
//数据绑定赋值
helper.setText(R.id.room_item_seq, String.valueOf(helper.getAdapterPosition() + 4));//从第四个开始设置值
helper.setText(R.id.room_item_name, item.getNickname());
helper.setText(R.id.room_item_pop, item.getTotal());
helper.setText(R.id.room_item_pop, StringUtil.toWan2(item.getTotal(),2));
// if (GG.equals(item.getSex())) {
// helper.setBackgroundRes(R.id.room_item_pop, R.mipmap.room_bg_wheat_charm_gg_sr);
// } else {
@@ -67,8 +68,8 @@ public class RankingCharmListAdapter extends BaseQuickAdapter<CharmRankingResp,
if (url.contains("http")) {
ImageView imageView1 = new ImageView(getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_37),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_74),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_17)
);
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView1.setLayoutParams(params);

View File

@@ -98,8 +98,8 @@ public class RoomOnlineAdapter extends BaseMultiItemQuickAdapter<RoomOnlineBean,
if (url.contains("http")) {
ImageView imageView1 = new ImageView(helper.itemView.getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_37),
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_74),
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_17)
);
params.setMargins(0, 0, helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView1.setLayoutParams(params);

View File

@@ -34,6 +34,8 @@ public class RoomSettingAdapter extends BaseMultiItemQuickAdapter<RoomSettingBea
return b ? "排麦模式" : "自由模式";
case RoomSettingBean.QXRoomSettingTypeRoomCloseEffects:
return b ? "关闭特效" : "开启特效";
case RoomSettingBean.QXRoomSettingTypeRoomFloatingScreen:
return b ? "关闭飘屏" : "开启飘屏";
default:
return name;
}
@@ -53,6 +55,8 @@ public class RoomSettingAdapter extends BaseMultiItemQuickAdapter<RoomSettingBea
return com.xscm.moduleutil.R.mipmap.ic_girl;
case RoomSettingBean.QXRoomSettingTypeRoomTypeJiaoy:
return com.xscm.moduleutil.R.mipmap.ic_jiaoy;
case RoomSettingBean.QXRoomSettingTypeRoomTypeHUYU:
return com.xscm.moduleutil.R.mipmap.huyu;
// 常用工具
case RoomSettingBean.QXRoomSettingTypeRoomSubsidy:
return com.xscm.moduleutil.R.mipmap.ic_subsidy;
@@ -67,8 +71,8 @@ public class RoomSettingAdapter extends BaseMultiItemQuickAdapter<RoomSettingBea
case RoomSettingBean.QXRoomSettingTypeRoomBgImage:
return com.xscm.moduleutil.R.mipmap.ic_bg_image;
// 更多操作
case RoomSettingBean.QXRoomSettingTypeRoomLeave:
return com.xscm.moduleutil.R.mipmap.ic_leave;
// case RoomSettingBean.QXRoomSettingTypeRoomLeave:
// return com.xscm.moduleutil.R.mipmap.ic_leave;
case RoomSettingBean.QXRoomSettingTypeRoomShare:
return com.xscm.moduleutil.R.mipmap.ic_share;
case RoomSettingBean.QXRoomSettingTypeRoomMyDress:
@@ -81,6 +85,10 @@ public class RoomSettingAdapter extends BaseMultiItemQuickAdapter<RoomSettingBea
return b ? com.xscm.moduleutil.R.mipmap.ic_close_effects : com.xscm.moduleutil.R.mipmap.ic_open_effects;
case RoomSettingBean.QXRoomSettingTypeRoomReport:
return com.xscm.moduleutil.R.mipmap.ic_report;
case RoomSettingBean.QXRoomSettingTypeRoomFloatingScreen:
return b ? com.xscm.moduleutil.R.mipmap.ic_close_floating_screen : com.xscm.moduleutil.R.mipmap.ic_open_floating_screen;
case RoomSettingBean.QXRoomSettingTypeRoomFloatingRed:
return com.xscm.moduleutil.R.mipmap.red_tx;
default:
return 0;
}

View File

@@ -56,7 +56,7 @@ public class WheatFeedingSelectAdapter extends RecyclerView.Adapter<WheatFeedin
if (newState) {
mSelectedPositions.add(position);
} else {
mSelectedPositions.remove(position);
mSelectedPositions.remove(Integer.valueOf(position)); // 修改这里
}
});
holder.tv_bm.setOnClickListener(v -> {

View File

@@ -4,16 +4,33 @@ import android.app.Activity;
import com.xscm.moduleutil.activity.IPresenter;
import com.xscm.moduleutil.activity.IView;
import com.xscm.moduleutil.bean.UserOnlineStatusBean;
import com.xscm.moduleutil.bean.room.FriendUserBean;
import java.util.List;
public class FriendshipRoomContacts {
public interface View extends IView<Activity> {
void applyPit();
void endFriend(FriendUserBean friendUserBean);
void createRelation();
void userOnlineStatus(List<UserOnlineStatusBean> list);
}
public interface IRoomPre extends IPresenter {
void applyPit(String roomId, String pitNumber);
void startFriend(String roomId);
void delay(String friend_id,String room_id,String delay_times);
void endFriend(String friend_id,String room_id);
void createRelation(String room_id,String friend_id,String user1_id,String user2_id,String relation_id);
void userOnlineStatus(String userId, String roomid);
}
}

View File

@@ -4,6 +4,7 @@ import android.app.Activity;
import com.xscm.moduleutil.activity.IPresenter;
import com.xscm.moduleutil.activity.IView;
import com.xscm.moduleutil.bean.RedPacketInfo;
import com.xscm.moduleutil.bean.RoomCharmRankBean;
import com.xscm.moduleutil.bean.UserOnlineStatusBean;
import com.xscm.moduleutil.bean.room.RoomInfoResp;
@@ -38,6 +39,7 @@ public class RoomContacts {
void hostUserPit();
void quitRoom();
void quitRoom2(String roomId);
void userGuanzSuccess(String s);
@@ -46,6 +48,10 @@ public class RoomContacts {
void clearUserCharm();
void userOnlineStatus(List<UserOnlineStatusBean> list);
void findRoom();
void roomRedPackets(List<RedPacketInfo> list);
}
public interface IRoomPre extends IPresenter {
@@ -72,6 +78,7 @@ public class RoomContacts {
void hostUserPit(String roomId, String pitNumber, String userId, String type);
void quitRoom(String roomId, String userId);
void quitRoom2(String roomId, String userId);
void userGuanz(String userId, String type);
@@ -80,5 +87,11 @@ public class RoomContacts {
void clearUserCharm(String roomId, String userId);//清除魅力值
void userOnlineStatus(String userId, String roomid);
void auctionEnd(String auctionId,String roomId);
void auctionDelay(String auctionId);
void roomRedPackets(String roomId);
}
}

View File

@@ -24,6 +24,9 @@ public class RoomUserContacts {
void topRelationCard(String s);
void deleteRelationCard(String s);
void clearUserCharm();
void applyPit();
}
public interface ViewGx extends IView<Activity> {
@@ -51,5 +54,9 @@ public class RoomUserContacts {
void topRelationCard(String id);
void deleteRelationCard(String id);
void clearUserCharm(String roomId,String userId);
void applyPit(String roomId,String pitNumber);
}
}

View File

@@ -89,8 +89,8 @@ public class BidListDialogFragment extends BaseMvpDialogFragment<BidListPresente
if (url.contains("http")) {
ImageView imageView1 = new ImageView(getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_37),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_74),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_17)
);
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView1.setLayoutParams(params);
@@ -119,8 +119,8 @@ public class BidListDialogFragment extends BaseMvpDialogFragment<BidListPresente
if (url.contains("http")) {
ImageView imageView1 = new ImageView(getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_37),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_74),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_17)
);
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView1.setLayoutParams(params);
@@ -149,8 +149,8 @@ public class BidListDialogFragment extends BaseMvpDialogFragment<BidListPresente
if (url.contains("http")) {
ImageView imageView1 = new ImageView(getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_37),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_74),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_17)
);
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView1.setLayoutParams(params);

View File

@@ -72,11 +72,32 @@ public class CustomCenterDialogFragment extends DialogFragment {
fragment.show(fragmentManager, "CustomCenterDialogFragment");
// new Handler(Looper.getMainLooper()).postDelayed(() -> {
// if (fragment.isAdded()) {
// fragment.dismiss();
// }
// }, 4000); // 4秒后关闭
new Handler(Looper.getMainLooper()).postDelayed(() -> {
if (fragment != null && fragment.isAdded()) {
fragment.dismiss();
try {
if (fragment.isAdded() &&
!fragment.isRemoving() &&
!fragment.isDetached() &&
fragment.getActivity() != null &&
!fragment.getActivity().isFinishing() &&
!fragment.getActivity().isDestroyed()) {
if (fragment.getFragmentManager() != null && !fragment.getFragmentManager().isStateSaved()) {
fragment.dismiss();
} else {
fragment.dismissAllowingStateLoss();
}
}
} catch (Exception e) {
// 安全地忽略异常
}
}, 4000); // 4秒后关闭
}
public void setAnimationStyle(int animStyle) {

View File

@@ -5,34 +5,59 @@ import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.example.moduleroom.R;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
/**
*@author qx
*@data 2025/6/26
*@description: 底部弹框,退出房间选择
* @author qx
* @data 2025/6/26
* @description: 底部弹框,退出房间选择
*/
public class ExitRoomBottomSheet extends BottomSheetDialogFragment {
public interface OnOptionSelectedListener {
void onMinimize(); // 最小化
void onExitRoom(); // 退出房间
void onCancel(); // 取消
}
private OnOptionSelectedListener listener;
private static final String ARG_SHOW_MINIMIZE = "show_minimize";
private static final String ARG_SHOW_EXIT = "show_exit";
private static final String ARG_SHOW_CANCEL = "show_cancel";
public static ExitRoomBottomSheet newInstance() {
return new ExitRoomBottomSheet();
private boolean showMinimize = true;
private boolean showExit = true;
private boolean showCancel = true;
public static ExitRoomBottomSheet newInstance(boolean showMinimize, boolean showExit, boolean showCancel) {
ExitRoomBottomSheet fragment = new ExitRoomBottomSheet();
Bundle args = new Bundle();
args.putBoolean(ARG_SHOW_MINIMIZE, showMinimize);
args.putBoolean(ARG_SHOW_EXIT, showExit);
args.putBoolean(ARG_SHOW_CANCEL, showCancel);
fragment.setArguments(args);
return fragment;
}
public static ExitRoomBottomSheet newInstance() {
return newInstance(true, true, true);
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
showMinimize = getArguments().getBoolean(ARG_SHOW_MINIMIZE, true);
showExit = getArguments().getBoolean(ARG_SHOW_EXIT, true);
showCancel = getArguments().getBoolean(ARG_SHOW_CANCEL, true);
}
setStyle(STYLE_NORMAL, com.xscm.moduleutil.R.style.AppBottomSheetDialogTheme); // 自定义样式(可选)
setCancelable(true); // 点击外部可关闭
}
@@ -42,18 +67,31 @@ public class ExitRoomBottomSheet extends BottomSheetDialogFragment {
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.dialog_exit_room_bottom_sheet, container, false);
TextView tv_minimize = view.findViewById(R.id.tv_minimize);
TextView tv_exit_room = view.findViewById(R.id.tv_exit_room);
TextView tv_cancel = view.findViewById(R.id.tv_cancel);
view.findViewById(R.id.tv_minimize).setOnClickListener(v -> {
// 根据参数设置按钮可见性
if (tv_minimize != null) {
tv_minimize.setVisibility(showMinimize ? View.VISIBLE : View.GONE);
}
if (tv_exit_room != null) {
tv_exit_room.setVisibility(showExit ? View.VISIBLE : View.GONE);
}
if (tv_cancel != null) {
tv_cancel.setVisibility(showCancel ? View.VISIBLE : View.GONE);
}
tv_minimize.setOnClickListener(v -> {
if (listener != null) listener.onMinimize();
dismiss();
});
view.findViewById(R.id.tv_exit_room).setOnClickListener(v -> {
tv_exit_room.setOnClickListener(v -> {
if (listener != null) listener.onExitRoom();
dismiss();
});
view.findViewById(R.id.tv_cancel).setOnClickListener(v -> {
tv_cancel.setOnClickListener(v -> {
if (listener != null) listener.onCancel();
dismiss();
});
@@ -61,6 +99,7 @@ public class ExitRoomBottomSheet extends BottomSheetDialogFragment {
return view;
}
public void setOnOptionSelectedListener(OnOptionSelectedListener listener) {
this.listener = listener;
}

View File

@@ -35,12 +35,13 @@ public class PublishCommentDialogFragment extends BaseMvpDialogFragment<PublishC
return new PublishCommentPresenter(this, getActivity());
}
public static void show(String roomId, FragmentManager fragmentManager) {
public static PublishCommentDialogFragment show(String roomId, FragmentManager fragmentManager) {
PublishCommentDialogFragment dialogFragment = new PublishCommentDialogFragment();
Bundle args = new Bundle();
args.putString("roomId", roomId);
dialogFragment.setArguments(args);
dialogFragment.show(fragmentManager, "PublishCommentDialogFragment");
return dialogFragment;
}
@Override
public void onStart() {

View File

@@ -47,7 +47,7 @@ public class RequestDialogFragment extends BaseMvpDialogFragment<RequestPresente
protected RequestPresenter bindPresenter() {
return new RequestPresenter(this, getActivity());
}
public static void show(String id,RoomInfoResp roomInfoResp, int type,FragmentManager fragmentManager) {
public static RequestDialogFragment show(String id, RoomInfoResp roomInfoResp, int type, FragmentManager fragmentManager) {
RequestDialogFragment dialogFragment = new RequestDialogFragment();
Bundle args = new Bundle();
args.putString("roomId", id); // 可选:传递参数
@@ -55,6 +55,7 @@ public class RequestDialogFragment extends BaseMvpDialogFragment<RequestPresente
args.putInt("type", type);
dialogFragment.setArguments(args);
dialogFragment.show(fragmentManager, "RequestDialogFragment");
return dialogFragment;
}
@Override

View File

@@ -2,32 +2,51 @@ package com.example.moduleroom.dialog;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.util.Log;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter;
import androidx.fragment.app.FragmentTransaction;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.viewpager.widget.ViewPager;
import androidx.viewpager2.adapter.FragmentStateAdapter;
import com.alibaba.android.arouter.launcher.ARouter;
import com.example.moduleroom.R;
import com.example.moduleroom.adapter.GiftUserAdapter;
import com.example.moduleroom.databinding.RoomGiftDialogBinding;
import com.example.moduletablayout.listener.OnTabSelectListener;
import com.google.android.material.tabs.TabLayout;
import com.google.android.material.tabs.TabLayoutMediator;
import com.hjq.toast.ToastUtils;
import com.xscm.moduleutil.activity.WebViewActivity;
import com.xscm.moduleutil.adapter.GiftTwoDetailsFragment;
import com.xscm.moduleutil.adapter.MyFragmentPagerAdapter;
import com.xscm.moduleutil.base.BaseMvpDialogFragment;
import com.xscm.moduleutil.bean.GiftLabelBean;
import com.xscm.moduleutil.bean.GiftNumBean;
import com.xscm.moduleutil.bean.GiftPackBean;
import com.xscm.moduleutil.bean.GiftPackEvent;
import com.xscm.moduleutil.bean.GiftPackListCount;
import com.xscm.moduleutil.bean.RewardUserBean;
import com.xscm.moduleutil.bean.RoomTypeModel;
import com.xscm.moduleutil.bean.RoonGiftModel;
import com.xscm.moduleutil.bean.UserInfo;
import com.xscm.moduleutil.bean.WalletBean;
@@ -35,7 +54,10 @@ import com.xscm.moduleutil.bean.room.RoomAuction;
import com.xscm.moduleutil.bean.room.RoomInfoResp;
import com.xscm.moduleutil.bean.room.RoomPitBean;
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
import com.xscm.moduleutil.dialog.ConfirmDialog;
import com.xscm.moduleutil.dialog.RechargeDialogFragment;
import com.xscm.moduleutil.dialog.WebViewDialog;
import com.xscm.moduleutil.dialog.giftLottery.GiftLotteryDialog;
import com.xscm.moduleutil.event.GiftDoubleClickEvent;
import com.xscm.moduleutil.event.GiftUserRefreshEvent;
import com.xscm.moduleutil.event.RoomGiftGiveEvent;
@@ -44,6 +66,7 @@ import com.xscm.moduleutil.presenter.RewardGiftPresenter;
import com.xscm.moduleutil.utils.ARouteConstants;
import com.xscm.moduleutil.utils.ColorManager;
import com.xscm.moduleutil.utils.SpUtil;
import com.xscm.moduleutil.utils.SystemUtils;
import com.xscm.moduleutil.widget.dialog.KeyboardPopupWindow;
import com.xscm.moduleutil.widget.dialog.SelectGiftNumPopupWindow;
@@ -68,7 +91,7 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
private SelectGiftNumPopupWindow mSelectGiftNumPopupWindow;
private KeyboardPopupWindow mKeyboardPopupWindow;
private List<GiftNumBean> mGiftNumList;
private RoonGiftModel roonGiftModel = null;
private RoonGiftModel roonGiftModel = new RoonGiftModel();
private GiftPackBean giftModel = null;
private RoomInfoResp roomInfoResp;
private String label_id;
@@ -80,22 +103,25 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
private String roomId;
private final List<String> oldSelectedIds = new LinkedList<>();
private int jingp;//1:是点击的竞拍2是点击的送礼物
private String heart_id = "";//交友房中点击助力需要发送heart_id
private String auction_id;
@Override
protected RewardGiftPresenter bindPresenter() {
return new RewardGiftPresenter(this, getActivity());
}
public static void show(RoomInfoResp roomInfoResp, UserInfo userInfo, String roomId,int jingp, FragmentManager fragmentManager) {
public static RoomGiftDialogFragment show(RoomInfoResp roomInfoResp, UserInfo userInfo, String roomId, int jingp, String heart_id, FragmentManager fragmentManager) {
RoomGiftDialogFragment dialogFragment = new RoomGiftDialogFragment();
Bundle args = new Bundle();
args.putSerializable("roomInfoResp", roomInfoResp);
args.putSerializable("userInfo", userInfo);
args.putString("roomId", roomId);
args.putInt("jingp",jingp);
args.putInt("jingp", jingp);//竞拍
args.putString("heart_id", heart_id);
dialogFragment.setArguments(args);
dialogFragment.show(fragmentManager, "RewardGiftDialogFragment");
return dialogFragment;
}
@Override
@@ -106,6 +132,7 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
userInfo = (UserInfo) getArguments().getSerializable("userInfo");
roomId = getArguments().getString("roomId");
jingp = getArguments().getInt("jingp");
heart_id = getArguments().getString("heart_id");
}
@Override
@@ -160,16 +187,6 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
} else {
rewardUserBeanList = getSortedRewardUserList(roomInfoResp.getRoom_info().getPit_list(), "9", "10");
// for (int i = 0; i < roomInfoResp.getRoom_info().getPit_list().size(); i++) {
// if (!(SpUtil.getUserId() + "").equals(roomInfoResp.getRoom_info().getPit_list().get(i).getUser_id()) && !roomInfoResp.getRoom_info().getPit_list().get(i).getPit_number().equals("0") && !roomInfoResp.getRoom_info().getPit_list().get(i).getUser_id().equals("0")) {
// RewardUserBean rewardUserBean = new RewardUserBean();
// rewardUserBean.setUser_id(roomInfoResp.getRoom_info().getPit_list().get(i).getUser_id());
// rewardUserBean.setNickname(roomInfoResp.getRoom_info().getPit_list().get(i).getNickname());
// rewardUserBean.setAvatar(roomInfoResp.getRoom_info().getPit_list().get(i).getAvatar());
// rewardUserBean.setPit_number(roomInfoResp.getRoom_info().getPit_list().get(i).getPit_number());
// rewardUserBeanList.add(rewardUserBean);
// }
// }
}
mBinding.rvGiftUser.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false));
gifyuseradapter = new GiftUserAdapter();
@@ -201,7 +218,7 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
List<RoomPitBean> pitList2 = new ArrayList<>();
List<RoomPitBean> pitList3 = new ArrayList<>();
List<String> added = new ArrayList<>();
if (roomInfoResp.getSong_pit_list()!=null && roomInfoResp.getSong_pit_list().size()>0){
if (roomInfoResp.getSong_pit_list() != null && roomInfoResp.getSong_pit_list().size() > 0) {
pitList2.addAll(roomInfoResp.getSong_pit_list());
// 使用 HashSet 进行去重
Set<RoomPitBean> uniquePitSet = new HashSet<>(pitList);
@@ -211,9 +228,9 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
pitList.addAll(uniquePitSet);
}
if (roomInfoResp.getRoom_auction()!=null){
if (roomInfoResp.getRoom_auction().getAuction_list()!=null && roomInfoResp.getRoom_auction().getAuction_list().size()>0){
for (int i=0;i<roomInfoResp.getRoom_auction().getAuction_list().size();i++){
if (roomInfoResp.getRoom_auction() != null) {
if (roomInfoResp.getRoom_auction().getAuction_list() != null && roomInfoResp.getRoom_auction().getAuction_list().size() > 0) {
for (int i = 0; i < roomInfoResp.getRoom_auction().getAuction_list().size(); i++) {
RoomAuction.AuctionListBean auctionListBean = roomInfoResp.getRoom_auction().getAuction_list().get(i);
RoomPitBean pitBean = new RoomPitBean();
pitBean.setUser_id(auctionListBean.getUser_id());
@@ -230,6 +247,17 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
pitList.clear();
pitList.addAll(uniquePitSet);
}
if (roomInfoResp.getRoom_auction().getAuction_user() != null) {
if (roomInfoResp.getRoom_auction().getAuction_user().getUser_id() != null && !roomInfoResp.getRoom_auction().getAuction_user().getUser_id().equals(SpUtil.getUserId() + "")) {
RewardUserBean rewardUserBean = new RewardUserBean();
rewardUserBean.setUser_id(roomInfoResp.getRoom_auction().getAuction_user().getUser_id());
rewardUserBean.setNickname(roomInfoResp.getRoom_auction().getAuction_user().getNickname());
rewardUserBean.setAvatar(roomInfoResp.getRoom_auction().getAuction_user().getAvatar());
rewardUserBean.setPit_number("888");
result.add(rewardUserBean);
}
}
}
// 优先添加指定麦位
@@ -237,7 +265,7 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
for (RoomPitBean bean : pitList) {
if (bean.getPit_number().equals(targetPit) &&
!bean.getUser_id().equals("0") && !bean.getUser_id().equals("") &&
!bean.getUser_id().equals(SpUtil.getUserId())) {
!bean.getUser_id().equals(SpUtil.getUserId() + "")) {
RewardUserBean rewardUserBean = new RewardUserBean();
rewardUserBean.setUser_id(bean.getUser_id());
@@ -268,9 +296,28 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
}
}
List<RewardUserBean> uniquePitSet = removeDuplicateByUserId(result);
result.clear();
result.addAll(uniquePitSet);
return result;
}
// TODO: 2025/9/15 去重
private List<RewardUserBean> removeDuplicateByUserId(List<RewardUserBean> list) {
Set<String> userIdSet = new HashSet<>();
List<RewardUserBean> uniqueList = new ArrayList<>();
for (RewardUserBean bean : list) {
if (bean != null && bean.getUser_id() != null && !userIdSet.contains(bean.getUser_id())) {
userIdSet.add(bean.getUser_id());
uniqueList.add(bean);
}
}
return uniqueList;
}
@Override
protected void initView() {
// mBinding.rvGiftUser.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false));
@@ -287,10 +334,22 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
mBinding.tvAllWheat.setOnClickListener(this::onClisk);
float[] corners = {0f, 65f, 65f, 0f};
ThemeableDrawableUtils.setThemeableRoundedBackground( mBinding.tvGive, ColorManager.getInstance().getPrimaryColorInt(), corners);
ThemeableDrawableUtils.setThemeableRoundedBackground(mBinding.tvGive, ColorManager.getInstance().getPrimaryColorInt(), corners);
mBinding.tvGive.setTextColor(ColorManager.getInstance().getButtonColorInt());
mBinding.cz.setTextColor(ColorManager.getInstance().getPrimaryColorInt());
ViewGroup.LayoutParams layoutParams = mBinding.llGiftRule.getLayoutParams();
layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT; // 使用你定义的getWidth方法
layoutParams.height = SystemUtils.getWidth(64); // 示例高度
mBinding.llGiftRule.setLayoutParams(layoutParams);
float[] corners2 = {56f, 56f, 56f, 56f};
ThemeableDrawableUtils.setThemeableRoundedBackground(mBinding.tvBbQs, ColorManager.getInstance().getPrimaryColorInt(), corners2);
mBinding.tvBbQs.setTextColor(ColorManager.getInstance().getButtonColorInt());
mBinding.tvBbQs.setOnClickListener(this::onClisk);
}
private void onClisk(View view1) {
@@ -317,7 +376,7 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
});
}
mSelectGiftNumPopupWindow.setData(mGiftNumList);
mSelectGiftNumPopupWindow.showAtLocation(mBinding.tvGiveCoinNum, Gravity.BOTTOM | Gravity.RIGHT, 100, 230);
mSelectGiftNumPopupWindow.showAtLocation(mBinding.tvGiveCoinNum, Gravity.BOTTOM | Gravity.RIGHT, 100, 190);
} else if (view1.getId() == R.id.tv_give) {
@@ -326,9 +385,14 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
giftNumber = mGiftNumList.get(i).getNumber();
}
}
giveGift(giftNumber);
if (packType == 1) {
giveGift(giftNumber);
} else {
giveGift(giftNumber);
}
} else if (view1.getId() == R.id.cz) {
RechargeDialogFragment.show(roomId, null,getActivity().getSupportFragmentManager());
RechargeDialogFragment.show(roomId, null, getActivity().getSupportFragmentManager(),"","");
dismiss();
} else if (view1.getId() == R.id.tv_all_wheat) {//全麦
if (all) {
gifyuseradapter.allElection(false);
@@ -340,35 +404,116 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
all = !all;
oldSelectedIds.clear();
oldSelectedIds.addAll(gifyuseradapter.getAllSelectedIds());
} else if (view1.getId() == R.id.tv_bb_qs) {
int count = gifyuseradapter.getSelectCount();
if (count <=0) {
ToastUtils.show("请选择打赏的用户");
return;
}
if (gifyuseradapter.getUserIdCount() > 1) {
ToastUtils.show("一键全送只能选择一个用户");
return;
}
if (userInfo != null) {
if (userInfo.getAuction_id() != null) {
auction_id =userInfo.getAuction_id();
} else {
auction_id = "";
}
}
queren();
}
}
private void queren() {
// 创建并显示确认对话框
new ConfirmDialog(getActivity(),
"提示",
"是否确认将背包礼物全部送出?",
"确认",
"取消",
v -> {
// 点击“确认”按钮时执行删除操作
MvpPre.getGiftPack(roomId, gifyuseradapter.getUserIdToString(), heart_id, auction_id);
},
v -> {
// 点击“取消”按钮时什么都不做
}, false, 0).show();
}
private String giftNumber = "";
private RoomGiftGiveEvent roomGiftGiveEvent;
int packType;
@Subscribe(threadMode = ThreadMode.MAIN)
public void onGiftDoubleClickEvent(GiftDoubleClickEvent event) {
getSelectedGift();
giveGift("1");
packType = 1;
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void userRefresh(GiftUserRefreshEvent event) {
if (event.gift.getRule() == null) {
if (event.gift == null || event.gift.getRule() == null) {
mBinding.llGiftRule.setVisibility(View.GONE);
} else {
if (event.gift.getActivities_id() == 5) {
showGiftLotteryDialog(event.gift, roomId);
return;
}
mBinding.llGiftRule.setVisibility(View.VISIBLE);
setGiftDetail(event.gift);
}
// if (event.gift.isManghe()){
// mBinding.llGiftRule.setVisibility(View.VISIBLE);
// setGiftDetail(event.gift);
// }else {
// mBinding.llGiftRule.setVisibility(View.GONE);
// }
roonGiftModel = event.gift;
if (event.addSelf) {
roonGiftModel = event.gift;
}
}
private GiftLotteryDialog currentDialog;
private void showGiftLotteryDialog(RoonGiftModel gift, String roomId) {
String userId = gifyuseradapter.getUserIdToString();
if (userId == null || userId.isEmpty()) {
ToastUtils.show("请先选择人员");
gift.setChecked(false);
return;
}
// this.dismiss();
// FragmentManager fm = getParentFragmentManager();
// GiftLotteryDialog newDialog = GiftLotteryDialog.newInstance(gift.getGift_bag() + "", roomId, userId);
// newDialog.show(fm, "GiftLotteryDialog");
try {
// 直接显示对话框,移除有问题的 FragmentTransaction
this.dismissAllowingStateLoss(); // 使用 dismissAllowingStateLoss 更安全
FragmentManager fm = getParentFragmentManager();
if (fm != null && !fm.isDestroyed()) {
if (jingp==1){
auction_id= userInfo.getAuction_id() ;
}
if (auction_id==null || auction_id.isEmpty()){
auction_id="";
}
GiftLotteryDialog newDialog = GiftLotteryDialog.newInstance(
String.valueOf(gift.getGift_bag()), roomId, userId, heart_id,auction_id);
newDialog.show(fm, "GiftLotteryDialog");
}
} catch (Exception e) {
Log.e("RoomGiftDialogFragment", "Error in showGiftLotteryDialog", e);
ToastUtils.show("操作失败,请重试");
}
// 如果当前dialog存在且正在显示先关闭
// if (currentDialog != null && currentDialog.isVisible()) {
// currentDialog.dismiss();
// }
// currentDialog = GiftLotteryDialog.newInstance(gift.getGift_bag()+"", roomId, userId);
// currentDialog.show(getChildFragmentManager(), "GiftLotteryDialog");
}
public void setGiftDetail(RoonGiftModel giftDetailResp) {
if (giftDetailResp == null) {
return;
@@ -378,7 +523,14 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
mBinding.ivWf.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ARouter.getInstance().build(ARouteConstants.H5).withString("url", giftDetailResp.getRule_url()).withString("title", "盲盒规则").navigation();
// ARouter.getInstance().build(ARouteConstants.H5).withString("url", giftDetailResp.getRule_url()).withString("title", "盲盒规则").navigation();
Intent intent = new Intent(getActivity(), WebViewActivity.class);
intent.putExtra("url", giftDetailResp.getRule_url());
intent.putExtra("title", "盲盒规则");
startActivity(intent);
}
});
@@ -411,89 +563,120 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
int currentItem = mBinding.viewPager.getCurrentItem();
String userId = gifyuseradapter.getUserIdToString();
String pit = gifyuseradapter.getUserPitToString();
if (currentItem < 1) {
if (giftModel == null) {
ToastUtils.show("请选择礼物");
return;
}
int count = gifyuseradapter.getSelectCount();
if (count <= 0) {
ToastUtils.show("请选择打赏对象");
return;
}
if (TextUtils.isEmpty(num)) {
ToastUtils.show("请选择打赏礼物数量");
return;
}
if (Integer.valueOf(num) <= 0) {
ToastUtils.show("请选择打赏礼物数量");
return;
}
} else {
if (roonGiftModel == null) {
ToastUtils.show("请选择礼物");
return;
}
int count = gifyuseradapter.getSelectCount();
if (count <= 0) {
ToastUtils.show("请选择打赏对象");
return;
}
if (TextUtils.isEmpty(num)) {
ToastUtils.show("请选择打赏礼物数量");
return;
}
if (Integer.valueOf(num) <= 0) {
ToastUtils.show("请选择打赏礼物数量");
return;
}
// if (currentItem < 1) {
// if (giftModel == null) {
// ToastUtils.show("请选择礼物");
// return;
// }
// int count = gifyuseradapter.getSelectCount();
// if (count <= 0) {
// ToastUtils.show("请选择打赏对象");
// return;
// }
//
// if (TextUtils.isEmpty(num)) {
// ToastUtils.show("请选择打赏礼物数量");
// return;
// }
// if (Integer.valueOf(num) <= 0) {
// ToastUtils.show("请选择打赏礼物数量");
// return;
// }
// } else {
if (roonGiftModel == null|| roonGiftModel.getGift_id() == null) {
ToastUtils.show("请选择礼物");
return;
}
int count = gifyuseradapter.getSelectCount();
if (count <= 0) {
ToastUtils.show("请选择打赏对象");
return;
}
if (currentItem != 0) {
//礼物打赏
giftNumber = num;
roomGiftGiveEvent = new RoomGiftGiveEvent(userId, roomId, pit, num, 0, null, roonGiftModel);
if (userInfo != null) {
if (userInfo.getPit_number() != null) {
if (userInfo.getPit_number().equals("888") || userInfo.getPit_number().equals("")) {
if (userInfo.getPit_number().isEmpty() || jingp != 1) {
MvpPre.roomGift(roomId, roonGiftModel.getGift_id(), giftNumber, userId, "1", pit);
if (TextUtils.isEmpty(num)) {
ToastUtils.show("请选择打赏礼物数量");
return;
}
if (Integer.valueOf(num) <= 0) {
ToastUtils.show("请选择打赏礼物数量");
return;
}
// }
if (roonGiftModel != null && roonGiftModel.getGift_id() != null) {
if (currentItem != 0) {
//礼物打赏
giftNumber = num;
if (userInfo != null) {
if (userInfo.getPit_number() != null) {
if (userInfo.getPit_number().equals("888") || userInfo.getPit_number().equals("")) {
if (userInfo.getPit_number().isEmpty() || jingp != 1) {
roomGiftGiveEvent = new RoomGiftGiveEvent(userId, roomId, pit, num, 0, null, roonGiftModel, heart_id, "");
MvpPre.roomGift(roomId, roonGiftModel.getGift_id(), giftNumber, userId, "1", pit, "");
} else {
roomGiftGiveEvent = new RoomGiftGiveEvent(userId, roomId, pit, num, 0, null, roonGiftModel, heart_id, userInfo.getAuction_id());
EventBus.getDefault().post(roomGiftGiveEvent);
roomGiftGiveEvent = null;
MvpPre.roomAuctionJoin(userInfo.getAuction_id(), userInfo.getUser_id() + "", roonGiftModel.getGift_id(), num, "1");
dismiss();
}
} else {
MvpPre.roomAuctionJoin(userInfo.getAuction_id(), userInfo.getUser_id() + "", roonGiftModel.getGift_id(), num, "1");
roomGiftGiveEvent = new RoomGiftGiveEvent(userId, roomId, pit, num, 0, null, roonGiftModel, heart_id, "");
MvpPre.roomGift(roomId, roonGiftModel.getGift_id(), giftNumber, userId, "1", pit, heart_id);
}
}else {
MvpPre.roomGift(roomId, roonGiftModel.getGift_id(), giftNumber, userId, "1", pit);
} else {
roomGiftGiveEvent = new RoomGiftGiveEvent(userId, roomId, pit, num, 0, null, roonGiftModel, heart_id, "");
MvpPre.roomGift(roomId, roonGiftModel.getGift_id(), giftNumber, userId, "1", pit, "");
}
} else {
MvpPre.roomGift(roomId, roonGiftModel.getGift_id(), giftNumber, userId, "1", pit);
if (all) {
MvpPre.roomGift(roomId, roonGiftModel.getGift_id(), giftNumber, userId, "1", null, "");
} else {
MvpPre.roomGift(roomId, roonGiftModel.getGift_id(), giftNumber, userId, "1", pit, "");
}
roomGiftGiveEvent = new RoomGiftGiveEvent(userId, roomId, pit, num, 0, null, roonGiftModel, heart_id, "");
}
} else if (currentItem == 0) {
if (userInfo==null){
giftNumber = num;
beibaoId = roonGiftModel.getGift_id();
MvpPre.roomGift(roomId, roonGiftModel.getGift_id(), giftNumber, userId, "2", pit, heart_id);
return;
}
if ( userInfo.getPit_number()!=null&& userInfo.getPit_number().equals("888") || userInfo.getPit_number().equals("")) {
if (userInfo.getPit_number().isEmpty() || jingp != 1) {
giftNumber = num;
beibaoId = roonGiftModel.getGift_id();
MvpPre.roomGift(roomId, roonGiftModel.getGift_id(), giftNumber, userId, "2", pit, heart_id);
}else {
beibaoId = roonGiftModel.getGift_id();
MvpPre.roomAuctionJoin(userInfo.getAuction_id(), userInfo.getUser_id() + "", roonGiftModel.getGift_id(), num, "2");
roomGiftGiveEvent = new RoomGiftGiveEvent(userId, roomId, pit, num, 0, null, roonGiftModel, heart_id, userInfo.getAuction_id());
EventBus.getDefault().post(roomGiftGiveEvent);
roomGiftGiveEvent = null;
// dismiss();
}
} else{
giftNumber = num;
beibaoId = roonGiftModel.getGift_id();
MvpPre.roomGift(roomId, roonGiftModel.getGift_id(), giftNumber, userId, "2", pit, heart_id);
}
} else {
if (all) {
MvpPre.roomGift(roomId, roonGiftModel.getGift_id(), giftNumber, userId, "1", null);
} else {
MvpPre.roomGift(roomId, roonGiftModel.getGift_id(), giftNumber, userId, "1", pit);
}
}
} else if (currentItem == 0) {
// if (all) {
// MvpPre.roomGift(roomId, roonGiftModel.getGift_id(), giftNumber, userId, "1", null);
// } else {
// MvpPre.roomGift(roomId, roonGiftModel.getGift_id(), giftNumber, userId, "1", pit);
// }
giftNumber = num;
// roomGiftGiveEvent = new RoomGiftGiveEvent(userId, roomId, pit, num, 1, giftModel, null);
MvpPre.roomGift(roomId, roonGiftModel.getGift_id(), giftNumber, userId, "2", pit);
} else {
//背包礼物打赏
//背包礼物打赏
// giftNumber = num;
// roomGiftGiveEvent = new RoomGiftGiveEvent(userId, roomId, pit, num, 1, giftModel, null);
//
// MvpPre.giveBackGift(userId, giftModel.getGift_id(), roomId, pit, num, giftModel, 1);
}
} else {
ToastUtils.show("数据错误");
dismiss();
}
}
private String beibaoId;
@Override
protected int getLayoutId() {
return R.layout.room_gift_dialog;
@@ -512,16 +695,81 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
}
}
private List<GiftLabelBean> giftLabelBeanList;
@Override
public void getGiftLabel(List<GiftLabelBean> giftLabelBeans) {
giftLabelBeanList = new ArrayList<>();
giftLabelBeanList.addAll(giftLabelBeans);
GiftLabelBean giftLabelBean = new GiftLabelBean();
giftLabelBean.setId("0");
giftLabelBean.setName("背包");
giftLabelBeans.add(0, giftLabelBean);
mBinding.viewPager.setAdapter(new MyFragmentPagerAdapter(getChildFragmentManager(), giftLabelBeans, fragmentList));
mBinding.viewPager.setAdapter(new MyFragmentPagerAdapter(getChildFragmentManager(), giftLabelBeans, fragmentList, roomId));
mBinding.viewPager.setOffscreenPageLimit(0);
mBinding.slidingTabLayout.setViewPager(mBinding.viewPager);
mBinding.slidingTabLayout.setCurrentTab(1);
refreshCurrentGiftFragment(giftLabelBeans.get(1).getId(),1,roomId);
mBinding.viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
// 当页面切换时,控制 tv_bb_qs 按钮的显示
updateTvBbQsVisibility(position);
refreshCurrentGiftFragment(giftLabelBeans.get(position).getId(),1,roomId);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
// 初始化时设置按钮可见性
updateTvBbQsVisibility(1);
}
// 调用示例
private void refreshCurrentGiftFragment(String id,int type,String roomId) {
if (getCurrentGiftFragment()!=null){
getCurrentGiftFragment().loadDataIfNeeded(id,type,roomId);
}
}
private GiftTwoDetailsFragment getCurrentGiftFragment() {
int currentPosition = mBinding.viewPager.getCurrentItem();
// 使用 ViewPager 的 adapter 获取当前 fragment
MyFragmentPagerAdapter adapter = (MyFragmentPagerAdapter) mBinding.viewPager.getAdapter();
if (adapter != null) {
// 直接从 adapter 获取 fragment
Fragment fragment = adapter.getItem(currentPosition);
if (fragment instanceof GiftTwoDetailsFragment) {
return (GiftTwoDetailsFragment) fragment;
}
}
return null;
}
// 控制 tv_bb_qs 按钮显示的方法
private void updateTvBbQsVisibility(int currentPosition) {
// 假设你希望在特定位置例如位置1显示按钮
if (currentPosition == 0) { // 根据你的需求调整位置
// 显示按钮
if (mBinding.tvBbQs != null) {
mBinding.tvBbQs.setVisibility(View.VISIBLE);
mBinding.cz.setVisibility(View.GONE);
MvpPre.getGiftPackListCount();
}
} else {
// 隐藏按钮
if (mBinding.tvBbQs != null) {
mBinding.tvBbQs.setVisibility(View.GONE);
mBinding.cz.setVisibility(View.VISIBLE);
MvpPre.wallet();
}
}
}
@Override
@@ -532,11 +780,23 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
@Override
public void giveGift() {
// dismiss();
if (mBinding.viewPager.getCurrentItem() == 0) {
MvpPre.getGiftPackListCount();
GiftPackEvent giftPackEvent = new GiftPackEvent();
giftPackEvent.setBdid(beibaoId);
EventBus.getDefault().post(giftPackEvent);
return;
}
if (roomGiftGiveEvent != null) {
EventBus.getDefault().post(roomGiftGiveEvent);
roomGiftGiveEvent = null;
dismiss();
return;
}
dismiss();
}
@Override
@@ -552,8 +812,19 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
@Override
public void roomAuctionJoin(RoomAuction.AuctionListBean auctionListBean) {
com.blankj.utilcode.util.ToastUtils.showShort("竞拍成功");
dismiss();
// com.blankj.utilcode.util.ToastUtils.showShort("竞拍成功");
if (roomGiftGiveEvent != null) {
EventBus.getDefault().post(roomGiftGiveEvent);
roomGiftGiveEvent = null;
// dismiss();
}
if (mBinding.viewPager.getCurrentItem()==0) {
GiftPackEvent giftPackEvent = new GiftPackEvent();
giftPackEvent.setBdid(beibaoId);
EventBus.getDefault().post(giftPackEvent);
MvpPre.getGiftPackListCount();
}
// dismiss();
}
@Override
@@ -561,23 +832,62 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
}
private static class MyFragmentPagerAdapter extends FragmentStatePagerAdapter {
@Override
public void getGiftPack(String s) {
if (s != null) {
com.hjq.toast.ToastUtils.show(s);
dismiss();
} else {
com.hjq.toast.ToastUtils.show("一键全清背包礼物失败");
}
}
@Override
public void getGiftPackListCount(GiftPackListCount giftPackListCount) {
if (giftPackListCount != null){
mBinding.tvRewardGift.setText(giftPackListCount.getCount());
}
}
private class MyFragmentPagerAdapter extends FragmentStatePagerAdapter {
private List<GiftLabelBean> list;
private List<Fragment> fragmentList;
private String roomId;
public MyFragmentPagerAdapter(FragmentManager fm, List<GiftLabelBean> list, List<Fragment> fragmentList) {
public MyFragmentPagerAdapter(FragmentManager fm, List<GiftLabelBean> list, List<Fragment> fragmentList, String roomId) {
super(fm);
this.list = list;
this.fragmentList = fragmentList;
this.list = list != null ? list : new ArrayList<>();
// 不直接使用传入的 fragmentList,而是创建一个新的列表
this.fragmentList = new ArrayList<>();
// 初始化 fragmentList 的大小,用 null 填充
for (int i = 0; i < this.list.size(); i++) {
this.fragmentList.add(null);
}
this.roomId = roomId;
}
@Override
public Fragment getItem(int position) {
// 边界检查
if (position < 0 || list == null || position >= list.size()) {
return null;
}
// 检查该位置是否已经有 Fragment 实例
if (position < fragmentList.size() && fragmentList.get(position) != null) {
return fragmentList.get(position);
}
// 创建新的 Fragment
GiftLabelBean model = list.get(position);
Fragment fragment = GiftTwoDetailsFragment.newInstance(model.getId(), 1);
fragmentList.add(fragment); // 保存 Fragment 实例
Fragment fragment = GiftTwoDetailsFragment.newInstance(model.getId(), 1, roomId);
// 确保 fragmentList 有足够的空间
while (fragmentList.size() <= position) {
fragmentList.add(null);
}
// 在指定位置设置 Fragment 实例
fragmentList.set(position, fragment);
return fragment;
}
@@ -589,6 +899,9 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
@Nullable
@Override
public CharSequence getPageTitle(int position) {
if (list == null || position < 0 || position >= list.size()) {
return null;
}
GiftLabelBean model = list.get(position);
return model.getName();
}

View File

@@ -132,8 +132,8 @@ public class RoomHostAddFragment extends BaseMvpDialogFragment<RoomHostPresenter
if (url.contains("http")) {
ImageView imageView = new ImageView(getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_37),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_74),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_17)
);
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView.setLayoutParams(params);

View File

@@ -31,11 +31,12 @@ public class RoomMessageDialogFragment extends BaseMvpDialogFragment<NewsPresent
private static final String TAG = "BaseDialogFragment";
public static void show(FragmentManager fragmentManager) {
public static RoomMessageDialogFragment show(FragmentManager fragmentManager) {
RoomMessageDialogFragment dialogFragment = new RoomMessageDialogFragment();
Bundle args = new Bundle();
dialogFragment.setArguments(args);
dialogFragment.show(fragmentManager, "RoomOnlineDialogFragment");
return dialogFragment;
}
@Override

View File

@@ -19,13 +19,13 @@ import com.example.moduleroom.contacts.RoomContacts;
import com.example.moduleroom.databinding.FragmentRoomOnlineDialogBinding;
import com.example.moduleroom.presenter.RoomPresenter;
import com.xscm.moduleutil.base.BaseMvpDialogFragment;
import com.xscm.moduleutil.bean.RedPacketInfo;
import com.xscm.moduleutil.bean.RoomCharmRankBean;
import com.xscm.moduleutil.bean.UserOnlineStatusBean;
import com.xscm.moduleutil.bean.room.RoomInfoResp;
import com.xscm.moduleutil.bean.room.RoomOnline;
import com.xscm.moduleutil.bean.room.RoomOnlineBean;
import com.xscm.moduleutil.bean.room.RoomUserBean;
import com.xscm.moduleutil.databinding.FragmentCommentDialogBinding;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
@@ -52,7 +52,7 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment<RoomPresente
return new RoomPresenter(this, getActivity());
}
public static void show(String id, String pit_number, RoomUserBean hostUser, RoomInfoResp roomInfoResp, FragmentManager fragmentManager) {
public static RoomOnlineDialogFragment show(String id, String pit_number, RoomUserBean hostUser, RoomInfoResp roomInfoResp, FragmentManager fragmentManager) {
RoomOnlineDialogFragment dialogFragment = new RoomOnlineDialogFragment();
Bundle args = new Bundle();
args.putString("roomId", id); // 可选:传递参数
@@ -61,6 +61,7 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment<RoomPresente
args.putSerializable("roomInfoResp", roomInfoResp);
dialogFragment.setArguments(args);
dialogFragment.show(fragmentManager, "RoomOnlineDialogFragment");
return dialogFragment;
}
@Override
@@ -100,15 +101,32 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment<RoomPresente
mBinding.srl.setOnRefreshLoadMoreListener(new OnRefreshLoadMoreListener() {
@Override
public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
page++;
MvpPre.getRoomOnline(getArguments().getString("roomId"), page + "", "10");
// 添加延迟以避免过于频繁的请求
mBinding.getRoot().postDelayed(() -> {
page++;
if (MvpPre != null && getArguments() != null) {
MvpPre.getRoomOnline(getArguments().getString("roomId"), page + "", "10");
} else {
refreshLayout.finishLoadMore(false);
}
}, 300);
}
@Override
public void onRefresh(@NonNull RefreshLayout refreshLayout) {
// EventBus.getDefault().post(new BannerRefreshEvent());
page = 1;
MvpPre.getRoomOnline(getArguments().getString("roomId"), "1", "10");
// page = 1;
// MvpPre.getRoomOnline(getArguments().getString("roomId"), "1", "10");
// 添加延迟以避免过于频繁的请求
mBinding.getRoot().postDelayed(() -> {
page = 1;
if (MvpPre != null && getArguments() != null) {
MvpPre.getRoomOnline(getArguments().getString("roomId"), "1", "10");
} else {
refreshLayout.finishRefresh(false);
}
}, 300);
}
});
@@ -129,7 +147,13 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment<RoomPresente
@Override
public void onUserInfoClick(RoomOnlineBean item) {
RoomUserInfoFragment.show(roomId, item.getUser_id() + "", pit_number, getHostUser(hostUser), false, 4, isNumberWhether(), getChildFragmentManager());
// 使用 post 延迟执行,确保 dismiss 完成后再显示新对话框
mBinding.getRoot().post(() -> {
mBinding.getRoot().post(() -> {
RoomUserInfoFragment.show(roomId, item.getUser_id() + "", pit_number, getHostUser(hostUser), false, 4, isNumberWhether(), getParentFragmentManager());
});
dismiss();
});
}
});
@@ -147,6 +171,14 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment<RoomPresente
// });
}
// 在类中添加以下方法
private void resetRefreshState() {
if (mBinding != null && mBinding.srl != null) {
mBinding.srl.resetNoMoreData();
}
page = 1;
}
private int isNumberWhether() {
for (int i = 0; i < roomInfoResp.getRoom_info().getPit_list().size(); i++) {
if (roomInfoResp.getRoom_info().getPit_list().get(i).getPit_number().equals("9") && roomInfoResp.getRoom_info().getPit_list().get(i).getUser_id() != null &&
@@ -209,54 +241,152 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment<RoomPresente
@Override
public void getRoomOnline(RoomOnline onlineBean) {
List<RoomOnlineBean> roomOnlineBeanList=new ArrayList<>();
int type_pit;
if (pit_number.isEmpty()) {
type_pit = 1;
} else {
type_pit = 2;
}
if (onlineBean.getOn_pit() != null && onlineBean.getOn_pit().size() > 0) {
RoomOnlineBean roomOnlineBean = new RoomOnlineBean();
roomOnlineBean.setItemViewType(1);
roomOnlineBean.setTypeNames("麦上用户");
roomOnlineBeanList.add(roomOnlineBean);
for (RoomOnlineBean roomOnlineBean1 : onlineBean.getOn_pit()) {
roomOnlineBean1.setType(1);
roomOnlineBean1.setType_pit(0);
roomOnlineBean1.setItemViewType(2);
roomOnlineBeanList.add(roomOnlineBean1);
try {
// 确保在主线程中执行UI操作
if (getActivity() == null || mBinding == null) {
return;
}
getActivity().runOnUiThread(() -> {
// 完成刷新或加载更多操作
if (mBinding.srl != null) {
if (page <= 1) {
mBinding.srl.finishRefresh();
} else {
mBinding.srl.finishLoadMore();
}
}
List<RoomOnlineBean> roomOnlineBeanList = new ArrayList<>();
// 处理第一页数据(刷新操作)
if (page <= 1) {
// 清空之前的数据
roomOnlineAdapter.setNewData(new ArrayList<>());
}
// roomOnlineAdapter.setNewData(roomOnlineBeanList);
int type_pit;
if (pit_number.isEmpty()) {
type_pit = 1;
} else {
type_pit = 2;
}
if (onlineBean.getOn_pit() != null && onlineBean.getOn_pit().size() > 0) {
RoomOnlineBean roomOnlineBean = new RoomOnlineBean();
roomOnlineBean.setItemViewType(1);
roomOnlineBean.setTypeNames("麦上用户");
roomOnlineBeanList.add(roomOnlineBean);
for (RoomOnlineBean roomOnlineBean1 : onlineBean.getOn_pit()) {
roomOnlineBean1.setType(1);
roomOnlineBean1.setType_pit(0);
roomOnlineBean1.setItemViewType(2);
roomOnlineBeanList.add(roomOnlineBean1);
}
// roomOnlineAdapter.setNewData(onlineBean.getOn_pit());
}
if (onlineBean.getOff_pit() != null && onlineBean.getOff_pit().size() > 0) {
RoomOnlineBean roomOnlineBean = new RoomOnlineBean();
roomOnlineBean.setItemViewType(1);
roomOnlineBean.setTypeNames("麦下用户");
roomOnlineBeanList.add(roomOnlineBean);
for (RoomOnlineBean roomOnlineBean2 : onlineBean.getOff_pit()) {
roomOnlineBean2.setType(2);
roomOnlineBean2.setType_pit(type_pit);
roomOnlineBean2.setItemViewType(2);
roomOnlineBeanList.add(roomOnlineBean2);
}
}
if (onlineBean.getOff_pit() != null && onlineBean.getOff_pit().size() > 0) {
RoomOnlineBean roomOnlineBean = new RoomOnlineBean();
roomOnlineBean.setItemViewType(1);
roomOnlineBean.setTypeNames("麦下用户");
roomOnlineBeanList.add(roomOnlineBean);
for (RoomOnlineBean roomOnlineBean2 : onlineBean.getOff_pit()) {
roomOnlineBean2.setType(2);
roomOnlineBean2.setType_pit(type_pit);
roomOnlineBean2.setItemViewType(2);
roomOnlineBeanList.add(roomOnlineBean2);
}
// roomOnlineAdapter2.setNewData(onlineBean.getOff_pit());
}
roomOnlineAdapter.setNewData(roomOnlineBeanList);
int total = onlineBean.getOn_pit().size() + onlineBean.getOff_pit().size();
}
mBinding.tvNum.setText("在线用户(" + total + ")人");
if (getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).setOnlineNumber(total);
// 根据是刷新还是加载更多来处理数据
if (page <= 1) {
// 刷新操作,设置新数据
roomOnlineAdapter.setNewData(roomOnlineBeanList);
} else {
// 加载更多操作,添加数据
if (roomOnlineBeanList.size() > 0) {
roomOnlineAdapter.addData(roomOnlineBeanList);
} else {
// 没有更多数据了
if (mBinding.srl != null) {
mBinding.srl.finishLoadMoreWithNoMoreData();
}
}
}
// 更新用户总数
// 更新用户总数 - 仅在第一页刷新时更新总数
if (page <= 1) {
int total = 0;
if (onlineBean.getOn_pit() != null) {
total += onlineBean.getOn_pit().size();
}
if (onlineBean.getOff_pit() != null) {
total += onlineBean.getOff_pit().size();
}
// 只有当获取到有效数据时才更新总数显示
if (onlineBean.getOn_pit() != null || onlineBean.getOff_pit() != null) {
mBinding.tvNum.setText("在线用户(" + total + ")人");
if (getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).setOnlineNumber(total);
}
}
// 如果两个列表都为null保持之前的总数显示不变
} else {
// 加载更多时,更新总数显示
int currentTotal = 0;
List<RoomOnlineBean> currentData = roomOnlineAdapter.getData();
for (RoomOnlineBean bean : currentData) {
if (bean.getItemViewType() == 2) { // 只统计用户项,不统计标题项
currentTotal++;
}
}
mBinding.tvNum.setText("在线用户(" + currentTotal + ")人");
if (getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).setOnlineNumber(currentTotal);
}
}
// 检查是否需要禁用加载更多(如果当前页数据少于预期)
if (onlineBean.getOn_pit() != null && onlineBean.getOff_pit() != null) {
int currentCount = onlineBean.getOn_pit().size() + onlineBean.getOff_pit().size();
if (currentCount < 10 && page > 1) { // 每页预期10条数据
if (mBinding.srl != null) {
mBinding.srl.finishLoadMoreWithNoMoreData();
}
}
}
});
} catch (Exception e) {
// 确保在异常情况下也能完成刷新操作
if (getActivity() != null && mBinding != null && mBinding.srl != null) {
getActivity().runOnUiThread(() -> {
if (page <= 1) {
mBinding.srl.finishRefresh(false);
} else {
mBinding.srl.finishLoadMore(false);
}
});
}
e.printStackTrace();
}
}
// @Override
// @Override
// public void getRoomOnline(List<RoomOnlineBean> onlineBean) {
// roomOnlineAdapter.setNewData(onlineBean);
// mBinding.tvNum.setText("在线用户("+onlineBean.size()+")人");
// }
@Override
public void onResume() {
super.onResume();
// 每次恢复时重置刷新状态
resetRefreshState();
}
@Override
public void applyPit() {
@@ -296,6 +426,7 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment<RoomPresente
@Override
public void hostUserPit() {
ToastUtils.showShort("抱麦成功");
dismiss();
}
@Override
@@ -303,6 +434,11 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment<RoomPresente
}
@Override
public void quitRoom2(String roomId) {
}
@Override
public void userGuanzSuccess(String s) {
@@ -322,4 +458,16 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment<RoomPresente
public void userOnlineStatus(List<UserOnlineStatusBean> list) {
}
@Override
public void findRoom() {
mBinding.srl.finishRefresh();
mBinding.srl.finishLoadMore();
}
@Override
public void roomRedPackets(List<RedPacketInfo> list) {
}
}

View File

@@ -3,11 +3,10 @@ package com.example.moduleroom.dialog;
import static com.xscm.moduleutil.bean.room.RoomSettingBean.QXRoomSettingTypeRoomOrderMic;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.*;
import androidx.annotation.NonNull;
import androidx.fragment.app.FragmentManager;
@@ -18,13 +17,17 @@ import com.blankj.utilcode.util.GsonUtils;
import com.blankj.utilcode.util.LogUtils;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.example.moduleroom.R;
import com.example.moduleroom.activity.RoomActivity;
import com.example.moduleroom.adapter.RoomSettingAdapter;
import com.example.moduleroom.contacts.RoomSettingContacts;
import com.example.moduleroom.databinding.DialogRoomSettingFragmentBinding;
import com.example.moduleroom.fragment.RoomBackgroundDialogFragment;
import com.hjq.toast.ToastUtils;
import com.xscm.moduleutil.activity.WebViewActivity;
import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.dialog.ConfirmDialog;
import com.xscm.moduleutil.event.EffectEvent;
import com.xscm.moduleutil.event.FloatingScreenEvent;
import com.xscm.moduleutil.event.MusicEvent;
import com.xscm.moduleutil.event.RoomOutEvent;
import com.xscm.moduleutil.listener.MessageListenerSingleton;
@@ -37,6 +40,7 @@ import com.xscm.moduleutil.bean.room.RoomSettingBean;
import com.xscm.moduleutil.utils.ARouteConstants;
import com.xscm.moduleutil.utils.SpUtil;
import com.xscm.moduleutil.view.QXRedBagSendView;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
@@ -59,18 +63,20 @@ public class RoomSettingFragment extends BaseMvpDialogFragment<RoomSettingPresen
private int read;
private boolean isSelected;
private boolean effectOn = false;//开启/关闭特效
private boolean floatingScreen = false;//开启/关闭飘屏
@Override
protected RoomSettingPresenter bindPresenter() {
return new RoomSettingPresenter(this, getActivity());
}
public static void show(RoomInfoResp roomInfoResp, FragmentManager fragmentManager) {
public static RoomSettingFragment show(RoomInfoResp roomInfoResp, FragmentManager fragmentManager) {
RoomSettingFragment dialogFragment = new RoomSettingFragment();
Bundle args = new Bundle();
args.putSerializable("roomInfoResp", roomInfoResp);
dialogFragment.setArguments(args);
dialogFragment.show(fragmentManager, "RoomSettingFragment");
return dialogFragment;
}
@Override
@@ -78,15 +84,18 @@ public class RoomSettingFragment extends BaseMvpDialogFragment<RoomSettingPresen
super.onAttach(context);
// roomId=getArguments().getString("roomId");
roomInfoResp = (RoomInfoResp) getArguments().getSerializable("roomInfoResp");
if (roomInfoResp==null){
ToastUtils.show("房间信息为空");
return;
}
roomId = roomInfoResp.getRoom_info().getRoom_id();
if (roomInfoResp.getUser_info().getIs_room_owner() != 0) {
read = 1;
} else if (roomInfoResp.getUser_info().getIs_management() != 0) {
read = 2;
}
else if (roomInfoResp.getUser_info().getIs_host() != 0 ) {
} else if (roomInfoResp.getUser_info().getIs_host() != 0) {
read = 3;
}else {
} else {
read = 4;
}
if (roomInfoResp.getUser_info().getPit_number() != 0) {
@@ -131,31 +140,36 @@ public class RoomSettingFragment extends BaseMvpDialogFragment<RoomSettingPresen
protected void initData() {
dataList = new ArrayList<>();
effectOn = SpUtil.getOpenEffect() == 1;
floatingScreen = SpUtil.getFloatingScreen() == 1;
boolean b = roomInfoResp.getRoom_info().getRoom_up_pit_type().equals("1");
LogUtils.e("effectOn=" + effectOn);
// 添加标题和对应的内容项
dataList.add(new RoomSettingBean("房间类型", null, null, null, -1, read, isSelected, false, false));
dataList.add(new RoomSettingBean("点唱", "ic_sing", null, null, RoomSettingBean.QXRoomSettingTypeRoomTypeSing, read, isSelected, false, false));
dataList.add(new RoomSettingBean("拍卖", "ic_auction", null, null, RoomSettingBean.QXRoomSettingTypeRoomTypeAuction, read, isSelected, false, false));
dataList.add(new RoomSettingBean("男神", "ic_boy", null, null, RoomSettingBean.QXRoomSettingTypeRoomTypeBoy, read, isSelected, false, false));
dataList.add(new RoomSettingBean("女神", "ic_girl", null, null, RoomSettingBean.QXRoomSettingTypeRoomTypeGirl, read, isSelected, false, false));
dataList.add(new RoomSettingBean(" 交友", "ic_jiaoy", null, null, RoomSettingBean.QXRoomSettingTypeRoomTypeJiaoy, read, isSelected, false, false));
// dataList.add(new RoomSettingBean("男神", "ic_boy", null, null, RoomSettingBean.QXRoomSettingTypeRoomTypeBoy, read, isSelected, false, false));
// dataList.add(new RoomSettingBean("女神", "ic_girl", null, null, RoomSettingBean.QXRoomSettingTypeRoomTypeGirl, read, isSelected, false, false));
dataList.add(new RoomSettingBean(" 交友", "jiao_y", null, null, RoomSettingBean.QXRoomSettingTypeRoomTypeHUYU, read, isSelected, false, false));// 添加的新的房间类型 ,交友 ,是原来的男神女神类型
dataList.add(new RoomSettingBean(" 互娱", "ic_jiaoy", null, null, RoomSettingBean.QXRoomSettingTypeRoomTypeJiaoy, read, isSelected, false, false)); //原交友,更改互娱 2025年9月19日11:18:01
dataList.add(new RoomSettingBean("常用工具", null, null, null, -1, read, isSelected, false, false));
dataList.add(new RoomSettingBean("房间补贴", "ic_subsidy", null, null, RoomSettingBean.QXRoomSettingTypeRoomSubsidy, read, isSelected, false, false));
dataList.add(new RoomSettingBean("主持设置", "ic_compere", null, null, RoomSettingBean.QXRoomSettingTypeRoomCompere, read, isSelected, false, false));
dataList.add(new RoomSettingBean("清空消息", "ic_clear_message", null, null, RoomSettingBean.QXRoomSettingTypeRoomClearMessage, read, isSelected, false, false));
dataList.add(new RoomSettingBean("排麦模式", "ic_order_mic", null, null, QXRoomSettingTypeRoomOrderMic, read, isSelected,false, roomInfoResp.getRoom_info().getRoom_up_pit_type().equals("1")));//等于1的时候是排麦模式等于2的时候是自由模式这里判断是否是拍卖模式
dataList.add(new RoomSettingBean("排麦模式", "ic_order_mic", null, null, QXRoomSettingTypeRoomOrderMic, read, isSelected, false, roomInfoResp.getRoom_info().getRoom_up_pit_type().equals("1")));//等于1的时候是排麦模式等于2的时候是自由模式这里判断是否是拍卖模式
dataList.add(new RoomSettingBean("背景音乐", "ic_bg_music", null, null, RoomSettingBean.QXRoomSettingTypeRoomBgMusic, read, isSelected, false, false));
dataList.add(new RoomSettingBean("背景图片", "ic_bg_image", null, null, RoomSettingBean.QXRoomSettingTypeRoomBgImage, read, isSelected, false, false));
dataList.add(new RoomSettingBean("更多操作", null, null, null, -1, read, isSelected, false, false));
dataList.add(new RoomSettingBean("离开房间", "ic_leave", null, null, RoomSettingBean.QXRoomSettingTypeRoomLeave, read, isSelected, false, false));
dataList.add(new RoomSettingBean("发红包", "ic_red", null, null, RoomSettingBean.QXRoomSettingTypeRoomFloatingRed, read, isSelected, false, false));
// dataList.add(new RoomSettingBean("离开房间", "ic_leave", null, null, RoomSettingBean.QXRoomSettingTypeRoomLeave, read, isSelected, false, false));
// dataList.add(new RoomSettingBean("分享房间", "ic_share", null, null, RoomSettingBean.QXRoomSettingTypeRoomShare, read, isSelected, false, false));
dataList.add(new RoomSettingBean("调音台", "ic_my_dress", null, null, RoomSettingBean.QXRoomSettingTypeRoomMyDress, read, isSelected, false, false));
dataList.add(new RoomSettingBean("房间设置", "ic_room_setting", null, null, RoomSettingBean.QXRoomSettingTypeRoomSetting, read, isSelected, false, false));
// dataList.add(new RoomSettingBean("房间欢迎语", "ic_welcome", null, null, RoomSettingBean.QXRoomSettingTypeRoomWelcome,read,isSelected, false));
dataList.add(new RoomSettingBean("关闭特效", "ic_close_effects", null, null, RoomSettingBean.QXRoomSettingTypeRoomCloseEffects, read, isSelected, false,effectOn));
dataList.add(new RoomSettingBean("关闭特效", "ic_close_effects", null, null, RoomSettingBean.QXRoomSettingTypeRoomCloseEffects, read, isSelected, false, effectOn));
dataList.add(new RoomSettingBean("关闭飘屏", "ic_close_floating_screen", null, null, RoomSettingBean.QXRoomSettingTypeRoomFloatingScreen, read, isSelected, false, floatingScreen));
dataList.add(new RoomSettingBean("举报", "ic_report", null, null, RoomSettingBean.QXRoomSettingTypeRoomReport, read, isSelected, false, false));
List<RoomSettingBean> filteredList = new ArrayList<>();
// 更新 itemType
@@ -217,6 +231,11 @@ public class RoomSettingFragment extends BaseMvpDialogFragment<RoomSettingPresen
roomId,
binaryData
);
if (getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).clearData();
}
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomMyDress) {
TunerDialogFragment.show(roomId, getChildFragmentManager());
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomCompere) {//主持设置
@@ -244,30 +263,96 @@ public class RoomSettingFragment extends BaseMvpDialogFragment<RoomSettingPresen
EventBus.getDefault().post(new MusicEvent());
dismiss();
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomLeave) {
EventBus.getDefault().post(new RoomOutEvent());
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomTypeSing) {
MvpPre.changeRoomType(roomId, "1");
}
// else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomLeave) {
// EventBus.getDefault().post(new RoomOutEvent());
// }
else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomTypeSing) {
// MvpPre.changeRoomType(roomId, "1");
queren("1");
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomTypeAuction) {
MvpPre.changeRoomType(roomId, "2");
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomTypeBoy) {
MvpPre.changeRoomType(roomId, "3");
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomTypeGirl) {
MvpPre.changeRoomType(roomId, "4");
// MvpPre.changeRoomType(roomId, "2");
queren("2");
}
// else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomTypeBoy) {
//// MvpPre.changeRoomType(roomId, "3");
// queren("3");
// }
// else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomTypeGirl) {
//// MvpPre.changeRoomType(roomId, "4");
// queren("4");
// }
else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomTypeJiaoy) {
MvpPre.changeRoomType(roomId, "7");
// MvpPre.changeRoomType(roomId, "7");
queren("7");
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomTypeHUYU) {
queren("8");
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomSetting) {
if (roomInfoResp != null) {
ARouter.getInstance().build(ARouteConstants.CREATED_ROOM).withSerializable("roomInfoResp", roomInfoResp).navigation();
} else {
com.blankj.utilcode.util.ToastUtils.showShort("数据错误,请关闭重试");
}
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomReport) {
if (roomId != null) {
// ARouter.getInstance().build(ARouteConstants.H5).withString("url", CommonAppContext.getInstance().getCurrentEnvironment().getH5Url() + "/web/index.html#/pages/feedback/report?id=" + SpUtil.getToken() + "&fromType=" + 2 + "&fromId=" + roomId).navigation();
Intent intent = new Intent(getActivity(), WebViewActivity.class);
intent.putExtra("url", CommonAppContext.getInstance().getCurrentEnvironment().getH5Url() + "/web/index.html#/pages/feedback/report?id=" + SpUtil.getToken() + "&fromType=" + 2 + "&fromId=" + roomId);
startActivity(intent);
}else {
com.blankj.utilcode.util.ToastUtils.showShort("数据错误,请关闭重试");
}
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomSubsidy) {
ARouter.getInstance().build(ARouteConstants.ROOM_ALLOWANCE).withString("from", "我的界面").withString("roomId", roomInfoResp.getRoom_info().getRoom_id() + "").navigation();
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomFloatingScreen) {//2025年9月22日14:10:25添加飘屏关闭打开按钮
if (floatingScreen) {
//关闭
floatingScreen = false;
//保存到本地
SpUtil.setFloatingScreen(0);
EventBus.getDefault().post(new FloatingScreenEvent(false));
bean.setSelect(false);
} else {
//打开
floatingScreen = true;
SpUtil.setFloatingScreen(1);
EventBus.getDefault().post(new FloatingScreenEvent(true));
bean.setSelect(true);
}
upAdapter();
}
else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomSetting) {
ARouter.getInstance().build(ARouteConstants.CREATED_ROOM).withSerializable("roomInfoResp", roomInfoResp).navigation();
}else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomReport){
ARouter.getInstance().build(ARouteConstants.H5).withString("url", CommonAppContext.getInstance().getCurrentEnvironment().getH5Url()+ "/web/index.html#/pages/feedback/report?id=" + SpUtil.getToken() + "&fromType=" + 2 + "&fromId=" + roomId).navigation();
else if (bean.getType()==RoomSettingBean.QXRoomSettingTypeRoomFloatingRed){
if (getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).redDialogView();
}
dismiss();
}
}
});
}
// TODO: 2025/8/29 房间切换提示框
private void queren(String type) {
// 创建并显示确认对话框
new ConfirmDialog(getActivity(),
"提示",
"即将修改房间类型为" + (type.equals("1") ? "点唱" : (type.equals("2") ? "拍卖" : (type.equals("3") ? "男神" : (type.equals("4") ? "女神" : (type.equals("7") ? "互娱" : (type.equals("8") ? "交友" : "")))))),
"确认",
"取消",
v -> {
// 点击“确认”按钮时执行删除操作
MvpPre.changeRoomType(roomId, type);
},
v -> {
// 点击“取消”按钮时什么都不做
}, false, 0).show();
}
private void upAdapter() {
adapter.notifyDataSetChanged();
}
@@ -277,33 +362,48 @@ public class RoomSettingFragment extends BaseMvpDialogFragment<RoomSettingPresen
int roleLevel = bean.getRead(); // 角色等级
boolean onMic = false; // 是否是特定房间
if (roomInfoResp.getRoom_info().getType_id().equals("1") && roomInfoResp.getRoom_info().getLabel_id().equals("2") ){
onMic=true;
if ((roomInfoResp.getRoom_info().getType_id().equals("1") || roomInfoResp.getRoom_info().getType_id().equals("3")
|| roomInfoResp.getRoom_info().getType_id().equals("4") || roomInfoResp.getRoom_info().getType_id().equals("8")) && roomInfoResp.getRoom_info().getLabel_id().equals("2")) {
onMic = true;
}
// 2025年9月22日14:18:50因为声网sdk不对和点唱有关系的所有需要关闭
// 房主显示全部
if (roleLevel == 1) {
if (onMic) {
if (type == RoomSettingBean.QXRoomSettingTypeRoomBgMusic) {
if (type == RoomSettingBean.QXRoomSettingTypeRoomBgMusic || type == RoomSettingBean.QXRoomSettingTypeRoomSubsidy) {
return false;
}
} else {
if (type == RoomSettingBean.QXRoomSettingTypeRoomBgMusic || type == RoomSettingBean.QXRoomSettingTypeRoomSubsidy) {
return false;
}
}
return true;
}else if (roleLevel == 2 || roleLevel == 3){
if (type== RoomSettingBean.QXRoomSettingTypeRoomTypeSing || type == RoomSettingBean.QXRoomSettingTypeRoomTypeAuction ||
type == RoomSettingBean.QXRoomSettingTypeRoomTypeBoy || type == RoomSettingBean.QXRoomSettingTypeRoomTypeGirl||
type== RoomSettingBean.QXRoomSettingTypeRoomClearMessage || type == QXRoomSettingTypeRoomOrderMic
|| type == RoomSettingBean.QXRoomSettingTypeRoomBgMusic || type == RoomSettingBean.QXRoomSettingTypeRoomBgImage||type == -1){
if (onMic ) {
if (type == RoomSettingBean.QXRoomSettingTypeRoomBgMusic){
} else if (roleLevel == 2 || roleLevel == 3) { // type == RoomSettingBean.QXRoomSettingTypeRoomTypeBoy || type == RoomSettingBean.QXRoomSettingTypeRoomTypeGirl || 2025年9月19日11:21:04将男神女神合并成互娱最总是新添加一个标签
if (type == RoomSettingBean.QXRoomSettingTypeRoomTypeSing || type == RoomSettingBean.QXRoomSettingTypeRoomTypeAuction ||
type == RoomSettingBean.QXRoomSettingTypeRoomTypeHUYU ||
type == RoomSettingBean.QXRoomSettingTypeRoomTypeJiaoy ||
type == RoomSettingBean.QXRoomSettingTypeRoomClearMessage || type == QXRoomSettingTypeRoomOrderMic || type == RoomSettingBean.QXRoomSettingTypeRoomFloatingScreen
|| type == RoomSettingBean.QXRoomSettingTypeRoomBgMusic || type == RoomSettingBean.QXRoomSettingTypeRoomBgImage || type == -1) {
if (onMic) {
if (type == RoomSettingBean.QXRoomSettingTypeRoomBgMusic || type == RoomSettingBean.QXRoomSettingTypeRoomSubsidy) {
return false;
}
} else {
if (type == RoomSettingBean.QXRoomSettingTypeRoomBgMusic || type == RoomSettingBean.QXRoomSettingTypeRoomSubsidy) {
return false;
}
}
return true;
}
if (type >= RoomSettingBean.QXRoomSettingTypeRoomLeave &&
type <= RoomSettingBean.QXRoomSettingTypeRoomReport) {
type <= RoomSettingBean.QXRoomSettingTypeRoomReport || type == RoomSettingBean.QXRoomSettingTypeRoomFloatingRed
) {
return true;
} else {
if (type == RoomSettingBean.QXRoomSettingTypeRoomBgMusic || type == RoomSettingBean.QXRoomSettingTypeRoomSubsidy) {
return false;
}
}
return false;
}
@@ -329,7 +429,9 @@ public class RoomSettingFragment extends BaseMvpDialogFragment<RoomSettingPresen
type == RoomSettingBean.QXRoomSettingTypeRoomShare ||
type == RoomSettingBean.QXRoomSettingTypeRoomMyDress ||
type == RoomSettingBean.QXRoomSettingTypeRoomCloseEffects ||
type == RoomSettingBean.QXRoomSettingTypeRoomReport;
type == RoomSettingBean.QXRoomSettingTypeRoomReport ||
type == RoomSettingBean.QXRoomSettingTypeRoomFloatingRed||
type == RoomSettingBean.QXRoomSettingTypeRoomFloatingScreen;
}
@@ -372,10 +474,10 @@ public class RoomSettingFragment extends BaseMvpDialogFragment<RoomSettingPresen
@Override
public void changeRoomSuccess(String s, int position, RoomSettingBean bean) {
if (bean.isSelect()){
if (bean.isSelect()) {
bean.setSelect(false);
adapter.notifyItemChanged(position);
}else {
} else {
bean.setSelect(true);
adapter.notifyItemChanged(position);
}

View File

@@ -25,6 +25,7 @@ import com.example.moduleroom.fragment.RelationshipFragment;
import com.example.moduleroom.presenter.RoomUserPresenter;
import com.example.zhouwei.library.CustomPopWindow;
import com.hjq.toast.ToastUtils;
import com.xscm.moduleutil.activity.WebViewActivity;
import com.xscm.moduleutil.base.BaseMvpDialogFragment;
import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.bean.RelationCardBean;
@@ -126,16 +127,12 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
} else {
mBinding.roomDian.setVisibility(View.VISIBLE);
}
}
@SuppressLint("UseCompatLoadingForDrawables")
@Override
protected void initView() {
mBinding.ivAvatar.setOnClickListener(this::onClick);
mBinding.roomMCz.setOnClickListener(this::onClick);
mBinding.roomDian.setOnClickListener(this::onClick);
@@ -151,6 +148,7 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
mBinding.textView1.setOnClickListener(this::onClick);
mBinding.textView2.setOnClickListener(this::onClick);
mBinding.moreButton.setOnClickListener(this::onClick);
mBinding.imQml.setOnClickListener(this::onClick);
ThemeableDrawableUtils.setThemeableRoundedBackground(mBinding.roomMCz, ColorManager.getInstance().getPrimaryColorInt(), 65);
mBinding.roomMCz.setTextColor(ColorManager.getInstance().getButtonColorInt());
@@ -163,7 +161,11 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
int id = view.getId();
if (id == R.id.room_m_cz) {
if (mBinding.roomMCz.getText().equals("上麦")) {
} else {
MvpPre.applyPit(room_id, "");
}else if (mBinding.roomMCz.getText().equals("抱麦")){
MvpPre.hostUserPit(room_id, pit_number, user_id, "1");
}
else {
if(user_id.equals(SpUtil.getUserId()+"")){
MvpPre.downPit(room_id, pit_number);
}else {
@@ -180,6 +182,7 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
.create()
.showAsDropDown(mBinding.roomMCz, 0, 20);
} else if (id == R.id.im_room_t) {
userInfo.setTa("1");
EventBus.getDefault().post(userInfo);
dismiss();
} else if (id == R.id.im_room_lt) {
@@ -190,8 +193,13 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
} else if (id == R.id.im_room_gz) {
MvpPre.userGuanz(user_id, "1");
}else if (id == R.id.im_room_sl){
userInfo.setPit_number(pit_number);
RoomGiftDialogFragment.show( null,userInfo, room_id,0,getParentFragmentManager());
if (userInfo!=null) {
if (pit_number == null) {
pit_number = "";
}
userInfo.setPit_number(pit_number);
RoomGiftDialogFragment.show(null, userInfo, room_id, 0, "", getParentFragmentManager());
}
dismiss();
}else if (id == R.id.room_lh){
MvpPre.addBlackList(user_id);
@@ -200,9 +208,14 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
// UserGiftWallRoomFragment.newInstance(Integer.parseInt(user_id)).show(getChildFragmentManager(), "UserGiftWallRoomFragment");
}else if (id == R.id.room_jb){
ARouter.getInstance().build(ARouteConstants.H5).withString("url", CommonAppContext.getInstance().getCurrentEnvironment().getH5Url()+ "/web/index.html#/pages/feedback/report?id="+SpUtil.getToken()+"&fromType=1&fromId="+user_id).withString("title", "举报").navigation();
// ARouter.getInstance().build(ARouteConstants.H5).withString("url", CommonAppContext.getInstance().getCurrentEnvironment().getH5Url()+ "/web/index.html#/pages/feedback/report?id="+SpUtil.getToken()+"&fromType=1&fromId="+user_id).withString("title", "举报").navigation();
Intent intent = new Intent(getActivity(), WebViewActivity.class);
intent.putExtra("url", CommonAppContext.getInstance().getCurrentEnvironment().getH5Url()+ "/web/index.html#/pages/feedback/report?id="+SpUtil.getToken()+"&fromType=1&fromId="+user_id);
intent.putExtra("title", "举报");
startActivity(intent);
}else if (id==R.id.iv_avatar){
ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE).withString("userId", userInfo.getUser_id()+"").navigation();
dismiss();
}else if (id==R.id.tv_zb){
RoomHostZBDialog dialog = new RoomHostZBDialog(getContext());
dialog.setListener(new RoomHostIncomeDialog.OnConfirmClickListener() {
@@ -219,6 +232,8 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
dianj(1);
}else if (id==R.id.textView2){
dianj(2);
}else if (id==R.id.im_qml){
MvpPre.clearUserCharm(room_id, user_id);
}
}
@@ -265,7 +280,13 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
} else if (id == R.id.action_report) {
// showContent = "点击 Item菜单6";
//TODO 举报功能
ARouter.getInstance().build(ARouteConstants.H5).withString("url",CommonAppContext.getInstance().getCurrentEnvironment().getH5Url()+ "/web/index.html#/pages/feedback/report?id="+SpUtil.getToken()+"&fromType=1&fromId="+user_id).withString("title", "举报").navigation();
// ARouter.getInstance().build(ARouteConstants.H5).withString("url",CommonAppContext.getInstance().getCurrentEnvironment().getH5Url()+ "/web/index.html#/pages/feedback/report?id="+SpUtil.getToken()+"&fromType=1&fromId="+user_id).withString("title", "举报").navigation();
Intent intent=new Intent(getActivity(), WebViewActivity.class);
intent.putExtra("url", CommonAppContext.getInstance().getCurrentEnvironment().getH5Url()+ "/web/index.html#/pages/feedback/report?id="+SpUtil.getToken()+"&fromType=1&fromId="+user_id);
intent.putExtra("title", "举报");
startActivity(intent);
dismiss();
} else if (id == R.id.action_blacklist) {
MvpPre.addBlackList(user_id);
}
@@ -287,15 +308,34 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
contentView.findViewById(R.id.action_report).setOnClickListener(listener);
contentView.findViewById(R.id.action_blacklist).setOnClickListener(listener);
if (type != 1) {
if (type==1){
contentView.findViewById(R.id.action_set_manager).setVisibility(VISIBLE);
contentView.findViewById(R.id.action_kick_out).setVisibility(VISIBLE);
contentView.findViewById(R.id.action_set_host).setVisibility(VISIBLE);
}else if (type==2){
contentView.findViewById(R.id.action_set_manager).setVisibility(GONE);
contentView.findViewById(R.id.action_kick_out).setVisibility(VISIBLE);
contentView.findViewById(R.id.action_set_host).setVisibility(VISIBLE);
}else if (type==3){
contentView.findViewById(R.id.action_set_manager).setVisibility(GONE);
}
if (type != 1 && type != 2) {
contentView.findViewById(R.id.action_set_host).setVisibility(GONE);
contentView.findViewById(R.id.action_kick_out).setVisibility(VISIBLE);
}
if (paim==1){
contentView.findViewById(R.id.action_kick_out).setVisibility(GONE);
}
// if (type != 1) {
// contentView.findViewById(R.id.action_set_manager).setVisibility(GONE);
// contentView.findViewById(R.id.action_kick_out).setVisibility(GONE);
// }
// if (type != 1 && type != 2) {
// contentView.findViewById(R.id.action_set_host).setVisibility(GONE);
// contentView.findViewById(R.id.action_kick_out).setVisibility(GONE);
// }
// if (paim==1){
// contentView.findViewById(R.id.action_kick_out).setVisibility(GONE);
// }else {
// contentView.findViewById(R.id.action_kick_out).setVisibility(VISIBLE);
// }
}
private String getValue(int type, String key) {
@@ -393,6 +433,7 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
setTextViewStyle(mBinding.textView2, false);
setTextViewStyle(mBinding.textView1, true);
if (userInfo.getQinmi() != null && !userInfo.getQinmi().equals("")) {
mBinding.ll.setVisibility(VISIBLE);
mBinding.ll.setBackgroundResource(com.xscm.moduleutil.R.mipmap.guxi_k);
// mBinding.rlReqit.setBackgroundResource(com.qxcm.moduleutil.R.mipmap.regit_t);
ImageUtils.loadHeadCC(userInfo.getQinmi().getAvatar1(), mBinding.userNav1);
@@ -409,6 +450,7 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
setTextViewStyle(mBinding.textView2, true);
setTextViewStyle(mBinding.textView1, false);
if (userInfo.getZhenai() != null && !userInfo.getZhenai().equals("")) {
mBinding.ll.setVisibility(VISIBLE);
mBinding.ll.setBackgroundResource(com.xscm.moduleutil.R.mipmap.guxi_w);
// mBinding.rlReqit.setBackgroundResource(com.qxcm.moduleutil.R.mipmap.guanxiw_z);
ImageUtils.loadHeadCC(userInfo.getZhenai().getAvatar1(), mBinding.userNav1);
@@ -456,12 +498,24 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
mBinding.roomJb.setVisibility(View.GONE);
mBinding.roomLh.setVisibility(View.GONE);
mBinding.roomBo.setVisibility(View.VISIBLE);
mBinding.imQml.setVisibility(VISIBLE);
mBinding.roomMCz.setVisibility(View.VISIBLE);
if (userInfo.getIs_in_pit() == 1) {
mBinding.roomMCz.setText("下麦");
} else {
mBinding.roomMCz.setText("抱麦");
}
if (isSelf){
mBinding.roomDian.setVisibility(GONE);
mBinding.roomJb.setVisibility(View.GONE);
mBinding.roomLh.setVisibility(View.GONE);
mBinding.roomBo.setVisibility(GONE);
mBinding.roomMCz.setVisibility(View.VISIBLE);
if (userInfo.getIs_in_pit() == 1) {
mBinding.roomMCz.setText("下麦");
} else {
mBinding.roomMCz.setText("上麦");
}
}
break;
@@ -470,7 +524,7 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
mBinding.roomDian.setVisibility(View.GONE);
mBinding.roomJb.setVisibility(View.VISIBLE);
mBinding.roomLh.setVisibility(View.VISIBLE);
mBinding.roomBo.setVisibility(View.GONE);
mBinding.roomBo.setVisibility(VISIBLE);
mBinding.roomMCz.setVisibility(GONE);
}else {
@@ -484,6 +538,11 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
// mBinding.roomMCz.setVisibility(GONE);
// }
mBinding.roomMCz.setVisibility(View.VISIBLE);
if (userInfo.getIs_in_pit() == 1) {
mBinding.roomMCz.setText("下麦");
} else {
mBinding.roomMCz.setText("抱麦");
}
}
if (isSelf){
mBinding.roomDian.setVisibility(GONE);
@@ -491,7 +550,13 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
mBinding.roomLh.setVisibility(View.GONE);
mBinding.roomBo.setVisibility(GONE);
mBinding.roomMCz.setVisibility(View.VISIBLE);
if (userInfo.getIs_in_pit() == 1) {
mBinding.roomMCz.setText("下麦");
} else {
mBinding.roomMCz.setText("上麦");
}
}
mBinding.imQml.setVisibility(VISIBLE);
break;
case 3:
if (close_type==1 ||close_type==2){ //主持查看房主或者管理员信息
@@ -511,6 +576,11 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
// mBinding.roomMCz.setVisibility(GONE);
// }
mBinding.roomMCz.setVisibility(View.VISIBLE);
if (userInfo.getIs_in_pit() == 1) {
mBinding.roomMCz.setText("下麦");
} else {
mBinding.roomMCz.setText("抱麦");
}
}
if (isSelf){
mBinding.roomDian.setVisibility(GONE);
@@ -518,7 +588,13 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
mBinding.roomLh.setVisibility(View.GONE);
mBinding.roomBo.setVisibility(GONE);
mBinding.roomMCz.setVisibility(View.VISIBLE);
if (userInfo.getIs_in_pit() == 1) {
mBinding.roomMCz.setText("下麦");
} else {
mBinding.roomMCz.setText("上麦");
}
}
mBinding.imQml.setVisibility(VISIBLE);
break;
case 4:
if (close_type==1 ||close_type==2 ||close_type==3) {
@@ -527,12 +603,14 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
mBinding.roomLh.setVisibility(View.VISIBLE);
mBinding.roomMCz.setVisibility(GONE);
mBinding.roomBo.setVisibility(View.VISIBLE);
mBinding.imQml.setVisibility(VISIBLE);
}else {
mBinding.roomDian.setVisibility(GONE);
mBinding.roomJb.setVisibility(View.VISIBLE);
mBinding.roomLh.setVisibility(View.VISIBLE);
mBinding.roomMCz.setVisibility(GONE);
mBinding.roomBo.setVisibility(View.VISIBLE);
mBinding.imQml.setVisibility(GONE);
}
if (isSelf){
mBinding.roomDian.setVisibility(GONE);
@@ -540,7 +618,13 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
mBinding.roomLh.setVisibility(View.GONE);
mBinding.roomBo.setVisibility(GONE);
mBinding.roomMCz.setVisibility(View.VISIBLE);
if (userInfo.getIs_in_pit() == 1) {
mBinding.roomMCz.setText("下麦");
} else {
mBinding.roomMCz.setText("上麦");
}
}
break;
default:
// 默认处理
@@ -691,5 +775,15 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
}
@Override
public void clearUserCharm() {
ToastUtils.show("清除成功");
}
@Override
public void applyPit() {
dismiss();
}
}

View File

@@ -21,6 +21,7 @@ import com.xscm.moduleutil.base.BaseMvpDialogFragment;
import com.xscm.moduleutil.bean.GiftLabelBean;
import com.xscm.moduleutil.bean.GiftNumBean;
import com.xscm.moduleutil.bean.GiftPackBean;
import com.xscm.moduleutil.bean.GiftPackListCount;
import com.xscm.moduleutil.bean.RewardUserBean;
import com.xscm.moduleutil.bean.RoomWheatEvent;
import com.xscm.moduleutil.bean.RoonGiftModel;
@@ -215,6 +216,16 @@ public class RoomWheatGiftSettingFragment extends BaseMvpDialogFragment<RewardGi
}
@Override
public void getGiftPack(String s) {
}
@Override
public void getGiftPackListCount(GiftPackListCount giftPackListCount) {
}
private static class MyFragmentPagerAdapter extends FragmentStatePagerAdapter {
private List<Fragment> fragmentList;
@@ -227,7 +238,7 @@ public class RoomWheatGiftSettingFragment extends BaseMvpDialogFragment<RewardGi
@Override
public Fragment getItem(int position) {
Fragment fragment = GiftTwoDetailsFragment.newInstance("1", 0);
Fragment fragment = GiftTwoDetailsFragment.newInstance("1", 0,"");
fragmentList.add(fragment); // 保存 Fragment 实例
return fragment;
}

View File

@@ -42,12 +42,13 @@ public class SoundEffectsDialogFragment extends BaseMvpDialogFragment<WheatPrese
protected WheatPresenter bindPresenter() {
return new WheatPresenter(this, getActivity());
}
public static void show(String id, FragmentManager fragmentManager) {
public static SoundEffectsDialogFragment show(String id, FragmentManager fragmentManager) {
SoundEffectsDialogFragment dialogFragment = new SoundEffectsDialogFragment();
Bundle args = new Bundle();
args.putString("roomId", id); // 可选:传递参数
dialogFragment.setArguments(args);
dialogFragment.show(fragmentManager, "SoundEffectsDialogFragment");
return dialogFragment;
}
@Override
protected void initData() {

View File

@@ -61,7 +61,7 @@ public class TunerDialogFragment extends BaseMvpDialogFragment<WheatPresenter, R
if (window != null) {
// 设置固定高度为 500dp
int screenHeight = getResources().getDisplayMetrics().heightPixels;
int heightInDp = (int) (screenHeight * 0.4f);;
int heightInDp = (int) (screenHeight * 0.5f);;
// int heightInPx = (int) (heightInDp * getResources().getDisplayMetrics().density);
window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, heightInDp);

View File

@@ -89,7 +89,7 @@ public class WheatFeedingDialogFragment extends BaseMvpDialogFragment<WheatPrese
mBinding.tvQk.setVisibility(VISIBLE);
mBinding.tvWheatRefuse.setVisibility(VISIBLE);
mBinding.tvWheatAccept.setVisibility(VISIBLE);
mBinding.tvWheatSq.setVisibility(VISIBLE);
mBinding.tvWheatSq.setVisibility(GONE);
mBinding.tv3.setVisibility(VISIBLE);
mBinding.tv3.setText("设置");
// ... 设置其他控件的可见性
@@ -272,12 +272,23 @@ public class WheatFeedingDialogFragment extends BaseMvpDialogFragment<WheatPrese
@Override
public void agreePit() {
MvpPre.roomApplyListBean(roomId);
// MvpPre.roomApplyListBean(roomId);
dismiss();
}
@Override
public void applyPit() {
MvpPre.roomApplyListBean(roomId);
//
// if (roomApplyListBeans!=null){
// if ((roomApplyListBeans.getSpecial() != null && !roomApplyListBeans.getSpecial().isEmpty())
// ||(roomApplyListBeans.getRegular() != null && !roomApplyListBeans.getRegular().isEmpty())){
// MvpPre.roomApplyListBean(roomId);
// }else {
// dismiss();
// }
// }else {
dismiss();
// }
}
@Override

View File

@@ -11,15 +11,20 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.alibaba.android.arouter.launcher.ARouter;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.example.moduleroom.R;
import com.example.moduleroom.adapter.RankingCharmListAdapter;
import com.example.moduleroom.contacts.DataListContacts;
import com.example.moduleroom.databinding.RoomRankingChildBinding;
import com.example.moduleroom.dialog.RoomUserInfoFragment;
import com.example.moduleroom.presenter.DataListPresenter;
import com.xscm.moduleutil.base.BaseMvpFragment;
import com.xscm.moduleutil.bean.CharmRankingResp;
import com.xscm.moduleutil.bean.room.RoomInfoResp;
import com.xscm.moduleutil.utils.ARouteConstants;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.StringUtil;
import com.xscm.moduleutil.widget.CommonEmptyView;
import java.util.List;
@@ -43,18 +48,20 @@ public class RankingChildFragment extends BaseMvpFragment<DataListPresenter, Roo
private RankingCharmListAdapter wAdapter;//财富适配器
// private RankingWealthListAdapter wAdapter;//财富适配器
private CommonEmptyView commonEmptyView;
private RoomInfoResp roomInfoResp;
/**
* newInstance 初始化fragment
*
* @return
*/
public static RankingChildFragment newInstance(String roomId, int dataType, int rankType) {
public static RankingChildFragment newInstance(String roomId, int dataType, int rankType, RoomInfoResp roomInfoResp) {
RankingChildFragment rankingChildFragment = new RankingChildFragment();
Bundle bundle = new Bundle();
bundle.putString("roomId", roomId);
bundle.putInt("dataType", dataType);
bundle.putInt("rankType", rankType);
bundle.putSerializable("roomInfoResp", roomInfoResp);
rankingChildFragment.setArguments(bundle);
return rankingChildFragment;
}
@@ -70,6 +77,7 @@ public class RankingChildFragment extends BaseMvpFragment<DataListPresenter, Roo
roomId = getArguments().getString("roomId");
dataType = getArguments().getInt("dataType");
rankType = getArguments().getInt("rankType");
roomInfoResp = (RoomInfoResp) getArguments().getSerializable("roomInfoResp");
}
@Override
@@ -114,7 +122,10 @@ public class RankingChildFragment extends BaseMvpFragment<DataListPresenter, Roo
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
if (view.getId() == R.id.room_item_head) {
CharmRankingResp item = cAdapter.getItem(position);
// ARouter.getInstance().build(ARouteConstants.NEW_HOME_PAGE).withString("userId", item.getUser_id()).withBoolean("returnRoom", true).navigation();
RoomUserInfoFragment.show(roomId,item.getUser_id(), "", getHostUser(), true, 3, 0, getChildFragmentManager());
// ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE).withString("userId", item.getUser_id()).withBoolean("returnRoom", true).navigation();
}
}
});
@@ -123,6 +134,9 @@ public class RankingChildFragment extends BaseMvpFragment<DataListPresenter, Roo
@Override
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
if (view.getId() == R.id.room_item_head) {
CharmRankingResp item = wAdapter.getItem(position);
RoomUserInfoFragment.show(roomId,item.getUser_id(), "", getHostUser(), true, 3, 0, getChildFragmentManager());
// WealthRankingResp.ListsBean item = wAdapter.getItem(position);
// ARouter.getInstance().build(ARouteConstants.NEW_HOME_PAGE).withString("userId", item.getUser_id()).withBoolean("returnRoom", true).navigation();
}
@@ -130,7 +144,38 @@ public class RankingChildFragment extends BaseMvpFragment<DataListPresenter, Roo
});
}
}
/**
* 这是判断当前用户是否是麦上房主、管理员、主持,不在主持麦的都是不同用户
* 2025-7-31 10:42:37新添加的要求根据角色不同显示不同的按钮
* 房主不论麦上麦下,有全部权限 管理员、主持:不论麦上麦下,有部分权限 用户:只有举报拉黑权限
* 所有的是从下往上看数据的时候,只有举报和拉黑
*
* @return
*/
private int getHostUser() {
if (roomInfoResp.getUser_info().getPit_number() == 9) {
if (roomInfoResp.getUser_info().getIs_room_owner() == 1) {
return 1;
} else if (roomInfoResp.getUser_info().getIs_management() == 1) {
return 2;
} else if (roomInfoResp.getUser_info().getIs_host() == 1) {
return 3;
} else {
return 4;
}
} else {
if (roomInfoResp.getUser_info().getIs_room_owner() == 1) {
return 1;
}
if (roomInfoResp.getUser_info().getIs_management() == 1) {
return 2;
}
if (roomInfoResp.getUser_info().getIs_host() == 1) {
return 3;
}
return 4;
}
}
@Override
protected int getLayoutId() {
@@ -143,11 +188,13 @@ public class RankingChildFragment extends BaseMvpFragment<DataListPresenter, Roo
public void setNo1(CharmRankingResp listsBean) {
ImageUtils.loadHeadCC(listsBean.getAvatar(), mBinding.roomRankTop1HeadIcon);
mBinding.roomTop1Name.setText(listsBean.getNickname());
mBinding.roomHeadTop1Label.setText(listsBean.getTotal());
mBinding.roomHeadTop1Label.setText(StringUtil.toWan2(listsBean.getTotal(), 2));
setview(listsBean.getIcon(), mBinding.llVip1);
mBinding.roomRankTop1HeadIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RoomUserInfoFragment.show(roomId,listsBean.getUser_id(), "", getHostUser(), true, 3, 0, getChildFragmentManager());
// ARouter.getInstance().build(ARouteConstants.NEW_HOME_PAGE).withString("userId", listsBean.getUser_id()).withBoolean("returnRoom", true).navigation();
}
});
@@ -157,11 +204,13 @@ public class RankingChildFragment extends BaseMvpFragment<DataListPresenter, Roo
public void setNo2(CharmRankingResp listsBean) {
ImageUtils.loadHeadCC(listsBean.getAvatar(), mBinding.roomRankTop2HeadIcon);
mBinding.roomTop2Name.setText(listsBean.getNickname());
mBinding.roomHeadTop2Label.setText(listsBean.getTotal());
mBinding.roomHeadTop2Label.setText(StringUtil.toWan2(listsBean.getTotal(), 2));
setview(listsBean.getIcon(), mBinding.llVip2);
mBinding.roomRankTop2HeadIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RoomUserInfoFragment.show(roomId,listsBean.getUser_id(), "", getHostUser(), true, 3, 0, getChildFragmentManager());
// ARouter.getInstance().build(ARouteConstants.NEW_HOME_PAGE).withString("userId", listsBean.getUser_id()).withBoolean("returnRoom", true).navigation();
}
});
@@ -174,8 +223,8 @@ public class RankingChildFragment extends BaseMvpFragment<DataListPresenter, Roo
if (url.contains("http")) {
ImageView imageView1 = new ImageView(getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_37),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_74),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_17)
);
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView1.setLayoutParams(params);
@@ -193,11 +242,13 @@ public class RankingChildFragment extends BaseMvpFragment<DataListPresenter, Roo
public void setNo3(CharmRankingResp listsBean) {
ImageUtils.loadHeadCC(listsBean.getAvatar(), mBinding.roomRankTop3HeadIcon);
mBinding.roomTop3Name.setText(listsBean.getNickname());
mBinding.roomHeadTop3Label.setText(listsBean.getTotal());
mBinding.roomHeadTop3Label.setText(StringUtil.toWan2(listsBean.getTotal(), 2));
setview(listsBean.getIcon(), mBinding.llVip3);
mBinding.roomRankTop3HeadIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RoomUserInfoFragment.show(roomId,listsBean.getUser_id(), "", getHostUser(), true, 3, 0, getChildFragmentManager());
// ARouter.getInstance().build(ARouteConstants.NEW_HOME_PAGE).withString("userId", listsBean.getUser_id()).withBoolean("returnRoom", true).navigation();
}
});

View File

@@ -10,6 +10,7 @@ import com.example.moduleroom.databinding.RoomRankingParentBinding;
import com.xscm.moduleutil.activity.IPresenter;
import com.xscm.moduleutil.adapter.MyFragmentPagerAdapter;
import com.xscm.moduleutil.base.BaseMvpFragment;
import com.xscm.moduleutil.bean.room.RoomInfoResp;
import java.util.ArrayList;
import java.util.List;
@@ -28,12 +29,13 @@ public class RankingParentFragment extends BaseMvpFragment<IPresenter, RoomRanki
private static String mRoomId;//房间ID
private static int rankType = 1;//统计类型(魅力 / 财富)
// private static int dataType = 1;//统计周期(日/周/月)
private RoomInfoResp roomInfoResp;
public static RankingParentFragment newInstance(String roomId,int rankType) {
public static RankingParentFragment newInstance(String roomId,int rankType,RoomInfoResp roomInfoResp) {
Bundle args = new Bundle();
args.putString("roomId", roomId);
args.putInt("rankType", rankType);
args.putSerializable("roomInfoResp", roomInfoResp);
RankingParentFragment fragment = new RankingParentFragment();
fragment.setArguments(args);
return fragment;
@@ -44,6 +46,7 @@ public class RankingParentFragment extends BaseMvpFragment<IPresenter, RoomRanki
super.initArgs(arguments);
mRoomId = arguments.getString("roomId");
rankType = arguments.getInt("rankType");
roomInfoResp = (RoomInfoResp) arguments.getSerializable("roomInfoResp");
}
@Override
@@ -54,9 +57,9 @@ public class RankingParentFragment extends BaseMvpFragment<IPresenter, RoomRanki
@Override
protected void initData() {
List<Fragment> fragments = new ArrayList<>();
fragments.add(RankingChildFragment.newInstance(mRoomId, TYPE_DATA, rankType));
fragments.add(RankingChildFragment.newInstance(mRoomId, TYPE_WEEK, rankType));
fragments.add(RankingChildFragment.newInstance(mRoomId, TYPE_MON, rankType));
fragments.add(RankingChildFragment.newInstance(mRoomId, TYPE_DATA, rankType, roomInfoResp));
fragments.add(RankingChildFragment.newInstance(mRoomId, TYPE_WEEK, rankType, roomInfoResp));
fragments.add(RankingChildFragment.newInstance(mRoomId, TYPE_MON, rankType, roomInfoResp));
MyFragmentPagerAdapter myFragmentPagerAdapter = new MyFragmentPagerAdapter(fragments, getChildFragmentManager());
mBinding.vpRankChild.setAdapter(myFragmentPagerAdapter);
String[] title = new String[]{"日榜", "周榜", "月榜"};

View File

@@ -223,4 +223,14 @@ public class RelationshipFragment extends BaseMvpDialogFragment<RoomUserPresente
public void deleteRelationCard(String s) {
MvpPre.relationCard(userId);
}
@Override
public void clearUserCharm() {
}
@Override
public void applyPit() {
}
}

View File

@@ -108,7 +108,7 @@ public class RoomBackgroundDialogFragment extends BaseMvpDialogFragment<RoomBack
.setImageEngine(GlideEngine.createGlideEngine())
.setMaxSelectNum(type)
.isPreviewImage(true)
.isDisplayCamera(true)
.isDisplayCamera(false)
.setOutputCameraDir(Constants.FILE_PATH)
.isOriginalSkipCompress(true)
.forResult(requestCode); //结果回调onActivityResult code

View File

@@ -1,10 +1,7 @@
package com.example.moduleroom.fragment;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import static com.blankj.utilcode.util.ServiceUtils.startService;
import static com.google.common.reflect.Reflection.getPackageName;
import android.annotation.SuppressLint;
import android.app.Activity;
@@ -17,15 +14,21 @@ import android.os.Bundle;
import android.os.CountDownTimer;
import android.provider.Settings;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.SurfaceView;
import android.view.View;
import android.view.ViewGroup;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.core.app.NotificationManagerCompat;
import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.ObjectUtils;
import com.blankj.utilcode.util.TimeUtils;
import com.example.moduleroom.R;
import com.example.moduleroom.activity.RoomActivity;
import com.example.moduleroom.contacts.RoomCabinContacts;
@@ -36,6 +39,7 @@ import com.example.moduleroom.presenter.RoomCabinPresenter;
import com.hjq.toast.ToastUtils;
import com.orhanobut.logger.Logger;
import com.xscm.moduleutil.base.BaseRoomFragment;
import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.bean.RoomMessageEvent;
import com.xscm.moduleutil.bean.UserInfo;
import com.xscm.moduleutil.bean.room.RoomCpUserBean;
@@ -43,15 +47,19 @@ import com.xscm.moduleutil.bean.room.RoomInfoResp;
import com.xscm.moduleutil.bean.room.RoomPitBean;
import com.xscm.moduleutil.event.CabinEvent;
import com.xscm.moduleutil.event.RoomBeckoningEvent;
import com.xscm.moduleutil.listener.MessageListenerSingleton;
import com.xscm.moduleutil.rtc.AgoraManager;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.SpUtil;
import com.xscm.moduleutil.widget.SharedViewModel;
import com.xscm.moduleutil.widget.dialog.CommonDialog;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.io.Serializable;
import java.nio.charset.StandardCharsets;
import java.util.Date;
import io.agora.rtc2.Constants;
import io.agora.rtc2.IRtcEngineEventHandler;
@@ -66,6 +74,7 @@ import io.agora.rtc2.video.VideoCanvas;
* @description: 电影房
*/
public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, RoomCabinFragmentBinding> implements RoomCabinContacts.View {
private static final String LABEL_ID_MOVIE = "5";
protected String roomId;
protected String pitNumber;//当前点击的麦序
protected CommonDialog commonDialog;
@@ -76,14 +85,14 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
private RoomCpUserBean cpUserBean;
private boolean isMicPlace = false;
private RtcEngineEx engine;
private String label_id="";
private int remoteUid = -1;
private final ScreenCaptureParameters screenCaptureParameters = new ScreenCaptureParameters();
public static RoomCabinFragment newInstance(RoomInfoResp roomInfoResp) {
public static RoomCabinFragment newInstance() {
Bundle args = new Bundle();
args.putSerializable("roomInfoResp", (Serializable) roomInfoResp);
RoomCabinFragment fragment = new RoomCabinFragment();
fragment.setArguments(args);
return fragment;
@@ -92,21 +101,28 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
@Override
public void initArgs(Bundle arguments) {
super.initArgs(arguments);
roomInfoResp = (RoomInfoResp) arguments.getSerializable("roomInfoResp");
roomId = roomInfoResp.getRoom_info().getRoom_id();
if (roomInfoResp.getCp_user() != null) {
cpUserBean = roomInfoResp.getCp_user();
}
// roomInfoResp = (RoomInfoResp) arguments.getSerializable("roomInfoResp");
// if (roomInfoResp != null) {
// roomId = roomInfoResp.getRoom_info().getRoom_id();
// cpUserBean = roomInfoResp.getCp_user();
// label_id = roomInfoResp.getRoom_info().getLabel_id();
// }
}
private boolean isLandscape;
@Override
public void onResume() {
super.onResume();
if (getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).changeBackground(com.xscm.moduleutil.R.mipmap.cabin_bj);
((RoomActivity) getActivity()).setvisibTop(false);
// if (getActivity() instanceof RoomActivity) {
// ((RoomActivity) getActivity()).changeBackground(com.xscm.moduleutil.R.mipmap.cabin_bj);
// ((RoomActivity) getActivity()).setvisibTop(false);
// }
if (CommonAppContext.getInstance().lable_id.equals("6") && CommonAppContext.getInstance().isMicPlace){
joinChannel();
isMicPlace = true;
mBinding.im3.setImageResource(com.xscm.moduleutil.R.mipmap.clogs_car);
}
}
@@ -116,15 +132,15 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
return;
}
Log.d("RoomCabinFragment", "Notifications not enable!");
new AlertDialog.Builder(requireContext())
new AlertDialog.Builder(getActivity())
.setTitle("提示")
.setMessage("请打开通知权限,防止后台共享屏幕中断")
.setPositiveButton("设置", (dialog, which) -> {
Intent intent = new Intent();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
intent.setAction(Settings.ACTION_APP_NOTIFICATION_SETTINGS);
intent.putExtra(Settings.EXTRA_APP_PACKAGE, requireContext().getPackageName());
intent.putExtra(Settings.EXTRA_CHANNEL_ID, requireContext().getApplicationInfo().uid);
intent.putExtra(Settings.EXTRA_APP_PACKAGE, getActivity().getPackageName());
intent.putExtra(Settings.EXTRA_CHANNEL_ID, getActivity().getApplicationInfo().uid);
} else {
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
}
@@ -141,62 +157,26 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
@Override
protected void initData() {
mBinding.ivExit.setOnClickListener(this::onHeartLineClicked);
// 获取当前用户 ID
String currentUserId = SpUtil.getUserId() + "";
// 定义两个 RoomPitBean 对象,分别用于显示在 roomMakeWheat1 和 roomMakeWheat2
RoomPitBean selfBean = new RoomPitBean(); // 自己的 bean
RoomPitBean otherBean = new RoomPitBean(); // 另一个用户的 bean
boolean isSelfFirst = false;
// 判断当前用户是 user_id 还是 user_id1
if (currentUserId.equals(cpUserBean.getUser_id())) {
// 当前用户是 user_id
selfBean.setUser_id(cpUserBean.getUser_id());
selfBean.setUser_code(cpUserBean.getUser_code());
selfBean.setNickname(cpUserBean.getNickname());
selfBean.setAvatar(cpUserBean.getAvatar());
selfBean.setDress(cpUserBean.getDress());
selfBean.setPit_number("000");
otherBean.setUser_id(cpUserBean.getUser_id1());
otherBean.setUser_code(cpUserBean.getUser_code1());
otherBean.setNickname(cpUserBean.getNickname1());
otherBean.setAvatar(cpUserBean.getAvatar1());
otherBean.setDress(cpUserBean.getDress1());
otherBean.setPit_number("000");
if (roomInfoResp == null) return;
} else if (currentUserId.equals(cpUserBean.getUser_id1())) {
// 当前用户是 user_id1则交换位置
selfBean.setUser_id(cpUserBean.getUser_id1());
selfBean.setUser_code(cpUserBean.getUser_code1());
selfBean.setNickname(cpUserBean.getNickname1());
selfBean.setAvatar(cpUserBean.getAvatar1());
selfBean.setDress(cpUserBean.getDress1());
selfBean.setPit_number("000");
otherBean.setUser_id(cpUserBean.getUser_id());
otherBean.setUser_code(cpUserBean.getUser_code());
otherBean.setNickname(cpUserBean.getNickname());
otherBean.setAvatar(cpUserBean.getAvatar());
otherBean.setDress(cpUserBean.getDress());
otherBean.setPit_number("000");
}
// 不论谁是自己,始终将自己放在 roomMakeWheat1
mBinding.roomMakeWheat1.setData(selfBean);
// 将另一个用户的数据放在 roomMakeWheat2
mBinding.roomMakeWheat2.setData(otherBean);
mBinding.tvMainTitle.setText(roomInfoResp.getRoom_info().getRoom_name());
mBinding.tvHeartValue2.setText(roomInfoResp.getRoom_info().getHot_value());
countDownTime(Long.parseLong(cpUserBean.getTime_day()));
mediaProjectionManager = (MediaProjectionManager) getContext().getSystemService(Context.MEDIA_PROJECTION_SERVICE);
}
private SharedViewModel sharedViewModel;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
// sharedViewModel = new ViewModelProvider(requireActivity()).get(SharedViewModel.class);
//
// // 观察专门给子Fragment的数据
// sharedViewModel.getChildFragmentData().observe(getViewLifecycleOwner(), data -> {
// if (data != null) {
// // 处理数据
// roomInfoUpdate(data);
// }
// });
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override
protected void initView() {
@@ -207,6 +187,7 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
public void onClick(View v) {
if (!isShow) {
switchMic(2);
isMute(1);
} else {
switchMic(1);
}
@@ -218,41 +199,157 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
public void onClick(View v) {
RoomPitBean roomPitBean = mBinding.roomMakeWheat2.pitBean;
UserInfo userInfo = new UserInfo();
userInfo.setUser_id(Integer.parseInt(roomPitBean.getUser_id()));
userInfo.setUser_id(Integer.parseInt(roomPitBean.getUser_id()!=null ? roomPitBean.getUser_id() : "0"));
userInfo.setNickname(roomPitBean.getNickname());
userInfo.setAvatar(roomPitBean.getAvatar());
userInfo.setPit_number("");
RoomGiftDialogFragment.show(null, userInfo, roomInfoResp.getRoom_info().getRoom_id(),0, getParentFragmentManager());
RoomGiftDialogFragment.show(null, userInfo, roomInfoResp.getRoom_info().getRoom_id(),0,"", getParentFragmentManager());
}
});
isShow = true;
switchMic(2);
if (!CommonAppContext.getInstance().isShowAg){
switchMic(2);
}else {
isShow = true;
switchMic(2);
}
mBinding.im3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// requestScreenCapture();
if (!isMicPlace) {
joinChannel();
isMicPlace = true;
mBinding.im3.setImageResource(com.xscm.moduleutil.R.mipmap.clogs_car);
CommonAppContext.getInstance().isMicPlace = true;
} else {
isMicPlace = false;
ToastUtils.show("将停止屏幕共享");
AgoraManager.getInstance(getActivity()).stopScreenCapture();
mBinding.im3.setImageResource(com.xscm.moduleutil.R.mipmap.gongxiang);
CommonAppContext.getInstance().isMicPlace = false;
}
}
});
if (roomInfoResp.getRoom_owner().getUser_id().equals(SpUtil.getUserId()+"")){
if (roomInfoResp != null && roomInfoResp.getRoom_owner().getUser_id().equals(SpUtil.getUserId()+"")){
mBinding.im3.setVisibility(VISIBLE);
setvkk(false);
// setvkk(false);
}else {
mBinding.im3.setVisibility(GONE);
}
// if (label_id!=null&& label_id.equals(LABEL_ID_MOVIE)){
// mBinding.im3.setVisibility(GONE);
// }
}
// 获取 MediaProjectionManager
// MediaProjectionManager mediaProjectionManager = (MediaProjectionManager) getSelfActivity().getSystemService(Context.MEDIA_PROJECTION_SERVICE);
// private MediaProjection[] mediaProjection = new MediaProjection[1];
// private final ActivityResultLauncher<Intent> mediaProjectionLauncher = registerForActivityResult(
// new ActivityResultContracts.StartActivityForResult(), result -> {
// if (result.getResultCode() == Activity.RESULT_OK) {
// try {
// // 获取申请到的 MediaProjection
// mediaProjection[0] = mediaProjectionManager
// .getMediaProjection(result.getResultCode(), result.getData());
// // r MediaProjection需要在 startScreenCapture 之前调用
//
// AgoraManager.getInstance(getActivity()).setExternalMediaProjection(mediaProjection);
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
// }
// );
// 请求屏幕捕获
private void requestScreenCapture() {
// Intent intent = mediaProjectionManager.createScreenCaptureIntent();
// mediaProjectionLauncher.launch(intent);
}
public void handleMsgType1028(RoomMessageEvent messageEvent){
if (messageEvent.getMsgType()==1028){
mBinding.tvHeartValue2.setText(messageEvent.getText().getHot_value());
}
}
public void upRoomInfo(RoomInfoResp roomInfoResp){
this.roomInfoResp = roomInfoResp;
// if (roomInfoResp != null) {
// roomId = roomInfoResp.getRoom_info().getRoom_id();
// cpUserBean = roomInfoResp.getCp_user();
// label_id = roomInfoResp.getRoom_info().getLabel_id();
// }
// if (roomInfoResp != null && roomInfoResp.getRoom_owner().getUser_id().equals(SpUtil.getUserId()+"")){
// mBinding.im3.setVisibility(VISIBLE);
//// setvkk(false);
// }else {
// mBinding.im3.setVisibility(GONE);
// }
//
// mBinding.ivExit.setOnClickListener(this::onHeartLineClicked);
//
// // 获取当前用户 ID
// String currentUserId = SpUtil.getUserId() + "";
//
//// 定义两个 RoomPitBean 对象,分别用于显示在 roomMakeWheat1 和 roomMakeWheat2
// RoomPitBean selfBean = new RoomPitBean(); // 自己的 bean
// RoomPitBean otherBean = new RoomPitBean(); // 另一个用户的 bean
//
// boolean isSelfFirst = false;
//
//// 判断当前用户是 user_id 还是 user_id1
// if (cpUserBean != null) {
// if (currentUserId.equals(cpUserBean.getUser_id())) {
// // 当前用户是 user_id
// selfBean.setUser_id(cpUserBean.getUser_id());
// selfBean.setUser_code(cpUserBean.getUser_code());
// selfBean.setNickname(cpUserBean.getNickname());
// selfBean.setAvatar(cpUserBean.getAvatar());
// selfBean.setDress(cpUserBean.getDress());
// selfBean.setPit_number("000");
//
// otherBean.setUser_id(cpUserBean.getUser_id1());
// otherBean.setUser_code(cpUserBean.getUser_code1());
// otherBean.setNickname(cpUserBean.getNickname1());
// otherBean.setAvatar(cpUserBean.getAvatar1());
// otherBean.setDress(cpUserBean.getDress1());
// otherBean.setPit_number("000");
//
//
// } else if (currentUserId.equals(cpUserBean.getUser_id1())) {
// // 当前用户是 user_id1则交换位置
// selfBean.setUser_id(cpUserBean.getUser_id1());
// selfBean.setUser_code(cpUserBean.getUser_code1());
// selfBean.setNickname(cpUserBean.getNickname1());
// selfBean.setAvatar(cpUserBean.getAvatar1());
// selfBean.setDress(cpUserBean.getDress1());
// selfBean.setPit_number("000");
//
// otherBean.setUser_id(cpUserBean.getUser_id());
// otherBean.setUser_code(cpUserBean.getUser_code());
// otherBean.setNickname(cpUserBean.getNickname());
// otherBean.setAvatar(cpUserBean.getAvatar());
// otherBean.setDress(cpUserBean.getDress());
// otherBean.setPit_number("000");
// }
// }
//// 不论谁是自己,始终将自己放在 roomMakeWheat1
// mBinding.roomMakeWheat1.setData(selfBean);
//// 将另一个用户的数据放在 roomMakeWheat2
// mBinding.roomMakeWheat2.setData(otherBean);
// mBinding.tvMainTitle.setText(roomInfoResp.getRoom_info().getRoom_name());
// mBinding.tvHeartValue2.setText(roomInfoResp.getRoom_info().getHot_value());
// if (cpUserBean != null) {
// countDownTime(Long.parseLong(cpUserBean.getTime_day()));
// }
// mediaProjectionManager = (MediaProjectionManager) getContext().getSystemService(Context.MEDIA_PROJECTION_SERVICE);
}
public void upCabinFragment(long time){
countDownTime( time);
}
private void setvkk(boolean isShow){
@@ -272,17 +369,37 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
AgoraManager.getInstance(getActivity()).muteLocalAudioStream(false);
AgoraManager.getInstance(getActivity()).setLocalAudioEnabled(true,SpUtil.getUserId()+"");
isShow = false;
CommonAppContext.getInstance().isShowAg=false;
} else {
mBinding.im1.setImageResource(com.xscm.moduleutil.R.mipmap.op_m);
AgoraManager.getInstance(getActivity()).ClientRole(false);
AgoraManager.getInstance(getActivity()).ClientRole(true);
AgoraManager.getInstance(getActivity()).muteLocalAudioStream(true);
AgoraManager.getInstance(getActivity()).setLocalAudioEnabled(false,SpUtil.getUserId()+"");
isShow = true;
CommonAppContext.getInstance().isShowAg=true;
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void isMute(int is_mute) {
RoomMessageEvent.text text = new RoomMessageEvent.text();
text.setIs_mute(is_mute);
String s = com.blankj.utilcode.util.GsonUtils.toJson(text);
RoomMessageEvent.T t = new RoomMessageEvent.T();
t.setFromUserInfo(SpUtil.getUserInfo());
t.setText(s);
RoomMessageEvent roomMessageEvent = new RoomMessageEvent(126, roomInfoResp.getRoom_info().getRoom_id(), t);
String json = com.blankj.utilcode.util.GsonUtils.toJson(roomMessageEvent);
// 转换为 byte[]
byte[] binaryData = json.getBytes(StandardCharsets.UTF_8);
// 创建自定义消息
MessageListenerSingleton.getInstance().sendCustomRoomMessage(
roomId + "",
binaryData
);
}
public void roomInfoEvent(RoomMessageEvent messageEvent) {
if (messageEvent.getMsgType() == 1028) {
mBinding.tvHeartValue2.setText(messageEvent.getText().getHot_value());
@@ -293,7 +410,8 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
if (view.getId() == R.id.iv_exit) {
// EventBus.getDefault().post(new RoomOutEvent());
// ARouter.getInstance().build(ARouteConstants.LIVE_ROOM).withString("form","首页热门列表").withString("roomId", item.getRoom_id()).navigation();
ExitRoomBottomSheet bottomSheet = ExitRoomBottomSheet.newInstance();
ExitRoomBottomSheet bottomSheet = ExitRoomBottomSheet.newInstance(false,true,true);
bottomSheet.setOnOptionSelectedListener(new ExitRoomBottomSheet.OnOptionSelectedListener() {
@Override
public void onMinimize() {
@@ -323,8 +441,16 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
@Override
public void onExitRoom() {
CommonAppContext.getInstance().isMicPlace = false;
// 调用退出房间方法
MvpPre.quitRoom(roomInfoResp.getRoom_info().getRoom_id(), SpUtil.getUserId() + "");
if (label_id!=null && label_id.equals(LABEL_ID_MOVIE)){
MvpPre.quitRoom(roomId, SpUtil.getUserId() + "");
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("from", "我的界面").withString("roomId", AgoraManager.getInstance(getActivity()).getLastRoomId()).navigation();
return;
}
if (roomInfoResp != null) {
MvpPre.quitRoom(roomInfoResp.getRoom_info().getRoom_id(), SpUtil.getUserId() + "");
}
}
@Override
@@ -412,7 +538,11 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
mBinding.datingTime.setText("00:00:00");
}
String formattedTime = formatTime(time);
mBinding.datingTime.setText("到期时间:" + formattedTime);
if (label_id!=null && label_id.equals(LABEL_ID_MOVIE)){
mBinding.datingTime.setText("倒计时:" + formattedTime);
}else {
mBinding.datingTime.setText("到期时间:" + formattedTime);
}
mBinding.datingTime.setVisibility(VISIBLE);
}
@@ -424,13 +554,15 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
}
protected void updateWheatData() {
if (!ObjectUtils.isEmpty(roomInfoResp.getRoom_info().getPit_list())) {
if (roomInfoResp != null && !ObjectUtils.isEmpty(roomInfoResp.getRoom_info().getPit_list())) {
for (RoomPitBean bean : roomInfoResp.getRoom_info().getPit_list()) {
EventBus.getDefault().post(bean);
}
}
RoomBeckoningEvent event = new RoomBeckoningEvent(roomId, roomInfoResp.getRoom_info().getCardiac() == 1);
EventBus.getDefault().post(event);
if (roomInfoResp != null) {
RoomBeckoningEvent event = new RoomBeckoningEvent(roomId, roomInfoResp.getRoom_info().getCardiac() == 1);
EventBus.getDefault().post(event);
}
}
@@ -443,6 +575,76 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
public void roomInfoUpdate(RoomInfoResp resp) {
roomInfoResp = resp;
// updateWheatData();
if (roomInfoResp != null) {
roomId = roomInfoResp.getRoom_info().getRoom_id();
cpUserBean = roomInfoResp.getCp_user();
label_id = roomInfoResp.getRoom_info().getLabel_id();
}
if (roomInfoResp != null && roomInfoResp.getRoom_owner().getUser_id().equals(SpUtil.getUserId()+"")){
mBinding.im3.setVisibility(VISIBLE);
// setvkk(false);
}else {
mBinding.im3.setVisibility(GONE);
}
mBinding.ivExit.setOnClickListener(this::onHeartLineClicked);
// 获取当前用户 ID
String currentUserId = SpUtil.getUserId() + "";
// 定义两个 RoomPitBean 对象,分别用于显示在 roomMakeWheat1 和 roomMakeWheat2
RoomPitBean selfBean = new RoomPitBean(); // 自己的 bean
RoomPitBean otherBean = new RoomPitBean(); // 另一个用户的 bean
boolean isSelfFirst = false;
// 判断当前用户是 user_id 还是 user_id1
if (cpUserBean != null) {
if (currentUserId.equals(cpUserBean.getUser_id())) {
// 当前用户是 user_id
selfBean.setUser_id(cpUserBean.getUser_id());
selfBean.setUser_code(cpUserBean.getUser_code());
selfBean.setNickname(cpUserBean.getNickname());
selfBean.setAvatar(cpUserBean.getAvatar());
selfBean.setDress(cpUserBean.getDress());
selfBean.setPit_number("000");
otherBean.setUser_id(cpUserBean.getUser_id1());
otherBean.setUser_code(cpUserBean.getUser_code1());
otherBean.setNickname(cpUserBean.getNickname1());
otherBean.setAvatar(cpUserBean.getAvatar1());
otherBean.setDress(cpUserBean.getDress1());
otherBean.setPit_number("000");
} else if (currentUserId.equals(cpUserBean.getUser_id1())) {
// 当前用户是 user_id1则交换位置
selfBean.setUser_id(cpUserBean.getUser_id1());
selfBean.setUser_code(cpUserBean.getUser_code1());
selfBean.setNickname(cpUserBean.getNickname1());
selfBean.setAvatar(cpUserBean.getAvatar1());
selfBean.setDress(cpUserBean.getDress1());
selfBean.setPit_number("000");
otherBean.setUser_id(cpUserBean.getUser_id());
otherBean.setUser_code(cpUserBean.getUser_code());
otherBean.setNickname(cpUserBean.getNickname());
otherBean.setAvatar(cpUserBean.getAvatar());
otherBean.setDress(cpUserBean.getDress());
otherBean.setPit_number("000");
}
}
// 不论谁是自己,始终将自己放在 roomMakeWheat1
mBinding.roomMakeWheat1.setData(selfBean);
// 将另一个用户的数据放在 roomMakeWheat2
mBinding.roomMakeWheat2.setData(otherBean);
mBinding.tvMainTitle.setText(roomInfoResp.getRoom_info().getRoom_name());
mBinding.tvHeartValue2.setText(roomInfoResp.getRoom_info().getHot_value());
if (cpUserBean != null) {
countDownTime(Long.parseLong(cpUserBean.getTime_day()));
}
// mediaProjectionManager = (MediaProjectionManager) getContext().getSystemService(Context.MEDIA_PROJECTION_SERVICE);
}
@Override
@@ -483,26 +685,36 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
@Override
public void quitRoom() {
if (getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).quitRoom();
LogUtils.e("lxj", "退出房间时间:" + TimeUtils.date2String(new Date())+":退出的roomId"+roomId);
MessageListenerSingleton.getInstance().quitGroup(roomId);
((RoomActivity) getActivity()).quit();
((RoomActivity) getActivity()).quitRoom2(roomId);
if (label_id!=null && label_id.equals(LABEL_ID_MOVIE)){
((RoomActivity) getActivity()).jiaR();
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("from", "我的界面").withString("roomId", AgoraManager.getInstance(getActivity()).getLastRoomId()).navigation();
return;
}else {
((RoomActivity) getActivity()).performExitRoom(1);
}
}
}
private MediaProjection[] mediaProjection = new MediaProjection[1];
private MediaProjectionManager mediaProjectionManager;
private final ActivityResultLauncher<Intent> mediaProjectionLauncher = registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
result -> {
if (result.getResultCode() == Activity.RESULT_OK) {
try {
mediaProjection[0] = mediaProjectionManager
.getMediaProjection(result.getResultCode(), result.getData());
joinChannel();
} catch (Exception e) {
Log.e("RoomCabinFragment", "error msg: " + e.getMessage());
}
}
}
);
// private MediaProjection[] mediaProjection = new MediaProjection[1];
// private MediaProjectionManager mediaProjectionManager;
// private final ActivityResultLauncher<Intent> mediaProjectionLauncher = registerForActivityResult(
// new ActivityResultContracts.StartActivityForResult(),
// result -> {
// if (result.getResultCode() == Activity.RESULT_OK) {
// try {
// mediaProjection[0] = mediaProjectionManager
// .getMediaProjection(result.getResultCode(), result.getData());
// joinChannel();
// } catch (Exception e) {
// Log.e("RoomCabinFragment", "error msg: " + e.getMessage());
// }
// }
// }
// );
private void isConfig() {
@@ -512,8 +724,8 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
private void joinChannel() {
AgoraManager.getInstance(getContext()).updateChannelMediaOptions();
AgoraManager.getInstance(getContext()).post();
AgoraManager.getInstance(getActivity()).updateChannelMediaOptions();
AgoraManager.getInstance(getActivity()).post();
}
/**
@@ -631,7 +843,25 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
@Subscribe (threadMode = ThreadMode.MAIN)
public void roomInfoEvent(CabinEvent messageEvent) {
if (messageEvent.isJoined()){
isMicPlace=true;
if (CommonAppContext.getInstance().isMicPlace) {
isMicPlace = true;
}
}
}
@Override
public void onDestroy() {
super.onDestroy();
releaseResources();
}
public void releaseResources(){
releaseCountDownTimer();
// ImageUtils.clearDiskCache(getActivity());
// if (mediaProjection[0] != null) {
// mediaProjection[0].stop();
// mediaProjection[0] = null;
// }
}
}

View File

@@ -18,6 +18,7 @@ import com.example.moduleroom.presenter.RoomChartsPresenter;
import com.example.moduletablayout.listener.CustomTabEntity;
import com.example.moduletablayout.listener.OnTabSelectListener;
import com.xscm.moduleutil.base.BaseMvpDialogFragment;
import com.xscm.moduleutil.bean.room.RoomInfoResp;
import java.util.ArrayList;
@@ -32,11 +33,13 @@ public class RoomChartsFragment extends BaseMvpDialogFragment<RoomChartsPresente
public static final int TYPE_WEALTH = 2;//魅力榜
private int type = TYPE_CHARM;
private int childType = RankingChildFragment.TYPE_DATA;
private RoomInfoResp mRoomInfoResp;
public static RoomChartsFragment newInstance(String roomId) {
public static RoomChartsFragment newInstance(String roomId,RoomInfoResp roomInfoResp) {
RoomChartsFragment roomRankingFragment = new RoomChartsFragment();
Bundle bundle = new Bundle();
bundle.putString("roomId", roomId);
bundle.putSerializable("roomInfoResp", roomInfoResp);
roomRankingFragment.setArguments(bundle);
return roomRankingFragment;
}
@@ -63,12 +66,13 @@ public class RoomChartsFragment extends BaseMvpDialogFragment<RoomChartsPresente
public void onAttach(@NonNull Context context) {
super.onAttach(context);
mRoomId = getArguments().getString("roomId");
mRoomInfoResp = (RoomInfoResp) getArguments().getSerializable("roomInfoResp");
}
@Override
protected void initData() {
FragmentUtils.add(getChildFragmentManager(), RankingChildFragment.newInstance(mRoomId, childType, type), R.id.fl_content);
FragmentUtils.add(getChildFragmentManager(), RankingChildFragment.newInstance(mRoomId, childType, type, mRoomInfoResp), R.id.fl_content);
}
@Override
@@ -106,7 +110,7 @@ public class RoomChartsFragment extends BaseMvpDialogFragment<RoomChartsPresente
mBinding.tvWealth.setOnClickListener(this::onViewClicked);
}
private void refresh() {
FragmentUtils.replace(getChildFragmentManager(), RankingChildFragment.newInstance(mRoomId, childType, type), R.id.fl_content);
FragmentUtils.replace(getChildFragmentManager(), RankingChildFragment.newInstance(mRoomId, childType, type, mRoomInfoResp), R.id.fl_content);
}
public static class TabItem implements CustomTabEntity {

View File

@@ -36,7 +36,7 @@ public class CardRelationshipPresenter extends BasePresenter<CardRelationshipCon
@Override
public void getGiftList(String id) {
api.getGiftList(Integer.parseInt(id), new BaseObserver<List<RoonGiftModel>>() {
api.getGiftList(Integer.parseInt(id),"", new BaseObserver<List<RoonGiftModel>>() {
@Override
public void onSubscribe(Disposable d) {

View File

@@ -4,7 +4,13 @@ import android.content.Context;
import com.example.moduleroom.contacts.FriendshipRoomContacts;
import com.xscm.moduleutil.base.BaseRoomPresenter;
import com.xscm.moduleutil.bean.UserOnlineStatusBean;
import com.xscm.moduleutil.bean.room.FriendUserBean;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.http.RetrofitClient;
import java.lang.ref.WeakReference;
import java.util.List;
import io.reactivex.disposables.Disposable;
@@ -46,4 +52,71 @@ public class FriendshipRoomPresenter extends BaseRoomPresenter<FriendshipRoomCon
});
}
@Override
public void delay(String friend_id, String room_id, String delay_times) {
api.delay(friend_id, room_id, delay_times, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
}
@Override
public void onNext(String s) {
}
});
}
@Override
public void endFriend(String friend_id, String room_id) {
api.endFriend(friend_id, room_id, new BaseObserver<FriendUserBean>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
}
@Override
public void onNext(FriendUserBean friendUserBean) {
MvpRef.get().endFriend(friendUserBean);
}
});
}
// TODO: 2025/8/24 交友房选择关系
@Override
public void createRelation(String room_id, String friend_id, String user1_id, String user2_id, String relation_id) {
api.createRelation(room_id,friend_id,user1_id,user2_id,relation_id, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
}
@Override
public void onNext(String s) {
MvpRef.get().createRelation();
}
});
}
@Override
public void userOnlineStatus(String userId, String roomid) {
RetrofitClient.getInstance().userOnlineStatus(userId, roomid, new BaseObserver<List<UserOnlineStatusBean>>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
}
@Override
public void onNext(List<UserOnlineStatusBean> userOnlineStatusBean) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().userOnlineStatus(userOnlineStatusBean);
}
});
}
}

View File

@@ -9,13 +9,16 @@ import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.http.RetrofitClient;
import com.xscm.moduleutil.presenter.BasePresenter;
import java.lang.ref.WeakReference;
import java.util.List;
import io.reactivex.disposables.Disposable;
public class RoomAuctionPresenterTow extends BasePresenter<RoomAuctionContacts.View> implements RoomAuctionContacts.IRoomDataListPre {
RoomAuctionContacts.View mView;
public RoomAuctionPresenterTow(RoomAuctionContacts.View view, Context context) {
super(view, context);
mView = view;
}
@Override
@@ -28,6 +31,9 @@ public class RoomAuctionPresenterTow extends BasePresenter<RoomAuctionContacts.V
@Override
public void onNext(String s) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().applyPit();
}
});
@@ -43,6 +49,9 @@ public class RoomAuctionPresenterTow extends BasePresenter<RoomAuctionContacts.V
@Override
public void onNext(AuctionBean auctionBean) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().roomAuction(auctionBean);
}
});
@@ -105,6 +114,9 @@ public class RoomAuctionPresenterTow extends BasePresenter<RoomAuctionContacts.V
@Override
public void onNext(List<UserOnlineStatusBean> userOnlineStatusBean) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().userOnlineStatus(userOnlineStatusBean);
}
});

View File

@@ -3,12 +3,15 @@ package com.example.moduleroom.presenter;
import android.content.Context;
import com.example.moduleroom.contacts.RoomBackgroundContacts;
import com.hjq.toast.ToastUtils;
import com.xscm.moduleutil.bean.RoomBgBean;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.presenter.BasePresenter;
import com.xscm.moduleutil.utils.cos.CosUploadManager;
import com.xscm.moduleutil.utils.oss.OSSOperUtils;
import java.io.File;
import java.lang.ref.WeakReference;
import io.reactivex.disposables.Disposable;
@@ -35,21 +38,35 @@ public class RoomBackgroundPresenter extends BasePresenter<RoomBackgroundContact
@Override
public void uploadFile(File file, int type, int index, int size) {
String url = OSSOperUtils.getPath(file, type);
OSSOperUtils.newInstance().putObjectMethod(url, file.getPath(), new OSSOperUtils.OssCallback() {
CosUploadManager.getInstance().upParameters(url,file.getPath(), new CosUploadManager.UploadCallback() {
@Override
public void onSuccess() {
public void onSuccess(String url) {
if (isViewAttach()) {
MvpRef.get().upLoadSuccess(OSSOperUtils.AliYunOSSURLFile + url, type, index, size);
MvpRef.get().upLoadSuccess(url, type, index, size);
}
}
@Override
public void onFail() {
if (isViewAttach()) {
MvpRef.get().disLoadings();
}
public void onFailure(Exception e) {
ToastUtils.show("上传失败");
}
});
// OSSOperUtils.newInstance().putObjectMethod(url, file.getPath(), new OSSOperUtils.OssCallback() {
// @Override
// public void onSuccess() {
// if (isViewAttach()) {
// MvpRef.get().upLoadSuccess(OSSOperUtils.AliYunOSSURLFile + url, type, index, size);
// }
// }
//
// @Override
// public void onFail() {
// if (isViewAttach()) {
// MvpRef.get().disLoadings();
// }
// }
// });
}
@Override

View File

@@ -2,14 +2,18 @@ package com.example.moduleroom.presenter;
import android.content.Context;
import com.blankj.utilcode.util.LogUtils;
import com.example.moduleroom.contacts.RoomContacts;
import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.bean.RedPacketInfo;
import com.xscm.moduleutil.bean.RoomCharmRankBean;
import com.xscm.moduleutil.bean.UserOnlineStatusBean;
import com.xscm.moduleutil.bean.room.RoomInfoResp;
import com.xscm.moduleutil.bean.room.RoomOnline;
import com.xscm.moduleutil.http.APIException;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.http.RetrofitClient;
import com.xscm.moduleutil.listener.MessageListenerSingleton;
import com.xscm.moduleutil.presenter.BasePresenter;
import com.xscm.moduleutil.rtc.AgoraManager;
import com.xscm.moduleutil.utils.SpUtil;
@@ -18,6 +22,7 @@ import java.lang.ref.WeakReference;
import java.util.List;
import io.reactivex.disposables.Disposable;
import org.jetbrains.annotations.NotNull;
public class RoomPresenter extends BasePresenter<RoomContacts.View> implements RoomContacts.IRoomPre {
RoomContacts.View mView;
@@ -55,10 +60,19 @@ public class RoomPresenter extends BasePresenter<RoomContacts.View> implements R
if (resp.getUser_info().getPit_number()!=0){
enableJs=true;
}
LogUtils.e("token",token);
LogUtils.e("roomId:",roomId);
if (getView()!= null && getView().getSelfActivity()!=null){
AgoraManager.getInstance(getView().getSelfActivity())
.joinRoom(token, roomId, uid, enableMic,enableJs);
}else {
AgoraManager.getInstance(mContext.getApplicationContext())
.joinRoom(token, roomId, uid, enableMic,enableJs);
}
// 初始化 Agora 并加入房间
AgoraManager.getInstance(getView().getSelfActivity())
.joinRoom(token, roomId, uid, enableMic,enableJs);
// RtcCore rtcCore = RtcCore.getInstance(getView().getSelfActivity());
// rtcCore.initAgora(appId);
@@ -74,6 +88,9 @@ public class RoomPresenter extends BasePresenter<RoomContacts.View> implements R
@Override
public void onError(Throwable e) {
super.onError(e);
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
if (e instanceof APIException) {
APIException apiException = (APIException) e;
if (apiException.getCode() == 10000) {
@@ -104,6 +121,7 @@ public class RoomPresenter extends BasePresenter<RoomContacts.View> implements R
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().getRoomOnline(roomOnlineBeans);
MvpRef.get().findRoom();
}
});
}
@@ -146,6 +164,9 @@ public class RoomPresenter extends BasePresenter<RoomContacts.View> implements R
@Override
public void applySong(String roomId) {
if (api== null){
api = RetrofitClient.getInstance();
}
api.applySong(roomId, new BaseObserver<String>() {
@Override
@@ -165,6 +186,9 @@ public class RoomPresenter extends BasePresenter<RoomContacts.View> implements R
@Override
public void agreeSong(String roomId, String type) {
if (api== null){
api = RetrofitClient.getInstance();
}
api.agreeSong(roomId, type, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
@@ -210,17 +234,14 @@ public class RoomPresenter extends BasePresenter<RoomContacts.View> implements R
@Override
public void onNext(RoomInfoResp roomInfoResp) {
String appId = CommonAppContext.getInstance().getCurrentEnvironment().getSwSdkAppId();
String token = roomInfoResp.getUser_info().getAgora_token(); // 如果启用了鉴权才需要
String roomId = roomInfoResp.getRoom_info().getRoom_id(); // 房间 ID
String rtm_token=roomInfoResp.getUser_info().getAgora_rtm_token();
SpUtil.setRtmToken(rtm_token);
int uid = SpUtil.getUserId(); // 0 表示由 Agora 自动生成 UID
boolean enableMic = false; // 是否开启麦克风
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().postRoomInfo(roomInfoResp);
if (roomInfoResp==null){
MvpRef.get().postRoomInfo(null);
}else {
MvpRef.get().postRoomInfo(roomInfoResp);
}
}
});
}
@@ -297,6 +318,24 @@ public class RoomPresenter extends BasePresenter<RoomContacts.View> implements R
});
}
@Override
public void quitRoom2(String roomId, String userId) {
api.quitRoom(roomId, userId, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
}
@Override
public void onNext(String string) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().quitRoom2(roomId);
}
});
}
@Override
public void userGuanz(String userId, String type) {
api.userGuanz(userId,type, new BaseObserver<String>() {
@@ -369,4 +408,55 @@ public class RoomPresenter extends BasePresenter<RoomContacts.View> implements R
}
});
}
@Override
public void auctionEnd(String auctionId,String roomId) {
api.auctionEnd(auctionId,roomId, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
}
@Override
public void onNext(String s) {
// MvpRef.get().auctionEnd();
}
});
}
@Override
public void auctionDelay(String auctionId) {
RetrofitClient.getInstance().auctionDelay(auctionId, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
}
@Override
public void onNext(String s) {
// MvpRef.get().auctionDelay();
}
});
}
@Override
public void roomRedPackets(String roomId) {
api.roomRedPackets(roomId,new BaseObserver<List<RedPacketInfo>>(){
@Override
public void onSubscribe(@NotNull Disposable d) {
addDisposable(d);
}
@Override
public void onNext(@NotNull List<RedPacketInfo> redPacketInfos) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().roomRedPackets(redPacketInfos);
}
});
}
}

View File

@@ -5,6 +5,7 @@ import android.content.Context;
import com.example.moduleroom.contacts.RoomSettingContacts;
import com.xscm.moduleutil.bean.room.RoomSettingBean;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.http.RetrofitClient;
import com.xscm.moduleutil.presenter.BasePresenter;
import java.lang.ref.WeakReference;
@@ -20,6 +21,9 @@ public class RoomSettingPresenter extends BasePresenter<RoomSettingContacts.View
@Override
public void changeRoom(String roomId, String userId, int position, RoomSettingBean bean) {
if (api==null){
api= RetrofitClient.getInstance();
}
api.changeRoom(roomId, userId, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
@@ -48,6 +52,9 @@ public class RoomSettingPresenter extends BasePresenter<RoomSettingContacts.View
@Override
public void changeRoomType(String roomId, String type) {
if (api==null){
api= RetrofitClient.getInstance();
}
api.changeRoomType(roomId, type, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {

View File

@@ -6,6 +6,7 @@ import com.example.moduleroom.contacts.RoomUserContacts;
import com.xscm.moduleutil.bean.RelationCardBean;
import com.xscm.moduleutil.bean.UserInfo;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.http.RetrofitClient;
import com.xscm.moduleutil.presenter.BasePresenter;
import java.lang.ref.WeakReference;
@@ -22,6 +23,9 @@ public class RoomUserPresenter extends BasePresenter<RoomUserContacts.View> impl
@Override
public void getRoomUserInfo(String roomId, String userId) {
if (api==null){
api= RetrofitClient.getInstance();
}
api.getRoomUserInfo(roomId, userId, new BaseObserver<UserInfo>() {
@Override
public void onSubscribe(Disposable d) {
@@ -30,6 +34,9 @@ public class RoomUserPresenter extends BasePresenter<RoomUserContacts.View> impl
@Override
public void onNext(UserInfo userInfo) {
if (MvpRef == null) {
MvpRef = new WeakReference<>(mView);
}
MvpRef.get().getRoomUserInfo(userInfo);
}
});
@@ -37,6 +44,9 @@ public class RoomUserPresenter extends BasePresenter<RoomUserContacts.View> impl
@Override
public void downPit(String roomId, String pitNumber) {
if (api==null){
api= RetrofitClient.getInstance();
}
api.downPit(roomId, pitNumber, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
@@ -45,6 +55,9 @@ public class RoomUserPresenter extends BasePresenter<RoomUserContacts.View> impl
@Override
public void onNext(String string) {
if (MvpRef == null) {
MvpRef = new WeakReference<>(mView);
}
MvpRef.get().downPit();
}
});
@@ -52,6 +65,9 @@ public class RoomUserPresenter extends BasePresenter<RoomUserContacts.View> impl
@Override
public void hostUserPit(String roomId, String pitNumber, String userId, String type) {
if (api==null){
api= RetrofitClient.getInstance();
}
api.hostUserPit(roomId, pitNumber, userId, type, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
@@ -60,6 +76,9 @@ public class RoomUserPresenter extends BasePresenter<RoomUserContacts.View> impl
@Override
public void onNext(String string) {
if (MvpRef == null) {
MvpRef = new WeakReference<>(mView);
}
MvpRef.get().hostUserPit();
}
});
@@ -67,6 +86,9 @@ public class RoomUserPresenter extends BasePresenter<RoomUserContacts.View> impl
@Override
public void giveCoin(String user_id, String coin) {
if (api==null){
api= RetrofitClient.getInstance();
}
api.giveCoin(user_id, coin, new BaseObserver<String>() {
@Override
@@ -76,6 +98,9 @@ public class RoomUserPresenter extends BasePresenter<RoomUserContacts.View> impl
@Override
public void onNext(String s) {
if (MvpRef == null) {
MvpRef = new WeakReference<>(mView);
}
MvpRef.get().giveCoin();
}
});
@@ -83,6 +108,9 @@ public class RoomUserPresenter extends BasePresenter<RoomUserContacts.View> impl
@Override
public void relationCard(String user_id) {
if (api==null){
api= RetrofitClient.getInstance();
}
api.relationCard(user_id, new BaseObserver<RelationCardBean>() {
@Override
@@ -102,6 +130,9 @@ public class RoomUserPresenter extends BasePresenter<RoomUserContacts.View> impl
@Override
public void topRelationCard(String id) {
if (api==null){
api= RetrofitClient.getInstance();
}
api.topRelationCard(id, new BaseObserver<String>() {
@Override
@@ -111,6 +142,9 @@ public class RoomUserPresenter extends BasePresenter<RoomUserContacts.View> impl
@Override
public void onNext(String s) {
if (MvpRef == null) {
MvpRef = new WeakReference<>(mView);
}
MvpRef.get().topRelationCard(s);
}
});
@@ -118,6 +152,9 @@ public class RoomUserPresenter extends BasePresenter<RoomUserContacts.View> impl
@Override
public void deleteRelationCard(String id) {
if (api==null){
api= RetrofitClient.getInstance();
}
api.deleteRelationCard(id, new BaseObserver<String>() {
@Override
@@ -135,8 +172,30 @@ public class RoomUserPresenter extends BasePresenter<RoomUserContacts.View> impl
});
}
@Override
public void clearUserCharm(String roomId, String userId) {
api.clearUserCharm(roomId, userId, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
}
@Override
public void onNext(String s) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().clearUserCharm();
}
});
}
@Override
public void kickOutRoom(String roomId, String userId) {
if (api==null){
api= RetrofitClient.getInstance();
}
api.kickOutRoom(roomId, userId, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
@@ -145,6 +204,9 @@ public class RoomUserPresenter extends BasePresenter<RoomUserContacts.View> impl
@Override
public void onNext(String string) {
if (MvpRef == null) {
MvpRef = new WeakReference<>(mView);
}
MvpRef.get().kickOutRoom();
}
});
@@ -152,6 +214,9 @@ public class RoomUserPresenter extends BasePresenter<RoomUserContacts.View> impl
@Override
public void postHostAdd(String roomId, String userId, String type, String is_add) {
if (api==null){
api= RetrofitClient.getInstance();
}
api.postHostAdd(roomId, userId, type, is_add, new BaseObserver<String>() {
@@ -162,6 +227,9 @@ public class RoomUserPresenter extends BasePresenter<RoomUserContacts.View> impl
@Override
public void onNext(String s) {
if (MvpRef == null) {
MvpRef = new WeakReference<>(mView);
}
MvpRef.get().postHostAdd(s, type, is_add);
}
@@ -170,6 +238,9 @@ public class RoomUserPresenter extends BasePresenter<RoomUserContacts.View> impl
@Override
public void setMutePit(String roomId, String user_id, String is_mute) {
if (api==null){
api= RetrofitClient.getInstance();
}
api.setMutePit(roomId, user_id, is_mute, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
@@ -178,6 +249,9 @@ public class RoomUserPresenter extends BasePresenter<RoomUserContacts.View> impl
@Override
public void onNext(String string) {
if (MvpRef == null) {
MvpRef = new WeakReference<>(mView);
}
MvpRef.get().setMutePit(user_id, is_mute);
}
});
@@ -185,6 +259,9 @@ public class RoomUserPresenter extends BasePresenter<RoomUserContacts.View> impl
@Override
public void addBlackList(String userId) {
if (api==null){
api= RetrofitClient.getInstance();
}
api.addBlackList(userId, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
@@ -193,6 +270,9 @@ public class RoomUserPresenter extends BasePresenter<RoomUserContacts.View> impl
@Override
public void onNext(String string) {
if (MvpRef == null) {
MvpRef = new WeakReference<>(mView);
}
MvpRef.get().addBlackList();
}
});
@@ -200,6 +280,9 @@ public class RoomUserPresenter extends BasePresenter<RoomUserContacts.View> impl
@Override
public void userGuanz(String userId, String type) {
if (api==null){
api= RetrofitClient.getInstance();
}
api.userGuanz(userId, type, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
@@ -208,8 +291,29 @@ public class RoomUserPresenter extends BasePresenter<RoomUserContacts.View> impl
@Override
public void onNext(String s) {
if (MvpRef == null) {
MvpRef = new WeakReference<>(mView);
}
MvpRef.get().userGuanzSuccess(s);
}
});
}
@Override
public void applyPit(String roomId, String pitNumber) {
RetrofitClient.getInstance().applyPit(roomId, pitNumber, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
}
@Override
public void onNext(String s) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().applyPit();
}
});
}
}

View File

@@ -9,21 +9,25 @@ import com.xscm.moduleutil.bean.PkSwTokenBean;
import com.xscm.moduleutil.bean.UserOnlineStatusBean;
import com.xscm.moduleutil.bean.room.RoomInfoResp;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.http.RetrofitClient;
import com.xscm.moduleutil.rtc.AgoraManager;
import com.xscm.moduleutil.utils.SpUtil;
import java.lang.ref.WeakReference;
import java.util.List;
import io.reactivex.disposables.Disposable;
public class SingSongPresenter extends BaseRoomPresenter<SingSongContacts.View> implements SingSongContacts.IEmotionRoomPre {
private SingSongContacts.View mView;
public SingSongPresenter(SingSongContacts.View view, Context context) {
super(view, context);
mView = view;
}
@Override
public void applyPit(String roomId, String pitNumber) {
api.applyPit(roomId, pitNumber, new BaseObserver<String>() {
RetrofitClient.getInstance().applyPit(roomId, pitNumber, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
@@ -31,6 +35,9 @@ public class SingSongPresenter extends BaseRoomPresenter<SingSongContacts.View>
@Override
public void onNext(String s) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().applyPit();
}
});
@@ -38,7 +45,7 @@ public class SingSongPresenter extends BaseRoomPresenter<SingSongContacts.View>
@Override
public void setMutePit(String roomId, String pitNumber, String is_mute) {
api.setMutePit(roomId, pitNumber, is_mute, new BaseObserver<String>() {
RetrofitClient.getInstance().setMutePit(roomId, pitNumber, is_mute, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
@@ -46,6 +53,9 @@ public class SingSongPresenter extends BaseRoomPresenter<SingSongContacts.View>
@Override
public void onNext(String string) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().setMutePit(pitNumber, is_mute);
}
});
@@ -53,7 +63,7 @@ public class SingSongPresenter extends BaseRoomPresenter<SingSongContacts.View>
@Override
public void setLockPit(String roomId, String pitNumber, String is_lock) {
api.setLockPit(roomId, pitNumber, is_lock, new BaseObserver<String>() {
RetrofitClient.getInstance().setLockPit(roomId, pitNumber, is_lock, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
@@ -61,6 +71,9 @@ public class SingSongPresenter extends BaseRoomPresenter<SingSongContacts.View>
@Override
public void onNext(String string) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().setLockPit(pitNumber, is_lock);
}
});
@@ -69,7 +82,7 @@ public class SingSongPresenter extends BaseRoomPresenter<SingSongContacts.View>
/// 请求房间信息当pk同意的时候获取对方房间信息同时请求自己房间信息做页面的更新 添加一type1请求对方信息 2请求自己房间信息 3:是否接受PK
@Override
public void postRoomInfo(String roomId, String number,int type) {
api.postRoomInfo(roomId, new BaseObserver<RoomInfoResp>() {
RetrofitClient.getInstance().postRoomInfo(roomId, new BaseObserver<RoomInfoResp>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
@@ -77,6 +90,9 @@ public class SingSongPresenter extends BaseRoomPresenter<SingSongContacts.View>
@Override
public void onNext(RoomInfoResp roomInfoResp) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
String appId = CommonAppContext.getInstance().getCurrentEnvironment().getSwSdkAppId();
String token = roomInfoResp.getUser_info().getAgora_token(); // 如果启用了鉴权才需要
String roomId = roomInfoResp.getRoom_info().getRoom_id(); // 房间 ID
@@ -106,7 +122,7 @@ public class SingSongPresenter extends BaseRoomPresenter<SingSongContacts.View>
@Override
public void endPk(String pk_id, String type, String user_id) {
api.endPk(pk_id, type, user_id, new BaseObserver<String>() {
RetrofitClient.getInstance().endPk(pk_id, type, user_id, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
@@ -114,6 +130,9 @@ public class SingSongPresenter extends BaseRoomPresenter<SingSongContacts.View>
@Override
public void onNext(String s) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().endPk();
}
});
@@ -121,7 +140,7 @@ public class SingSongPresenter extends BaseRoomPresenter<SingSongContacts.View>
@Override
public void userOnlineStatus(String userId, String roomid) {
api.userOnlineStatus(userId, roomid, new BaseObserver<List<UserOnlineStatusBean>>() {
RetrofitClient.getInstance().userOnlineStatus(userId, roomid, new BaseObserver<List<UserOnlineStatusBean>>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
@@ -129,13 +148,16 @@ public class SingSongPresenter extends BaseRoomPresenter<SingSongContacts.View>
@Override
public void onNext(List<UserOnlineStatusBean> userOnlineStatusBean) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().userOnlineStatus(userOnlineStatusBean);
}
});
}
public void postRoomSwToken(String roomId,int uid) {
api.postRoomSwToken(roomId, new BaseObserver<PkSwTokenBean>() {
RetrofitClient.getInstance().postRoomSwToken(roomId, new BaseObserver<PkSwTokenBean>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);

View File

@@ -7,11 +7,17 @@ import com.xscm.moduleutil.bean.room.RoomApplyListBean;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.presenter.BasePresenter;
import java.lang.ref.WeakReference;
import io.reactivex.disposables.Disposable;
public class WheatPresenter extends BasePresenter<WheatContacts.View> implements WheatContacts.IRoomPre {
private WheatContacts.View mView;
public WheatPresenter(WheatContacts.View view, Context context) {
super(view, context);
this.mView = view;
}
@Override
@@ -25,6 +31,9 @@ public class WheatPresenter extends BasePresenter<WheatContacts.View> implements
@Override
public void onNext(RoomApplyListBean roomApplyListBeans) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().roomApplyListBean(roomApplyListBeans);
}
});
@@ -40,6 +49,9 @@ public class WheatPresenter extends BasePresenter<WheatContacts.View> implements
@Override
public void onNext(String s) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().clearApply();
}
});
@@ -55,6 +67,9 @@ public class WheatPresenter extends BasePresenter<WheatContacts.View> implements
@Override
public void onNext(String s) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().agreePit();
}
});
@@ -70,6 +85,9 @@ public class WheatPresenter extends BasePresenter<WheatContacts.View> implements
@Override
public void onNext(String s) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().agreePit();
}
});
@@ -85,6 +103,9 @@ public class WheatPresenter extends BasePresenter<WheatContacts.View> implements
@Override
public void onNext(String s) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().agreePit();
}
});
@@ -100,6 +121,9 @@ public class WheatPresenter extends BasePresenter<WheatContacts.View> implements
@Override
public void onNext(String s) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().applyPit();
}
});
@@ -107,7 +131,7 @@ public class WheatPresenter extends BasePresenter<WheatContacts.View> implements
@Override
public void roomGift(String room_id, String gift_id, String gift_num, String to_uid, String type, String pit_number) {
api.roomGift(room_id, gift_id, gift_num, to_uid, type, pit_number, new BaseObserver<String>() {
api.roomGift(room_id, gift_id, gift_num, to_uid, type, pit_number,"", new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
@@ -116,6 +140,9 @@ public class WheatPresenter extends BasePresenter<WheatContacts.View> implements
@Override
public void onNext(String s) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().giveGift();
}
});

View File

@@ -1,286 +1,679 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".activity.RoomActivity">
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".activity.RoomActivity">
<data>
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true"
android:background="@color/transparent"
android:clipChildren="false"
android:clipToPadding="false"
android:keepScreenOn="true">
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true"
android:background="@color/transparent"
android:clipChildren="false"
android:clipToPadding="false"
android:keepScreenOn="true">
<com.xscm.moduleutil.widget.DropHourlView
android:id="@+id/cl_xsb"
android:layout_width="@dimen/dp_68"
android:layout_height="@dimen/dp_35"
android:layout_marginTop="@dimen/dp_60"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_100"
android:gravity="right"
android:background="@mipmap/room_xsb"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:visibility="visible"
android:elevation="4dp"
android:visibility="invisible">
<!-- android:background="@mipmap/room_xsb"-->
<TextView
android:id="@+id/tv_xlh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|center"
android:gravity="center|right"
android:padding="@dimen/dp_8"
android:text="小时榜"
android:textColor="#FFFFFF"
android:textSize="13sp"/>
</com.xscm.moduleutil.widget.DropHourlView>
<com.xscm.moduleutil.widget.DropRedView
android:id="@+id/drv_red"
android:layout_width="@dimen/dp_65"
android:layout_height="@dimen/dp_65"
android:layout_marginTop="@dimen/dp_160"
android:gravity="center"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:visibility="visible"
android:elevation="4dp"
android:visibility="invisible">
<ImageView
android:id="@+id/red_bj"
android:layout_width="@dimen/dp_58"
android:layout_height="@dimen/dp_58"
android:src="@mipmap/red_bj"
android:layout_gravity="center"
android:scaleType="fitCenter"/>
<TextView
android:id="@+id/red_num"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_18"
android:layout_gravity="top|end"
android:layout_marginStart="-20dp"
android:layout_marginTop="@dimen/dp_5"
tools:text="x0"
android:textColor="#FFFEB2"
android:textSize="14sp"
android:visibility="invisible"
tools:visibility="visible"/>
</com.xscm.moduleutil.widget.DropRedView>
<ImageView
android:id="@+id/iv_bg"
android:layout_width="0dp"
android:layout_height="0dp"
android:scaleType="centerCrop"
android:src="@mipmap/room_bj"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
android:id="@+id/iv_bg"
android:layout_width="0dp"
android:layout_height="0dp"
android:scaleType="centerCrop"
android:src="@mipmap/room_bj"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<ImageView
android:id="@+id/iv_bg_mask"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@color/color_40000000"
android:scaleType="centerCrop"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
android:id="@+id/iv_bg_mask"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@color/color_40000000"
android:scaleType="centerCrop"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<include
android:id="@+id/room_top"
layout="@layout/room_top"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_50"
android:clipChildren="false"
android:clipToPadding="false"
app:layout_constraintTop_toTopOf="parent" />
<!-- <com.qxcm.moduleutil.widget.ScrollViewPager-->
<!-- android:id="@+id/vp_room_pager"-->
android:id="@+id/room_top"
layout="@layout/room_top"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_35"
android:clipChildren="false"
android:clipToPadding="false"
android:elevation="2dp"
app:layout_constraintTop_toTopOf="parent"/>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/main_content_container"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_15"
android:clipChildren="false"
android:clipToPadding="false"
app:layout_constraintBottom_toTopOf="@+id/ll_bottom"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/room_top">
<!-- <androidx.constraintlayout.widget.Guideline-->
<!-- android:id="@+id/guideline_horizontal"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:orientation="horizontal"-->
<!-- app:layout_constraintGuide_percent="0.66" />-->
<FrameLayout
android:id="@+id/vp_room_pager"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginBottom="@dimen/dp_5"
android:clipChildren="false"
android:clipToPadding="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<FrameLayout
android:id="@+id/ease_container"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="@dimen/dp_5"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/vp_room_pager">
<com.xscm.moduleutil.widget.AvatarFrameView
android:id="@+id/svga_ride"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minHeight="@dimen/dp_80"/>
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.xscm.moduleutil.widget.RoomMessageInputMenu
android:id="@+id/input_menu1"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
<LinearLayout
android:id="@+id/ll_bottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_15"
android:animateLayoutChanges="true"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="@dimen/dp_16"
android:paddingRight="@dimen/dp_16"
app:layout_constraintBottom_toTopOf="@+id/input_menu1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
<LinearLayout
android:layout_width="0dp"
android:layout_height="@dimen/dp_36"
android:layout_weight="1.4"
android:background="@drawable/room_bottom_bg"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="@dimen/dp_5"
android:paddingRight="@dimen/dp_5">
<ImageView
android:id="@+id/iv_emoji"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
android:layout_marginLeft="@dimen/dp_5"
android:src="@mipmap/xiaox_bq"/>
<TextView
android:id="@+id/iv_chat"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_10"
android:text="说点什么"
android:textColor="#80ffffff"
android:textSize="@dimen/sp_13"/>
</LinearLayout>
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="0.2"/>
<RelativeLayout
android:id="@+id/rl_voive"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_5"
android:layout_weight="0.3">
<ImageView
android:id="@+id/im_voive"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
android:layout_centerInParent="true"
android:src="@mipmap/room_voice_kg"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_mic"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_5"
android:layout_weight="0.3"
android:gravity="center_vertical">
<ImageView
android:id="@+id/iv_mic"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
android:layout_centerInParent="true"
android:src="@mipmap/room_microphone_off"
android:visibility="visible"
tools:visibility="visible"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_message"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_5"
android:layout_weight="0.3">
<ImageView
android:id="@+id/iv_message"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
android:layout_centerInParent="true"
android:src="@mipmap/room_message"
android:visibility="visible"/>
<!-- <ImageView-->
<!-- android:id="@+id/iv_message_dot"-->
<!-- android:layout_width="@dimen/dp_14"-->
<!-- android:layout_height="@dimen/dp_14"-->
<!-- android:layout_alignParentEnd="true"-->
<!-- android:src="@mipmap/room_ic_red_dot"-->
<!-- android:visibility="gone"-->
<!-- tools:visibility="visible" />-->
<TextView
android:id="@+id/iv_message_dot"
android:layout_width="@dimen/dp_14"
android:layout_height="@dimen/dp_14"
android:layout_alignParentEnd="true"
android:background="@drawable/ease_bg_msg_count"
android:gravity="center"
android:paddingLeft="@dimen/dp_5"
android:paddingTop="1.5dp"
android:paddingRight="@dimen/dp_5"
android:paddingBottom="2dp"
android:textColor="@color/white"
android:textSize="@dimen/sp_8"
android:visibility="gone"
tools:text="99+"
tools:visibility="visible"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_more"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_5"
android:layout_weight="0.3">
<ImageView
android:id="@+id/iv_more"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
android:layout_centerInParent="true"
android:src="@mipmap/room_pk"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_misc"
android:layout_width="0dp"
android:layout_height="20dp"
android:layout_marginEnd="@dimen/dp_5"
android:layout_weight="0.3">
<ImageView
android:id="@+id/iv_misc"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
android:layout_centerInParent="true"
android:src="@mipmap/room_mis"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_gift"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_5"
android:layout_weight="0.3">
<ImageView
android:id="@+id/iv_gift"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
android:layout_centerInParent="true"
android:src="@mipmap/room_gift"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_sett"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.3">
<ImageView
android:id="@+id/iv_sett"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
android:layout_centerInParent="true"
android:src="@mipmap/room_sett"/>
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/ll_input"
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="horizontal"
app:layout_constraintBottom_toTopOf="@id/ll_bottom"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:visibility="gone"/>
<!-- </ScrollView>-->
<View
android:id="@+id/svga_gift"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@color/transparent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<!-- <com.xscm.moduleutil.widget.AvatarFrameView-->
<!-- android:id="@+id/svga_gift"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="0dp"-->
<!-- android:clipChildren="false"-->
<!-- android:clipToPadding="false"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toBottomOf="@id/room_top" />-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<!-- <ScrollView-->
<!-- android:id="@+id/scrollView"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="0dp"-->
<!-- app:layout_constraintTop_toBottomOf="@id/room_top"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent">-->
<FrameLayout
android:id="@+id/vp_room_pager"
android:layout_width="0dp"
android:layout_height="0dp"
android:clipChildren="false"
android:clipToPadding="false"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/room_top"
/>
<!-- </ScrollView>-->
<com.xscm.moduleutil.widget.AvatarFrameView
android:id="@+id/svga_gift"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.xscm.moduleutil.widget.AvatarFrameView
android:id="@+id/svga_zuoji"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!-- <com.xscm.moduleutil.widget.AvatarFrameView-->
<!-- android:id="@+id/svga_zuoji"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="0dp"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<!--礼物连送图标-->
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/gift_show_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="200dp"
android:layout_marginEnd="15dp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:visibility="visible">
android:id="@+id/gift_show_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="200dp"
android:layout_marginEnd="15dp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintBottom_toTopOf="@+id/cl_first_charge"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:visibility="visible">
<ImageView
android:id="@+id/gift_show_progress_img"
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@mipmap/default_avatar"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
android:id="@+id/gift_show_progress_img"
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@mipmap/default_avatar"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<com.xscm.moduleutil.widget.CircularProgressView
android:id="@+id/gift_show_progress"
android:layout_width="60dp"
android:layout_height="60dp"
app:backColor="#FF9800"
app:backWidth="3dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:progColor="#888888"
app:progWidth="3dp"
app:progress="0" />
android:id="@+id/gift_show_progress"
android:layout_width="60dp"
android:layout_height="60dp"
app:backColor="#FF9800"
app:backWidth="3dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:progColor="#888888"
app:progWidth="3dp"
app:progress="0"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.xscm.moduleutil.widget.floatingView.Floa
android:id="@+id/flaoat"
android:layout_width="@dimen/dp_240"
android:layout_height="@dimen/dp_135"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<FrameLayout
android:id="@+id/fl_screenshare"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_first_charge"
android:layout_width="@dimen/dp_98"
android:layout_height="@dimen/dp_43"
android:layout_marginBottom="@dimen/dp_14"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@+id/iv_sound_effects"
app:layout_constraintEnd_toEndOf="parent"
tools:visibility="visible">
<ImageView
android:id="@+id/iv_quan"
android:layout_width="@dimen/dp_18"
android:layout_height="@dimen/dp_18"
android:layout_gravity="end|bottom"
android:id="@+id/iv_first_charge"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerInside"
android:src="@mipmap/paimai"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:id="@+id/tv_first_charge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_34"
android:gravity="center"
android:text="排麦模式"
android:textColor="#FFFFFF"
android:textSize="12sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/iv_first_charge"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:id="@+id/tv_first"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_15"
android:textColor="#FFFFFF"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_first_charge"
tools:text="0人排队"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<ImageView
android:id="@+id/iv_sound_effects"
android:layout_width="@dimen/dp_46"
android:layout_height="@dimen/dp_78"
android:layout_marginEnd="@dimen/dp_16"
android:layout_marginBottom="@dimen/dp_5"
android:src="@mipmap/quan" />
<!-- 自定义内容 -->
</com.xscm.moduleutil.widget.floatingView.Floa>
android:layout_marginBottom="@dimen/dp_14"
android:src="@mipmap/room_sound_effects"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@+id/iv_wheat_feeding"
app:layout_constraintEnd_toEndOf="parent"
tools:visibility="visible"/>
<ImageView
android:id="@+id/iv_wheat_feeding"
android:layout_width="@dimen/dp_56"
android:layout_height="@dimen/dp_27"
android:layout_marginEnd="@dimen/dp_16"
android:layout_marginBottom="@dimen/dp_100"
android:src="@mipmap/room_wheat_feeding"
android:translationZ="@dimen/dp_2"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
tools:visibility="visible"/>
<!--https://tmd.xscmmidi.site/data/avatar/head_pic.png-->
<com.xscm.moduleutil.widget.DropViewRoom
android:id="@+id/xlh_rk"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_100"
android:background="@color/transparent"
android:gravity="center_vertical|center"
android:orientation="vertical"
android:visibility="invisible"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:visibility="visible">
<ImageView
android:id="@+id/xlh_im"
android:layout_width="@dimen/dp_80"
android:layout_height="@dimen/dp_80"
android:layout_gravity="center_vertical"
android:src="@mipmap/xlh_rk_bj"
app:riv_oval="true"/>
<TextView
android:id="@+id/tv_djs"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_18"
android:layout_gravity="center_vertical"
android:textColor="#FFEBBD"
android:textSize="@dimen/sp_12"
android:visibility="visible"
tools:text="倒计时12:12"/>
</com.xscm.moduleutil.widget.DropViewRoom>
<com.xscm.moduleutil.widget.floatingView.Floa
android:id="@+id/flaoat_zuoji"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:visibility="visible"
android:id="@+id/flaoat_zuoji"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:visibility="visible"
>
>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_65"
android:layout_gravity="center"
android:gravity="center"
android:orientation="horizontal">
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_65"
android:layout_gravity="center"
android:gravity="center"
android:orientation="horizontal">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="-5dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/im_hq">
android:id="@+id/cl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="-5dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/im_hq">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@mipmap/headline_b"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@mipmap/headline_b"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/head_avate"
android:layout_width="@dimen/dp_28"
android:layout_height="@dimen/dp_28"
android:layout_marginStart="@dimen/dp_26"
android:src="@mipmap/default_avatar"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:riv_oval="true" />
android:id="@+id/head_avate"
android:layout_width="@dimen/dp_28"
android:layout_height="@dimen/dp_28"
android:layout_marginStart="@dimen/dp_26"
android:src="@mipmap/default_avatar"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:riv_oval="true"/>
<TextView
android:id="@+id/headName"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_18"
android:layout_marginStart="@dimen/dp_4"
android:text="名称"
android:textColor="@color/color_FFFFF0F0"
android:textSize="@dimen/sp_12"
app:layout_constraintStart_toEndOf="@+id/head_avate"
app:layout_constraintTop_toTopOf="parent" />
android:id="@+id/headName"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_18"
android:layout_marginStart="@dimen/dp_4"
tools:text="名称"
android:textColor="#FFFF0B"
android:textStyle="bold"
android:textSize="@dimen/sp_12"
app:layout_constraintStart_toEndOf="@+id/head_avate"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:id="@+id/head_cone"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_18"
android:layout_marginStart="@dimen/dp_4"
android:gravity="center"
android:text="内容"
android:textColor="@color/color_FFFFF0F0"
android:textSize="@dimen/sp_12"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/head_avate"
app:layout_constraintTop_toBottomOf="@+id/headName" />
android:id="@+id/head_cone"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_18"
android:layout_marginStart="@dimen/dp_4"
android:gravity="center"
tools:text="内容"
android:textColor="@color/color_FFFFF0F0"
android:textSize="@dimen/sp_12"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/head_avate"
app:layout_constraintTop_toBottomOf="@+id/headName"/>
<ImageView
android:id="@+id/iv_quan_qiang"
android:layout_width="@dimen/dp_22"
android:layout_height="@dimen/dp_22"
android:src="@mipmap/tt_q"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/im_yc"
app:layout_constraintTop_toTopOf="parent" />
android:id="@+id/iv_quan_qiang"
android:layout_width="@dimen/dp_22"
android:layout_height="@dimen/dp_22"
android:src="@mipmap/tt_q"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/im_yc"
app:layout_constraintTop_toTopOf="parent"/>
<ImageView
android:id="@+id/iv_quan_c"
android:layout_width="@dimen/dp_22"
android:layout_height="@dimen/dp_22"
android:layout_marginEnd="@dimen/dp_8"
android:src="@mipmap/tt_c"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/iv_quan_qiang"
app:layout_constraintTop_toTopOf="parent" />
android:id="@+id/iv_quan_c"
android:layout_width="@dimen/dp_22"
android:layout_height="@dimen/dp_22"
android:layout_marginEnd="@dimen/dp_8"
android:src="@mipmap/tt_c"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/iv_quan_qiang"
app:layout_constraintTop_toTopOf="parent"/>
<ImageView
android:id="@+id/im_yc"
android:layout_width="@dimen/dp_22"
android:layout_height="@dimen/dp_22"
android:src="@mipmap/tt_yc"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
android:id="@+id/im_yc"
android:layout_width="@dimen/dp_22"
android:layout_height="@dimen/dp_22"
android:src="@mipmap/tt_yc"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<ImageView
android:id="@+id/im_hq"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:src="@mipmap/heab_t"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
android:id="@+id/im_hq"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:src="@mipmap/heab_t"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
@@ -288,25 +681,63 @@
</com.xscm.moduleutil.widget.floatingView.Floa>
<FrameLayout
android:id="@+id/fullscreen_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black"
android:visibility="gone" />
android:id="@+id/fullscreen_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black"
android:visibility="gone"/>
<ImageView
android:id="@+id/iv_exit_fullscreen"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
android:layout_gravity="start|top"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_16"
android:layout_marginEnd="@dimen/dp_50"
android:layout_marginBottom="@dimen/dp_46"
android:src="@mipmap/quan"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
android:id="@+id/iv_exit_fullscreen"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
android:layout_gravity="start|top"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_16"
android:layout_marginEnd="@dimen/dp_50"
android:layout_marginBottom="@dimen/dp_46"
android:src="@mipmap/quan"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<com.xscm.moduleutil.widget.floatingView.Floa
android:id="@+id/flaoat"
android:layout_width="@dimen/dp_240"
android:layout_height="@dimen/dp_135"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:translationZ="1000dp"
tools:visibility="visible">
<FrameLayout
android:id="@+id/fl_screenshare"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<ImageView
android:id="@+id/iv_quan"
android:layout_width="@dimen/dp_18"
android:layout_height="@dimen/dp_18"
android:layout_gravity="end|bottom"
android:layout_marginEnd="@dimen/dp_16"
android:layout_marginBottom="@dimen/dp_5"
android:src="@mipmap/quan"
android:translationZ="10dp"/>
<!-- 自定义内容 -->
</com.xscm.moduleutil.widget.floatingView.Floa>
<FrameLayout
android:id="@+id/gift_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/room_top"
app:layout_constraintBottom_toBottomOf="parent"
android:translationZ="9999dp"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@@ -43,7 +43,7 @@
android:id="@+id/view_top2"
android:layout_width="@dimen/dp_70"
android:layout_height="@dimen/dp_70"
android:layout_marginTop="@dimen/dp_24"
android:layout_marginTop="@dimen/dp_20"
app:layout_constraintEnd_toStartOf="@+id/view_top1"
app:layout_constraintHorizontal_chainStyle="spread"
app:layout_constraintStart_toStartOf="parent"
@@ -101,16 +101,14 @@
android:id="@+id/room_head_top2_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="34dp"
android:drawableStart="@mipmap/rank_h"
android:drawablePadding="@dimen/dp_4"
android:gravity="center"
android:textColor="@color/white"
android:textSize="@dimen/sp_8"
app:layout_constraintBottom_toBottomOf="@+id/ll_vip2"
app:layout_constraintTop_toBottomOf="@+id/ll_vip2"
app:layout_constraintEnd_toEndOf="@id/ll_vip2"
app:layout_constraintStart_toStartOf="@id/ll_vip2"
app:layout_constraintEnd_toEndOf="@id/view_top2"
app:layout_constraintStart_toStartOf="@id/view_top2"
tools:text="00000" />

View File

@@ -66,7 +66,7 @@
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_21"
android:text="知道了"
android:textColor="@color/color_FF333333"
android:textColor="@color/white"
android:textSize="@dimen/sp_14" />
<TextView
@@ -75,6 +75,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:text="3"
android:textColor="@color/white"
android:textSize="16sp" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -11,9 +11,9 @@
<com.xscm.moduleutil.widget.RoomFriendshipWheatView
android:id="@+id/wheat_view9"
android:layout_width="@dimen/dp_55"
android:layout_width="@dimen/dp_65"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_25"
android:layout_marginStart="@dimen/dp_5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:room_make_pic="@mipmap/jiaoy"
@@ -21,9 +21,9 @@
<com.xscm.moduleutil.widget.RoomFriendshipWheatView
android:id="@+id/wheat_view10"
android:layout_width="@dimen/dp_55"
android:layout_width="@dimen/dp_65"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_25"
android:layout_marginEnd="@dimen/dp_5"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:room_make_pic="@mipmap/jiaoy"
@@ -39,9 +39,11 @@
<TextView
android:id="@+id/tv_wait"
android:layout_width="@dimen/dp_60"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_20"
android:gravity="center"
android:paddingStart="@dimen/dp_3"
android:paddingEnd="@dimen/dp_3"
android:text="等待邂逅"
android:textColor="@color/white"
android:textSize="@dimen/sp_12"
@@ -60,11 +62,13 @@
<TextView
android:id="@+id/tv_heart"
android:layout_width="@dimen/dp_60"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_20"
android:layout_marginStart="@dimen/dp_10"
android:layout_marginEnd="@dimen/dp_10"
android:gravity="center"
android:paddingStart="@dimen/dp_3"
android:paddingEnd="@dimen/dp_3"
android:text="心动连线"
android:textColor="@color/white"
android:textSize="@dimen/sp_12"
@@ -82,9 +86,11 @@
<TextView
android:id="@+id/tv_hand"
android:layout_width="@dimen/dp_60"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_20"
android:gravity="center"
android:paddingStart="@dimen/dp_3"
android:paddingEnd="@dimen/dp_3"
android:text="牵手良缘"
android:textColor="@color/white"
android:textSize="@dimen/sp_12"
@@ -95,12 +101,13 @@
<TextView
android:id="@+id/tv_ks"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_height="@dimen/dp_17"
android:layout_marginTop="@dimen/dp_10"
android:background="@mipmap/jiaoy_ks"
android:gravity="center"
android:text="开始"
android:textColor="@color/white"
android:textSize="16sp"
android:textSize="@dimen/sp_12"
app:layout_constraintEnd_toEndOf="@+id/tv_heart"
app:layout_constraintStart_toStartOf="@+id/tv_heart"
app:layout_constraintTop_toBottomOf="@+id/tv_heart" />
@@ -112,14 +119,14 @@
android:layout_marginTop="10dp"
android:background="@mipmap/jiaoy_djs"
android:gravity="center"
android:visibility="gone"
tools:visibility="visible"
android:text="倒计时"
android:textColor="#D7CBFF"
android:textSize="@dimen/sp_12"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="@+id/tv_heart"
app:layout_constraintStart_toStartOf="@+id/tv_heart"
app:layout_constraintTop_toBottomOf="@+id/tv_heart" />
app:layout_constraintTop_toBottomOf="@+id/tv_heart"
tools:visibility="visible" />
</androidx.constraintlayout.widget.ConstraintLayout>
@@ -129,83 +136,84 @@
android:id="@+id/background_image"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="@dimen/dp_63"
android:layout_marginTop="@dimen/dp_21"
android:scaleType="fitCenter"
android:src="@mipmap/jiao_p1"
app:layout_constraintDimensionRatio="H,375:188"
app:layout_constraintDimensionRatio="H,1.6:1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/wheat_view9"
app:layout_constraintWidth_percent="1" />
<com.opensource.svgaplayer.SVGAImageView
android:id="@+id/iv_22"
android:layout_width="0dp"
android:layout_height="@dimen/dp_57"
android:layout_gravity="center"
android:visibility="gone"
app:autoPlay="true"
app:layout_constraintBottom_toBottomOf="@id/wheat_view2"
app:layout_constraintEnd_toStartOf="@+id/wheat_view5"
app:layout_constraintStart_toEndOf="@+id/wheat_view2"
app:layout_constraintTop_toTopOf="@id/wheat_view2"
app:loopCount="0"
tools:visibility="visible" />
<!-- <com.opensource.svgaplayer.SVGAImageView-->
<!-- android:id="@+id/iv_22"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="@dimen/dp_57"-->
<!-- android:visibility="gone"-->
<!-- app:autoPlay="true"-->
<!-- app:layout_constraintBottom_toBottomOf="@id/background_image"-->
<!-- app:layout_constraintEnd_toEndOf="@id/background_image"-->
<!-- app:layout_constraintStart_toStartOf="@id/background_image"-->
<!-- app:layout_constraintTop_toTopOf="@id/background_image"-->
<!-- app:loopCount="0"-->
<!-- app:source="heart_line_31.svga"-->
<!-- tools:visibility="visible" />-->
<ImageView
android:id="@+id/im2"
android:id="@+id/im_x2"
android:layout_width="0dp"
android:layout_height="@dimen/dp_57"
android:scaleType="fitXY"
android:src="@mipmap/jiaoy_xian"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/wheat_view2"
app:layout_constraintEnd_toStartOf="@+id/wheat_view5"
app:layout_constraintStart_toEndOf="@+id/wheat_view2"
app:layout_constraintTop_toTopOf="@id/wheat_view2"
android:visibility="gone"/>
app:layout_constraintStart_toEndOf="@id/wheat_view2"
app:layout_constraintTop_toTopOf="@id/wheat_view2" />
<!-- <ImageView-->
<!-- android:id="@+id/im_p"-->
<!-- android:layout_width="@dimen/dp_125"-->
<!-- android:layout_height="@dimen/dp_84"-->
<!-- android:scaleType="fitCenter"-->
<!-- android:src="@mipmap/jiao_p2"-->
<!-- android:layout_marginTop="@dimen/dp_21"-->
<!-- app:layout_constraintEnd_toStartOf="@+id/background_image"-->
<!-- app:layout_constraintStart_toEndOf="@+id/background_image"-->
<!-- app:layout_constraintTop_toTopOf="@+id/background_image" />-->
<ImageView
android:id="@+id/im_p"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_35"
android:scaleType="fitCenter"
android:src="@mipmap/jiao_p2"
app:layout_constraintBottom_toBottomOf="@+id/background_image"
app:layout_constraintEnd_toEndOf="@+id/background_image"
app:layout_constraintStart_toStartOf="@+id/background_image"
app:layout_constraintTop_toTopOf="@+id/background_image" />
<TextView
android:id="@+id/tv_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/jiao_p2"
android:layout_height="@dimen/dp_30"
android:layout_marginTop="@dimen/dp_25"
android:gravity="center"
android:text="20000"
android:textColor="@color/colorPrimary"
android:textSize="@dimen/sp_24"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@+id/background_image"
app:layout_constraintEnd_toEndOf="@+id/background_image"
app:layout_constraintStart_toStartOf="@+id/background_image"
app:layout_constraintTop_toTopOf="@+id/background_image"
tools:text="52000" />
app:layout_constraintBottom_toBottomOf="@+id/im_p"
app:layout_constraintEnd_toEndOf="@+id/im_p"
app:layout_constraintStart_toStartOf="@+id/im_p"
app:layout_constraintTop_toTopOf="@+id/im_p"
tools:text="5200" />
<!-- android:background="@drawable/jiaoy_tv_x"-->
<TextView
android:id="@+id/tv_ys"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_24"
android:layout_marginStart="@dimen/dp_94"
android:layout_marginStart="@dimen/dp_10"
android:layout_marginTop="@dimen/dp_10"
android:background="@mipmap/jiaoy_yc"
android:layout_marginTop="-10dp"
android:gravity="center"
android:text="延时"
android:textColor="@color/white"
android:textSize="12sp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/wheat_view2"
app:layout_constraintBottom_toTopOf="@+id/wheat_view3"
app:layout_constraintStart_toStartOf="@+id/background_image"
app:layout_constraintStart_toEndOf="@+id/wheat_view2"
app:layout_constraintTop_toBottomOf="@+id/tv_2"
tools:visibility="visible" />
@@ -213,17 +221,16 @@
android:id="@+id/tv_js"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_24"
android:layout_marginEnd="@dimen/dp_94"
android:layout_marginEnd="@dimen/dp_10"
android:background="@mipmap/jiaoy_js"
android:layout_marginTop="-10dp"
android:gravity="center"
android:text="结束"
android:textColor="@color/white"
android:textSize="12sp"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@+id/wheat_view4"
app:layout_constraintEnd_toEndOf="@+id/background_image"
app:layout_constraintTop_toBottomOf="@+id/tv_2"
app:layout_constraintBottom_toBottomOf="@+id/tv_ys"
app:layout_constraintEnd_toStartOf="@+id/wheat_view5"
app:layout_constraintTop_toTopOf="@+id/tv_ys"
tools:visibility="visible" />
@@ -231,8 +238,11 @@
android:id="@+id/wheat_view1"
android:layout_width="@dimen/dp_52"
android:layout_height="wrap_content"
android:layout_marginTop="-20dp"
android:layout_marginStart="@dimen/dp_10"
app:layout_constraintStart_toEndOf="@+id/wheat_view9"
app:layout_constraintTop_toBottomOf="@+id/wheat_view9"
app:layout_constraintTop_toTopOf="@id/background_image"
app:room_make_pic="@mipmap/jiaoy"
app:room_make_wheat_number="1" />
@@ -240,6 +250,8 @@
android:id="@+id/wheat_view2"
android:layout_width="@dimen/dp_52"
android:layout_height="wrap_content"
android:layout_marginTop="-20dp"
android:layout_marginStart="@dimen/dp_10"
app:layout_constraintEnd_toStartOf="@+id/wheat_view1"
app:layout_constraintTop_toBottomOf="@+id/wheat_view1"
app:room_make_pic="@mipmap/jiaoy"
@@ -249,6 +261,8 @@
android:id="@+id/wheat_view3"
android:layout_width="@dimen/dp_52"
android:layout_height="wrap_content"
android:layout_marginTop="-10dp"
android:layout_marginStart="@dimen/dp_10"
app:layout_constraintStart_toEndOf="@+id/wheat_view2"
app:layout_constraintTop_toBottomOf="@+id/wheat_view2"
app:room_make_pic="@mipmap/jiaoy"
@@ -258,8 +272,10 @@
android:id="@+id/wheat_view6"
android:layout_width="@dimen/dp_52"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
app:layout_constraintBottom_toBottomOf="@+id/wheat_view1"
app:layout_constraintEnd_toStartOf="@+id/wheat_view10"
app:layout_constraintTop_toBottomOf="@+id/wheat_view10"
app:layout_constraintTop_toTopOf="@id/wheat_view1"
app:room_make_pic="@mipmap/jiaoy_n"
app:room_make_wheat_number="6" />
@@ -267,8 +283,11 @@
android:id="@+id/wheat_view5"
android:layout_width="@dimen/dp_52"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
app:layout_constraintBottom_toBottomOf="@+id/wheat_view2"
app:layout_constraintStart_toEndOf="@+id/wheat_view6"
app:layout_constraintTop_toBottomOf="@+id/wheat_view6"
app:layout_constraintTop_toTopOf="@+id/wheat_view2"
app:room_make_pic="@mipmap/jiaoy_n"
app:room_make_wheat_number="5" />
@@ -276,36 +295,40 @@
android:id="@+id/wheat_view4"
android:layout_width="@dimen/dp_52"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
app:layout_constraintBottom_toBottomOf="@id/wheat_view3"
app:layout_constraintEnd_toStartOf="@+id/wheat_view5"
app:layout_constraintTop_toBottomOf="@+id/wheat_view5"
app:layout_constraintTop_toTopOf="@+id/wheat_view3"
app:room_make_pic="@mipmap/jiaoy_n"
app:room_make_wheat_number="4" />
<com.opensource.svgaplayer.SVGAImageView
android:id="@+id/iv_11"
android:layout_width="0dp"
android:layout_height="@dimen/dp_57"
android:layout_gravity="center"
android:visibility="gone"
app:autoPlay="true"
app:layout_constraintBottom_toBottomOf="@id/wheat_view1"
app:layout_constraintEnd_toStartOf="@+id/wheat_view6"
app:layout_constraintStart_toEndOf="@+id/wheat_view1"
app:layout_constraintTop_toTopOf="@id/wheat_view1"
app:loopCount="0"
tools:visibility="visible" />
<!-- <com.opensource.svgaplayer.SVGAImageView-->
<!-- android:id="@+id/iv_11"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="@dimen/dp_57"-->
<!-- android:layout_gravity="center"-->
<!-- android:visibility="gone"-->
<!-- app:autoPlay="true"-->
<!-- app:layout_constraintBottom_toBottomOf="@id/wheat_view1"-->
<!-- app:layout_constraintEnd_toStartOf="@+id/wheat_view6"-->
<!-- app:layout_constraintStart_toEndOf="@+id/wheat_view1"-->
<!-- app:layout_constraintTop_toTopOf="@id/wheat_view1"-->
<!-- app:loopCount="0"-->
<!-- app:source="heart_line_31.svga"-->
<!-- tools:visibility="visible" />-->
<ImageView
android:id="@+id/im1"
android:id="@+id/im_x1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:src="@mipmap/jiaoy_xian"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/wheat_view1"
app:layout_constraintEnd_toStartOf="@+id/wheat_view6"
app:layout_constraintStart_toEndOf="@+id/wheat_view1"
app:layout_constraintTop_toTopOf="@id/wheat_view1"
android:visibility="gone"/>
app:layout_constraintTop_toTopOf="@id/wheat_view1" />
<TextView
android:id="@+id/tv_1"
@@ -322,31 +345,32 @@
app:layout_constraintStart_toEndOf="@+id/wheat_view1"
app:layout_constraintTop_toTopOf="@id/wheat_view1" />
<com.opensource.svgaplayer.SVGAImageView
android:id="@+id/iv_33"
android:layout_width="0dp"
android:layout_height="@dimen/dp_57"
android:layout_gravity="center"
android:visibility="gone"
app:autoPlay="true"
app:layout_constraintBottom_toBottomOf="@id/wheat_view3"
app:layout_constraintEnd_toStartOf="@+id/wheat_view4"
app:layout_constraintStart_toEndOf="@+id/wheat_view3"
app:layout_constraintTop_toTopOf="@id/wheat_view3"
app:loopCount="0"
tools:visibility="visible" />
<!-- <com.opensource.svgaplayer.SVGAImageView-->
<!-- android:id="@+id/iv_33"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="@dimen/dp_57"-->
<!-- android:layout_gravity="center"-->
<!-- android:visibility="gone"-->
<!-- app:autoPlay="true"-->
<!-- app:layout_constraintBottom_toBottomOf="@id/wheat_view3"-->
<!-- app:layout_constraintEnd_toStartOf="@+id/wheat_view4"-->
<!-- app:layout_constraintStart_toEndOf="@+id/wheat_view3"-->
<!-- app:layout_constraintTop_toTopOf="@id/wheat_view3"-->
<!-- app:loopCount="0"-->
<!-- app:source="heart_line_31.svga"-->
<!-- tools:visibility="visible" />-->
<ImageView
android:id="@+id/im3"
android:id="@+id/im_x3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_height="@dimen/dp_57"
android:scaleType="fitXY"
android:src="@mipmap/jiaoy_xian"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/wheat_view3"
app:layout_constraintEnd_toStartOf="@+id/wheat_view4"
app:layout_constraintStart_toEndOf="@+id/wheat_view3"
app:layout_constraintTop_toTopOf="@id/wheat_view3"
android:visibility="gone"/>
app:layout_constraintTop_toTopOf="@id/wheat_view3" />
<TextView
android:id="@+id/tv_3"
@@ -364,5 +388,24 @@
app:layout_constraintTop_toTopOf="@id/wheat_view3" />
<TextView
android:id="@+id/tv_jsq"
android:layout_width="@dimen/dp_0"
android:layout_height="@dimen/dp_0"
android:layout_marginBottom="@dimen/dp_90"
android:background="@color/transparent"
android:gravity="center"
android:paddingBottom="@dimen/dp_18"
android:text="1"
android:textColor="@color/color_FFFFF0F0"
android:textSize="90sp"
android:textStyle="bold"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/background_image"
app:layout_constraintEnd_toEndOf="@id/background_image"
app:layout_constraintStart_toStartOf="@id/background_image"
app:layout_constraintTop_toTopOf="@id/background_image"
tools:visibility="visible" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@@ -10,6 +10,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="false">
<LinearLayout
android:id="@+id/l"
android:layout_width="match_parent"
@@ -49,35 +50,27 @@
</LinearLayout>
<!-- <androidx.core.widget.NestedScrollView-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="match_parent">-->
<com.scwang.smartrefresh.layout.SmartRefreshLayout
android:id="@+id/smart_refresh_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintTop_toBottomOf="@+id/l"
app:layout_constraintBottom_toBottomOf="parent"
app:srlEnableLoadMore="true"
app:srlEnableRefresh="false">
<androidx.core.widget.NestedScrollView
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycle_view"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
android:paddingBottom="@dimen/dp_40"
android:clipToPadding="false" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycle_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_40" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
<!-- </androidx.core.widget.NestedScrollView>-->
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@@ -16,283 +16,235 @@
<FrameLayout
android:id="@+id/container"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_height="match_parent"
android:clipChildren="false"
android:clipToPadding="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintHeight_percent="0.55"/>
<com.xscm.moduleutil.widget.RoomMessageInputMenu
android:id="@+id/input_menu1"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
android:elevation="5dp"
/>
<LinearLayout
android:id="@+id/ll_bottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_15"
android:animateLayoutChanges="true"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="@dimen/dp_16"
android:paddingRight="@dimen/dp_16"
app:layout_constraintBottom_toTopOf="@+id/input_menu1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
<!-- <com.xscm.moduleutil.widget.RoomMessageInputMenu-->
<!-- android:id="@+id/input_menu1"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="wrap_content"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent" />-->
<!-- <LinearLayout-->
<!-- android:id="@+id/ll_bottom"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginBottom="@dimen/dp_15"-->
<!-- android:animateLayoutChanges="true"-->
<!-- android:gravity="center_vertical"-->
<!-- android:orientation="horizontal"-->
<!-- android:paddingLeft="@dimen/dp_16"-->
<!-- android:paddingRight="@dimen/dp_16"-->
<!-- app:layout_constraintBottom_toTopOf="@+id/input_menu1"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent">-->
<LinearLayout
android:layout_width="0dp"
android:layout_height="@dimen/dp_36"
android:layout_weight="1.4"
android:background="@drawable/room_bottom_bg"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="@dimen/dp_5"
android:paddingRight="@dimen/dp_5">
<ImageView
android:id="@+id/iv_emoji"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
android:layout_marginLeft="@dimen/dp_5"
android:src="@mipmap/mess" />
<TextView
android:id="@+id/iv_chat"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_10"
android:text="说点什么"
android:textColor="#80ffffff"
android:textSize="@dimen/sp_13" />
</LinearLayout>
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="0.2" />
<RelativeLayout
android:id="@+id/rl_voive"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_5"
android:layout_weight="0.3">
<ImageView
android:id="@+id/im_voive"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
android:layout_centerInParent="true"
android:src="@mipmap/room_voice_kg" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_mic"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_5"
android:layout_weight="0.3"
android:gravity="center_vertical">
<ImageView
android:id="@+id/iv_mic"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
android:layout_centerInParent="true"
android:src="@mipmap/room_microphone_off"
android:visibility="visible"
tools:visibility="visible" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_message"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_5"
android:layout_weight="0.3">
<ImageView
android:id="@+id/iv_message"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
android:layout_centerInParent="true"
android:src="@mipmap/room_message"
android:visibility="visible" />
<!-- <LinearLayout-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="@dimen/dp_36"-->
<!-- android:layout_weight="1.4"-->
<!-- android:background="@drawable/room_bottom_bg"-->
<!-- android:gravity="center_vertical"-->
<!-- android:orientation="horizontal"-->
<!-- android:paddingLeft="@dimen/dp_5"-->
<!-- android:paddingRight="@dimen/dp_5">-->
<!-- <ImageView-->
<!-- android:id="@+id/iv_emoji"-->
<!-- android:layout_width="@dimen/dp_24"-->
<!-- android:layout_height="@dimen/dp_24"-->
<!-- android:layout_marginLeft="@dimen/dp_5"-->
<!-- android:src="@mipmap/mess" />-->
<!-- <TextView-->
<!-- android:id="@+id/iv_chat"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginLeft="@dimen/dp_10"-->
<!-- android:layout_marginRight="@dimen/dp_10"-->
<!-- android:text="说点什么"-->
<!-- android:textColor="#80ffffff"-->
<!-- android:textSize="@dimen/sp_13" />-->
<!-- </LinearLayout>-->
<!-- <View-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="1dp"-->
<!-- android:layout_weight="0.2" />-->
<!-- <RelativeLayout-->
<!-- android:id="@+id/rl_voive"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginEnd="@dimen/dp_5"-->
<!-- android:layout_weight="0.3">-->
<!-- <ImageView-->
<!-- android:id="@+id/im_voive"-->
<!-- android:layout_width="@dimen/dp_24"-->
<!-- android:layout_height="@dimen/dp_24"-->
<!-- android:layout_centerInParent="true"-->
<!-- android:src="@mipmap/room_voice_kg" />-->
<!-- </RelativeLayout>-->
<!-- <RelativeLayout-->
<!-- android:id="@+id/rl_mic"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginEnd="@dimen/dp_5"-->
<!-- android:layout_weight="0.3"-->
<!-- android:gravity="center_vertical">-->
<!-- <ImageView-->
<!-- android:id="@+id/iv_mic"-->
<!-- android:layout_width="@dimen/dp_24"-->
<!-- android:layout_height="@dimen/dp_24"-->
<!-- android:layout_centerInParent="true"-->
<!-- android:src="@mipmap/room_microphone_off"-->
<!-- android:visibility="visible"-->
<!-- tools:visibility="visible" />-->
<!-- </RelativeLayout>-->
<!-- <RelativeLayout-->
<!-- android:id="@+id/rl_message"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginEnd="@dimen/dp_5"-->
<!-- android:layout_weight="0.3">-->
<!-- <ImageView-->
<!-- android:id="@+id/iv_message"-->
<!-- android:layout_width="@dimen/dp_24"-->
<!-- android:layout_height="@dimen/dp_24"-->
<!-- android:layout_centerInParent="true"-->
<!-- android:src="@mipmap/room_message"-->
<!-- android:visibility="visible" />-->
<!--&lt;!&ndash; <ImageView&ndash;&gt;-->
<!--&lt;!&ndash; android:id="@+id/iv_message_dot"&ndash;&gt;-->
<!--&lt;!&ndash; android:layout_width="@dimen/dp_14"&ndash;&gt;-->
<!--&lt;!&ndash; android:layout_height="@dimen/dp_14"&ndash;&gt;-->
<!--&lt;!&ndash; android:layout_alignParentEnd="true"&ndash;&gt;-->
<!--&lt;!&ndash; android:src="@mipmap/room_ic_red_dot"&ndash;&gt;-->
<!--&lt;!&ndash; android:visibility="gone"&ndash;&gt;-->
<!--&lt;!&ndash; tools:visibility="visible" />&ndash;&gt;-->
<!-- <TextView-->
<!-- android:id="@+id/iv_message_dot"-->
<!-- android:layout_width="@dimen/dp_14"-->
<!-- android:layout_height="@dimen/dp_14"-->
<!-- android:layout_alignParentEnd="true"-->
<!-- android:src="@mipmap/room_ic_red_dot"-->
<!-- android:background="@drawable/ease_bg_msg_count"-->
<!-- android:gravity="center"-->
<!-- android:paddingLeft="@dimen/dp_5"-->
<!-- android:paddingTop="1.5dp"-->
<!-- android:paddingRight="@dimen/dp_5"-->
<!-- android:paddingBottom="2dp"-->
<!-- android:textColor="@color/white"-->
<!-- android:textSize="@dimen/sp_8"-->
<!-- android:visibility="gone"-->
<!-- tools:text="99+"-->
<!-- tools:visibility="visible" />-->
<!-- </RelativeLayout>-->
<TextView
android:id="@+id/iv_message_dot"
android:layout_width="@dimen/dp_14"
android:layout_height="@dimen/dp_14"
android:layout_alignParentEnd="true"
android:background="@drawable/ease_bg_msg_count"
android:gravity="center"
android:paddingLeft="@dimen/dp_5"
android:paddingTop="1.5dp"
android:paddingRight="@dimen/dp_5"
android:paddingBottom="2dp"
android:textColor="@color/white"
android:textSize="@dimen/sp_8"
android:visibility="gone"
tools:text="99+"
tools:visibility="visible" />
</RelativeLayout>
<!-- <RelativeLayout-->
<!-- android:id="@+id/rl_more"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginEnd="@dimen/dp_5"-->
<!-- android:layout_weight="0.3">-->
<RelativeLayout
android:id="@+id/rl_more"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_5"
android:layout_weight="0.3">
<!-- <ImageView-->
<!-- android:id="@+id/iv_more"-->
<!-- android:layout_width="@dimen/dp_24"-->
<!-- android:layout_height="@dimen/dp_24"-->
<!-- android:layout_centerInParent="true"-->
<!-- android:src="@mipmap/room_pk" />-->
<!-- </RelativeLayout>-->
<ImageView
android:id="@+id/iv_more"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
android:layout_centerInParent="true"
android:src="@mipmap/room_pk" />
</RelativeLayout>
<!-- <RelativeLayout-->
<!-- android:id="@+id/rl_misc"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginEnd="@dimen/dp_5"-->
<!-- android:layout_weight="0.3">-->
<RelativeLayout
android:id="@+id/rl_misc"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_5"
android:layout_weight="0.3">
<!-- <ImageView-->
<!-- android:id="@+id/iv_misc"-->
<!-- android:layout_width="@dimen/dp_24"-->
<!-- android:layout_height="@dimen/dp_24"-->
<!-- android:layout_centerInParent="true"-->
<!-- android:src="@mipmap/room_mis" />-->
<!-- </RelativeLayout>-->
<ImageView
android:id="@+id/iv_misc"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
android:layout_centerInParent="true"
android:src="@mipmap/room_mis" />
</RelativeLayout>
<!-- <RelativeLayout-->
<!-- android:id="@+id/rl_gift"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginEnd="@dimen/dp_5"-->
<!-- android:layout_weight="0.3">-->
<RelativeLayout
android:id="@+id/rl_gift"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_5"
android:layout_weight="0.3">
<!-- <ImageView-->
<!-- android:id="@+id/iv_gift"-->
<!-- android:layout_width="@dimen/dp_24"-->
<!-- android:layout_height="@dimen/dp_24"-->
<!-- android:layout_centerInParent="true"-->
<!-- android:src="@mipmap/room_gift" />-->
<!-- </RelativeLayout>-->
<ImageView
android:id="@+id/iv_gift"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
android:layout_centerInParent="true"
android:src="@mipmap/room_gift" />
</RelativeLayout>
<!-- <RelativeLayout-->
<!-- android:id="@+id/rl_sett"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_weight="0.3">-->
<RelativeLayout
android:id="@+id/rl_sett"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.3">
<!-- <ImageView-->
<!-- android:id="@+id/iv_sett"-->
<!-- android:layout_width="@dimen/dp_24"-->
<!-- android:layout_height="@dimen/dp_24"-->
<!-- android:layout_centerInParent="true"-->
<!-- android:src="@mipmap/room_sett" />-->
<!-- </RelativeLayout>-->
<ImageView
android:id="@+id/iv_sett"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
android:layout_centerInParent="true"
android:src="@mipmap/room_sett" />
</RelativeLayout>
<!-- </LinearLayout>-->
</LinearLayout>
<!-- <FrameLayout-->
<!-- android:id="@+id/ease_container"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="0dp"-->
<!-- app:layout_constraintBottom_toTopOf="@id/ll_bottom"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/container"-->
<!-- android:layout_marginTop="@dimen/dp_5"-->
<!-- >-->
<FrameLayout
android:id="@+id/ease_container"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@id/ll_bottom"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/container"
android:layout_marginTop="@dimen/dp_5"
>
<!-- <com.xscm.moduleutil.widget.AvatarFrameView-->
<!-- android:id="@+id/svga_ride"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="0dp" />-->
<!-- </FrameLayout>-->
<com.xscm.moduleutil.widget.AvatarFrameView
android:id="@+id/svga_ride"
android:layout_width="0dp"
android:layout_height="0dp" />
</FrameLayout>
<!-- <LinearLayout-->
<!-- android:id="@+id/ll_input"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="0dp"-->
<!-- android:orientation="horizontal"-->
<!-- app:layout_constraintBottom_toTopOf="@id/ll_bottom"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<LinearLayout
android:id="@+id/ll_input"
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="horizontal"
app:layout_constraintBottom_toTopOf="@id/ll_bottom"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!-- <ImageView-->
<!-- android:id="@+id/iv_notice"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginStart="@dimen/dp_17"-->
<!-- android:layout_marginTop="@dimen/dp_5"-->
<!-- android:src="@mipmap/room_ic_notice"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<!-- <ImageView-->
<!-- android:id="@+id/iv_play"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginStart="@dimen/dp_8"-->
<!-- android:layout_marginTop="@dimen/dp_5"-->
<!-- android:src="@mipmap/room_ic_play"-->
<!-- app:layout_constraintStart_toEndOf="@+id/iv_notice"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<!-- <TextView-->
<!-- android:id="@+id/tv_collect"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginStart="@dimen/dp_10"-->
<!-- android:layout_marginTop="@dimen/dp_5"-->
<!-- android:background="@mipmap/collect_g"-->
<!-- android:padding="@dimen/dp_4"-->
<!-- android:text="关注:1234"-->
<!-- android:textColor="@color/color_FFFFF0F0"-->
<!-- android:textSize="12sp"-->
<!-- android:visibility="gone"-->
<!-- app:layout_constraintStart_toEndOf="@+id/iv_play"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<!-- <TextView-->
<!-- android:id="@+id/tv_colse"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginStart="@dimen/dp_10"-->
<!-- android:layout_marginTop="@dimen/dp_5"-->
<!-- android:background="@mipmap/collect_g"-->
<!-- android:drawableStart="@mipmap/image_243"-->
<!-- android:drawablePadding="@dimen/dp_5"-->
<!-- android:padding="@dimen/dp_4"-->
<!-- android:text="0对在线"-->
<!-- android:textColor="@color/color_FFFFF0F0"-->
<!-- android:textSize="12sp"-->
<!-- app:layout_constraintStart_toEndOf="@+id/tv_collect"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<com.xscm.moduleutil.widget.AvatarFrameView
android:id="@+id/svga_nobility"
@@ -303,135 +255,90 @@
app:layout_constraintStart_toStartOf="@id/container"
app:layout_constraintTop_toTopOf="@id/container" />
<!-- <com.qpyy.room.widget.GuardAnimView-->
<!-- android:id="@+id/gav"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="wrap_content"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<!-- <com.qpyy.room.widget.BigGiftAnimView-->
<!-- android:id="@+id/bgav"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="wrap_content"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<!-- <androidx.constraintlayout.widget.ConstraintLayout-->
<!-- android:id="@+id/cl_first_charge"-->
<!-- android:layout_width="@dimen/dp_98"-->
<!-- android:layout_height="@dimen/dp_43"-->
<!-- android:layout_marginBottom="@dimen/dp_14"-->
<!-- android:visibility="gone"-->
<!-- app:layout_constraintBottom_toTopOf="@+id/iv_sound_effects"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- tools:visibility="visible">-->
<!-- <com.qpyy.room.widget.SmallGiftAnimLayout-->
<!-- android:id="@+id/sgal"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:clipChildren="false"-->
<!-- android:clipToPadding="false"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="@id/ease_container" />-->
<!-- <ImageView-->
<!-- android:id="@+id/iv_first_charge"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="match_parent"-->
<!-- android:scaleType="centerInside"-->
<!-- android:src="@mipmap/paimai"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<!-- <TextView-->
<!-- android:id="@+id/tv_first_charge"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="排麦模式"-->
<!-- android:textColor="#FFFFFF"-->
<!-- android:textSize="12sp"-->
<!-- android:gravity="center"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- android:layout_marginStart="@dimen/dp_34"-->
<!-- app:layout_constraintTop_toTopOf="parent"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/iv_first_charge" />-->
<!-- <TextView-->
<!-- android:id="@+id/tv_first"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- tools:text="0人排队"-->
<!-- android:textColor="#FFFFFF"-->
<!-- android:textSize="12sp"-->
<!-- android:layout_marginStart="@dimen/dp_15"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/tv_first_charge" />-->
<!-- <com.stx.xhb.xbanner.XBanner-->
<!-- android:id="@+id/banner"-->
<!-- android:layout_width="@dimen/dp_70"-->
<!-- android:layout_height="@dimen/dp_80"-->
<!-- android:layout_marginEnd="17dp"-->
<!-- android:layout_marginBottom="18dp"-->
<!-- android:scaleType="fitCenter"-->
<!-- app:AutoPlayTime="3000"-->
<!-- app:layout_constraintBottom_toTopOf="@id/ll_bottom"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:pageChangeDuration="3000"-->
<!-- app:pointContainerPosition="BOTTOM"-->
<!-- app:pointNormal="@mipmap/room_ic_banner_point_normal"-->
<!-- app:pointSelect="@mipmap/room_ic_banner_point_select"-->
<!-- app:pointTopBottomPadding="@dimen/dp_2"-->
<!-- app:pointsPosition="CENTER"-->
<!-- app:pointsVisibility="true"-->
<!-- android:clickable="true"-->
<!-- android:focusable="true"-->
<!-- />-->
<!-- </androidx.constraintlayout.widget.ConstraintLayout>-->
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_first_charge"
android:layout_width="@dimen/dp_98"
android:layout_height="@dimen/dp_43"
android:layout_marginBottom="@dimen/dp_14"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@+id/iv_sound_effects"
app:layout_constraintEnd_toEndOf="parent"
tools:visibility="visible">
<!-- &lt;!&ndash; <ImageView&ndash;&gt;-->
<!-- &lt;!&ndash; android:id="@+id/iv_sound_paim"&ndash;&gt;-->
<!-- &lt;!&ndash; android:layout_width="@dimen/dp_46"&ndash;&gt;-->
<!-- &lt;!&ndash; android:layout_height="@dimen/dp_78"&ndash;&gt;-->
<!-- &lt;!&ndash; android:src="@mipmap/paimai"&ndash;&gt;-->
<!-- &lt;!&ndash; app:layout_constraintEnd_toEndOf="parent"&ndash;&gt;-->
<!-- &lt;!&ndash; android:layout_marginEnd="@dimen/dp_16"&ndash;&gt;-->
<!-- &lt;!&ndash; android:layout_marginBottom="@dimen/dp_14"&ndash;&gt;-->
<!-- &lt;!&ndash; app:layout_constraintBottom_toTopOf="@+id/iv_sound_effects"&ndash;&gt;-->
<!-- &lt;!&ndash; tools:visibility="visible" />&ndash;&gt;-->
<ImageView
android:id="@+id/iv_first_charge"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerInside"
android:src="@mipmap/paimai"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!-- <ImageView-->
<!-- android:id="@+id/iv_sound_effects"-->
<!-- android:layout_width="@dimen/dp_46"-->
<!-- android:layout_height="@dimen/dp_78"-->
<!-- android:layout_marginEnd="@dimen/dp_16"-->
<!-- android:layout_marginBottom="@dimen/dp_14"-->
<!-- android:src="@mipmap/room_sound_effects"-->
<!-- app:layout_constraintBottom_toTopOf="@+id/iv_wheat_feeding"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- tools:visibility="visible" />-->
<TextView
android:id="@+id/tv_first_charge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="排麦模式"
android:textColor="#FFFFFF"
android:textSize="12sp"
android:gravity="center"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="@dimen/dp_34"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintTop_toBottomOf="@+id/iv_first_charge" />
<TextView
android:id="@+id/tv_first"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="0人排队"
android:textColor="#FFFFFF"
android:textSize="12sp"
android:layout_marginStart="@dimen/dp_15"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_first_charge" />
</androidx.constraintlayout.widget.ConstraintLayout>
<!-- <ImageView-->
<!-- android:id="@+id/iv_sound_paim"-->
<!-- android:layout_width="@dimen/dp_46"-->
<!-- android:layout_height="@dimen/dp_78"-->
<!-- android:src="@mipmap/paimai"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- android:layout_marginEnd="@dimen/dp_16"-->
<!-- android:layout_marginBottom="@dimen/dp_14"-->
<!-- app:layout_constraintBottom_toTopOf="@+id/iv_sound_effects"-->
<!-- tools:visibility="visible" />-->
<ImageView
android:id="@+id/iv_sound_effects"
android:layout_width="@dimen/dp_46"
android:layout_height="@dimen/dp_78"
android:layout_marginEnd="@dimen/dp_16"
android:layout_marginBottom="@dimen/dp_14"
android:src="@mipmap/room_sound_effects"
app:layout_constraintBottom_toTopOf="@+id/iv_wheat_feeding"
app:layout_constraintEnd_toEndOf="parent"
tools:visibility="visible" />
<ImageView
android:id="@+id/iv_wheat_feeding"
android:layout_width="@dimen/dp_56"
android:layout_height="@dimen/dp_27"
android:layout_marginEnd="@dimen/dp_16"
android:layout_marginBottom="@dimen/dp_116"
android:src="@mipmap/room_wheat_feeding"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
tools:visibility="visible" />
<!-- <ImageView-->
<!-- android:id="@+id/iv_wheat_feeding"-->
<!-- android:layout_width="@dimen/dp_56"-->
<!-- android:layout_height="@dimen/dp_27"-->
<!-- android:layout_marginEnd="@dimen/dp_16"-->
<!-- android:layout_marginBottom="-100dp"-->
<!-- android:translationZ="@dimen/dp_2"-->
<!-- android:src="@mipmap/room_wheat_feeding"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- tools:visibility="visible" />-->
<!-- <androidx.constraintlayout.widget.ConstraintLayout-->
<!-- android:id="@+id/cl_rain_room"-->

View File

@@ -70,7 +70,6 @@
android:layout_centerInParent="true"
android:layout_marginTop="@dimen/dp_31"
android:fontFamily="@font/youshebiaotihei"
android:text="亲密拍"
android:textColor="@color/color_0DFFB9"
android:textSize="@dimen/sp_24" />
@@ -80,9 +79,8 @@
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginStart="@dimen/dp_40"
android:layout_toRightOf="@+id/qinmi"
android:layout_toEndOf="@+id/qinmi"
android:fontFamily="@font/youshebiaotihei"
android:text="真爱拍"
android:textColor="@color/white"
android:textSize="@dimen/sp_16" />
</RelativeLayout>
@@ -122,8 +120,8 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
@@ -135,7 +133,7 @@
android:layout_marginTop="@dimen/dp_15"
android:background="@mipmap/za_s"
android:gravity="center"
android:text="0000"
android:text="0"
android:textColor="#FFE8B0"
android:textSize="@dimen/sp_12"
@@ -143,15 +141,14 @@
<com.xscm.moduleutil.widget.RoomMakeWheatView
android:id="@+id/room_make_wheat2"
android:layout_width="@dimen/dp_60"
android:layout_height="@dimen/dp_70"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:room_make_pic="@mipmap/za_p"
app:room_make_wheat_number="888" />
android:id="@+id/room_make_wheat2"
android:layout_width="@dimen/dp_60"
android:layout_height="@dimen/dp_70"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:room_make_pic="@mipmap/za_p"
app:room_make_wheat_number="888"/>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/container"
@@ -179,6 +176,7 @@
android:layout_height="@dimen/dp_18"
android:layout_marginTop="@dimen/dp_1"
android:text="关系"
android:gravity="center"
android:textColor="@color/color_FF999999"
android:textSize="@dimen/sp_12"
app:layout_constraintEnd_toEndOf="@+id/btn_relation"
@@ -207,6 +205,7 @@
android:text="礼物"
android:textColor="@color/color_FF999999"
android:textSize="@dimen/sp_12"
android:gravity="center"
app:layout_constraintEnd_toEndOf="@+id/btn_gift"
app:layout_constraintStart_toStartOf="@id/btn_gift"
app:layout_constraintTop_toBottomOf="@id/btn_gift" />
@@ -225,6 +224,7 @@
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_timetg"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_18"
@@ -285,6 +285,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="一号麦"
android:singleLine="true"
android:textColor="@color/color_FF999999"
android:textSize="@dimen/sp_12"
app:layout_constraintBottom_toBottomOf="parent"
@@ -327,6 +328,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="二号麦"
android:singleLine="true"
android:textColor="@color/color_FF999999"
android:textSize="@dimen/sp_12"
app:layout_constraintBottom_toBottomOf="parent"
@@ -370,6 +372,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="三号麦"
android:singleLine="true"
android:textColor="@color/color_FF999999"
android:textSize="@dimen/sp_12"
app:layout_constraintBottom_toBottomOf="parent"
@@ -402,6 +405,16 @@
android:layout_height="@dimen/dp_36"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_online4"
android:layout_width="@dimen/dp_36"
android:layout_height="@dimen/dp_36"
android:background="@mipmap/room_ic_owner_offline"
android:visibility="gone"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:loopCount="0"
tools:visibility="visible" />
<TextView
android:id="@+id/number_4"
@@ -432,6 +445,17 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_online5"
android:layout_width="@dimen/dp_36"
android:layout_height="@dimen/dp_36"
android:background="@mipmap/room_ic_owner_offline"
android:visibility="gone"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:loopCount="0"
tools:visibility="visible" />
<TextView
android:id="@+id/number_5"
android:layout_width="wrap_content"
@@ -458,10 +482,20 @@
android:id="@+id/avatar_6"
android:layout_width="@dimen/dp_36"
android:layout_height="@dimen/dp_36"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_online6"
android:layout_width="@dimen/dp_36"
android:layout_height="@dimen/dp_36"
android:background="@mipmap/room_ic_owner_offline"
android:visibility="gone"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:loopCount="0"
tools:visibility="visible" />
<TextView
android:id="@+id/number_6"
android:layout_width="wrap_content"
@@ -493,13 +527,14 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<ViewStub
android:id="@+id/stub_buttons"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout="@layout/top_overlay_buttons"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!-- <ViewStub-->
<!-- android:id="@+id/stub_buttons"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout="@layout/top_overlay_buttons"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent"-->
<!-- android:visibility="gone"/>-->
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -13,14 +13,15 @@
android:layout_height="@dimen/dp_277"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_13"
android:layout_marginEnd="@dimen/dp_16">
android:layout_marginEnd="@dimen/dp_16"
android:clipChildren="false">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_bj"
android:layout_width="0dp"
android:layout_height="match_parent"
android:background="@drawable/bg_r8_tm"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintDimensionRatio="1.4:1.5"
app:layout_constraintStart_toStartOf="parent"
@@ -30,24 +31,23 @@
android:id="@+id/music_poster"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@mipmap/default_avatar"
android:alpha="0.3"
android:background="#40000000"
android:scaleType="fitXY"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!-- <View-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="match_parent"-->
<!-- android:alpha="0.9"-->
<!-- android:background="#90000000"-->
<!-- android:clickable="false"-->
<!-- android:focusable="false"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintDimensionRatio="1.4:1.5"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<!-- <View-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="match_parent"-->
<!-- android:alpha="0.9"-->
<!-- android:background="#90000000"-->
<!-- android:clickable="false"-->
<!-- android:focusable="false"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintDimensionRatio="1.4:1.5"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<TextView
android:id="@+id/tv_jz"
@@ -195,7 +195,7 @@
android:layout_width="@dimen/dp_13"
android:layout_height="@dimen/dp_16"
android:layout_gravity="center"
android:src="@mipmap/accompany_off" />
android:src="@mipmap/accompany_on" />
<TextView
android:id="@+id/tv_bz"
@@ -203,7 +203,7 @@
android:layout_height="@dimen/dp_14"
android:layout_gravity="center"
android:gravity="center"
android:text="伴奏"
android:text="原唱"
android:textColor="@color/color_white"
android:textSize="@dimen/sp_10" />
</LinearLayout>
@@ -310,19 +310,36 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<com.xscm.moduleutil.widget.RoomKtvWheatView
android:id="@+id/mu_zc"
android:layout_width="@dimen/dp_62"
android:layout_height="@dimen/dp_88"
android:layout_marginTop="-55dp"
android:layout_marginEnd="@dimen/dp_5"
android:clickable="true"
android:elevation="9999dp"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackground"
android:translationZ="30dp"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:clickable="true"
app:layout_constraintStart_toEndOf="@+id/cl_bj"
app:layout_constraintTop_toTopOf="parent"
app:room_wheat_number="9" />
<!-- 在 mu_zc 视图后面添加 -->
<!-- <View-->
<!-- android:id="@+id/mu_zc_touch_overlay"-->
<!-- android:layout_width="@dimen/dp_62"-->
<!-- android:layout_height="@dimen/dp_120"-->
<!-- android:layout_marginTop="-70dp"-->
<!-- android:layout_marginEnd="@dimen/dp_5"-->
<!-- android:background="@android:color/transparent"-->
<!-- android:clickable="true"-->
<!-- android:focusable="true"-->
<!-- app:layout_constraintDimensionRatio="1:1"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent"-->
<!-- app:layout_constraintStart_toEndOf="@+id/cl_bj" />-->
<com.xscm.moduleutil.widget.RoomKtvWheatView
android:id="@+id/mu_jb"
@@ -332,19 +349,18 @@
android:layout_marginEnd="@dimen/dp_5"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/mu_zc"
app:layout_constraintStart_toEndOf="@+id/cl_bj"
app:layout_constraintTop_toBottomOf="@+id/mu_zc"
app:room_wheat_number="10" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="@dimen/dp_62"
android:layout_height="0dp"
app:layout_constraintHeight_default="wrap"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_default="wrap"
app:layout_constraintStart_toEndOf="@+id/cl_bj"
app:layout_constraintTop_toBottomOf="@+id/mu_jb"
/>
app:layout_constraintTop_toBottomOf="@+id/mu_jb" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -38,7 +38,7 @@
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:srlEnableLoadMore="true"
app:srlEnableRefresh="false"
app:srlEnableRefresh="true"
android:layout_marginTop="@dimen/dp_12"
>
<androidx.recyclerview.widget.RecyclerView

View File

@@ -55,7 +55,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_3"
android:text="所属会:"
android:text="所属会:"
android:textColor="#ffffff"
android:textSize="@dimen/sp_12"
app:layout_constraintEnd_toEndOf="parent"
@@ -111,6 +111,17 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/im_qml"
android:layout_width="@dimen/dp_66"
android:layout_height="@dimen/dp_20"
android:layout_marginStart="@dimen/dp_22"
android:layout_marginTop="@dimen/dp_25"
android:src="@mipmap/qgrml"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/kb" />
<ImageView
android:id="@+id/im_gs"
android:layout_width="@dimen/dp_66"
@@ -120,7 +131,24 @@
android:src="@mipmap/gsui"
android:visibility="gone"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/kb" />
app:layout_constraintTop_toBottomOf="@+id/im_qml"
tools:visibility="visible"/>
<ImageView
android:id="@+id/im_qing"
android:layout_width="@dimen/dp_66"
android:layout_height="@dimen/dp_20"
android:layout_marginStart="@dimen/dp_22"
android:layout_marginTop="@dimen/dp_25"
android:src="@mipmap/gsui"
android:visibility="gone"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/kb"
/>
<TextView
android:id="@+id/room_m_cz"
@@ -289,7 +317,7 @@
android:textSize="@dimen/sp_12"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />/>
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -26,13 +26,13 @@
app:alignItems="flex_start"
/>
<ViewStub
android:id="@+id/stub_buttons"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout="@layout/top_overlay_buttons"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!-- <ViewStub-->
<!-- android:id="@+id/stub_buttons"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout="@layout/top_overlay_buttons"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl"

View File

@@ -6,154 +6,151 @@
<data>
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg_room_gift"
android:paddingTop="@dimen/dp_16"
android:paddingStart="@dimen/dp_16"
>
android:paddingTop="@dimen/dp_16">
<TextView
android:id="@+id/tv_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:text="优先通道(1/20)"
android:textColor="@color/white"
android:textSize="@dimen/sp_16"
/>
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.xscm.moduleutil.widget.GifAvatarOvalView
android:id="@+id/im_1"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toStartOf="@+id/tv_2"
android:src="@mipmap/default_avatar"
/>
app:layout_constraintEnd_toStartOf="@+id/tv_2"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_2"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_19"
app:layout_constraintEnd_toStartOf="@+id/tv_3"
android:layout_marginStart="@dimen/dp_2"
app:layout_constraintTop_toTopOf="parent"
android:text="赠送***礼物插队"
android:textColor="@color/white"
android:textSize="@dimen/sp_14"
/>
app:layout_constraintEnd_toStartOf="@+id/tv_3"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_3"
android:layout_width="@dimen/dp_44"
android:layout_height="@dimen/dp_24"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginEnd="@dimen/dp_16"
app:layout_constraintTop_toTopOf="parent"
android:text="赠送"
android:gravity="center"
android:text="赠送"
android:textColor="@color/color_FF333333"
android:textSize="@dimen/sp_12"
/>
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycle_view"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_114"
app:layout_constraintTop_toBottomOf="@+id/tv_1"
android:layout_marginTop="@dimen/dp_6"
android:layout_marginEnd="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_6"/>
app:layout_constraintTop_toBottomOf="@+id/tv_1" />
<TextView
android:id="@+id/tv_4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/recycle_view"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginTop="@dimen/dp_30"
android:text="等待上台(1/20)"
android:textColor="@color/white"
android:textSize="@dimen/sp_16"
/>
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/recycle_view" />
<TextView
android:id="@+id/tv_qk"
android:layout_width="@dimen/dp_44"
android:layout_height="@dimen/dp_24"
app:layout_constraintStart_toEndOf="@+id/tv_4"
app:layout_constraintTop_toTopOf="@+id/tv_4"
android:background="@drawable/bg_r65_all_0dffb9"
android:layout_marginStart="@dimen/dp_10"
android:text="清空"
android:background="@drawable/bg_r65_all_0dffb9"
android:gravity="center"
android:text="清空"
android:textColor="@color/color_FF333333"
android:textSize="@dimen/sp_12"
/>
app:layout_constraintStart_toEndOf="@+id/tv_4"
app:layout_constraintTop_toTopOf="@+id/tv_4" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycle_view2"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_114"
app:layout_constraintTop_toBottomOf="@+id/tv_4"
android:layout_marginTop="@dimen/dp_6"
android:layout_marginEnd="@dimen/dp_16"
/>
app:layout_constraintTop_toBottomOf="@+id/tv_4" />
<TextView
android:id="@+id/tv_wheat_refuse"
android:layout_width="@dimen/dp_95"
android:layout_height="@dimen/dp_42"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:background="@mipmap/wheat_refuse"
android:layout_marginBottom="@dimen/dp_44"
android:layout_marginStart="@dimen/dp_16"/>
<!-- 按钮容器 -->
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/button_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_16"
android:layout_marginBottom="@dimen/dp_14"
app:layout_constraintBottom_toBottomOf="parent">
<TextView
android:id="@+id/tv_wheat_accept"
android:layout_width="@dimen/dp_95"
android:layout_height="@dimen/dp_42"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:background="@drawable/bg_r53_0dffb9"
android:text="同意"
android:textSize="@dimen/sp_14"
android:gravity="center"
android:textColor="@color/color_FF333333"
android:layout_marginBottom="@dimen/dp_44"
/>
<TextView
android:id="@+id/tv_wheat_refuse"
android:layout_width="@dimen/dp_95"
android:layout_height="@dimen/dp_42"
android:background="@mipmap/wheat_refuse"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_wheat_sq"
android:layout_width="@dimen/dp_95"
android:layout_height="@dimen/dp_42"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:background="@drawable/bg_r53_33333"
android:text="申请"
android:textSize="@dimen/sp_14"
android:gravity="center"
android:textColor="@color/white"
android:layout_marginBottom="@dimen/dp_44"
android:layout_marginEnd="@dimen/dp_16"/>
<TextView
android:id="@+id/tv_wheat_accept"
android:layout_width="@dimen/dp_95"
android:layout_height="@dimen/dp_42"
android:background="@drawable/bg_r53_0dffb9"
android:gravity="center"
android:text="同意"
android:textColor="@color/color_FF333333"
android:textSize="@dimen/sp_14"
android:layout_marginEnd="@dimen/dp_20"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_ljsq"
android:layout_width="@dimen/dp_300"
android:layout_height="@dimen/dp_42"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:background="@drawable/bg_r53_0dffb9"
android:text="立即申请"
android:textSize="@dimen/sp_14"
android:gravity="center"
android:textColor="@color/color_FF333333"
android:layout_marginBottom="@dimen/dp_44"
android:layout_marginStart="@dimen/dp_16"
android:visibility="gone"/>
<TextView
android:id="@+id/tv_wheat_sq"
android:layout_width="@dimen/dp_95"
android:layout_height="@dimen/dp_42"
android:background="@drawable/bg_r53_33333"
android:gravity="center"
android:text="申请"
android:textColor="@color/white"
android:textSize="@dimen/sp_14"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_ljsq"
android:layout_width="@dimen/dp_300"
android:layout_height="@dimen/dp_42"
android:background="@drawable/bg_r53_0dffb9"
android:gravity="center"
android:text="立即申请"
android:textColor="@color/color_FF333333"
android:textSize="@dimen/sp_14"
android:visibility="gone"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="@dimen/dp_172"
android:layout_height="@dimen/dp_90"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"

View File

@@ -55,11 +55,19 @@
<!-- </LinearLayout>-->
<ImageView
android:id="@+id/im"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/iv_exit"
app:layout_constraintStart_toStartOf="parent"
android:src="@mipmap/xiaohei_bj"
android:scaleType="fitXY"/>
<TextView
android:id="@+id/dating_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_140"
android:background="@mipmap/room_head_information_bg"
android:drawablePadding="3dp"
android:gravity="center"
@@ -72,16 +80,17 @@
android:textSize="12sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/iv_exit" />
app:layout_constraintTop_toBottomOf="@+id/cl_2" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_8"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/dating_time">
app:layout_constraintTop_toTopOf="@+id/im"
app:layout_constraintBottom_toBottomOf="@+id/im"
>
<com.xscm.moduleutil.widget.RoomMakeWheatView
@@ -128,13 +137,13 @@
app:layout_constraintEnd_toStartOf="@+id/room_make_wheat2"
app:layout_constraintStart_toEndOf="@+id/room_make_wheat1"
app:layout_constraintTop_toTopOf="@+id/room_make_wheat1"
tools:visibility="visible">
>
<ImageView
android:layout_width="match_parent"
android:layout_height="@dimen/dp_20"
android:layout_gravity="center_vertical|center_horizontal"
android:src="@mipmap/cxian" />
<!-- <ImageView-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="@dimen/dp_20"-->
<!-- android:layout_gravity="center_vertical|center_horizontal"-->
<!-- android:src="@mipmap/cxian" />-->
<ImageView
android:id="@+id/iv_heart_value2"
@@ -148,14 +157,12 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:layout_marginTop="@dimen/dp_10"
android:shadowColor="#FF008CE1"
android:shadowDx="1"
android:shadowColor="#40b40066"
android:shadowDx="0"
android:shadowDy="1"
android:shadowRadius="3.0"
android:text="100000"
android:textColor="@color/white"
android:textSize="12sp"
android:textSize="@dimen/sp_18"
tools:text="1000000" />
</FrameLayout>

View File

@@ -18,144 +18,147 @@
android:paddingBottom="@dimen/dp_20">
<RelativeLayout
android:id="@+id/rl_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
<RelativeLayout
android:id="@+id/rl_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_alignParentStart="true"
android:text="调音台"
android:textColor="@color/color_FFFFF0F0"
android:textSize="@dimen/sp_14"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginRight="@dimen/dp_8"
android:layout_toLeftOf="@+id/sw_monitoring"
android:text="耳返"
android:textColor="@color/color_FFFFF0F0"
android:textSize="@dimen/sp_12" />
<Switch
android:id="@+id/sw_monitoring"
android:layout_width="@dimen/dp_37"
android:layout_height="@dimen/dp_20"
android:layout_alignParentEnd="true"
android:background="@drawable/room_tuner_selector_switch"
android:thumb="@android:color/transparent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.005"
tools:ignore="UseSwitchCompatOrMaterialXml" />
</RelativeLayout>
<TextView
android:id="@+id/tv_seekbar_value"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_21"
android:text="人声40%"
android:textColor="#FFFFFF"
android:textSize="@dimen/sp_14"
android:layout_marginTop="@dimen/dp_20"
app:layout_constraintStart_toStartOf="@+id/rl_title"
app:layout_constraintTop_toBottomOf="@+id/rl_title"
android:textAlignment="center"/>
<SeekBar
android:id="@+id/seekBar1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
app:layout_constraintTop_toBottomOf="@+id/tv_seekbar_value"
app:layout_constraintStart_toStartOf="@id/tv_seekbar_value"
app:layout_constraintEnd_toEndOf="@+id/rl_title"
android:max="100"
android:secondaryProgressTint="@color/colorAccent"
android:maxHeight="@dimen/dp_15"
android:minHeight="@dimen/dp_15"
android:splitTrack="false"
android:progressDrawable="@drawable/picture_layer_progress"
android:thumb="@drawable/picture_sb_thumb"/>
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/tv_seekbar_value2"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_21"
android:text="伴奏40%"
android:textColor="#FFFFFF"
android:textSize="@dimen/sp_14"
android:layout_marginTop="@dimen/dp_20"
app:layout_constraintStart_toStartOf="@+id/seekBar1"
app:layout_constraintTop_toBottomOf="@+id/seekBar1"
android:textAlignment="center"/>
<SeekBar
android:id="@+id/seekBar2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
app:layout_constraintTop_toBottomOf="@+id/tv_seekbar_value2"
app:layout_constraintStart_toStartOf="@+id/tv_seekbar_value2"
app:layout_constraintEnd_toEndOf="@+id/rl_title"
android:max="100"
android:splitTrack="false"
android:secondaryProgressTint="@color/colorAccent"
android:maxHeight="@dimen/dp_15"
android:minHeight="@dimen/dp_15"
android:progressDrawable="@drawable/picture_layer_progress"
android:thumb="@drawable/picture_sb_thumb"/>
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_centerInParent="true"
android:text="调音台"
android:textColor="@color/color_FFFFF0F0"
android:textSize="@dimen/sp_14"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_hunxiang"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_21"
android:text="混响"
android:textColor="#FFFFFF"
android:textSize="@dimen/sp_14"
android:layout_marginTop="@dimen/dp_20"
app:layout_constraintStart_toStartOf="@+id/seekBar2"
app:layout_constraintTop_toBottomOf="@+id/seekBar2"
android:textAlignment="center"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginRight="@dimen/dp_8"
android:layout_toLeftOf="@+id/sw_monitoring"
android:text="耳返"
android:textColor="@color/color_FFFFF0F0"
android:textSize="@dimen/sp_12" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_effect_style_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
app:layout_constraintTop_toBottomOf="@+id/tv_hunxiang"
tools:listitem="@layout/room_rv_item_tuner" />
<Switch
android:id="@+id/sw_monitoring"
android:layout_width="@dimen/dp_37"
android:layout_height="@dimen/dp_20"
android:layout_alignParentEnd="true"
android:background="@drawable/room_tuner_selector_switch"
android:thumb="@android:color/transparent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.005"
tools:ignore="UseSwitchCompatOrMaterialXml" />
</RelativeLayout>
<TextView
android:id="@+id/tv_biansheng"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_21"
android:text="变声"
android:textColor="#FFFFFF"
android:textSize="@dimen/sp_14"
android:layout_marginTop="@dimen/dp_20"
app:layout_constraintStart_toStartOf="@+id/rv_effect_style_list"
app:layout_constraintTop_toBottomOf="@+id/rv_effect_style_list"
android:textAlignment="center"
android:visibility="gone"/>
<TextView
android:id="@+id/tv_seekbar_value"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_21"
android:layout_marginTop="@dimen/dp_20"
android:text="人声40%"
android:textAlignment="center"
android:textColor="#FFFFFF"
android:textSize="@dimen/sp_14"
app:layout_constraintStart_toStartOf="@+id/rl_title"
app:layout_constraintTop_toBottomOf="@+id/rl_title" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_effect_style_list2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
app:layout_constraintTop_toBottomOf="@+id/tv_biansheng"
tools:listitem="@layout/room_rv_item_tuner"
android:visibility="gone"/>
<SeekBar
android:id="@+id/seekBar1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:max="100"
android:maxHeight="@dimen/dp_15"
android:minHeight="@dimen/dp_15"
android:progressDrawable="@drawable/picture_layer_progress"
android:secondaryProgressTint="@color/colorAccent"
android:splitTrack="false"
android:thumb="@drawable/picture_sb_thumb"
app:layout_constraintEnd_toEndOf="@+id/rl_title"
app:layout_constraintStart_toStartOf="@id/tv_seekbar_value"
app:layout_constraintTop_toBottomOf="@+id/tv_seekbar_value" />
<TextView
android:id="@+id/tv_seekbar_value2"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_21"
android:layout_marginTop="@dimen/dp_20"
android:text="伴奏40%"
android:textAlignment="center"
android:textColor="#FFFFFF"
android:textSize="@dimen/sp_14"
app:layout_constraintStart_toStartOf="@+id/seekBar1"
app:layout_constraintTop_toBottomOf="@+id/seekBar1" />
<SeekBar
android:id="@+id/seekBar2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:max="100"
android:maxHeight="@dimen/dp_15"
android:minHeight="@dimen/dp_15"
android:progressDrawable="@drawable/picture_layer_progress"
android:secondaryProgressTint="@color/colorAccent"
android:splitTrack="false"
android:thumb="@drawable/picture_sb_thumb"
app:layout_constraintEnd_toEndOf="@+id/rl_title"
app:layout_constraintStart_toStartOf="@+id/tv_seekbar_value2"
app:layout_constraintTop_toBottomOf="@+id/tv_seekbar_value2" />
<TextView
android:id="@+id/tv_hunxiang"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_21"
android:layout_marginTop="@dimen/dp_20"
android:text="混响"
android:textAlignment="center"
android:textColor="#FFFFFF"
android:textSize="@dimen/sp_14"
app:layout_constraintStart_toStartOf="@+id/seekBar2"
app:layout_constraintTop_toBottomOf="@+id/seekBar2" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_effect_style_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
app:layout_constraintTop_toBottomOf="@+id/tv_hunxiang"
tools:listitem="@layout/room_rv_item_tuner" />
<TextView
android:id="@+id/tv_biansheng"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_21"
android:layout_marginTop="@dimen/dp_20"
android:text="变声"
android:textAlignment="center"
android:textColor="#FFFFFF"
android:textSize="@dimen/sp_14"
android:visibility="gone"
app:layout_constraintStart_toStartOf="@+id/rv_effect_style_list"
app:layout_constraintTop_toBottomOf="@+id/rv_effect_style_list" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_effect_style_list2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
android:visibility="gone"
app:layout_constraintTop_toBottomOf="@+id/tv_biansheng"
tools:listitem="@layout/room_rv_item_tuner" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@@ -16,7 +16,8 @@
android:layout_height="35dp"
android:gravity="center_vertical"
android:layout_marginLeft="15dp"
android:layout_marginBottom="5dp">
android:layout_marginBottom="5dp"
android:visibility="gone">
<TextView
android:id="@+id/tv_tab_all"
@@ -34,7 +35,7 @@
android:layout_marginLeft="5dp"
android:textSize="12sp"
android:gravity="center"
android:textColor="#ccc"
android:textColor="#FFF"
android:text="聊天"/>
<TextView
@@ -44,7 +45,7 @@
android:layout_marginLeft="5dp"
android:textSize="12sp"
android:gravity="center"
android:textColor="#ccc"
android:textColor="#FFF"
android:text="礼物"/>
</LinearLayout>
@@ -75,11 +76,11 @@
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycle_view"
android:id="@+id/recycle_view_public"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/ll_vertical_scroll"
android:layout_marginStart="@dimen/dp_15"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginEnd="@dimen/dp_100"
/>

View File

@@ -18,7 +18,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_2"
android:layout_marginEnd="@dimen/dp_2"
android:layout_marginBottom="@dimen/dp_12"
android:layout_marginBottom="@dimen/dp_5"
android:background="@mipmap/gift_mh"
android:layout_above="@+id/cl"
android:orientation="vertical"
@@ -75,6 +75,7 @@
android:paddingStart="@dimen/dp_16"
android:paddingTop="@dimen/dp_25"
android:paddingEnd="@dimen/dp_16"
android:paddingBottom="@dimen/dp_10"
>
@@ -179,6 +180,20 @@
android:textSize="@dimen/sp_12" />
<TextView
android:id="@+id/tv_bb_qs"
android:layout_width="@dimen/dp_80"
android:layout_height="@dimen/dp_32"
android:layout_centerVertical="true"
android:layout_toStartOf="@+id/ll_gift_num"
android:background="@drawable/bg_r53_0dffb9"
android:layout_marginEnd="@dimen/dp_8"
android:gravity="center"
android:text="一键全送"
android:textColor="#0DFFB9"
android:textSize="@dimen/sp_14" />
<LinearLayout
android:id="@+id/ll_gift_num"
android:layout_width="@dimen/dp_100"

View File

@@ -192,7 +192,7 @@
android:textColor="@color/white"
android:textSize="@dimen/sp_9"
app:layout_constraintBottom_toBottomOf="@+id/view_top1"
app:layout_constraintTop_toBottomOf="@+id/room_top1_name"
app:layout_constraintTop_toBottomOf="@+id/ll_vip1"
app:layout_constraintEnd_toEndOf="@id/view_top1"
app:layout_constraintStart_toStartOf="@id/view_top1"
app:layout_constraintBottom_toTopOf="@+id/ll_vip1"
@@ -264,7 +264,7 @@
android:textColor="@color/white"
android:textSize="@dimen/sp_9"
app:layout_constraintBottom_toBottomOf="@+id/view_top3"
app:layout_constraintTop_toBottomOf="@+id/room_top3_name"
app:layout_constraintTop_toBottomOf="@+id/ll_vip3"
app:layout_constraintEnd_toEndOf="@id/view_top3"
app:layout_constraintStart_toStartOf="@id/view_top3"
tools:text="00000" />
@@ -272,7 +272,7 @@
<LinearLayout
android:id="@+id/ll_vip2"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_16"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="@id/view_top2"
@@ -326,7 +326,7 @@
<LinearLayout
android:id="@+id/ll_vip3"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_16"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="@id/view_top3"

View File

@@ -91,7 +91,7 @@
<LinearLayout
android:id="@+id/bnv_rank_list_rich"
android:layout_width="0dp"
android:layout_height="@dimen/dp_16"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="5dp"
app:layout_constraintBottom_toBottomOf="@+id/room_item_head"

View File

@@ -5,6 +5,7 @@
>
<RelativeLayout
android:id="@+id/rl_top"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipChildren="false"
@@ -61,8 +62,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:gravity="center"
android:textColor="@color/white"
android:textSize="@dimen/sp_12" />
android:textSize="@dimen/sp_10" />
</LinearLayout>
@@ -121,7 +123,7 @@
<RelativeLayout
android:id="@+id/btn_ranking"
android:layout_width="@dimen/dp_76"
android:layout_width="@dimen/dp_75"
android:layout_height="@dimen/dp_22"
android:layout_below="@id/group_1"
android:layout_marginStart="@dimen/dp_16"
@@ -156,10 +158,10 @@
<RelativeLayout
android:id="@+id/btn_notice"
android:layout_width="@dimen/dp_55"
android:layout_width="@dimen/dp_60"
android:layout_height="@dimen/dp_22"
android:layout_alignTop="@id/btn_ranking"
android:layout_marginStart="@dimen/dp_12"
android:layout_marginStart="@dimen/dp_8"
android:layout_toEndOf="@id/btn_ranking"
android:background="@drawable/bg_r73_33fffff">
@@ -190,12 +192,14 @@
<RelativeLayout
android:id="@+id/rl"
android:layout_width="@dimen/dp_76"
android:layout_width="@dimen/dp_80"
android:layout_height="@dimen/dp_22"
android:layout_alignTop="@id/btn_notice"
android:layout_marginStart="@dimen/dp_12"
android:layout_marginStart="@dimen/dp_8"
android:background="@drawable/bg_r73_33fffff"
android:layout_toEndOf="@id/btn_notice">
android:layout_toEndOf="@id/btn_notice"
android:visibility="gone"
tools:visibility="visible">
<ImageView
android:id="@+id/im_qc"
@@ -220,16 +224,78 @@
</RelativeLayout>
<ViewStub
android:id="@+id/stub_buttons"
<LinearLayout
android:id="@+id/stub_buttons2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_toEndOf="@+id/rl"
android:layout_marginTop="@dimen/dp_50"
android:layout_alignTop="@id/btn_notice"
android:background="@android:color/transparent"
android:layout="@layout/top_overlay_buttons"
/>
android:orientation="horizontal"
android:visibility="gone"
tools:visibility="visible"
>
<ImageView
android:id="@+id/im_action_ys"
android:layout_width="46dp"
android:layout_height="24dp"
android:src="@mipmap/action_ys"
android:layout_marginEnd="10dp"
android:clickable="true"
android:focusable="true"
android:visibility="invisible"/>
<ImageView
android:id="@+id/im_action_js"
android:layout_width="46dp"
android:layout_height="24dp"
android:src="@mipmap/action_js"
android:layout_marginEnd="16dp"
android:clickable="true"
android:focusable="true"
android:visibility="invisible"/>
</LinearLayout>
<!-- <androidx.constraintlayout.widget.ConstraintLayout-->
<!-- android:id="@+id/cl_xsb"-->
<!-- android:layout_width="@dimen/dp_60"-->
<!-- android:layout_height="@dimen/dp_25"-->
<!-- android:layout_marginStart="@dimen/dp_8"-->
<!-- android:layout_alignParentEnd="true"-->
<!-- android:layout_alignTop="@id/btn_notice"-->
<!-- tools:visibility="visible">-->
<!-- <ImageView-->
<!-- android:id="@+id/iv_first_charge"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="match_parent"-->
<!-- android:scaleType="fitCenter"-->
<!-- android:src="@mipmap/room_xsb"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<!-- <TextView-->
<!-- android:id="@+id/tv_first"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:textColor="#FFFFFF"-->
<!-- android:paddingEnd="@dimen/dp_2"-->
<!-- android:textSize="11sp"-->
<!-- android:gravity="center"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent"-->
<!-- android:text="小时榜" />-->
<!-- </androidx.constraintlayout.widget.ConstraintLayout>-->
</RelativeLayout>
</layout>