fix bugs. add 字体流光 自定义view,cos上传报错信息。

This commit is contained in:
2025-11-14 17:38:30 +08:00
parent 68b4a66046
commit 3322cfeb22
78 changed files with 1278 additions and 1112 deletions

View File

@@ -224,5 +224,6 @@ dependencies {
api project(':Loadinglibrary') api project(':Loadinglibrary')
api project(':moduletablayout') api project(':moduletablayout')
implementation "org.jetbrains.kotlin:kotlin-reflect:2.0.21"
} }

View File

@@ -4,6 +4,7 @@ import static android.view.View.GONE;
import static android.view.View.VISIBLE; import static android.view.View.VISIBLE;
import static com.blankj.utilcode.util.ActivityUtils.startActivity; import static com.blankj.utilcode.util.ActivityUtils.startActivity;
import android.graphics.Color;
import android.os.Bundle; import android.os.Bundle;
import android.text.SpannableStringBuilder; import android.text.SpannableStringBuilder;
import android.text.Spanned; import android.text.Spanned;
@@ -30,6 +31,7 @@ import com.xscm.moduleutil.utils.MeHeadView;
import com.xscm.moduleutil.utils.NumberFormatUtils; import com.xscm.moduleutil.utils.NumberFormatUtils;
import com.xscm.moduleutil.utils.SpUtil; import com.xscm.moduleutil.utils.SpUtil;
import com.xscm.moduleutil.widget.MyGridView; import com.xscm.moduleutil.widget.MyGridView;
import com.xscm.moduleutil.widget.ShineTextView;
import com.xscm.moduleutil.widget.img.FullScreenUtil; import com.xscm.moduleutil.widget.img.FullScreenUtil;
import java.util.List; import java.util.List;
@@ -46,13 +48,13 @@ public class CirleListAdapter extends BaseQuickAdapter<CircleListBean, BaseViewH
} }
public interface OnItemClickListener { public interface OnItemClickListener {
void onDianzanClick(int index,CircleListBean item); void onDianzanClick(int index, CircleListBean item);
void onHeadImageClick(CircleListBean item); void onHeadImageClick(CircleListBean item);
void onZsClick(int idx,CircleListBean item); void onZsClick(int idx, CircleListBean item);
void onMoreClick(int idx,CircleListBean item); void onMoreClick(int idx, CircleListBean item);
void onPinglunClick(CircleListBean item); void onPinglunClick(CircleListBean item);
@@ -86,7 +88,7 @@ public class CirleListAdapter extends BaseQuickAdapter<CircleListBean, BaseViewH
Bundle diff = (Bundle) payload; Bundle diff = (Bundle) payload;
if (diff.containsKey("like_num")) { if (diff.containsKey("like_num")) {
helper.setText(R.id.dy_fabulous, diff.getString("like_num")); helper.setText(R.id.dy_fabulous, diff.getString("like_num"));
if (diff.containsKey("is_like")){ if (diff.containsKey("is_like")) {
if (diff.getInt("is_like") == 1) { if (diff.getInt("is_like") == 1) {
helper.setImageResource(R.id.dianzan_image, R.mipmap.dongtai_hudong_yidianzan); helper.setImageResource(R.id.dianzan_image, R.mipmap.dongtai_hudong_yidianzan);
} else { } else {
@@ -130,7 +132,7 @@ public class CirleListAdapter extends BaseQuickAdapter<CircleListBean, BaseViewH
// 设置点击回调 // 设置点击回调
helper.getView(com.xscm.moduleutil.R.id.dianzan).setOnClickListener(v -> { helper.getView(com.xscm.moduleutil.R.id.dianzan).setOnClickListener(v -> {
if (mListener != null) { if (mListener != null) {
mListener.onDianzanClick(helper.getPosition(),item); mListener.onDianzanClick(helper.getPosition(), item);
} }
}); });
@@ -139,11 +141,11 @@ public class CirleListAdapter extends BaseQuickAdapter<CircleListBean, BaseViewH
}); });
helper.getView(com.xscm.moduleutil.R.id.zs).setOnClickListener(v -> { helper.getView(com.xscm.moduleutil.R.id.zs).setOnClickListener(v -> {
if (mListener != null) mListener.onZsClick(helper.getPosition(),item); if (mListener != null) mListener.onZsClick(helper.getPosition(), item);
}); });
helper.getView(R.id.diandian).setOnClickListener(v -> { helper.getView(R.id.diandian).setOnClickListener(v -> {
if (mListener != null) mListener.onMoreClick(helper.getPosition(),item); if (mListener != null) mListener.onMoreClick(helper.getPosition(), item);
}); });
helper.getView(R.id.pinglun).setOnClickListener(v -> { helper.getView(R.id.pinglun).setOnClickListener(v -> {
@@ -164,6 +166,15 @@ public class CirleListAdapter extends BaseQuickAdapter<CircleListBean, BaseViewH
}); });
//昵称 //昵称
helper.setText(R.id.dy_name_text, item.getNickname()); helper.setText(R.id.dy_name_text, item.getNickname());
ShineTextView tvName = helper.getView(R.id.dy_name_text);
if (!item.getNickname_color().isEmpty()) {
tvName.setStartColor(Color.parseColor(item.getNickname_color()));
tvName.setShineColor(Color.parseColor(item.getNickname_color()));
tvName.setEndColor(Color.parseColor(item.getNickname_color()));
tvName.setShine(true);
tvName.setShineType(0);
}
//头像 //头像
// ImageUtils.loadHeadCC(item.getAvatar(), helper.getView(R.id.dy_head_image)); // ImageUtils.loadHeadCC(item.getAvatar(), helper.getView(R.id.dy_head_image));

View File

@@ -132,7 +132,7 @@ public class BaseRoomPresenter<V extends IView> extends BasePresenter<V> impleme
@Override @Override
public void putOnWheat(String roomId, String userId,String pitNum) { public void putOnWheat(String roomId, String userId,String pitNum) {
MvpRef.get().showLoadings(); // MvpRef.get().showLoadings();
// ApiClient.getInstance().putOnWheat(roomId, userId,pitNum, new BaseObserver<PutOnWheatResp>() { // ApiClient.getInstance().putOnWheat(roomId, userId,pitNum, new BaseObserver<PutOnWheatResp>() {
// @Override // @Override
// public void onSubscribe(Disposable d) { // public void onSubscribe(Disposable d) {

View File

@@ -446,8 +446,8 @@ public class CommonAppContext extends MultiDexApplication implements Applicatio
// startService(mqttServiceIntent); // startService(mqttServiceIntent);
// } // }
// mqttConnect=MqttConnect.getInstance(this,"tcp://1.13.181.248","android-"+ MqttClient.generateClientId()); mqttConnect=MqttConnect.getInstance(this,"tcp://1.13.181.248","android-"+ MqttClient.generateClientId());
mqttConnect=MqttConnect.getInstance(this,"tcp://1.13.101.98","android-"+ MqttClient.generateClientId()); // mqttConnect=MqttConnect.getInstance(this,"tcp://1.13.101.98","android-"+ MqttClient.generateClientId());
mqttConnect.mqttClient(); mqttConnect.mqttClient();
// 每次启动应用时重置状态 // 每次启动应用时重置状态
@@ -526,8 +526,8 @@ public class CommonAppContext extends MultiDexApplication implements Applicatio
public void upMqtt(){ public void upMqtt(){
if (mqttConnect==null){ if (mqttConnect==null){
// mqttConnect=MqttConnect.getInstance(this,"tcp://1.13.181.248","android-"+ MqttClient.generateClientId()); mqttConnect=MqttConnect.getInstance(this,"tcp://1.13.181.248","android-"+ MqttClient.generateClientId());
mqttConnect=MqttConnect.getInstance(this,"tcp://1.13.101.98","android-"+ MqttClient.generateClientId()); // mqttConnect=MqttConnect.getInstance(this,"tcp://1.13.101.98","android-"+ MqttClient.generateClientId());
mqttConnect.mqttClient(); mqttConnect.mqttClient();
} }
} }

View File

@@ -32,7 +32,7 @@ public class CircleListBean {
public List<HeatedBean> title;//话题列表 public List<HeatedBean> title;//话题列表
public String nobility_image;//贵族图标 public String nobility_image;//贵族图标
public String nickname_color;//昵称颜色 public String nickname_color = "";//昵称颜色
public String mic_cycle;//麦圈 public String mic_cycle;//麦圈
public String read_num;//阅读数 public String read_num;//阅读数

View File

@@ -21,5 +21,5 @@ public class ExpandColumnBean {
private String agree; private String agree;
private List<String> icon; private List<String> icon;
private String nobility_image;//贵族图标 private String nobility_image;//贵族图标
private String nickname_color;//昵称颜色 private String nickname_color = "";//昵称颜色
} }

View File

@@ -23,7 +23,7 @@ public class RoonGiftModel {
private String all_room_push; private String all_room_push;
private String special; private String special;
private String sort; private String sort;
private String type; private String type = "";
private String child_type; private String child_type;
private String sold; private String sold;
private String cardiac; private String cardiac;

View File

@@ -1,19 +1,23 @@
package com.xscm.moduleutil.bean; package com.xscm.moduleutil.bean;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
import com.xscm.moduleutil.BaseEvent;
import com.xscm.moduleutil.bean.room.FriendInfo; import com.xscm.moduleutil.bean.room.FriendInfo;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
/** /**
*@author qx *@author qx
*@data 2025/6/3 *@data 2025/6/3
*@description: 个人信息,点击我的获取 *@description: 个人信息,点击我的获取
*/ */
@EqualsAndHashCode(callSuper = true)
@Data @Data
public class UserInfo implements Serializable { public class UserInfo extends BaseEvent implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public static final String FEMALE = "2"; public static final String FEMALE = "2";
public static final String MALE = "1"; public static final String MALE = "1";
@@ -69,7 +73,7 @@ public class UserInfo implements Serializable {
private String ta; private String ta;
private String nobility_image;//贵族图标 private String nobility_image;//贵族图标
private String nickname_color;//昵称颜色 private String nickname_color = "";//昵称颜色
private String mic_cycle;//麦圈 private String mic_cycle;//麦圈
private String is_hide;//0不能设置1可以设置 private String is_hide;//0不能设置1可以设置
private String hide_status;//0-取消隐身1-设置隐身 private String hide_status;//0-取消隐身1-设置隐身

View File

@@ -1,6 +1,9 @@
package com.xscm.moduleutil.bean.room; package com.xscm.moduleutil.bean.room;
import com.xscm.moduleutil.BaseEvent;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List; import java.util.List;
/** /**
@@ -8,13 +11,15 @@ import java.util.List;
*@data 2025/9/29 *@data 2025/9/29
*@description:小时榜实体类 *@description:小时榜实体类
*/ */
@EqualsAndHashCode(callSuper = true)
@Data @Data
public class RoomHourBean { public class RoomHourBean extends BaseEvent {
private String time_range; private String time_range;
private List<RoomListBean> lists; private List<RoomListBean> lists;
@EqualsAndHashCode(callSuper = true)
@Data @Data
public class RoomListBean { public class RoomListBean extends BaseEvent{
private String room_id; private String room_id;
private String room_name; private String room_name;
private int label_id; private int label_id;

View File

@@ -29,7 +29,7 @@ public class RoomPitBean implements Serializable {
*/ */
private String id;//id private String id;//id
private String pit_number;//麦位号 private String pit_number = "";//麦位号
private String state;//麦位状态 正常 1封麦3禁麦 private String state;//麦位状态 正常 1封麦3禁麦
private int is_lock;//0未锁麦 1锁麦 private int is_lock;//0未锁麦 1锁麦
private int is_mute;//0未禁麦 1禁麦 private int is_mute;//0未禁麦 1禁麦

View File

@@ -766,6 +766,9 @@ public interface ApiServer {
@GET(Constants.GET_NOBILITY_PRICE) @GET(Constants.GET_NOBILITY_PRICE)
Call<BaseModel<NobilityPrice>> getNobilityPrice(@Query("id") String id); Call<BaseModel<NobilityPrice>> getNobilityPrice(@Query("id") String id);
@POST(Constants.POST_SEND_LOG)
Call<BaseModel<String>> postSendAppLog(@Query("log_name") String logName,@Query("log_url") String logUrl);
@GET(Constants.GET_BOX_GIFT_LIST_XLH) @GET(Constants.GET_BOX_GIFT_LIST_XLH)
Call<BaseModel<BlindBoxBean>> getBoxGiftListXLH( @Query("room_id") String room_id); Call<BaseModel<BlindBoxBean>> getBoxGiftListXLH( @Query("room_id") String room_id);

View File

@@ -3814,6 +3814,35 @@ public class RetrofitClient {
}); });
} }
public void sendAppLog(String logName,String logPath,BaseObserver<String> observer) {
sApiServer.postSendAppLog(logName,logPath).enqueue(new Callback<BaseModel<String>>() {
@Override
public void onResponse(Call<BaseModel<String>> call, Response<BaseModel<String>> response) {
if (response.code() == 200) {
int code = response.body().getCode();
if (code == 1) {
observer.onNext("成功");
}else if (code == 301){
try {
ToastUtils.showShort(response.body().getMsg());
CommonAppContext.getInstance().clearLoginInfo();
} catch (ClassNotFoundException e) {
LogUtils.e( e.toString());
}
}else {
observer.onNext("失败");
}
}
}
@Override
public void onFailure(Call<BaseModel<String>> call, Throwable t) {
observer.onNext("失败");
}
});
}
/// 巡乐会抽奖 /// 巡乐会抽奖
public void xlhChou(String roomId, String public void xlhChou(String roomId, String
num, BaseObserver<List<XlhDrawBean>> observer) { num, BaseObserver<List<XlhDrawBean>> observer) {

View File

@@ -217,7 +217,7 @@ public class MessageListenerSingleton {
try { try {
// 先退出当前群组(如果需要) // 先退出当前群组(如果需要)
if (groupId != null && !groupId.equals(roomId)) { if (groupId != null && !groupId.equals(roomId)) {
LogUtils.d("MessageListener", "开始退出群组: " + groupId); LogUtils.d("MessageListener", "开始退出群组: " + groupId +"____room:"+ roomId);
CountDownLatch quitLatch = new CountDownLatch(1); CountDownLatch quitLatch = new CountDownLatch(1);
boolean[] quitSuccess = {false}; boolean[] quitSuccess = {false};
@@ -225,14 +225,14 @@ public class MessageListenerSingleton {
V2TIMManager.getInstance().quitGroup("room" + groupId, new V2TIMCallback() { V2TIMManager.getInstance().quitGroup("room" + groupId, new V2TIMCallback() {
@Override @Override
public void onSuccess() { public void onSuccess() {
LogUtils.d("MessageListener", "退出群组成功: " + groupId); LogUtils.d("MessageListener", "退出群组成功: " + groupId+"____room:"+ roomId);
quitSuccess[0] = true; quitSuccess[0] = true;
quitLatch.countDown(); quitLatch.countDown();
} }
@Override @Override
public void onError(int code, String desc) { public void onError(int code, String desc) {
LogUtils.e("MessageListener", "退出群组失败: " + groupId + ", code=" + code + ", desc=" + desc); LogUtils.e("MessageListener", "退出群组失败: " + groupId +"____room:"+ roomId + ", code=" + code + ", desc=" + desc);
quitSuccess[0] = false; quitSuccess[0] = false;
quitLatch.countDown(); quitLatch.countDown();
} }

View File

@@ -17,7 +17,7 @@ import io.reactivex.disposables.Disposable;
public abstract class BasePresenter<V extends IView> implements IPresenter { public abstract class BasePresenter<V extends IView> implements IPresenter {
protected CompositeDisposable mDisposables = new CompositeDisposable(); protected CompositeDisposable mDisposables = new CompositeDisposable();
protected RetrofitClient api = RetrofitClient.getInstance(); protected RetrofitClient api = RetrofitClient.getInstance();
protected Reference<V> MvpRef; protected Reference<V> MvpRef;
protected Context mContext; protected Context mContext;
@Deprecated @Deprecated

View File

@@ -863,7 +863,7 @@ public class AgoraManager {
//打开对方支持的推流 //打开对方支持的推流
public void muteAllRemoteAudioStreamsExUserId(boolean enabled){ public void muteAllRemoteAudioStreamsExUserId(boolean enabled){
if (rtcEngine != null){ if (rtcEngine != null){
// rtcEngine.muteRemoteAudioStreamEx(pkUserId,enabled,connection); rtcEngine.muteRemoteAudioStreamEx(pkUserId,enabled,connection);
} }
} }

View File

@@ -1,19 +1,35 @@
package com.xscm.moduleutil.utils; package com.xscm.moduleutil.utils;
import android.os.SystemClock;
import android.util.SparseArray;
import android.view.View;
/** /**
*@author qx *@author qx
*@data 2025/9/10 *@data 2025/9/10
*@description: 防止重复点击的工具类 *@description: 防止重复点击的工具类
*/ */
public class ClickUtils { public class ClickUtils {
private static final long CLICK_INTERVAL = 1000; // 1000ms内不允许重复点击 private static final long DEFAULT_CLICK_INTERVAL = 500;
private static long lastClickTime = 0; private static final SparseArray<Long> lastClickTimes = new SparseArray<>();
public static boolean isFastDoubleClick() { public static boolean isFastDoubleClick(View view) {
long currentTime = System.currentTimeMillis(); return isFastDoubleClick(view, DEFAULT_CLICK_INTERVAL);
if (currentTime - lastClickTime < CLICK_INTERVAL) { }
public static boolean isFastDoubleClick(View view, long interval) {
long currentTime = SystemClock.elapsedRealtime();
int viewId = view.getId();
Long lastClickTime = lastClickTimes.get(viewId);
if (lastClickTime != null && currentTime - lastClickTime < interval) {
return true; return true;
} }
lastClickTime = currentTime; lastClickTimes.put(viewId, currentTime);
return false; return false;
} }
}
// 新增:清理所有点击记录
public static void clearAllClickRecords() {
lastClickTimes.clear();
}
}

View File

@@ -196,7 +196,19 @@ public class ImageUtils {
} }
public static void loadRoomItem(String path, ImageView mImageView) {
if (mImageView == null) {
return;
}
Context context = mImageView.getContext();
if (context instanceof android.app.Activity) {
android.app.Activity activity = (android.app.Activity) context;
if (activity.isFinishing() || (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1 && activity.isDestroyed())) {
return;
}
}
Glide.with(mImageView).load(path).diskCacheStrategy(DiskCacheStrategy.ALL).into(mImageView);
}
public static void loadHeadCC(String path, ImageView mImageView) { public static void loadHeadCC(String path, ImageView mImageView) {
if (mImageView == null) { if (mImageView == null) {

View File

@@ -8,6 +8,7 @@ import android.widget.ImageView;
import androidx.constraintlayout.widget.ConstraintLayout; import androidx.constraintlayout.widget.ConstraintLayout;
import com.blankj.utilcode.util.LogUtils;
import com.xscm.moduleutil.R; import com.xscm.moduleutil.R;
import com.xscm.moduleutil.utils.logger.Logger; import com.xscm.moduleutil.utils.logger.Logger;
import com.xscm.moduleutil.widget.AvatarFrameView; import com.xscm.moduleutil.widget.AvatarFrameView;
@@ -47,7 +48,7 @@ public class MeHeadView extends ConstraintLayout {
} }
public void setData(String headPicture, String framePicture, String nobilityImage) { public void setData(String headPicture, String framePicture, String nobilityImage) {
Logger.e(headPicture, framePicture, nobilityImage); LogUtils.e(headPicture, framePicture, nobilityImage);
if (!TextUtils.isEmpty(headPicture)) { if (!TextUtils.isEmpty(headPicture)) {
ImageUtils.loadHead(headPicture, mRiv); ImageUtils.loadHead(headPicture, mRiv);
} }

View File

@@ -207,7 +207,7 @@ public class TimeUtils {
//获取当前日期 //获取当前日期
public static String getCurrentDate2() { public static String getCurrentDate2() {
Date d = new Date(); Date d = new Date();
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss SSS"); SimpleDateFormat sf = new SimpleDateFormat("yyyy_MM_dd_hh_mm_ss_SSS");
return sf.format(d); return sf.format(d);
} }
/** /**

View File

@@ -80,7 +80,7 @@ public class CosUploadManager {
String tmpSecretKey = tempKeyBean.getCredentials().getTmpSecretKey(); // 临时密钥 SecretKey String tmpSecretKey = tempKeyBean.getCredentials().getTmpSecretKey(); // 临时密钥 SecretKey
String sessionToken = tempKeyBean.getCredentials().getSessionToken(); // 临时密钥 Token String sessionToken = tempKeyBean.getCredentials().getSessionToken(); // 临时密钥 Token
long expiredTime = tempKeyBean.getExpiredTime();//临时密钥有效截止时间戳,单位是秒 long expiredTime = tempKeyBean.getExpiredTime();//临时密钥有效截止时间戳,单位是秒
// 建议返回服务器时间作为签名的开始时间,避免由于用户手机本地时间偏差过大导致请求过期 // 建议返回服务器时间作为签名的开始时间,避免由于用户手机本地时间偏差过大导致请求过期
long startTime = tempKeyBean.getStartTime(); //临时密钥有效起始时间,单位是秒 long startTime = tempKeyBean.getStartTime(); //临时密钥有效起始时间,单位是秒
// 存储桶所在地域简称,例如广州地区是 ap-guangzhou // 存储桶所在地域简称,例如广州地区是 ap-guangzhou
String region = tempKeyBean.getRegion(); String region = tempKeyBean.getRegion();
@@ -95,13 +95,13 @@ public class CosUploadManager {
CosXmlService cosXmlService = new CosXmlService(mContext, serviceConfig); CosXmlService cosXmlService = new CosXmlService(mContext, serviceConfig);
// 任何 CosXmlRequest 都支持这种方式,例如上传 PutObjectRequest、下载 GetObjectRequest、删除 DeleteObjectRequest 等 // 任何 CosXmlRequest 都支持这种方式,例如上传 PutObjectRequest、下载 GetObjectRequest、删除 DeleteObjectRequest 等
// 以下用上传进行示例 // 以下用上传进行示例
PutObjectRequest putRequest = new PutObjectRequest(bucketName, objectKey, localFilePath); PutObjectRequest putRequest = new PutObjectRequest(bucketName, objectKey, localFilePath);
// sessionQCloudCredentials 为第一步“初始化密钥”中获取到的单次临时密钥 // sessionQCloudCredentials 为第一步“初始化密钥”中获取到的单次临时密钥
putRequest.setCredential(sessionQCloudCredentials); putRequest.setCredential(sessionQCloudCredentials);
// 初始化 TransferConfig这里使用默认配置如果需要定制请参考 SDK 接口文档 // 初始化 TransferConfig这里使用默认配置如果需要定制请参考 SDK 接口文档
TransferConfig transferConfig = new TransferConfig.Builder().build(); TransferConfig transferConfig = new TransferConfig.Builder().build();
// 初始化 TransferManager // 初始化 TransferManager
TransferManager transferManager = new TransferManager(cosXmlService, transferConfig); TransferManager transferManager = new TransferManager(cosXmlService, transferConfig);
COSXMLUploadTask uploadTask = transferManager.upload(putRequest, null); COSXMLUploadTask uploadTask = transferManager.upload(putRequest, null);
uploadTask.setCosXmlResultListener(new CosXmlResultListener() { uploadTask.setCosXmlResultListener(new CosXmlResultListener() {

View File

@@ -63,7 +63,7 @@ public final class DataLogger implements DataLoggingInterceptor.Logger {
} }
// 响应结束,打印整条日志 // 响应结束,打印整条日志
if (message.startsWith(DataLoggingInterceptor.sLogEndFlag)) { if (message.startsWith(DataLoggingInterceptor.sLogEndFlag)) {
if (mMessage.toString().contains("https://test.vespa.xscmmidi.site/api/Xintiao/keep_xintiao")) if (mMessage.toString().contains("Xintiao/keep_xintiao"))
return; return;
LogUtils.d(mMessage.toString()); LogUtils.d(mMessage.toString());
return; return;

View File

@@ -17,6 +17,7 @@ import com.blankj.utilcode.util.FileUtils;
import com.blankj.utilcode.util.ThreadUtils; import com.blankj.utilcode.util.ThreadUtils;
import com.xscm.moduleutil.base.CommonAppContext; import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.utils.Md5Utils; import com.xscm.moduleutil.utils.Md5Utils;
import com.xscm.moduleutil.utils.TimeUtils;
import com.xscm.moduleutil.utils.logger.Logger; import com.xscm.moduleutil.utils.logger.Logger;
import java.io.File; import java.io.File;
@@ -53,6 +54,7 @@ public class OSSOperUtils {
public static final String img = "images/android_images/"; public static final String img = "images/android_images/";
public static final String video = "video/"; public static final String video = "video/";
public static final String audio = "audio/"; public static final String audio = "audio/";
public static final String AppLog = "applog/";
/** /**
@@ -77,6 +79,15 @@ public class OSSOperUtils {
// } // }
} }
public static String getAppLogPath(File file) {
String fileMD5 = Md5Utils.getFileMD5(file);
String suffix = "";
if (file.getName().contains(".")) {
suffix = file.getName().substring(file.getName().lastIndexOf("."));
}
return AppLog + fileMD5 + TimeUtils.getCurrentDate2() + suffix;
}
public static OSSOperUtils newInstance() { public static OSSOperUtils newInstance() {
if (null == utils) { if (null == utils) {
utils = new OSSOperUtils(); utils = new OSSOperUtils();

View File

@@ -411,6 +411,7 @@ public class Constants {
public static final String GET_NOBILITY_DETAIL = "/api/Nobility/get_nobility_detail";//爵位详情 public static final String GET_NOBILITY_DETAIL = "/api/Nobility/get_nobility_detail";//爵位详情
public static final String GET_NOBILITY_LIST = "/api/Nobility/get_nobility_list";//爵位列表 public static final String GET_NOBILITY_LIST = "/api/Nobility/get_nobility_list";//爵位列表
public static final String GET_NOBILITY_PRICE = "/api/Nobility/get_nobility_price";//爵位购买价格 public static final String GET_NOBILITY_PRICE = "/api/Nobility/get_nobility_price";//爵位购买价格
public static final String POST_SEND_LOG = "api/Report/android_log_report";//上传log信息

View File

@@ -0,0 +1,125 @@
package com.xscm.moduleutil.widget
import android.content.Context
import android.graphics.Canvas
import android.graphics.Color
import android.graphics.LinearGradient
import android.graphics.Matrix
import android.graphics.Shader
import android.util.AttributeSet
import androidx.appcompat.widget.AppCompatTextView
import com.xscm.moduleutil.R
/**
*
* 流光字体
* @author TXZ
* @version 1.0
* created by 2024/5/23 9:32
*/
class ShineTextView : AppCompatTextView {
//是否开启流光,默认开启
var isShine = true
//默认是流光效果 0 流光 1 注入效果
var shineType = 0
//流光效果下字体流动次数
var shineCount: Int = Int.MAX_VALUE
//注入效果 开始,中间,结束
var startColor: Int = Color.WHITE
var shineColor: Int = Color.WHITE
var endColor: Int = Color.WHITE
//一次动效时长
var shineDuration: Int = 400
var _count: Int = 0 //自行运行动画次数
private lateinit var mLinearGradient: LinearGradient
private var mGradientMatrix: Matrix = Matrix()
private var mViewWidth = 0
private var mTranslate = 0
constructor(context: Context) : this(context, null)
constructor(context: Context, attrs: AttributeSet?) : this(context, attrs, 0)
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(
context, attrs, defStyleAttr
) {
obtainAttributes(attrs!!)
}
private fun obtainAttributes(attrs: AttributeSet) {
val typedArray = context.obtainStyledAttributes(attrs, R.styleable.ShineTextView)
typedArray.apply {
isShine = typedArray.getBoolean(R.styleable.ShineTextView_isShine, isShine)
shineType = typedArray.getInt(R.styleable.ShineTextView_shineType, shineType)
startColor = typedArray.getColor(R.styleable.ShineTextView_startColor, startColor)
shineColor = typedArray.getColor(R.styleable.ShineTextView_midColor, shineColor)
endColor = typedArray.getColor(R.styleable.ShineTextView_endColor, endColor)
shineCount = typedArray.getInt(R.styleable.ShineTextView_shineCount, shineCount)
shineDuration =
typedArray.getInt(R.styleable.ShineTextView_shineDuration, shineDuration)
}
typedArray.recycle()
}
override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {
super.onSizeChanged(w, h, oldw, oldh)
if (isShine) {
mViewWidth = measuredWidth
when (shineType) {
0 -> {
//流光效果
mLinearGradient = LinearGradient(
0f,
0f,
(mViewWidth / 4).toFloat(),
0f,
intArrayOf(currentTextColor, shineColor, currentTextColor),
null,
Shader.TileMode.CLAMP
)
}
1 -> {
mLinearGradient = LinearGradient(
0f,
0f,
(mViewWidth / 6).toFloat(),
0f,
intArrayOf(endColor, shineColor, startColor),
null,
Shader.TileMode.CLAMP
)
}
}
paint.shader = mLinearGradient
}
}
override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
if (!isShine || !::mLinearGradient.isLateinit) return
mTranslate += mViewWidth / (shineDuration / 50)
if (mTranslate > 1.2 * mViewWidth) {
mTranslate = -mViewWidth / 5
_count++
}
mGradientMatrix.setTranslate(mTranslate.toFloat(), 0f)
mLinearGradient.setLocalMatrix(mGradientMatrix)
when {
shineType == 0 && _count < shineCount -> postInvalidateDelayed(50)
shineType == 1 && _count < 1 -> postInvalidateDelayed(50)
else -> {
mGradientMatrix.setTranslate((1.2 * mViewWidth).toFloat(), 0f)
mLinearGradient.setLocalMatrix(mGradientMatrix)
}
}
}
}

View File

@@ -1,16 +1,14 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"
xmlns:tools="http://schemas.android.com/tools" android:id="@+id/bubble"
android:id="@+id/bubble" android:layout_width="wrap_content"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_height="wrap_content" android:background="@drawable/ease_row_pubilc_user_bg"
android:minWidth="@dimen/dp_256" android:maxWidth="@dimen/dp_256"
android:maxWidth="@dimen/dp_256" android:minWidth="@dimen/dp_256"
android:padding="@dimen/dp_8" android:padding="@dimen/dp_8">
android:background="@drawable/ease_row_pubilc_user_bg"
>
<!-- 网络背景图片 --> <!-- 网络背景图片 -->
<!-- <ImageView--> <!-- <ImageView-->
@@ -25,104 +23,105 @@
<!-- 用户头像 --> <!-- 用户头像 -->
<com.xscm.moduleutil.utils.MeHeadView <com.xscm.moduleutil.utils.MeHeadView
android:id="@+id/avatar" android:id="@+id/avatar"
android:layout_width="@dimen/dp_28" android:layout_width="@dimen/dp_28"
android:layout_height="@dimen/dp_28" android:layout_height="@dimen/dp_28"
android:layout_marginEnd="@dimen/dp_3" android:layout_marginStart="@dimen/dp_8"
android:layout_marginTop="@dimen/dp_3" android:layout_marginTop="@dimen/dp_3"
android:layout_marginBottom="@dimen/dp_3" android:layout_marginEnd="@dimen/dp_3"
android:layout_marginStart="@dimen/dp_8" android:layout_marginBottom="@dimen/dp_3"
app:riv_oval="true" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintTop_toTopOf="parent"/> app:riv_oval="true" />
<!-- 用户名称 --> <!-- 用户名称 -->
<TextView <com.xscm.moduleutil.widget.ShineTextView
android:id="@+id/tv_name" android:id="@+id/tv_name"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="#CCA882" android:layout_marginStart="@dimen/dp_2"
android:textSize="@dimen/sp_12" android:textColor="#CCA882"
android:layout_marginStart="@dimen/dp_2" android:textSize="@dimen/sp_12"
tools:text="饶利" app:isShine="false"
app:layout_constraintStart_toEndOf="@+id/avatar" app:layout_constraintStart_toEndOf="@+id/avatar"
app:layout_constraintTop_toTopOf="@+id/avatar"/> app:layout_constraintTop_toTopOf="@+id/avatar"
tools:text="饶利" />
<!-- 用户标签容器 --> <!-- 用户标签容器 -->
<LinearLayout <LinearLayout
android:id="@+id/line" android:id="@+id/line"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_2" android:layout_marginStart="@dimen/dp_2"
android:layout_marginTop="@dimen/dp_5" android:layout_marginTop="@dimen/dp_5"
android:orientation="horizontal" android:orientation="horizontal"
app:layout_constraintStart_toEndOf="@+id/avatar" app:layout_constraintStart_toEndOf="@+id/avatar"
app:layout_constraintTop_toBottomOf="@+id/tv_name"/> app:layout_constraintTop_toBottomOf="@+id/tv_name" />
<!-- 消息内容 --> <!-- 消息内容 -->
<LinearLayout <LinearLayout
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:layout_marginStart="4dp"
android:gravity="left|center_vertical" android:layout_marginTop="2dp"
android:layout_marginStart="4dp" android:gravity="left|center_vertical"
android:layout_marginTop="2dp" android:orientation="horizontal"
android:padding="@dimen/dp_3" android:padding="@dimen/dp_3"
android:paddingEnd="@dimen/dp_10" android:paddingEnd="@dimen/dp_10"
app:layout_constraintStart_toEndOf="@+id/avatar" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@+id/avatar"
app:layout_constraintTop_toBottomOf="@+id/line"> app:layout_constraintTop_toBottomOf="@+id/line">
<TextView <TextView
android:id="@+id/tv_content" android:id="@+id/tv_content"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:lineHeight="@dimen/dp_20" android:lineHeight="@dimen/dp_20"
android:lineSpacingExtra="@dimen/dp_2" android:lineSpacingExtra="@dimen/dp_2"
android:paddingStart="@dimen/dp_8" android:paddingStart="@dimen/dp_8"
android:paddingEnd="@dimen/dp_8" android:paddingEnd="@dimen/dp_8"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/sp_14" android:textSize="@dimen/sp_14"
tools:text="饶利: 潇洒亼◇生2.0" tools:text="饶利: 潇洒亼◇生2.0"
tools:visibility="gone"/> tools:visibility="gone" />
<com.xscm.moduleutil.widget.AdaptiveImageView <com.xscm.moduleutil.widget.AdaptiveImageView
android:id="@+id/im_emj" android:id="@+id/im_emj"
android:layout_width="@dimen/dp_40" android:layout_width="@dimen/dp_40"
android:layout_height="@dimen/dp_40" android:layout_height="@dimen/dp_40"
android:layout_marginStart="@dimen/dp_2" android:layout_marginStart="@dimen/dp_2"
tools:src="@mipmap/ic_launcher" android:adjustViewBounds="true"
android:scaleType="fitXY" android:scaleType="fitXY"
android:adjustViewBounds="true" android:visibility="gone"
android:visibility="gone" tools:src="@mipmap/ic_launcher"
tools:visibility="visible"/> tools:visibility="visible" />
<!-- <ImageView--> <!-- <ImageView-->
<!-- android:id="@+id/im_emj"--> <!-- android:id="@+id/im_emj"-->
<!-- android:layout_width="0dp"--> <!-- android:layout_width="0dp"-->
<!-- android:layout_height="0dp"--> <!-- android:layout_height="0dp"-->
<!-- android:layout_marginStart="@dimen/dp_2"--> <!-- android:layout_marginStart="@dimen/dp_2"-->
<!-- android:paddingStart="@dimen/dp_8"--> <!-- android:paddingStart="@dimen/dp_8"-->
<!-- android:paddingEnd="@dimen/dp_8"--> <!-- android:paddingEnd="@dimen/dp_8"-->
<!-- tools:src="@mipmap/ic_launcher"--> <!-- tools:src="@mipmap/ic_launcher"-->
<!-- android:maxHeight="@dimen/dp_50"--> <!-- android:maxHeight="@dimen/dp_50"-->
<!-- android:maxWidth="@dimen/dp_50"--> <!-- android:maxWidth="@dimen/dp_50"-->
<!-- android:minWidth="@dimen/dp_40"--> <!-- android:minWidth="@dimen/dp_40"-->
<!-- android:minHeight="@dimen/dp_40"--> <!-- android:minHeight="@dimen/dp_40"-->
<!-- android:scaleType="centerCrop"--> <!-- android:scaleType="centerCrop"-->
<!-- android:adjustViewBounds="true"--> <!-- android:adjustViewBounds="true"-->
<!-- android:visibility="gone"--> <!-- android:visibility="gone"-->
<!-- tools:visibility="visible"--> <!-- tools:visibility="visible"-->
<!-- app:layout_constraintWidth_default="wrap"--> <!-- app:layout_constraintWidth_default="wrap"-->
<!-- app:layout_constraintHeight_default="wrap"--> <!-- app:layout_constraintHeight_default="wrap"-->
<!-- app:layout_constraintWidth_min="@dimen/dp_40"--> <!-- app:layout_constraintWidth_min="@dimen/dp_40"-->
<!-- app:layout_constraintHeight_min="@dimen/dp_40"--> <!-- app:layout_constraintHeight_min="@dimen/dp_40"-->
<!-- app:layout_constraintWidth_max="@dimen/dp_50"--> <!-- app:layout_constraintWidth_max="@dimen/dp_50"-->
<!-- app:layout_constraintHeight_max="@dimen/dp_50"--> <!-- app:layout_constraintHeight_max="@dimen/dp_50"-->
<!-- app:layout_constraintStart_toStartOf="parent"--> <!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent"/>--> <!-- app:layout_constraintTop_toTopOf="parent"/>-->
</LinearLayout> </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -44,11 +44,12 @@
android:gravity="center_vertical" android:gravity="center_vertical"
android:orientation="vertical"> android:orientation="vertical">
<TextView <com.xscm.moduleutil.widget.ShineTextView
android:id="@+id/dy_name_text" android:id="@+id/dy_name_text"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="萌新驾到" android:text="萌新驾到"
app:isShine="false"
android:textColor="#212121" android:textColor="#212121"
android:textSize="14sp" android:textSize="14sp"
android:textStyle="bold" /> android:textStyle="bold" />

View File

@@ -4,7 +4,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:background="@color/transparent"> android:background="@drawable/shape_dialog">
<app.dinus.com.loadingdrawable.LoadingView <app.dinus.com.loadingdrawable.LoadingView
android:id="@+id/cool_wait_view" android:id="@+id/cool_wait_view"
@@ -25,6 +25,8 @@
android:text="加载中..." android:text="加载中..."
android:textColor="#333333" android:textColor="#333333"
android:textSize="16sp" android:textSize="16sp"
android:paddingBottom="@dimen/dp_10"
android:layout_marginHorizontal="@dimen/dp_50"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/cool_wait_view" /> app:layout_constraintTop_toBottomOf="@id/cool_wait_view" />

View File

@@ -302,4 +302,29 @@
<item name="android:windowIsFloating">true</item> <item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item> <item name="android:windowContentOverlay">@null</item>
</style> </style>
<declare-styleable name="ShineTextView">
<!-- 闪光方式-->
<attr name="shineType">
<!-- 流光效果-->
<enum name="shine" value="0" />
<!-- 颜色替换效果,原先是一个颜色,经过流光替换成另一种颜色,必须设置开始颜色,跟结束颜色-->
<enum name="replace" value="1" />
</attr>
<!-- 开始颜色-->
<attr name="startColor" format="color" />
<!-- 中间颜色-->
<attr name="midColor" format="color" />
<!-- 结束颜色-->
<attr name="endColor" format="color" />
<!-- 是否开启流光效果-->
<attr name="isShine" format="boolean" />
<!-- 设置流光时间-->
<attr name="shineDuration" format="integer" />
<!-- 流光次数-->
<attr name="shineCount" format="integer" />
</declare-styleable>
</resources> </resources>

View File

@@ -50,6 +50,7 @@ import com.xscm.moduleutil.event.MqttBean;
import com.xscm.moduleutil.event.RedBean; import com.xscm.moduleutil.event.RedBean;
import com.xscm.moduleutil.event.UnreadCountEvent; import com.xscm.moduleutil.event.UnreadCountEvent;
import com.xscm.moduleutil.http.RetrofitClient; import com.xscm.moduleutil.http.RetrofitClient;
import com.xscm.moduleutil.utils.ClickUtils;
import com.xscm.moduleutil.utils.ImageUtils; import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.LanguageUtil; import com.xscm.moduleutil.utils.LanguageUtil;
import com.tencent.imsdk.v2.V2TIMManager; import com.tencent.imsdk.v2.V2TIMManager;
@@ -87,22 +88,22 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
@Override @Override
public void showLoadings() { public void showLoadings() {
// showLoading("加载中"); showLoading();
} }
@Override @Override
public void showLoadings(String content) { public void showLoadings(String content) {
// showLoading(content); showLoading(content);
} }
@Override @Override
public void disLoadings() { public void disLoadings() {
// disLoading(); disLoading();
} }
@Override @Override
protected void onDestroy() { protected void onDestroy() {
ClickUtils.clearAllClickRecords();
// 清理MQTT相关资源 // 清理MQTT相关资源
synchronized (mqttQueueLock) { synchronized (mqttQueueLock) {
mqttMessageQueue.clear(); mqttMessageQueue.clear();
@@ -135,7 +136,7 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
if (MvpPre != null) { if (MvpPre != null) {
try { try {
MvpPre.detachView(); MvpPre.detachView();
}catch (Exception e){ } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
@@ -168,9 +169,9 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
@Override @Override
public void onSuccess(Long aLong) { public void onSuccess(Long aLong) {
// 通知未读数变化 // 通知未读数变化
UnreadCountEvent event =CommonAppContext.getInstance().unreadCountEvent; UnreadCountEvent event = CommonAppContext.getInstance().unreadCountEvent;
if (event==null){ if (event == null) {
event=new UnreadCountEvent(); event = new UnreadCountEvent();
} }
event.setALong(aLong); event.setALong(aLong);
// 使用EventBus通知 // 使用EventBus通知
@@ -197,9 +198,9 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
@Override @Override
public void onConnectSuccess() {//重连成功 public void onConnectSuccess() {//重连成功
if (CommonAppContext.getInstance().playId!=null){ if (CommonAppContext.getInstance().playId != null) {
LogUtils.e("@@@", "重连成功"); LogUtils.e("@@@", "重连成功");
LogUtils.e("@@@", ""+CommonAppContext.getInstance().playId); LogUtils.e("@@@", "" + CommonAppContext.getInstance().playId);
RetrofitClient.getInstance().roomUserReconnect(CommonAppContext.getInstance().playId); RetrofitClient.getInstance().roomUserReconnect(CommonAppContext.getInstance().playId);
} }
} }
@@ -207,13 +208,13 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
@Override @Override
public void onConnectFailed(int code, String error) { public void onConnectFailed(int code, String error) {
LogUtils.e("@@@", "断开连接"); LogUtils.e("@@@", "断开连接");
CommonAppContext.getInstance().onConnectFailed=true; CommonAppContext.getInstance().onConnectFailed = true;
} }
@Override @Override
public void onKickedOffline() { public void onKickedOffline() {
// queren1(); // queren1();
if (CommonAppContext.getInstance().playId!=null){ if (CommonAppContext.getInstance().playId != null) {
ToastUtils.showShort("您的账号已被挤下线"); ToastUtils.showShort("您的账号已被挤下线");
try { try {
CommonAppContext.getInstance().clearLoginInfo(); CommonAppContext.getInstance().clearLoginInfo();
@@ -243,7 +244,7 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
v -> { v -> {
// 点击“确认”按钮时执行删除操作 // 点击“确认”按钮时执行删除操作
if (CommonAppContext.getInstance().playId!=null){ if (CommonAppContext.getInstance().playId != null) {
RoomManager.getInstance().exitRoom(CommonAppContext.getInstance().playId); RoomManager.getInstance().exitRoom(CommonAppContext.getInstance().playId);
} }
try { try {
@@ -260,7 +261,6 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
} }
@Override @Override
public Resources getResources() { public Resources getResources() {
Resources resources = super.getResources(); Resources resources = super.getResources();
@@ -537,7 +537,7 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
public void onEvent(XLHBean event) { public void onEvent(XLHBean event) {
LogUtils.e("收到XLH", event); LogUtils.e("收到XLH", event);
if (event == null) return; if (event == null) return;
if (event.getText()==null || event.getText().isEmpty()) return; if (event.getText() == null || event.getText().isEmpty()) return;
if (SpUtil.getFloatingScreen() == 1) { if (SpUtil.getFloatingScreen() == 1) {
synchronized (xlhQueueLock) { synchronized (xlhQueueLock) {
xlhMessageQueue.add(event); xlhMessageQueue.add(event);
@@ -552,10 +552,10 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
} }
@Subscribe(threadMode = ThreadMode.MAIN) @Subscribe(threadMode = ThreadMode.MAIN)
public void onEvent(RedBean event){ public void onEvent(RedBean event) {
LogUtils.e("收到红包", event); LogUtils.e("收到红包", event);
if (event==null) return; if (event == null) return;
if (SpUtil.getFloatingScreen()==1){ if (SpUtil.getFloatingScreen() == 1) {
synchronized (RedQueueLock) { synchronized (RedQueueLock) {
redMessageQueue.add(event); redMessageQueue.add(event);
@@ -581,7 +581,7 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
showPiaoPingMessageRed(redBean); showPiaoPingMessageRed(redBean);
} }
private void showPiaoPingMessageRed(RedBean redBean){ private void showPiaoPingMessageRed(RedBean redBean) {
try { try {
// 清理之前的视图(如果存在) // 清理之前的视图(如果存在)
if (currentRedView != null && currentRedView.getParent() != null) { if (currentRedView != null && currentRedView.getParent() != null) {
@@ -628,9 +628,11 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
} }
} }
} }
// 在类中添加成员变量 // 在类中添加成员变量
private MediaPlayer redPacketMediaPlayer = null; private MediaPlayer redPacketMediaPlayer = null;
private boolean isRedPacketMediaPrepared = false; private boolean isRedPacketMediaPrepared = false;
// 添加播放红包音效的方法 // 添加播放红包音效的方法
private void playRedPacketSound() { private void playRedPacketSound() {
try { try {
@@ -664,11 +666,11 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
} }
} catch (Exception e) { } catch (Exception e) {
LogUtils.e("播放红包音效失败", e); LogUtils.e("播放红包音效失败", e);
isRedPacketMediaPrepared=false; isRedPacketMediaPrepared = false;
} }
} }
private void updateRedFloatingViewData(View view, RedBean redBean){ private void updateRedFloatingViewData(View view, RedBean redBean) {
TextView textView = view.findViewById(R.id.tv_name); TextView textView = view.findViewById(R.id.tv_name);
if (redBean != null) { if (redBean != null) {
@@ -989,7 +991,7 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
// 这里可以根据实际需求实现跳转逻辑 // 这里可以根据实际需求实现跳转逻辑
// 例如:跳转到礼物详情页面、用户主页等 // 例如:跳转到礼物详情页面、用户主页等
// 使用缓存数据进入房间 // 使用缓存数据进入房间
RoomManager.getInstance().fetchRoomDataAndEnter(getApplicationContext(), xlhBean.getRoom_id(), "",null); RoomManager.getInstance().fetchRoomDataAndEnter(getApplicationContext(), xlhBean.getRoom_id(), "", null);
} }
@@ -997,7 +999,7 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
// 这里可以根据实际需求实现跳转逻辑 // 这里可以根据实际需求实现跳转逻辑
// 例如:跳转到礼物详情页面、用户主页等 // 例如:跳转到礼物详情页面、用户主页等
// 使用缓存数据进入房间 // 使用缓存数据进入房间
RoomManager.getInstance().fetchRoomDataAndEnter(getApplicationContext(), redBean.getRoom_id(), "",null); RoomManager.getInstance().fetchRoomDataAndEnter(getApplicationContext(), redBean.getRoom_id(), "", null);
} }
@@ -1010,13 +1012,13 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
} }
public void singleTaskToActivity(Class<?> clazz){ public void singleTaskToActivity(Class<?> clazz) {
Intent intent = new Intent(this, clazz); Intent intent = new Intent(this, clazz);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity( intent); startActivity(intent);
} }
public void toActivity(Class<?> clazz, Bundle bundle){ public void toActivity(Class<?> clazz, Bundle bundle) {
Intent intent = new Intent(this, clazz); Intent intent = new Intent(this, clazz);
intent.putExtras(bundle); intent.putExtras(bundle);
startActivity(intent); startActivity(intent);

View File

@@ -234,7 +234,7 @@ public class ImproveInfoActivity extends BaseMvpActivity<ImproveInfoPresenter, A
List<LocalMedia> localMedia1 = PictureSelector.obtainSelectorList(data); List<LocalMedia> localMedia1 = PictureSelector.obtainSelectorList(data);
if (localMedia1 != null && localMedia1.size() != 0) { if (localMedia1 != null && localMedia1.size() != 0) {
LocalMedia imgMedia = localMedia1.get(0); LocalMedia imgMedia = localMedia1.get(0);
MvpPre.uploadFile(new File(imgMedia.getRealPath()), 3); MvpPre.uploadFile(new File(imgMedia.getRealPath()), 0);
} }
break; break;
} }

View File

@@ -24,7 +24,10 @@ public class ImproveInfoPresenter extends BasePresenter<ImproveInfoContacts.View
@Override @Override
public void uploadFile(File file, int type) { public void uploadFile(File file, int type) {
MvpRef.get().showLoadings("上传中..."); if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
// MvpRef.get().showLoadings("上传中...");
String url = OSSOperUtils.getPath(file, type); String url = OSSOperUtils.getPath(file, type);
CosUploadManager.getInstance(CommonAppContext.getInstance()).upParameters(url,file.getPath(), new CosUploadManager.UploadCallback() { CosUploadManager.getInstance(CommonAppContext.getInstance()).upParameters(url,file.getPath(), new CosUploadManager.UploadCallback() {
@Override @Override
@@ -100,6 +103,9 @@ public class ImproveInfoPresenter extends BasePresenter<ImproveInfoContacts.View
@Override @Override
public void onNext(String s) { public void onNext(String s) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().updateNicknameSuccess(s); MvpRef.get().updateNicknameSuccess(s);
} }
@@ -121,6 +127,9 @@ public class ImproveInfoPresenter extends BasePresenter<ImproveInfoContacts.View
@Override @Override
public void onNext(String userPictrue) { public void onNext(String userPictrue) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().updateSexTrue(userPictrue); MvpRef.get().updateSexTrue(userPictrue);
} }
@@ -141,6 +150,9 @@ public class ImproveInfoPresenter extends BasePresenter<ImproveInfoContacts.View
@Override @Override
public void onNext(UserBean userBean) { public void onNext(UserBean userBean) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().updateSuccess(userBean); MvpRef.get().updateSuccess(userBean);
} }
}); });

View File

@@ -23,6 +23,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter; import com.alibaba.android.arouter.launcher.ARouter;
import com.blankj.utilcode.util.ActivityUtils; import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.ToastUtils; import com.blankj.utilcode.util.ToastUtils;
import com.xscm.modulemain.R; import com.xscm.modulemain.R;
import com.xscm.modulemain.databinding.ActivityDynamicDetailBinding; import com.xscm.modulemain.databinding.ActivityDynamicDetailBinding;
@@ -274,6 +275,8 @@ public class DynamicDetailActivity extends BaseMvpActivity<CirclePresenter, Acti
public void setCircleDetail(CircleListBean bean) { public void setCircleDetail(CircleListBean bean) {
circleList.add(bean); circleList.add(bean);
cirleListAdapter.setNewData(circleList); cirleListAdapter.setNewData(circleList);
LogUtils.e("setCircleDetail",zone_id+"==============");
MvpPre.getCommentList(zone_id, "1", "30"); MvpPre.getCommentList(zone_id, "1", "30");
} }

View File

@@ -79,7 +79,7 @@ public class PopularRoomActivity extends BaseMvpActivity<VoiceCategoryPresenter,
}); });
mAdapter.setOnRoomClickListener((room, position) -> { mAdapter.setOnRoomClickListener((room, position) -> {
if ( ClickUtils.isFastDoubleClick()){ if ( ClickUtils.isFastDoubleClick(mBinding.rvPopularRoom)){
return; return;
} }

View File

@@ -122,6 +122,7 @@ import com.xscm.moduleutil.bean.room.FriendUserBean
import com.xscm.moduleutil.bean.room.RoomAuction import com.xscm.moduleutil.bean.room.RoomAuction
import com.xscm.moduleutil.bean.room.RoomAuction.AuctionListBean import com.xscm.moduleutil.bean.room.RoomAuction.AuctionListBean
import com.xscm.moduleutil.bean.room.RoomBean import com.xscm.moduleutil.bean.room.RoomBean
import com.xscm.moduleutil.bean.room.RoomHourBean
import com.xscm.moduleutil.bean.room.RoomInfoResp import com.xscm.moduleutil.bean.room.RoomInfoResp
import com.xscm.moduleutil.bean.room.RoomOnline import com.xscm.moduleutil.bean.room.RoomOnline
import com.xscm.moduleutil.bean.room.RoomOnlineBean import com.xscm.moduleutil.bean.room.RoomOnlineBean
@@ -155,6 +156,7 @@ import com.xscm.moduleutil.rtc.AgoraManagerEx
import com.xscm.moduleutil.rtc.MusicPlayBean import com.xscm.moduleutil.rtc.MusicPlayBean
import com.xscm.moduleutil.service.MyRoomSingleton import com.xscm.moduleutil.service.MyRoomSingleton
import com.xscm.moduleutil.utils.ARouteConstants import com.xscm.moduleutil.utils.ARouteConstants
import com.xscm.moduleutil.utils.ClickUtils
import com.xscm.moduleutil.utils.ColorManager import com.xscm.moduleutil.utils.ColorManager
import com.xscm.moduleutil.utils.ImageUtils import com.xscm.moduleutil.utils.ImageUtils
import com.xscm.moduleutil.utils.PermissionDescriptionHelper import com.xscm.moduleutil.utils.PermissionDescriptionHelper
@@ -251,7 +253,6 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
override fun doDone() { override fun doDone() {
Log.e("AAAAAAAAAAA", "C " + com.xscm.moduleutil.utils.TimeUtils.getCurrentDate2())
isOnline = intent.getBooleanExtra("isOnline", false) isOnline = intent.getBooleanExtra("isOnline", false)
password = intent.getStringExtra("password") password = intent.getStringExtra("password")
roomId = intent.getStringExtra("roomId") roomId = intent.getStringExtra("roomId")
@@ -271,12 +272,14 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
} }
} }
//重新进入无需传参 //重新进入无需传参
// isOnline = intent.getBooleanExtra("isOnline", false) val roomInfoResp = intent.getSerializableExtra("roomInfo") as RoomInfoResp?
// password = intent.getStringExtra("password") if (!roomInfoResp?.room_info?.room_id.equals(mRoomInfoResp?.room_info?.room_id)) {
// roomId = intent.getStringExtra("roomId") isOnline = intent.getBooleanExtra("isOnline", false)
// mRoomInfoResp = intent.getSerializableExtra("roomInfo") as RoomInfoResp? password = intent.getStringExtra("password")
// taskId = intent.getStringExtra("taskId") roomId = intent.getStringExtra("roomId")
taskId = intent.getStringExtra("taskId")
mRoomInfoResp = roomInfoResp
}
LogUtils.e("RoomActivity", "onNewIntent") LogUtils.e("RoomActivity", "onNewIntent")
} }
@@ -439,7 +442,11 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
override fun initData() { override fun initData() {
if (!EasyPermissions.hasPermissions(this, *permissions)) { if (!EasyPermissions.hasPermissions(this, *permissions)) {
PermissionDescriptionHelper.addPermissionDescription(false, mBinding?.root as ViewGroup, permissions) PermissionDescriptionHelper.addPermissionDescription(
false,
mBinding?.root as ViewGroup,
permissions
)
EasyPermissions.requestPermissions( EasyPermissions.requestPermissions(
this, "请开启录音使用权限", this, "请开启录音使用权限",
1, *permissions 1, *permissions
@@ -585,6 +592,8 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
mBinding!!.roomTop.root.isClickable = false mBinding!!.roomTop.root.isClickable = false
setView(mRoomInfoResp) setView(mRoomInfoResp)
MvpPre?.getRoomOnline(roomId, "1", "10")
} }
// 添加弹框到管理列表 // 添加弹框到管理列表
@@ -693,10 +702,10 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
} }
} }
/** /**
* 设置顶部操作按钮的可见性和点击事件 * 设置顶部操作按钮的可见性和点击事件
* 包括结束按钮和延时按钮的初始化和事件绑定 * 包括结束按钮和延时按钮的初始化和事件绑定
*/ */
fun tob() { fun tob() {
// 获取并显示stubButtons2布局 // 获取并显示stubButtons2布局
val stub = mBinding!!.roomTop.stubButtons2 val stub = mBinding!!.roomTop.stubButtons2
@@ -708,7 +717,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
imActionJs.setOnClickListener { dialogEnd() } imActionJs.setOnClickListener { dialogEnd() }
// 设置结束按钮点击事件调用dialogEnd()方法 // 设置结束按钮点击事件调用dialogEnd()方法
imActionYs.setOnClickListener { imActionYs.setOnClickListener {
// 设置延时按钮点击事件调用MvpPre的auctionDelay方法传入当前拍卖ID // 设置延时按钮点击事件调用MvpPre的auctionDelay方法传入当前拍卖ID
MvpPre!!.auctionDelay( MvpPre!!.auctionDelay(
SpUtil.getauctionId() SpUtil.getauctionId()
) )
@@ -755,8 +764,8 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
if (visible) View.VISIBLE else View.INVISIBLE if (visible) View.VISIBLE else View.INVISIBLE
} }
// 根据传入的visible参数设置JS按钮的可见性 // 根据传入的visible参数设置JS按钮的可见性
// 使用View.VISIBLE显示按钮使用View.INVISIBLE隐藏按钮 // 使用View.VISIBLE显示按钮使用View.INVISIBLE隐藏按钮
fun upYs(visible: Boolean) { fun upYs(visible: Boolean) {
mBinding!!.roomTop.imActionYs.visibility = mBinding!!.roomTop.imActionYs.visibility =
if (visible) View.VISIBLE else View.INVISIBLE if (visible) View.VISIBLE else View.INVISIBLE
@@ -1688,7 +1697,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
when (typeId) { when (typeId) {
RoomType.AUCTION -> { RoomType.AUCTION -> {
if ("9" == pitNumber) { if ("9" == pitNumber) {
mRoomInfoResp!!.room_info.pit_list[0] = getPitBean(messageEvent,1) mRoomInfoResp!!.room_info.pit_list[0] = getPitBean(messageEvent, 1)
if (mRoomInfoResp!!.user_info != null) { if (mRoomInfoResp!!.user_info != null) {
mRoomInfoResp!!.user_info.pit_number = pitNumber.toInt() mRoomInfoResp!!.user_info.pit_number = pitNumber.toInt()
} }
@@ -1696,6 +1705,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
roomFragment!!.upRoomInfoData(mRoomInfoResp) roomFragment!!.upRoomInfoData(mRoomInfoResp)
roomFragment!!.handleRoomMessage(messageEvent) roomFragment!!.handleRoomMessage(messageEvent)
} }
RoomType.DATING -> { RoomType.DATING -> {
val labelId = mRoomInfoResp!!.room_info.label_id val labelId = mRoomInfoResp!!.room_info.label_id
if ("2" == labelId) { if ("2" == labelId) {
@@ -1707,16 +1717,18 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
roomFragment!!.handleRoomMessage(messageEvent) roomFragment!!.handleRoomMessage(messageEvent)
} }
} }
RoomType.MUTUAL_ENTERTAINMENT -> { RoomType.MUTUAL_ENTERTAINMENT -> {
mBinding!!.rlMore.visibility = View.GONE mBinding!!.rlMore.visibility = View.GONE
mBinding!!.rlMisc.visibility = View.GONE mBinding!!.rlMisc.visibility = View.GONE
roomFragment!!.handleRoomMessage(messageEvent) roomFragment!!.handleRoomMessage(messageEvent)
} }
else ->{
else -> {
roomFragment!!.updateSeatViewExchangedWithPitArray(mRoomInfoResp) roomFragment!!.updateSeatViewExchangedWithPitArray(mRoomInfoResp)
} }
} }
} }
@@ -1742,6 +1754,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
aBoolean = true aBoolean = true
ivWheatFeeding(com.xscm.moduleutil.R.mipmap.room_wheat_feeding) ivWheatFeeding(com.xscm.moduleutil.R.mipmap.room_wheat_feeding)
setBoolean(aBoolean) setBoolean(aBoolean)
mRoomInfoResp?.user_info?.pit_number = 0
setRoleType(0, 0) setRoleType(0, 0)
switchMic(2) switchMic(2)
} }
@@ -1869,16 +1882,19 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
private fun handleMsgType1001(roomMessageEvent: RoomMessageEvent) { private fun handleMsgType1001(roomMessageEvent: RoomMessageEvent) {
if (roomMessageEvent.text.fromUserInfo.enter_image?.isNotEmpty() == true){ if (roomMessageEvent.text.fromUserInfo.enter_image?.isNotEmpty() == true) {
showFloatingMessage(roomMessageEvent.text.fromUserInfo) showFloatingMessage(roomMessageEvent.text.fromUserInfo)
} }
MvpPre?.getRoomOnline(roomId, "1", "10")
// number++ // number++
// mBinding!!.roomTop.tvNum.text = number.toString() + "" // mBinding!!.roomTop.tvNum.text = number.toString() + ""
} }
private fun showFloatingMessage(userInfo: UserInfo) { private fun showFloatingMessage(userInfo: UserInfo) {
try { try {
// 清理之前的视图(如果存在) // 清理之前的视图(如果存在)
if ( currentMqttView?.getParent() != null) { if (currentMqttView?.getParent() != null) {
val parent = currentMqttView?.getParent() as ViewGroup val parent = currentMqttView?.getParent() as ViewGroup
parent.removeView(currentMqttView) parent.removeView(currentMqttView)
} }
@@ -1913,6 +1929,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
} }
} }
private fun resetAndStartMqttAnimation(view: View, onAnimationEnd: Runnable) { private fun resetAndStartMqttAnimation(view: View, onAnimationEnd: Runnable) {
try { try {
val screenWidth = getScreenWidth() val screenWidth = getScreenWidth()
@@ -1936,10 +1953,14 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
// 停留后退出 // 停留后退出
CommonAppContext.postDelayed(Runnable { CommonAppContext.postDelayed(Runnable {
val exitAnim = TranslateAnimation( val exitAnim = TranslateAnimation(
Animation.ABSOLUTE, ((screenWidth - SystemUtils.getWidth(316)) / 2).toFloat(), Animation.ABSOLUTE,
Animation.ABSOLUTE, -screenWidth.toFloat(), ((screenWidth - SystemUtils.getWidth(316)) / 2).toFloat(),
Animation.ABSOLUTE, 0f, Animation.ABSOLUTE,
Animation.ABSOLUTE, 0f -screenWidth.toFloat(),
Animation.ABSOLUTE,
0f,
Animation.ABSOLUTE,
0f
) )
exitAnim.setDuration(3000) exitAnim.setDuration(3000)
exitAnim.setInterpolator(DecelerateInterpolator(2f)) exitAnim.setInterpolator(DecelerateInterpolator(2f))
@@ -1968,6 +1989,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
onAnimationEnd.run() onAnimationEnd.run()
} }
} }
private fun getScreenWidth(): Int { private fun getScreenWidth(): Int {
val displayMetrics = DisplayMetrics() val displayMetrics = DisplayMetrics()
if (getWindowManager() != null) { if (getWindowManager() != null) {
@@ -1993,11 +2015,13 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
} }
mBinding!!.roomTop.tvNum.text = number.toString() mBinding!!.roomTop.tvNum.text = number.toString()
if (text == null || text.fromUserInfo == null) return if (text == null || text.fromUserInfo == null) return
if (text.fromUserInfo.user_id == SpUtil.getUserId()) { // if (text.fromUserInfo.user_id == SpUtil.getUserId()) {
MessageListenerSingleton.quitGroup(roomId); // MessageListenerSingleton.quitGroup(roomId);
quit(); // quit()
performExitRoom(1); // performExitRoom(1)
} // }
MvpPre?.getRoomOnline(roomId, "1", "10")
} }
private fun handleMsgType1029(messageEvent: RoomMessageEvent, text: T?) { private fun handleMsgType1029(messageEvent: RoomMessageEvent, text: T?) {
@@ -2353,6 +2377,9 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
private var mCountDownTimer2: CountDownTimer? = null private var mCountDownTimer2: CountDownTimer? = null
private fun onClick(view: View) { private fun onClick(view: View) {
if (ClickUtils.isFastDoubleClick(view)) {
return
}
val id = view.id val id = view.id
if (id == R.id.btn_follow) { if (id == R.id.btn_follow) {
MvpPre!!.userGuanz(mRoomInfoResp!!.room_info.room_id, "2") MvpPre!!.userGuanz(mRoomInfoResp!!.room_info.room_id, "2")
@@ -2513,7 +2540,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
return 0 return 0
} }
private fun getHostUser(): Int { fun getHostUser(): Int {
if (mRoomInfoResp?.getUser_info()?.getPit_number() == 9) { if (mRoomInfoResp?.getUser_info()?.getPit_number() == 9) {
return if (mRoomInfoResp?.getUser_info()?.getIs_room_owner() == 1) { return if (mRoomInfoResp?.getUser_info()?.getIs_room_owner() == 1) {
1 1
@@ -2556,7 +2583,6 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
RoomManager.getInstance().exitRoom(roomId) RoomManager.getInstance().exitRoom(roomId)
// 清理资源 // 清理资源
cleanupResources() cleanupResources()
finish() finish()
} }
@@ -2879,6 +2905,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
// 设置对话框在底部显示 // 设置对话框在底部显示
val window = dialog.window val window = dialog.window
if (window != null) { if (window != null) {
window.decorView.setPadding(0, 0, 0, 0)
window.setGravity(Gravity.BOTTOM) window.setGravity(Gravity.BOTTOM)
// 修复宽度问题 // 修复宽度问题
window.setLayout( window.setLayout(
@@ -3006,121 +3033,19 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
} }
} }
private var isSwitchRoom: Boolean = false
// TODO:不进入 2025/8/26 加入房间 // TODO:不进入 2025/8/26 加入房间
override fun roomInfo(resp: RoomInfoResp) { override fun roomInfo(resp: RoomInfoResp) {
if (true) if (!isSwitchRoom)
return return
AppStateManager.getInstance().roomInfo = resp mRoomInfoResp = resp
val roomBean = resp.room_info isOnline = true
this.mRoomBean = roomBean password = ""
this.mRoomUserBean = resp.user_info roomId = mRoomInfoResp?.room_info?.room_id
this.mRoomOwnerBean = resp.room_owner taskId = null
this.roomId = roomBean.room_id initPublicScreenFragment()
MessageListenerSingleton.getInstance().joinGroup(roomId) //加入房间im setView(resp)
ImageUtils.loadHeadCC(resp.room_info.room_cover, mBinding!!.roomTop.avatar)
mBinding!!.roomTop.name.text = roomBean.room_name
mBinding!!.roomTop.idVal.text = "ID:" + roomBean.room_number
if (mRoomUserBean?.getIs_room_owner() == 1) {
mBinding!!.roomTop.btnFollow.visibility = View.GONE
} else {
mBinding!!.roomTop.btnFollow.visibility = View.VISIBLE
if (resp.isCollect) {
mBinding!!.roomTop.btnFollow.background =
resources.getDrawable(com.xscm.moduleutil.R.mipmap.collected)
mBinding!!.roomTop.btnFollow.text = ""
}
}
number = roomBean.online_number
mBinding!!.roomTop.tvNum.text = number.toString() + ""
val userIds = StringBuilder()
for (i in mRoomInfoResp!!.room_info.pit_list.indices) {
val userId = mRoomInfoResp!!.room_info.pit_list[i].user_id
if (userId != null && userId != "0" && !userId.isEmpty()) {
if (userIds.length > 0) {
userIds.append(",")
}
userIds.append(userId)
}
}
if (!isFinishing && !isDestroyed) {
resetFragment()
upHeight()
} else {
Log.e("Fragment", "Fragment transaction skipped due to state loss.")
}
LogUtils.e("加入", roomId)
CommonAppContext.getInstance().isPlaying = true
CommonAppContext.getInstance().playId = roomId
CommonAppContext.getInstance().playName = mRoomBean!!.room_name
CommonAppContext.getInstance().playCover = resp.room_info.room_cover
CommonAppContext.getInstance().showSelf = resp.is_show_self == 1
if (mRoomUserBean?.getIs_collect() == 1) {
mBinding!!.roomTop.btnFollow.background =
resources.getDrawable(com.xscm.moduleutil.R.mipmap.yishouc)
mBinding!!.roomTop.btnFollow.text = ""
} else {
ThemeableDrawableUtils.setThemeableRoundedBackground(
mBinding!!.roomTop.btnFollow,
ColorManager.getInstance().primaryColorInt,
53
)
mBinding!!.roomTop.btnFollow.setTextColor(ColorManager.getInstance().buttonColorInt)
mBinding!!.roomTop.btnFollow.text = "收藏"
// mBinding.roomTop.btnFollow.setBackground(getResources().getDrawable(com.xscm.moduleutil.R.mipmap.collect));
}
if ((roomBean.type_id == "3" || roomBean.type_id == "1" || roomBean.type_id == "4") && roomBean.label_id == "2") {
AgoraManager.getInstance().isBjMusic = false
} else {
AgoraManager.getInstance().isBjMusic = true
}
AgoraManager.stopMuisc()
initializeAudio()
toutiao()
upRoomInfo(resp)
if (userIds.length > 0 && roomId != null) {
// MvpPre.userOnlineStatus(userIds.toString(), roomId);
}
if (publicScreenFragment != null) {
publicScreenFragment!!.upRoomInfo(resp)
}
instView()
if (mRoomInfoResp!!.user_info.pit_number == 9 && mRoomInfoResp!!.user_info.user_id == SpUtil.getUserId()) {
mBinding!!.roomTop.rl.visibility = View.VISIBLE
ivSoundEffects(true)
} else {
mBinding!!.roomTop.rl.visibility = View.GONE
ivSoundEffects(false)
}
if (resp.room_info.type_id == "7" || resp.room_info.type_id == "2") {
mBinding!!.rlMore.visibility = View.GONE
mBinding!!.rlMisc.visibility = View.GONE
}
setupEffectView()
if (mRoomInfoResp!!.gift_cycle != null && mRoomInfoResp!!.gift_cycle.xlh_info != null && mRoomInfoResp!!.gift_cycle.xlh_info.xlh_status != null && mRoomInfoResp!!.gift_cycle.xlh_info.xlh_status == "1") {
mBinding?.xlhRk?.visibility = View.VISIBLE
xlhDjs(mRoomInfoResp!!.gift_cycle.xlh_info.end_time)
} else {
mBinding?.xlhRk?.visibility = View.INVISIBLE
releaseCountDownTimer1()
}
if (mRoomInfoResp!!.hour_ranking_open == 1) {
mBinding!!.clXsb.visibility = View.VISIBLE
} else {
mBinding!!.clXsb.visibility = View.GONE
}
} }
//隐藏视图 //隐藏视图
@@ -3466,6 +3391,18 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
performExitRoom(2) performExitRoom(2)
} }
is RoomHourBean.RoomListBean -> {
AgoraManager.getInstance().cleanup()
roomId = event.room_id
isSwitchRoom = true
// 重新连接房间相关服务
resumeRoomState()
publicScreenFragment?.onDestroy()
publicScreenFragment = null
MvpPre?.getRoomIn(event.room_id, "")
}
is HeadlineBean -> { is HeadlineBean -> {
mRoomInfoResp!!.room_info.head_line = event mRoomInfoResp!!.room_info.head_line = event
toutiao() toutiao()
@@ -3565,45 +3502,45 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
GiftDisplayManager.getInstance().setupDisplayView(mBinding?.giftContainer) // GiftDisplayManager.getInstance().setupDisplayView(mBinding?.giftContainer)
CommonAppContext.getInstance().isShow = true // CommonAppContext.getInstance().isShow = true
CommonAppContext.getInstance().isPlaying = true // CommonAppContext.getInstance().isPlaying = true
CommonAppContext.getInstance().isRoomJoininj = false // CommonAppContext.getInstance().isRoomJoininj = false
// 当Activity恢复时重置标记 // // 当Activity恢复时重置标记
userLeaving = true // userLeaving = true
//
MvpPre!!.roomRedPackets(roomId); // MvpPre!!.roomRedPackets(roomId);
LogUtils.e("RoomActivity", "onResume") // LogUtils.e("RoomActivity", "onResume")
//
if ((mRoomInfoResp?.room_info?.type_id.equals("1") || mRoomInfoResp?.room_info?.type_id.equals( // if ((mRoomInfoResp?.room_info?.type_id.equals("1") || mRoomInfoResp?.room_info?.type_id.equals(
"8" // "8"
) || mRoomInfoResp?.room_info?.type_id.equals( // ) || mRoomInfoResp?.room_info?.type_id.equals(
"3" // "3"
) // )
|| mRoomInfoResp?.room_info?.type_id.equals("4")) && mRoomInfoResp?.room_info?.label_id.equals( // || mRoomInfoResp?.room_info?.type_id.equals("4")) && mRoomInfoResp?.room_info?.label_id.equals(
"2" // "2"
) // )
) { // ) {
return // return
} // }
if (isInBackground) { // if (isInBackground) {
isInBackground = false // isInBackground = false
MvpPre!!.postRoomInfo(CommonAppContext.getInstance().playId) // MvpPre!!.postRoomInfo(CommonAppContext.getInstance().playId)
} // }
//
// 检查是否从最小化状态恢复 // // 检查是否从最小化状态恢复
if (isMinimized) { // if (isMinimized) {
isMinimized = false // isMinimized = false
clearMinimizeState() // clearMinimizeState()
// 恢复房间状态 // // 恢复房间状态
resumeRoomState() // resumeRoomState()
setupEffectView() // setupEffectView()
//
MvpPre?.postRoomInfo(CommonAppContext.getInstance().playId) // MvpPre?.postRoomInfo(CommonAppContext.getInstance().playId)
} // }
//
// 延迟调整布局,确保视图已经完全加载 // // 延迟调整布局,确保视图已经完全加载
mBinding?.mainContentContainer?.post { this.adjustLayoutHeights() } // mBinding?.mainContentContainer?.post { this.adjustLayoutHeights() }
} }
// 添加检查房间连接状态的方法 // 添加检查房间连接状态的方法
@@ -4388,4 +4325,25 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
} }
private val CLICK_INTERVAL: Long = 500 // 500ms内不允许重复点击
private var lastClickTime: Long = 0
private var lastClickedUserId = "" // 记录上次点击的用户ID
private var lastClickedPitNumber = "" // 记录上次点击的麦位号
fun isFastDoubleClick(userId: String, pitNumber: String): Boolean {
val currentTime = System.currentTimeMillis()
if (currentTime - lastClickTime < CLICK_INTERVAL &&
userId == lastClickedUserId &&
pitNumber == lastClickedPitNumber
) {
return true // 是快速重复点击
}
// 更新上次点击信息
lastClickTime = currentTime
lastClickedUserId = userId
lastClickedPitNumber = pitNumber
return false // 不是快速重复点击
}
} }

View File

@@ -216,6 +216,7 @@ public class ChatRoomFragment extends BaseMvpFragment<ChatRoomPresenter, RoomFra
if (resp == null) if (resp == null)
return; return;
roomInfoResp = resp; roomInfoResp = resp;
roomId = roomInfoResp.getRoom_info().getRoom_id();
} }
@Override @Override

View File

@@ -3,6 +3,7 @@ package com.xscm.modulemain.activity.room.fragment;
import static android.view.View.GONE; import static android.view.View.GONE;
import static android.view.View.VISIBLE; import static android.view.View.VISIBLE;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.graphics.Color; import android.graphics.Color;
import android.os.Bundle; import android.os.Bundle;
@@ -15,6 +16,7 @@ import android.widget.PopupWindow;
import android.widget.Switch; import android.widget.Switch;
import android.widget.TextView; import android.widget.TextView;
import com.blankj.utilcode.util.ActivityUtils;
import com.orhanobut.logger.Logger; import com.orhanobut.logger.Logger;
import com.xscm.modulemain.R; import com.xscm.modulemain.R;
import com.xscm.modulemain.activity.room.activity.RoomActivity; import com.xscm.modulemain.activity.room.activity.RoomActivity;
@@ -189,7 +191,7 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
wheatView.setOnClickListener(new View.OnClickListener() { wheatView.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (ClickUtils.isFastDoubleClick()) { if (ClickUtils.isFastDoubleClick(wheatView)) {
return; // 快速重复点击,直接返回 return; // 快速重复点击,直接返回
} }
onWheatViewClick(position, wheatView); onWheatViewClick(position, wheatView);
@@ -201,7 +203,7 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
public void onZhulClick(RoomFriendshipWheatView view, RoomPitBean pitBean) { public void onZhulClick(RoomFriendshipWheatView view, RoomPitBean pitBean) {
if (ClickUtils.isFastDoubleClick()) { if (ClickUtils.isFastDoubleClick(wheatView)) {
return; // 快速重复点击,直接返回 return; // 快速重复点击,直接返回
} }
// configPower(pitBean); // configPower(pitBean);
@@ -218,7 +220,7 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
wheatView.setmOnCharmClickListener(new RoomFriendshipWheatView.onCharmClickListener() { wheatView.setmOnCharmClickListener(new RoomFriendshipWheatView.onCharmClickListener() {
@Override @Override
public void onCharmClick(RoomFriendshipWheatView view, RoomPitBean pitBean) { public void onCharmClick(RoomFriendshipWheatView view, RoomPitBean pitBean) {
if (ClickUtils.isFastDoubleClick()) { if (ClickUtils.isFastDoubleClick(wheatView)) {
return; // 快速重复点击,直接返回 return; // 快速重复点击,直接返回
} }
if (pitBean.getUser_id() != null && !pitBean.getUser_id().isEmpty() && !pitBean.getUser_id().equals("0")) { if (pitBean.getUser_id() != null && !pitBean.getUser_id().isEmpty() && !pitBean.getUser_id().equals("0")) {
@@ -357,7 +359,16 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
if (checkWeather(pitBean.getPit_number())) { if (checkWeather(pitBean.getPit_number())) {
showPopupMenu(wheatView); // v 是点击的按钮视图 showPopupMenu(wheatView); // v 是点击的按钮视图
} else if (pitBean.getPit_number().equals("10")) { } else if (pitBean.getPit_number().equals("10")) {
RoomOnlineDialogFragment.show(roomId, "10", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager()); if (ActivityUtils.getTopActivity() instanceof RoomActivity){
if (((RoomActivity) ActivityUtils.getTopActivity()).getHostUser() < 4){
if (((RoomActivity) ActivityUtils.getTopActivity()).isFastDoubleClick(roomInfoResp.getUser_info().getUser_id()+"", pitBean.getPit_number())) {
return;
}
RoomOnlineDialogFragment.show(roomId, "10", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
}else {
com.hjq.toast.ToastUtils.show("请等待主持抱麦");
}
}
} else { } else {
MvpPre.applyPit(roomId, pitBean.getPit_number()); MvpPre.applyPit(roomId, pitBean.getPit_number());
} }

View File

@@ -8,7 +8,9 @@ import androidx.annotation.NonNull;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
import com.alibaba.android.arouter.launcher.ARouter; import com.alibaba.android.arouter.launcher.ARouter;
import com.blankj.utilcode.util.ActivityUtils;
import com.xscm.modulemain.R; import com.xscm.modulemain.R;
import com.xscm.modulemain.activity.main.activity.MainActivity;
import com.xscm.modulemain.adapter.HotAdapter; import com.xscm.modulemain.adapter.HotAdapter;
import com.xscm.modulemain.activity.room.contacts.HotListContacts; import com.xscm.modulemain.activity.room.contacts.HotListContacts;
import com.xscm.modulemain.databinding.FragmentHotListBinding; import com.xscm.modulemain.databinding.FragmentHotListBinding;
@@ -115,12 +117,17 @@ public class HotListFragment extends BaseMvpFragment<HotListPresenter, FragmentH
}); });
mAdapter.setOnRoomClickListener((room, position) -> { mAdapter.setOnRoomClickListener((room, position) -> {
if ( ClickUtils.isFastDoubleClick()){ if ( ClickUtils.isFastDoubleClick(mBinding.recycleView)){
return; return;
} }
voiceCategoryFragment.showLoading(); if (ActivityUtils.getTopActivity() instanceof MainActivity){
((MainActivity) ActivityUtils.getTopActivity()).isShowLoading(true);
}
// 添加索引有效性检查 // 添加索引有效性检查
if (position < 0 || position >= mAdapter.getData().size()) { if (position < 0 || position >= mAdapter.getData().size()) {
if (ActivityUtils.getTopActivity() instanceof MainActivity){
((MainActivity) ActivityUtils.getTopActivity()).isShowLoading(false);
}
return; return;
} }
TopRoom item = mAdapter.getItem(position); TopRoom item = mAdapter.getItem(position);

View File

@@ -1,5 +1,6 @@
package com.xscm.modulemain.activity.room.fragment; package com.xscm.modulemain.activity.room.fragment;
import android.graphics.Color;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
@@ -166,6 +167,15 @@ public class RankingChildFragment extends BaseMvpFragment<DataListPresenter, Roo
public void setNo1(CharmRankingResp listsBean) { public void setNo1(CharmRankingResp listsBean) {
ImageUtils.loadHeadCC(listsBean.getAvatar(), mBinding.roomRankTop1HeadIcon); ImageUtils.loadHeadCC(listsBean.getAvatar(), mBinding.roomRankTop1HeadIcon);
mBinding.roomTop1Name.setText(listsBean.getNickname()); mBinding.roomTop1Name.setText(listsBean.getNickname());
// if (!CharmRankingResp.getNickname_color().isEmpty()){
// mBinding.roomTop1Name.setStartColor(Color.parseColor(CharmRankingResp.getNickname_color()));
// mBinding.roomTop1Name.setShineColor(Color.parseColor(CharmRankingResp.getNickname_color()));
// mBinding.roomTop1Name.setEndColor(Color.parseColor(CharmRankingResp.getNickname_color()));
// mBinding.roomTop1Name.setShine(true);
// mBinding.roomTop1Name.setShineType(0);
// }
mBinding.roomHeadTop1Label.setText(StringUtil.toWan2(listsBean.getTotal(), 2)); mBinding.roomHeadTop1Label.setText(StringUtil.toWan2(listsBean.getTotal(), 2));
setview(listsBean.getIcon(), mBinding.llVip1); setview(listsBean.getIcon(), mBinding.llVip1);
mBinding.roomRankTop1HeadIcon.setOnClickListener(new View.OnClickListener() { mBinding.roomRankTop1HeadIcon.setOnClickListener(new View.OnClickListener() {
@@ -180,6 +190,16 @@ public class RankingChildFragment extends BaseMvpFragment<DataListPresenter, Roo
public void setNo2(CharmRankingResp listsBean) { public void setNo2(CharmRankingResp listsBean) {
ImageUtils.loadHeadCC(listsBean.getAvatar(), mBinding.roomRankTop2HeadIcon); ImageUtils.loadHeadCC(listsBean.getAvatar(), mBinding.roomRankTop2HeadIcon);
mBinding.roomTop2Name.setText(listsBean.getNickname()); mBinding.roomTop2Name.setText(listsBean.getNickname());
// if (!CharmRankingResp.getNickname_color().isEmpty()){
// mBinding.roomTop2Name.setStartColor(Color.parseColor(CharmRankingResp.getNickname_color()));
// mBinding.roomTop2Name.setShineColor(Color.parseColor(CharmRankingResp.getNickname_color()));
// mBinding.roomTop2Name.setEndColor(Color.parseColor(CharmRankingResp.getNickname_color()));
// mBinding.roomTop2Name.setShine(true);
// mBinding.roomTop2Name.setShineType(0);
// }
mBinding.roomHeadTop2Label.setText(StringUtil.toWan2(listsBean.getTotal(), 2)); mBinding.roomHeadTop2Label.setText(StringUtil.toWan2(listsBean.getTotal(), 2));
setview(listsBean.getIcon(), mBinding.llVip2); setview(listsBean.getIcon(), mBinding.llVip2);
mBinding.roomRankTop2HeadIcon.setOnClickListener(new View.OnClickListener() { mBinding.roomRankTop2HeadIcon.setOnClickListener(new View.OnClickListener() {
@@ -216,6 +236,16 @@ public class RankingChildFragment extends BaseMvpFragment<DataListPresenter, Roo
public void setNo3(CharmRankingResp listsBean) { public void setNo3(CharmRankingResp listsBean) {
ImageUtils.loadHeadCC(listsBean.getAvatar(), mBinding.roomRankTop3HeadIcon); ImageUtils.loadHeadCC(listsBean.getAvatar(), mBinding.roomRankTop3HeadIcon);
mBinding.roomTop3Name.setText(listsBean.getNickname()); mBinding.roomTop3Name.setText(listsBean.getNickname());
// if (!CharmRankingResp.getNickname_color().isEmpty()){
// mBinding.roomTop3Name.setStartColor(Color.parseColor(CharmRankingResp.getNickname_color()));
// mBinding.roomTop3Name.setShineColor(Color.parseColor(CharmRankingResp.getNickname_color()));
// mBinding.roomTop3Name.setEndColor(Color.parseColor(CharmRankingResp.getNickname_color()));
// mBinding.roomTop3Name.setShine(true);
// mBinding.roomTop3Name.setShineType(0);
// }
mBinding.roomHeadTop3Label.setText(StringUtil.toWan2(listsBean.getTotal(), 2)); mBinding.roomHeadTop3Label.setText(StringUtil.toWan2(listsBean.getTotal(), 2));
setview(listsBean.getIcon(), mBinding.llVip3); setview(listsBean.getIcon(), mBinding.llVip3);
mBinding.roomRankTop3HeadIcon.setOnClickListener(new View.OnClickListener() { mBinding.roomRankTop3HeadIcon.setOnClickListener(new View.OnClickListener() {

View File

@@ -293,7 +293,7 @@ public class RoomAuctionFragment extends BaseMvpFragment<RoomAuctionPresenterTow
mBinding.qinmi.setTextColor(ColorManager.getInstance().getPrimaryColorInt()); mBinding.qinmi.setTextColor(ColorManager.getInstance().getPrimaryColorInt());
mBinding.ivAuction1.setOnClickListener(view -> { mBinding.ivAuction1.setOnClickListener(view -> {
if (ClickUtils.isFastDoubleClick()) { if (ClickUtils.isFastDoubleClick(mBinding.ivAuction1)) {
return; return;
} }
if (mBinding.ivAuction1.getUserId() != null && !mBinding.ivAuction1.getUserId().equals("")) { if (mBinding.ivAuction1.getUserId() != null && !mBinding.ivAuction1.getUserId().equals("")) {
@@ -302,7 +302,7 @@ public class RoomAuctionFragment extends BaseMvpFragment<RoomAuctionPresenterTow
}); });
mBinding.ivAuction1.setmOnCharmClickListener((view, pitBean) -> { mBinding.ivAuction1.setmOnCharmClickListener((view, pitBean) -> {
if (ClickUtils.isFastDoubleClick()) { if (ClickUtils.isFastDoubleClick(mBinding.ivAuction1)) {
return; return;
} }
if (pitBean.getUser_id() != null && !pitBean.getUser_id().isEmpty() && !pitBean.getUser_id().equals("0")) { if (pitBean.getUser_id() != null && !pitBean.getUser_id().isEmpty() && !pitBean.getUser_id().equals("0")) {
@@ -311,7 +311,7 @@ public class RoomAuctionFragment extends BaseMvpFragment<RoomAuctionPresenterTow
}); });
mBinding.ivAuction2.setOnClickListener(view -> { mBinding.ivAuction2.setOnClickListener(view -> {
if (ClickUtils.isFastDoubleClick()) { if (ClickUtils.isFastDoubleClick(mBinding.ivAuction2)) {
return; return;
} }
if (mBinding.ivAuction2.getUserId() != null && !mBinding.ivAuction2.getUserId().equals("")) { if (mBinding.ivAuction2.getUserId() != null && !mBinding.ivAuction2.getUserId().equals("")) {
@@ -319,7 +319,7 @@ public class RoomAuctionFragment extends BaseMvpFragment<RoomAuctionPresenterTow
} }
}); });
mBinding.ivAuction2.setmOnCharmClickListener((view, pitBean) -> { mBinding.ivAuction2.setmOnCharmClickListener((view, pitBean) -> {
if (ClickUtils.isFastDoubleClick()) { if (ClickUtils.isFastDoubleClick(mBinding.ivAuction2)) {
return; return;
} }
if (pitBean.getUser_id() != null && !pitBean.getUser_id().isEmpty() && !pitBean.getUser_id().equals("0")) { if (pitBean.getUser_id() != null && !pitBean.getUser_id().isEmpty() && !pitBean.getUser_id().equals("0")) {
@@ -327,7 +327,7 @@ public class RoomAuctionFragment extends BaseMvpFragment<RoomAuctionPresenterTow
} }
}); });
mBinding.ivAuction3.setOnClickListener(view -> { mBinding.ivAuction3.setOnClickListener(view -> {
if (ClickUtils.isFastDoubleClick()) { if (ClickUtils.isFastDoubleClick(mBinding.ivAuction3)) {
return; return;
} }
if (mBinding.ivAuction3.getUserId() != null && !mBinding.ivAuction3.getUserId().equals("")) { if (mBinding.ivAuction3.getUserId() != null && !mBinding.ivAuction3.getUserId().equals("")) {
@@ -338,7 +338,7 @@ public class RoomAuctionFragment extends BaseMvpFragment<RoomAuctionPresenterTow
@Override @Override
public void onCharmClick(RoomMakeWheatView view, RoomPitBean pitBean) { public void onCharmClick(RoomMakeWheatView view, RoomPitBean pitBean) {
if (ClickUtils.isFastDoubleClick()) { if (ClickUtils.isFastDoubleClick(mBinding.ivAuction3)) {
return; return;
} }
if (pitBean.getUser_id() != null && !pitBean.getUser_id().isEmpty() && !pitBean.getUser_id().equals("0")) { if (pitBean.getUser_id() != null && !pitBean.getUser_id().isEmpty() && !pitBean.getUser_id().equals("0")) {
@@ -349,7 +349,7 @@ public class RoomAuctionFragment extends BaseMvpFragment<RoomAuctionPresenterTow
} }
private void onChock(View view) { private void onChock(View view) {
if (ClickUtils.isFastDoubleClick()) { if (ClickUtils.isFastDoubleClick(view)) {
return; return;
} }
int id = view.getId(); int id = view.getId();

View File

@@ -332,28 +332,7 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
bottomSheet.setOnOptionSelectedListener(new ExitRoomBottomSheet.OnOptionSelectedListener() { bottomSheet.setOnOptionSelectedListener(new ExitRoomBottomSheet.OnOptionSelectedListener() {
@Override @Override
public void onMinimize() { public void onMinimize() {
// 处理最小化逻辑,比如不销毁 Activity仅移至后台
// CommonAppContext.getInstance().isShow = false;
// ARouter.getInstance().build(ARouteConstants.ME).navigation();//栈顶复用
// if (getActivity() instanceof RoomActivity) {
// ((RoomActivity) getActivity()).moveTaskToBack(true);
// }
// 在Activity中
// Intent serviceIntent = new Intent(getContext(), FloatingWindowService.class);
// 判断是否已有浮窗正在显示
// if (!EasyFloat.isShow("testFloat")) {
// // 启动前台服务以维持浮窗
// Context context = requireContext();
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// // Android 12+ 需要指定 foregroundServiceType
// Intent serviceIntent = new Intent(context, FloatingWindowService.class);
// serviceIntent.setAction("ACTION_START_FLOAT");
// context.startForegroundService(serviceIntent);
// }
//
// }
} }
@Override @Override

View File

@@ -8,6 +8,7 @@ import android.view.animation.LinearInterpolator;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.LogUtils; import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.ToastUtils; import com.blankj.utilcode.util.ToastUtils;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
@@ -338,7 +339,7 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
mu_rank.setOnClickListener(new View.OnClickListener() { mu_rank.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (ClickUtils.isFastDoubleClick()) { if (ClickUtils.isFastDoubleClick(mu_rank)) {
return; return;
} }
RoomKtvWheatView roomDefaultWheatView = (RoomKtvWheatView) v; RoomKtvWheatView roomDefaultWheatView = (RoomKtvWheatView) v;
@@ -349,7 +350,7 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
@Override @Override
public void onCharmClick(RoomKtvWheatView view, RoomPitBean pitBean) { public void onCharmClick(RoomKtvWheatView view, RoomPitBean pitBean) {
if (ClickUtils.isFastDoubleClick()) { if (ClickUtils.isFastDoubleClick(mu_rank)) {
return; return;
} }
if (pitBean.getUser_id() != null && !pitBean.getUser_id().isEmpty() && !pitBean.getUser_id().equals("0")) { if (pitBean.getUser_id() != null && !pitBean.getUser_id().isEmpty() && !pitBean.getUser_id().equals("0")) {
@@ -366,7 +367,7 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
muYc.setOnClickListener(new View.OnClickListener() { muYc.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (ClickUtils.isFastDoubleClick()) { if (ClickUtils.isFastDoubleClick(muYc)) {
return; return;
} }
if (!muYc.getUserId().equals("")) { if (!muYc.getUserId().equals("")) {
@@ -377,7 +378,7 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
muYc.setmOnCharmClickListener(new RoomKtvWheatView.onCharmClickListener() { muYc.setmOnCharmClickListener(new RoomKtvWheatView.onCharmClickListener() {
@Override @Override
public void onCharmClick(RoomKtvWheatView view, RoomPitBean pitBean) { public void onCharmClick(RoomKtvWheatView view, RoomPitBean pitBean) {
if (ClickUtils.isFastDoubleClick()) { if (ClickUtils.isFastDoubleClick(muYc)) {
return; return;
} }
if (pitBean.getUser_id() != null && !pitBean.getUser_id().isEmpty() && !pitBean.getUser_id().equals("0")) { if (pitBean.getUser_id() != null && !pitBean.getUser_id().isEmpty() && !pitBean.getUser_id().equals("0")) {
@@ -390,7 +391,7 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
muZc.setOnClickListener(new View.OnClickListener() { muZc.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (ClickUtils.isFastDoubleClick()) { if (ClickUtils.isFastDoubleClick(muZc)) {
return; return;
} }
if (!muZc.getUserId().equals("")) { if (!muZc.getUserId().equals("")) {
@@ -403,7 +404,7 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
muYc.setmOnCharmClickListener(new RoomKtvWheatView.onCharmClickListener() { muYc.setmOnCharmClickListener(new RoomKtvWheatView.onCharmClickListener() {
@Override @Override
public void onCharmClick(RoomKtvWheatView view, RoomPitBean pitBean) { public void onCharmClick(RoomKtvWheatView view, RoomPitBean pitBean) {
if (ClickUtils.isFastDoubleClick()) { if (ClickUtils.isFastDoubleClick(muZc)) {
return; return;
} }
if (pitBean.getUser_id() != null && !pitBean.getUser_id().isEmpty() && !pitBean.getUser_id().equals("0")) { if (pitBean.getUser_id() != null && !pitBean.getUser_id().isEmpty() && !pitBean.getUser_id().equals("0")) {
@@ -415,19 +416,30 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
muJb.setOnClickListener(new View.OnClickListener() { muJb.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (ClickUtils.isFastDoubleClick()) { if (ClickUtils.isFastDoubleClick(muJb)) {
return; return;
} }
if (!muJb.getUserId().equals("")) { if (!muJb.getUserId().equals("")) {
RoomUserInfoFragment.show(roomInfoResp.getRoom_info().getRoom_id(), muJb.getUserId(), muJb.pitNumber, getHostUser(), false, 2, isNumberWhether(), getChildFragmentManager()); RoomUserInfoFragment.show(roomInfoResp.getRoom_info().getRoom_id(), muJb.getUserId(), muJb.pitNumber, getHostUser(), false, 2, isNumberWhether(), getChildFragmentManager());
} else { } else {
RoomOnlineDialogFragment.show(roomInfoResp.getRoom_info().getRoom_id(), "10", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager()); if (ActivityUtils.getTopActivity() instanceof RoomActivity){
if (((RoomActivity) ActivityUtils.getTopActivity()).getHostUser() < 4){
if (ClickUtils.isFastDoubleClick(v)) {
return;
}
RoomOnlineDialogFragment.show(roomInfoResp.getRoom_info().getRoom_id(), "10", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
}else {
com.hjq.toast.ToastUtils.show("请等待主持抱麦");
}
}
} }
} }
}); });
muJb.setmOnCharmClickListener((view, pitBean) -> { muJb.setmOnCharmClickListener((view, pitBean) -> {
if (ClickUtils.isFastDoubleClick()) { if (ClickUtils.isFastDoubleClick(muJb)) {
return; return;
} }
if (pitBean.getUser_id() != null && !pitBean.getUser_id().isEmpty() && !pitBean.getUser_id().equals("0")) { if (pitBean.getUser_id() != null && !pitBean.getUser_id().isEmpty() && !pitBean.getUser_id().equals("0")) {

View File

@@ -29,8 +29,10 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.ConstraintLayout; import androidx.constraintlayout.widget.ConstraintLayout;
import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.LogUtils; import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.ObjectUtils; import com.blankj.utilcode.util.ObjectUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.google.android.flexbox.FlexboxLayout; import com.google.android.flexbox.FlexboxLayout;
import com.xscm.modulemain.R; import com.xscm.modulemain.R;
import com.xscm.modulemain.activity.room.activity.RoomActivity; import com.xscm.modulemain.activity.room.activity.RoomActivity;
@@ -59,6 +61,7 @@ import com.xscm.moduleutil.event.RoomWheatEvent;
import com.xscm.moduleutil.listener.MessageListenerSingleton; import com.xscm.moduleutil.listener.MessageListenerSingleton;
import com.xscm.moduleutil.rtc.AgoraManager; import com.xscm.moduleutil.rtc.AgoraManager;
import com.xscm.moduleutil.rtc.AgoraManagerEx; import com.xscm.moduleutil.rtc.AgoraManagerEx;
import com.xscm.moduleutil.utils.ClickUtils;
import com.xscm.moduleutil.utils.GsonUtils; import com.xscm.moduleutil.utils.GsonUtils;
import com.xscm.moduleutil.utils.ImageUtils; import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.SpUtil; import com.xscm.moduleutil.utils.SpUtil;
@@ -150,6 +153,9 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
@Override @Override
public void onMeilingClick(@NonNull RoomSingSongWheatView view, int pitNumber) { public void onMeilingClick(@NonNull RoomSingSongWheatView view, int pitNumber) {
if (ClickUtils.isFastDoubleClick(view)){
return;
}
if (view.pitBean != null && !view.pitBean.getUser_id().isEmpty() && !view.pitBean.getUser_id().equals("0")) { if (view.pitBean != null && !view.pitBean.getUser_id().isEmpty() && !view.pitBean.getUser_id().equals("0")) {
RoomCharmDialog.newInstance(roomId, view.pitBean.getUser_id()).show(getChildFragmentManager(), "RoomCharmDialog"); RoomCharmDialog.newInstance(roomId, view.pitBean.getUser_id()).show(getChildFragmentManager(), "RoomCharmDialog");
} }
@@ -162,13 +168,15 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
@Override @Override
public void onWheatClick(@NonNull RoomSingSongWheatView view, int pitNumber1) { public void onWheatClick(@NonNull RoomSingSongWheatView view, int pitNumber1) {
if (ClickUtils.isFastDoubleClick(view)){
return;
}
RoomPitBean pitBean = view.pitBean; RoomPitBean pitBean = view.pitBean;
// 可选:点击事件处理 // 可选:点击事件处理
Log.d("Wheat", "Clicked pit: " + pitNumber1); Log.d("Wheat", "Clicked pit: " + pitNumber1);
if (!pitBean.getUser_id().equals("0") && !pitBean.getUser_id().isEmpty()) { if (!pitBean.getUser_id().equals("0") && !pitBean.getUser_id().isEmpty()) {
if (isFastDoubleClick(pitBean.getUser_id(), pitBean.getPit_number())) {
return; // 快速重复点击,直接返回
}
RoomUserInfoFragment.show(roomId, pitBean.getUser_id(), pitBean.getPit_number(), getHostUser(), false, 3, isNumberWhether(), getChildFragmentManager()); RoomUserInfoFragment.show(roomId, pitBean.getUser_id(), pitBean.getPit_number(), getHostUser(), false, 3, isNumberWhether(), getChildFragmentManager());
} else { } else {
if (cheackWether(pitBean.getPit_number())) { if (cheackWether(pitBean.getPit_number())) {
@@ -176,9 +184,17 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
roomPitBean = pitBean; roomPitBean = pitBean;
showPopupMenu(view); // v 是点击的按钮视图 showPopupMenu(view); // v 是点击的按钮视图
} else if (pitNumber1 == 10) { } else if (pitNumber1 == 10) {
if (!isFastDoubleClick("online_dialog", pitNumber1 + "")) { if (ActivityUtils.getTopActivity() instanceof RoomActivity){
RoomOnlineDialogFragment.show(roomId, pitNumber1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager()); if (((RoomActivity) ActivityUtils.getTopActivity()).getHostUser() < 4){
if (!isFastDoubleClick("online_dialog", pitNumber1 + "")) {
RoomOnlineDialogFragment.show(roomId, pitNumber1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
}
}else {
com.hjq.toast.ToastUtils.show("请等待主持抱麦");
}
} }
} else { } else {
MvpPre.applyPit(roomId, pitNumber1 + ""); MvpPre.applyPit(roomId, pitNumber1 + "");
} }
@@ -343,7 +359,9 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
private boolean cheackWether(String pitNumber) { private boolean cheackWether(String pitNumber) {
if (roomInfoResp.getRoom_info().getRoom_up_pit_type().equals("1")) {//排麦模式 if (roomInfoResp.getRoom_info().getRoom_up_pit_type().equals("1")) {//排麦模式
if (roomInfoResp.getUser_info().getIs_management() == 1 || roomInfoResp.getUser_info().getIs_host() == 1 || roomInfoResp.getUser_info().getIs_room_owner() == 1) { if (roomInfoResp.getUser_info().getIs_management() == 1
|| roomInfoResp.getUser_info().getIs_host() == 1
|| roomInfoResp.getUser_info().getIs_room_owner() == 1) {
if (pitNumber.equals("9")) { if (pitNumber.equals("9")) {
return false; return false;
} }
@@ -1454,10 +1472,6 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
mBinding.flexboxLayout2.removeAllViews(); mBinding.flexboxLayout2.removeAllViews();
} }
} }
if (MvpPre != null) {
MvpPre.detachView();
}
} }
} }

View File

@@ -20,11 +20,13 @@ import androidx.fragment.app.FragmentActivity;
import androidx.viewpager2.adapter.FragmentStateAdapter; import androidx.viewpager2.adapter.FragmentStateAdapter;
import com.alibaba.android.arouter.launcher.ARouter; import com.alibaba.android.arouter.launcher.ARouter;
import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.ToastUtils; import com.blankj.utilcode.util.ToastUtils;
import com.google.android.material.tabs.TabLayout; import com.google.android.material.tabs.TabLayout;
import com.google.android.material.tabs.TabLayoutMediator; import com.google.android.material.tabs.TabLayoutMediator;
import com.stx.xhb.xbanner.XBanner; import com.stx.xhb.xbanner.XBanner;
import com.xscm.modulemain.R; import com.xscm.modulemain.R;
import com.xscm.modulemain.activity.main.activity.MainActivity;
import com.xscm.modulemain.activity.msg.OfficialNoticeActivity; import com.xscm.modulemain.activity.msg.OfficialNoticeActivity;
import com.xscm.modulemain.activity.room.activity.PopularRoomActivity; import com.xscm.modulemain.activity.room.activity.PopularRoomActivity;
import com.xscm.modulemain.activity.room.activity.RankingListActivity; import com.xscm.modulemain.activity.room.activity.RankingListActivity;
@@ -79,9 +81,6 @@ public class VoiceCategoryFragment extends BaseMvpFragment<VoiceCategoryPresente
return new VoiceCategoryFragment(voiceFragment); return new VoiceCategoryFragment(voiceFragment);
} }
public void showLoading() {
voiceFragment.isShowLoading(true);
}
@Nullable @Nullable
@Override @Override
@@ -147,7 +146,9 @@ public class VoiceCategoryFragment extends BaseMvpFragment<VoiceCategoryPresente
carouselBannerAdapter.setOnItemClickListener((view, data, position) -> { carouselBannerAdapter.setOnItemClickListener((view, data, position) -> {
// 示例:跳转到房间 详情页 // 示例:跳转到房间 详情页
if (data != null) { if (data != null) {
showLoading(); if (ActivityUtils.getTopActivity() instanceof MainActivity){
((MainActivity) ActivityUtils.getTopActivity()).isShowLoading(true);
}
RoomManager.getInstance().fetchRoomDataAndEnter(getActivity(), data.getRoom_id(), "", null); RoomManager.getInstance().fetchRoomDataAndEnter(getActivity(), data.getRoom_id(), "", null);
} }
}); });
@@ -170,7 +171,9 @@ public class VoiceCategoryFragment extends BaseMvpFragment<VoiceCategoryPresente
if (item != null) { // 再次检查 item 是否为 null if (item != null) { // 再次检查 item 是否为 null
String roomId = item.getRoom_id(); // 或者 item.getRoomId(); 确保方法名正确 String roomId = item.getRoom_id(); // 或者 item.getRoomId(); 确保方法名正确
if (roomId != null && !roomId.isEmpty()) { // 检查 roomId 是否有效 if (roomId != null && !roomId.isEmpty()) { // 检查 roomId 是否有效
showLoading(); if (ActivityUtils.getTopActivity() instanceof MainActivity){
((MainActivity) ActivityUtils.getTopActivity()).isShowLoading(true);
}
RoomManager.getInstance().fetchRoomDataAndEnter(getActivity(), roomId, "", null); RoomManager.getInstance().fetchRoomDataAndEnter(getActivity(), roomId, "", null);
} else { } else {
// Log.d(TAG, "Room ID is null or empty for item at position: " + position); // Log.d(TAG, "Room ID is null or empty for item at position: " + position);

View File

@@ -52,23 +52,6 @@ public class VoiceFragment extends BaseMvpFragment<VoicePresenter, FragmentVoice
} }
@Override
public void onPause() {
super.onPause();
isShowLoading(false);
}
@SuppressLint("CheckResult")
public void isShowLoading(boolean isShowLoading){
if (isShowLoading) {
mBinding.coolWaitView.setVisibility(View.VISIBLE);
} else {
Observable.timer(5, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread()).subscribe(aLong -> {
mBinding.coolWaitView.setVisibility(View.GONE);
});
}
}
@Override @Override
protected void initView () { protected void initView () {

View File

@@ -56,14 +56,8 @@ public class RoomPresenter extends BasePresenter<RoomContacts.View> implements R
} }
LogUtils.e("token",token); LogUtils.e("token",token);
LogUtils.e("roomId:",roomId); LogUtils.e("roomId:",roomId);
AgoraManager.getInstance()
if (getView()!= null && getView().getSelfActivity()!=null){ .joinRoom(token, roomId, uid, enableMic,enableJs);
AgoraManager.getInstance()
.joinRoom(token, roomId, uid, enableMic,enableJs);
}else {
AgoraManager.getInstance()
.joinRoom(token, roomId, uid, enableMic,enableJs);
}
if (MvpRef==null){ if (MvpRef==null){
MvpRef=new WeakReference<>(mView); MvpRef=new WeakReference<>(mView);
} }

View File

@@ -44,6 +44,7 @@ public class NobleDetailsActivity extends BaseMvpActivity<NobleTitlePresenter, A
GridNobleAdapter mGiftWallAdapter; GridNobleAdapter mGiftWallAdapter;
private String lid=""; private String lid="";
private String xlid="";
@Override @Override
protected void initView() { protected void initView() {
@@ -61,7 +62,7 @@ public class NobleDetailsActivity extends BaseMvpActivity<NobleTitlePresenter, A
mBinding.imLjkt.setOnClickListener(v -> { mBinding.imLjkt.setOnClickListener(v -> {
Intent intent = new Intent(this, NoblePaymentActivity.class); Intent intent = new Intent(this, NoblePaymentActivity.class);
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putString("lid",lid); bundle.putString("lid",xlid);
intent.putExtras( bundle); intent.putExtras( bundle);
startActivity(intent); startActivity(intent);
}); });
@@ -166,10 +167,14 @@ public class NobleDetailsActivity extends BaseMvpActivity<NobleTitlePresenter, A
// 观察数据变化并更新 GridView // 观察数据变化并更新 GridView
mGiftWallAdapter.updateData(nobilitLists.getPower().getList()); mGiftWallAdapter.updateData(nobilitLists.getPower().getList());
if (position>=index){ if (position>=index){
if (position==index){ if (!lid.isEmpty()) {
mBinding.imLjkt.setImageResource(com.xscm.moduleutil.R.mipmap.noble_xf); if (position == index) {
mBinding.imLjkt.setImageResource(com.xscm.moduleutil.R.mipmap.noble_xf);
} else {
mBinding.imLjkt.setImageResource(com.xscm.moduleutil.R.mipmap.noble_ljsj);
}
}else { }else {
mBinding.imLjkt.setImageResource(com.xscm.moduleutil.R.mipmap.noble_ljsj); mBinding.imLjkt.setImageResource(com.xscm.moduleutil.R.mipmap.noble_ljkt);
} }
mBinding.imLjkt.setClickable( true); mBinding.imLjkt.setClickable( true);
}else { }else {

View File

@@ -26,14 +26,19 @@ import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.bean.UserInfo; import com.xscm.moduleutil.bean.UserInfo;
import com.xscm.moduleutil.dialog.RealNameDialog; import com.xscm.moduleutil.dialog.RealNameDialog;
import com.xscm.moduleutil.utils.ARouteConstants; import com.xscm.moduleutil.utils.ARouteConstants;
import com.xscm.moduleutil.utils.Md5Utils;
import com.xscm.moduleutil.utils.SpUtil; import com.xscm.moduleutil.utils.SpUtil;
import com.xscm.moduleutil.utils.TimeUtils;
import com.xscm.moduleutil.utils.config.ConfigManager; import com.xscm.moduleutil.utils.config.ConfigManager;
import com.xscm.moduleutil.utils.config.EnvironmentEnum; import com.xscm.moduleutil.utils.config.EnvironmentEnum;
import com.xscm.moduleutil.utils.config.EnvironmentPrefs; import com.xscm.moduleutil.utils.config.EnvironmentPrefs;
import com.xscm.moduleutil.utils.cos.CosUploadManager;
import com.xscm.moduleutil.widget.CommonAppConfig; import com.xscm.moduleutil.widget.CommonAppConfig;
import java.io.File; import java.io.File;
import java.util.Objects; import java.util.Objects;
import java.util.Set;
import java.util.UUID;
import io.reactivex.Observable; import io.reactivex.Observable;
import io.reactivex.ObservableEmitter; import io.reactivex.ObservableEmitter;
@@ -101,6 +106,7 @@ public class SettingActivity extends BaseMvpActivity<SettingPresenter, ActivityS
mBinding.llGywm.setOnClickListener(this::onClick); mBinding.llGywm.setOnClickListener(this::onClick);
mBinding.llBbh.setOnClickListener(this::onClick); mBinding.llBbh.setOnClickListener(this::onClick);
mBinding.tvShare.setOnClickListener(this::onClick); mBinding.tvShare.setOnClickListener(this::onClick);
mBinding.llSendLog.setOnClickListener(this::onClick);
} }
@SuppressLint("CheckResult") @SuppressLint("CheckResult")
@@ -229,7 +235,9 @@ public class SettingActivity extends BaseMvpActivity<SettingPresenter, ActivityS
handler.postDelayed(resetRunnable, RESET_DELAY); handler.postDelayed(resetRunnable, RESET_DELAY);
} }
} }
} else if (view.getId() == R.id.tv_share) { }else if (view.getId() == R.id.ll_send_log){
MvpPre.sendAppLog();
}else if (view.getId() == R.id.tv_share) {
showLoading("正在生成分享文件..."); showLoading("正在生成分享文件...");
Observable.create(new ObservableOnSubscribe<Boolean>() { Observable.create(new ObservableOnSubscribe<Boolean>() {
@SuppressLint("CheckResult") @SuppressLint("CheckResult")

View File

@@ -17,5 +17,7 @@ public class SettingConacts {
void cancel(); void cancel();
void getModifyHideStatus(String hide_status); void getModifyHideStatus(String hide_status);
void sendAppLog();
} }
} }

View File

@@ -119,7 +119,14 @@ public class UserHomepageFragment extends BaseMvpFragment<UserHomepagePresenter,
mBinding.headerInfo.tvUserId.setText(sex+" | ID:"+userInfo.getUser_code()); mBinding.headerInfo.tvUserId.setText(sex+" | ID:"+userInfo.getUser_code());
mBinding.headerInfo.tvNickName.setText(userInfo.getNickname()); mBinding.headerInfo.tvNickName.setText(userInfo.getNickname());
mBinding.headerInfo.tvNickName.setTextColor( (userInfo.getNickname_color()!=null && !userInfo.getNickname_color().equals(""))?Color.parseColor(userInfo.getNickname_color()):Color.parseColor("#333333")); if (!userInfo.getNickname_color().isEmpty()){
mBinding.headerInfo.tvNickName.setStartColor(Color.parseColor(userInfo.getNickname_color()));
mBinding.headerInfo.tvNickName.setShineColor(Color.parseColor(userInfo.getNickname_color()));
mBinding.headerInfo.tvNickName.setEndColor(Color.parseColor(userInfo.getNickname_color()));
mBinding.headerInfo.tvNickName.setShine(true);
mBinding.headerInfo.tvNickName.setShineType(0);
}
// mBinding.headerInfo.tvNickName.setTextColor( (userInfo.getNickname_color()!=null && !userInfo.getNickname_color().equals(""))?Color.parseColor(userInfo.getNickname_color()):Color.parseColor("#333333"));
// mBinding.headerInfo.tvUserId.setText(userInfo.getUser_code()); // mBinding.headerInfo.tvUserId.setText(userInfo.getUser_code());
mBinding.headerInfo.tvAge.setText(userInfo.getAge() + ""); mBinding.headerInfo.tvAge.setText(userInfo.getAge() + "");
mBinding.headerInfo.tvJj.setText(userInfo.getProfile()); mBinding.headerInfo.tvJj.setText(userInfo.getProfile());

View File

@@ -37,6 +37,7 @@ import com.xscm.modulemain.activity.user.activity.UserHomepageActivity;
import com.xscm.modulemain.activity.user.conacts.MeConacts; import com.xscm.modulemain.activity.user.conacts.MeConacts;
import com.xscm.modulemain.activity.user.presenter.MePresenter; import com.xscm.modulemain.activity.user.presenter.MePresenter;
import com.xscm.modulemain.activity.WebViewActivity; import com.xscm.modulemain.activity.WebViewActivity;
import com.xscm.moduleutil.widget.ShineTextView;
import com.xscm.moduleutil.base.BaseMvpFragment; import com.xscm.moduleutil.base.BaseMvpFragment;
import com.xscm.moduleutil.base.CommonAppContext; import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.bean.BannerModel; import com.xscm.moduleutil.bean.BannerModel;
@@ -145,6 +146,8 @@ public class VocalRangeFragment extends BaseMvpFragment<MePresenter, FragmentVoc
// ARouter.getInstance().build(ARouteConstants.H5).withString("url", bannerModel.getUrl()).withString("title", "首页横幅").navigation(); // ARouter.getInstance().build(ARouteConstants.H5).withString("url", bannerModel.getUrl()).withString("title", "首页横幅").navigation();
} }
}); });
ShineTextView tvNickName = mBinding.tvNickName;
} }
@@ -312,7 +315,17 @@ public class VocalRangeFragment extends BaseMvpFragment<MePresenter, FragmentVoc
this.userInfo = data; this.userInfo = data;
mBinding.rivUserHead.setData(data.getAvatar(), data.getDress(),data.getNobility_image()); mBinding.rivUserHead.setData(data.getAvatar(), data.getDress(),data.getNobility_image());
mBinding.tvNickName.setText(data.getNickname()); mBinding.tvNickName.setText(data.getNickname());
mBinding.tvNickName.setTextColor( (data.getNickname_color()!=null&& !data.getNickname_color().equals(""))? Color.parseColor(data.getNickname_color()): Color.parseColor("#ffffff"));
if (!data.getNickname_color().isEmpty()){
mBinding.tvNickName.setStartColor(Color.parseColor(data.getNickname_color()));
mBinding.tvNickName.setShineColor(Color.parseColor(data.getNickname_color()));
mBinding.tvNickName.setEndColor(Color.parseColor(data.getNickname_color()));
mBinding.tvNickName.setShine(true);
mBinding.tvNickName.setShineType(0);
}
// mBinding.tvNickName.setTextColor( (data.getNickname_color()!=null&& !data.getNickname_color().equals(""))? Color.parseColor(data.getNickname_color()): Color.parseColor("#ffffff"));
String sex = data.getSex()==1?"":""; String sex = data.getSex()==1?"":"";
mBinding.beautifulView.setText(sex+" | ID:"+data.getUser_code()); mBinding.beautifulView.setText(sex+" | ID:"+data.getUser_code());
mBinding.tvFollow.setText(data.getFollow_num()+""); mBinding.tvFollow.setText(data.getFollow_num()+"");

View File

@@ -48,7 +48,7 @@ public class AlbumDetailPresenter extends BasePresenter<AlbumDetailConacts.View>
@Override @Override
public void uploadFile(File file, int type, int index, int size) { public void uploadFile(File file, int type, int index, int size) {
MvpRef.get().showLoadings("上传中..."); // MvpRef.get().showLoadings("上传中...");
String url = OSSOperUtils.getPath(file, type); String url = OSSOperUtils.getPath(file, type);
CosUploadManager.getInstance(CommonAppContext.getInstance()).upParameters(url,file.getPath(), new CosUploadManager.UploadCallback() { CosUploadManager.getInstance(CommonAppContext.getInstance()).upParameters(url,file.getPath(), new CosUploadManager.UploadCallback() {
@Override @Override

View File

@@ -30,7 +30,7 @@ public class EditUserPresenter extends BasePresenter<EditUserConactos.View> impl
@Override @Override
public void uploadFile(File file, int type, int index, int size) { public void uploadFile(File file, int type, int index, int size) {
MvpRef.get().showLoadings("上传中..."); // MvpRef.get().showLoadings("上传中...");
String url = OSSOperUtils.getPath(file, type); String url = OSSOperUtils.getPath(file, type);
CosUploadManager.getInstance(CommonAppContext.getInstance()).upParameters(url,file.getPath(), new CosUploadManager.UploadCallback() { CosUploadManager.getInstance(CommonAppContext.getInstance()).upParameters(url,file.getPath(), new CosUploadManager.UploadCallback() {
@Override @Override
@@ -105,6 +105,9 @@ public class EditUserPresenter extends BasePresenter<EditUserConactos.View> impl
@Override @Override
public void onNext(String s) { public void onNext(String s) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().editUserInfoSuccess(s); MvpRef.get().editUserInfoSuccess(s);
} }
}); });
@@ -120,6 +123,9 @@ public class EditUserPresenter extends BasePresenter<EditUserConactos.View> impl
@Override @Override
public void onNext(String s) { public void onNext(String s) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().editUserInfoSuccess(s); MvpRef.get().editUserInfoSuccess(s);
} }
}); });

View File

@@ -3,6 +3,7 @@ package com.xscm.modulemain.activity.user.presenter;
import android.content.Context; import android.content.Context;
import com.hjq.toast.ToastUtils; import com.hjq.toast.ToastUtils;
import com.xscm.modulemain.activity.plaza.contacts.CircleContacts;
import com.xscm.modulemain.activity.user.conacts.MyAlbumConacts; import com.xscm.modulemain.activity.user.conacts.MyAlbumConacts;
import com.xscm.moduleutil.base.CommonAppContext; import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.bean.AlbumBean; import com.xscm.moduleutil.bean.AlbumBean;
@@ -12,13 +13,17 @@ import com.xscm.moduleutil.utils.cos.CosUploadManager;
import com.xscm.moduleutil.utils.oss.OSSOperUtils; import com.xscm.moduleutil.utils.oss.OSSOperUtils;
import java.io.File; import java.io.File;
import java.lang.ref.WeakReference;
import java.util.List; import java.util.List;
import io.reactivex.disposables.Disposable; import io.reactivex.disposables.Disposable;
public class MyAlbumPresenter extends BasePresenter<MyAlbumConacts.View> implements MyAlbumConacts.IMePre { public class MyAlbumPresenter extends BasePresenter<MyAlbumConacts.View> implements MyAlbumConacts.IMePre {
MyAlbumConacts.View mView;
public MyAlbumPresenter(MyAlbumConacts.View view, Context context) { public MyAlbumPresenter(MyAlbumConacts.View view, Context context) {
super(view, context); super(view, context);
this.mView = view;
} }
@Override @Override
@@ -31,6 +36,9 @@ public class MyAlbumPresenter extends BasePresenter<MyAlbumConacts.View> impleme
@Override @Override
public void onNext(List<AlbumBean> albumBeans) { public void onNext(List<AlbumBean> albumBeans) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().getAlbumList(albumBeans); MvpRef.get().getAlbumList(albumBeans);
} }
}); });
@@ -54,7 +62,7 @@ public class MyAlbumPresenter extends BasePresenter<MyAlbumConacts.View> impleme
@Override @Override
public void uploadFile(File file, int type) { public void uploadFile(File file, int type) {
MvpRef.get().showLoadings("上传中..."); // MvpRef.get().showLoadings("上传中...");
String url = OSSOperUtils.getPath(file, type); String url = OSSOperUtils.getPath(file, type);
CosUploadManager.getInstance(CommonAppContext.getInstance()).upParameters(url,file.getPath(), new CosUploadManager.UploadCallback() { CosUploadManager.getInstance(CommonAppContext.getInstance()).upParameters(url,file.getPath(), new CosUploadManager.UploadCallback() {
@Override @Override

View File

@@ -1,16 +1,35 @@
package com.xscm.modulemain.activity.user.presenter; package com.xscm.modulemain.activity.user.presenter;
import android.annotation.SuppressLint;
import android.content.Context; import android.content.Context;
import com.blankj.utilcode.util.FileUtils;
import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.blankj.utilcode.util.ZipUtils;
import com.xscm.modulemain.Application;
import com.xscm.modulemain.activity.user.activity.SettingActivity;
import com.xscm.modulemain.activity.user.conacts.SettingConacts; import com.xscm.modulemain.activity.user.conacts.SettingConacts;
import com.xscm.moduleutil.http.BaseObserver; import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.presenter.BasePresenter; import com.xscm.moduleutil.presenter.BasePresenter;
import com.xscm.moduleutil.utils.SpUtil;
import com.xscm.moduleutil.utils.TimeUtils;
import com.xscm.moduleutil.utils.cos.CosUploadManager;
import com.xscm.moduleutil.utils.oss.OSSOperUtils;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.io.File;
import java.lang.ref.WeakReference; import java.lang.ref.WeakReference;
import java.util.UUID;
import io.reactivex.Observable;
import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable; import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers;
public class SettingPresenter extends BasePresenter<SettingConacts.View> implements SettingConacts.IMePre { public class SettingPresenter extends BasePresenter<SettingConacts.View> implements SettingConacts.IMePre {
private SettingConacts.View mView; private SettingConacts.View mView;
@@ -69,4 +88,84 @@ public class SettingPresenter extends BasePresenter<SettingConacts.View> impleme
} }
}); });
} }
@SuppressLint("CheckResult")
@Override
public void sendAppLog() {
MvpRef.get().showLoadings("正在上传...");
Observable.create(new ObservableOnSubscribe<String>() {
@SuppressLint("CheckResult")
@Override
public void subscribe(ObservableEmitter<String> emitter) throws Exception {
try {
File file = new File(Application.Companion.getInstance().getAppContent());
if (FileUtils.isFileExists(file.getParent() +"/DataInfo.zip")){
FileUtils.delete(file.getParent() +"/DataInfo.zip");
}
boolean isZip = ZipUtils.zipFile(Application.Companion.getInstance().getAppContent(),
file.getParent() +"/DataInfo.zip");
if (isZip) {
emitter.onNext(file.getParent() + "/DataInfo.zip");
}else {
emitter.onNext("");
}
}catch (Exception e){
LogUtils.e("压缩失败",e.toString());
emitter.onNext("");
}
}
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Consumer<String>() {
@SuppressLint("CheckResult")
@Override
public void accept(String zipPath) {
String upLogUrl = OSSOperUtils.getAppLogPath(new File(zipPath));
if(!zipPath.isEmpty()){
CosUploadManager.getInstance(Application.getInstance()).upParameters(upLogUrl,zipPath, new CosUploadManager.UploadCallback(){
@Override
public void onSuccess(String url) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
api.sendAppLog(upLogUrl,url, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(String s) {
MvpRef.get().disLoadings();
ToastUtils.showShort(s);
}
});
}
@Override
public void onFailure(Exception e) {
ToastUtils.showLong("上传失败");
LogUtils.e("上传失败",e.toString());
MvpRef.get().disLoadings();
}
@Override
public void onFailure1(IllegalStateException e) {
ToastUtils.showLong("上传失败");
LogUtils.e("上传失败",e.toString());
MvpRef.get().disLoadings();
}
});
}else {
ToastUtils.showLong("上传失败");
LogUtils.e("压缩失败");
MvpRef.get().disLoadings();
}
}
});
}
} }

View File

@@ -15,11 +15,13 @@ import android.text.style.ForegroundColorSpan;
import android.view.View; import android.view.View;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.ConstraintLayout; import androidx.constraintlayout.widget.ConstraintLayout;
import com.blankj.utilcode.util.LogUtils;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.load.DataSource; import com.bumptech.glide.load.DataSource;
import com.bumptech.glide.load.engine.GlideException; import com.bumptech.glide.load.engine.GlideException;
@@ -29,19 +31,18 @@ import com.bumptech.glide.request.target.Target;
import com.bumptech.glide.request.transition.Transition; import com.bumptech.glide.request.transition.Transition;
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter; import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder; import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.modulemain.FakeNinePatchDrawable; import com.xscm.modulemain.FakeNinePatchDrawable;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.GiftBean; import com.xscm.moduleutil.bean.GiftBean;
import com.xscm.moduleutil.bean.RoomMessageEvent; import com.xscm.moduleutil.bean.RoomMessageEvent;
import com.xscm.moduleutil.bean.UserInfo; import com.xscm.moduleutil.bean.UserInfo;
import com.xscm.moduleutil.bean.room.EMMessageInfo; import com.xscm.moduleutil.bean.room.EMMessageInfo;
import com.xscm.moduleutil.bean.room.EmotionDeatils;
import com.xscm.moduleutil.utils.ImageUtils; import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.MeHeadView; import com.xscm.moduleutil.utils.MeHeadView;
import com.xscm.moduleutil.utils.logger.Logger;
import com.xscm.moduleutil.widget.AdaptiveImageView; import com.xscm.moduleutil.widget.AdaptiveImageView;
import com.xscm.moduleutil.widget.GifAvatarOvalView; import com.xscm.moduleutil.widget.ShineTextView;
import com.xscm.moduleutil.widget.img.BubbleBackgroundHelper; import com.xscm.moduleutil.widget.img.BubbleBackgroundHelper;
import com.xscm.moduleutil.bean.room.EmotionDeatils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
@@ -73,7 +74,6 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
addItemType(1, com.xscm.moduleutil.R.layout.ease_row_received_message_system);//系统消息、官方公告 addItemType(1, com.xscm.moduleutil.R.layout.ease_row_received_message_system);//系统消息、官方公告
addItemType(2, com.xscm.moduleutil.R.layout.ease_row_received_message_user_send);//用户发送的消息 addItemType(2, com.xscm.moduleutil.R.layout.ease_row_received_message_user_send);//用户发送的消息
addItemType(3, com.xscm.moduleutil.R.layout.ease_row_received_message_system);//加入房间 、赠送礼物、上下麦、禁言 2025年6月12日15:42:08让和聊天显示的是同一个额布局后面需要修改 addItemType(3, com.xscm.moduleutil.R.layout.ease_row_received_message_system);//加入房间 、赠送礼物、上下麦、禁言 2025年6月12日15:42:08让和聊天显示的是同一个额布局后面需要修改
// addItemType(3, com.qxcm.moduleutil.R.layout.ease_row_received_message_join_room);//加入房间 、赠送礼物、上下麦、禁言
addItemType(4, com.xscm.moduleutil.R.layout.ease_row_received_message_new_user);//新用户注册 addItemType(4, com.xscm.moduleutil.R.layout.ease_row_received_message_new_user);//新用户注册
addItemType(5, com.xscm.moduleutil.R.layout.ease_row_received_message_wagging);//摇签 addItemType(5, com.xscm.moduleutil.R.layout.ease_row_received_message_wagging);//摇签
addItemType(6, com.xscm.moduleutil.R.layout.ease_row_received_message_expression);//表情 addItemType(6, com.xscm.moduleutil.R.layout.ease_row_received_message_expression);//表情
@@ -199,10 +199,10 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
switch (helper.getItemViewType()) { switch (helper.getItemViewType()) {
case 1: case 1:
helper.getView(R.id.tv_content).setVisibility(View.VISIBLE); helper.getView(com.xscm.moduleutil.R.id.tv_content).setVisibility(View.VISIBLE);
helper.setText(R.id.tv_content, getSpannable(emMessage)); helper.setText(com.xscm.moduleutil.R.id.tv_content, getSpannable(emMessage));
// helper.setText(R.id.tv_content, emMessage.getText().getText()); // helper.setText(com.xscm.moduleutil.R.id.tv_content, emMessage.getText().getText());
// tv_content.setTextColor(ColorManager.getInstance().getPrimaryColorInt()); // tv_content.setTextColor(ColorManager.getInstance().getPrimaryColorInt());
break; break;
case 2: case 2:
@@ -215,8 +215,18 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
MeHeadView avatar = helper.getView(com.xscm.moduleutil.R.id.avatar); MeHeadView avatar = helper.getView(com.xscm.moduleutil.R.id.avatar);
avatar.setData(emMessage.getText().getFromUserInfo().getAvatar(), "", emMessage.getText().getFromUserInfo().getNobility_image()); avatar.setData(emMessage.getText().getFromUserInfo().getAvatar(), "", emMessage.getText().getFromUserInfo().getNobility_image());
// ImageUtils.loadHeadCC(emMessage.getText().getFromUserInfo().getAvatar(), helper.getView(com.xscm.moduleutil.R.id.avatar)); // 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()); ShineTextView tvName = helper.getView(com.xscm.moduleutil.R.id.tv_name);
helper.setTextColor(com.xscm.moduleutil.R.id.tv_name, emMessage.getText().getFromUserInfo().getNickname_color() != null && !emMessage.getText().getFromUserInfo().getNickname_color().isEmpty() ? Color.parseColor(emMessage.getText().getFromUserInfo().getNickname_color()) : Color.parseColor("#CCA882")); tvName.setText(emMessage.getText().getFromUserInfo().getNickname());
if (!emMessage.getText().getFromUserInfo().getNickname_color().isEmpty()) {
tvName.setStartColor(Color.parseColor(emMessage.getText().getFromUserInfo().getNickname_color()));
tvName.setShineColor(Color.parseColor(emMessage.getText().getFromUserInfo().getNickname_color()));
tvName.setEndColor(Color.parseColor(emMessage.getText().getFromUserInfo().getNickname_color()));
tvName.setShine(true);
tvName.setShineType(0);
}
// helper.setTextColor(com.xscm.moduleutil.R.id.tv_name, emMessage.getText().getFromUserInfo().getNickname_color() != null && !emMessage.getText().getFromUserInfo().getNickname_color().isEmpty() ? Color.parseColor(emMessage.getText().getFromUserInfo().getNickname_color()) : Color.parseColor("#CCA882"));
if (emMessage.getText().getText() != null) { 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, getSpannable(emMessage));
} }
@@ -335,7 +345,7 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
break; break;
case 3: case 3:
// if (emMessage.getText().getFromUserInfo().getChat_bubble() != null && !emMessage.getText().getFromUserInfo().getChat_bubble().isEmpty()) { // if (emMessage.getText().getFromUserInfo().getChat_bubble() != null && !emMessage.getText().getFromUserInfo().getChat_bubble().isEmpty()) {
//// helper.getView(com.xscm.moduleutil.R.id.bubble).setBackgroundResource(com.xscm.moduleutil.R.mipmap.qipaokang); //// helper.getView(com.xscm.moduleutil.R.id.bubble).setBackgroundResource(R.mipmap.qipaokang);
//// ImageUtils.loadHeadCC(emMessage.getText().getFromUserInfo().getChat_bubble(), helper.getView(com.xscm.moduleutil.R.id.network_background)); //// ImageUtils.loadHeadCC(emMessage.getText().getFromUserInfo().getChat_bubble(), helper.getView(com.xscm.moduleutil.R.id.network_background));
// //
// // 使用 Glide 加载图片并设置名称 // // 使用 Glide 加载图片并设置名称
@@ -363,15 +373,15 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
// } // }
// }); // });
// } else { // } else {
// helper.getView(com.xscm.moduleutil.R.id.bubble1).setBackgroundResource(com.xscm.moduleutil.R.drawable.ease_row_pubilc_user_bg); // helper.getView(com.xscm.moduleutil.R.id.bubble1).setBackgroundResource(R.drawable.ease_row_pubilc_user_bg);
// } // }
// if (emMessage.getText().getFromUserInfo() != null && emMessage.getText().getFromUserInfo().getAvatar() != null) { // if (emMessage.getText().getFromUserInfo() != null && emMessage.getText().getFromUserInfo().getAvatar() != null) {
// ImageUtils.loadHeadCC(emMessage.getText().getFromUserInfo().getAvatar(), helper.getView(com.xscm.moduleutil.R.id.avatar)); // 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_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.getView(R.id.tv_content).setVisibility(View.VISIBLE); helper.getView(com.xscm.moduleutil.R.id.tv_content).setVisibility(View.VISIBLE);
helper.setText(R.id.tv_content, getSpannable(emMessage)); helper.setText(com.xscm.moduleutil.R.id.tv_content, getSpannable(emMessage));
// List<String> images1 = emMessage.getText().getFromUserInfo().getIcon(); // List<String> images1 = emMessage.getText().getFromUserInfo().getIcon();
// LinearLayout ll_images1 = helper.getView(com.xscm.moduleutil.R.id.line); // LinearLayout ll_images1 = helper.getView(com.xscm.moduleutil.R.id.line);
// ll_images1.removeAllViews(); // ll_images1.removeAllViews();
@@ -382,10 +392,10 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
// if (url.contains("http")) { // if (url.contains("http")) {
// ImageView imageView = new ImageView(helper.itemView.getContext()); // ImageView imageView = new ImageView(helper.itemView.getContext());
// LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( // LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
// helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57), // helper.itemView.getContext().getResources().getDimensionPixelSize(R.dimen.dp_57),
// helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15) // helper.itemView.getContext().getResources().getDimensionPixelSize(R.dimen.dp_15)
// ); // );
// params.setMargins(0, 0, helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距 // params.setMargins(0, 0, helper.itemView.getContext().getResources().getDimensionPixelSize(R.dimen.dp_5), 0); // 右边距
// imageView.setLayoutParams(params); // imageView.setLayoutParams(params);
// imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); // imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
// // 使用 Glide 加载图片 // // 使用 Glide 加载图片
@@ -396,21 +406,21 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
break; break;
// case 4: // case 4:
// TextView tvContent7 = helper.getView(R.id.tv_content); // TextView tvContent7 = helper.getView(com.xscm.moduleutil.R.id.tv_content);
// ivNew = helper.getView(R.id.new_view); // ivNew = helper.getView(com.xscm.moduleutil.R.id.new_view);
// ivNew.setNew(1); // ivNew.setNew(1);
// tvContent7.setText(new SpanUtils().append(spanned).create()); // tvContent7.setText(new SpanUtils().append(spanned).create());
// break; // break;
// //抽签 // //抽签
// case 5: // case 5:
// String number = emMessage.getStringAttribute("number", ""); // String number = emMessage.getStringAttribute("number", "");
// ivRole = helper.getView(R.id.iv_role); // ivRole = helper.getView(com.xscm.moduleutil.R.id.iv_role);
// ivNew = helper.getView(R.id.iv_new); // ivNew = helper.getView(com.xscm.moduleutil.R.id.iv_new);
// ivGrade = helper.getView(R.id.iv_grade); // ivGrade = helper.getView(com.xscm.moduleutil.R.id.iv_grade);
// ivTitle = helper.getView(R.id.iv_title_label); // ivTitle = helper.getView(com.xscm.moduleutil.R.id.iv_title_label);
// ivNHobility = helper.getView(R.id.iv_nobility); // ivNHobility = helper.getView(com.xscm.moduleutil.R.id.iv_nobility);
// tvName = helper.getView(R.id.tv_name); // tvName = helper.getView(com.xscm.moduleutil.R.id.tv_name);
// TextView tvContent5 = helper.getView(R.id.tv_content); // TextView tvContent5 = helper.getView(com.xscm.moduleutil.R.id.tv_content);
// ivRole.setRole(Integer.parseInt(role)); // ivRole.setRole(Integer.parseInt(role));
// ivNew.setNew(Integer.parseInt(userIsNew)); // ivNew.setNew(Integer.parseInt(userIsNew));
// ivGrade.setGrade(rankIcon); // ivGrade.setGrade(rankIcon);
@@ -428,14 +438,14 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
// } // }
// ivTitle.setLabelView(user_title); // ivTitle.setLabelView(user_title);
// ivNHobility.setNobility(nobilityIcon); // ivNHobility.setNobility(nobilityIcon);
// ImageUtils.loadIcon(charmIcon, helper.getView(R.id.iv_charm)); // ImageUtils.loadIcon(charmIcon, helper.getView(com.xscm.moduleutil.R.id.iv_charm));
// tvName.setText(String.format("%s:", nickname)); // tvName.setText(String.format("%s:", nickname));
// tvContent5.setText(new SpanUtils().append(spanned).create()); // tvContent5.setText(new SpanUtils().append(spanned).create());
// GlideApp.with(mContext).load(String.format("http://soundriver.oss-cn-hangzhou.aliyuncs.com/custom/random%ss.webp", number)).into(new SimpleTarget<Drawable>() { // GlideApp.with(mContext).load(String.format("http://soundriver.oss-cn-hangzhou.aliyuncs.com/custom/random%ss.webp", number)).into(new SimpleTarget<Drawable>() {
// @Override // @Override
// public void onResourceReady(@NonNull Drawable drawable, @Nullable Transition<? super Drawable> transition) { // public void onResourceReady(@NonNull Drawable drawable, @Nullable Transition<? super Drawable> transition) {
// if (drawable instanceof WebpDrawable) { // if (drawable instanceof WebpDrawable) {
// AppCompatImageView imageView = helper.getView(R.id.iv_wagginh); // AppCompatImageView imageView = helper.getView(com.xscm.moduleutil.R.id.iv_wagginh);
// imageView.setImageDrawable(drawable); // imageView.setImageDrawable(drawable);
// ((WebpDrawable) drawable).start(); // ((WebpDrawable) drawable).start();
// ((WebpDrawable) drawable).setLoopCount(1); // ((WebpDrawable) drawable).setLoopCount(1);
@@ -443,7 +453,7 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
// @Override // @Override
// public void onAnimationEnd(Drawable drawable) { // public void onAnimationEnd(Drawable drawable) {
// super.onAnimationEnd(drawable); // super.onAnimationEnd(drawable);
// helper.setImageResource(R.id.iv_wagginh, a[Integer.parseInt(number)]); // helper.setImageResource(com.xscm.moduleutil.R.id.iv_wagginh, a[Integer.parseInt(number)]);
// } // }
// }); // });
// } // }
@@ -452,20 +462,20 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
// break; // break;
// //表情 // //表情
// case 6: // case 6:
// ivRole = helper.getView(R.id.iv_role); // ivRole = helper.getView(com.xscm.moduleutil.R.id.iv_role);
// ivNew = helper.getView(R.id.iv_new); // ivNew = helper.getView(com.xscm.moduleutil.R.id.iv_new);
// ivGrade = helper.getView(R.id.iv_grade); // ivGrade = helper.getView(com.xscm.moduleutil.R.id.iv_grade);
// ivTitle = helper.getView(R.id.iv_title_label); // ivTitle = helper.getView(com.xscm.moduleutil.R.id.iv_title_label);
// ivNHobility = helper.getView(R.id.iv_nobility); // ivNHobility = helper.getView(com.xscm.moduleutil.R.id.iv_nobility);
// tvName = helper.getView(R.id.tv_name); // tvName = helper.getView(com.xscm.moduleutil.R.id.tv_name);
// ivRole.setRole(Integer.parseInt(role)); // ivRole.setRole(Integer.parseInt(role));
// ivNew.setNew(Integer.parseInt(userIsNew)); // ivNew.setNew(Integer.parseInt(userIsNew));
// ivGrade.setGrade(rankIcon); // ivGrade.setGrade(rankIcon);
// ivTitle.setLabelView(user_title); // ivTitle.setLabelView(user_title);
// ivNHobility.setNobility(nobilityIcon); // ivNHobility.setNobility(nobilityIcon);
// tvName.setText(Html.fromHtml(nickname)); // tvName.setText(Html.fromHtml(nickname));
// ImageUtils.loadIcon(charmIcon, helper.getView(R.id.iv_charm)); // ImageUtils.loadIcon(charmIcon, helper.getView(com.xscm.moduleutil.R.id.iv_charm));
// ImageLoader.loadIcon(mContext, helper.getView(R.id.iv_expression), emoji_special); // ImageLoader.loadIcon(mContext, helper.getView(com.xscm.moduleutil.R.id.iv_expression), emoji_special);
// //
// //称号图标 // //称号图标
// try { // try {
@@ -486,44 +496,44 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
// String second = emMessage.getStringAttribute("second", ""); // String second = emMessage.getStringAttribute("second", "");
// String third = emMessage.getStringAttribute("third", ""); // String third = emMessage.getStringAttribute("third", "");
// //
// ivRole = helper.getView(R.id.iv_role); // ivRole = helper.getView(com.xscm.moduleutil.R.id.iv_role);
// ivNew = helper.getView(R.id.iv_new); // ivNew = helper.getView(com.xscm.moduleutil.R.id.iv_new);
// ivGrade = helper.getView(R.id.iv_grade); // ivGrade = helper.getView(com.xscm.moduleutil.R.id.iv_grade);
// ivTitle = helper.getView(R.id.iv_title_label); // ivTitle = helper.getView(com.xscm.moduleutil.R.id.iv_title_label);
// ivNHobility = helper.getView(R.id.iv_nobility); // ivNHobility = helper.getView(com.xscm.moduleutil.R.id.iv_nobility);
// tvName = helper.getView(R.id.tv_name); // tvName = helper.getView(com.xscm.moduleutil.R.id.tv_name);
// TextView tvContent8 = helper.getView(R.id.tv_content); // TextView tvContent8 = helper.getView(com.xscm.moduleutil.R.id.tv_content);
// //
// ivRole.setRole(Integer.parseInt(role)); // ivRole.setRole(Integer.parseInt(role));
// ivNew.setNew(Integer.parseInt(userIsNew)); // ivNew.setNew(Integer.parseInt(userIsNew));
// ivGrade.setGrade(rankIcon); // ivGrade.setGrade(rankIcon);
// ivTitle.setLabelView(user_title); // ivTitle.setLabelView(user_title);
// ivNHobility.setNobility(nobilityIcon); // ivNHobility.setNobility(nobilityIcon);
// ImageUtils.loadIcon(charmIcon, helper.getView(R.id.iv_charm)); // ImageUtils.loadIcon(charmIcon, helper.getView(com.xscm.moduleutil.R.id.iv_charm));
// tvName.setText(Html.fromHtml(nickname)); // tvName.setText(Html.fromHtml(nickname));
// if (emMessage.getIntAttribute("type", 0) == 6019) {//亮球 // if (emMessage.getIntAttribute("type", 0) == 6019) {//亮球
// helper.setVisible(R.id.iv_qiu1, true); // helper.setVisible(com.xscm.moduleutil.R.id.iv_qiu1, true);
// helper.setVisible(R.id.iv_qiu2, true); // helper.setVisible(com.xscm.moduleutil.R.id.iv_qiu2, true);
// helper.setVisible(R.id.iv_qiu3, true); // helper.setVisible(com.xscm.moduleutil.R.id.iv_qiu3, true);
// //
// try { // try {
// helper.setImageResource(R.id.iv_qiu1, mContext.getResources().getIdentifier(first, "mipmap", mContext.getPackageName())); // helper.setImageResource(com.xscm.moduleutil.R.id.iv_qiu1, mContext.getResources().getIdentifier(first, "mipmap", mContext.getPackageName()));
// helper.setImageResource(R.id.iv_qiu2, mContext.getResources().getIdentifier(second, "mipmap", mContext.getPackageName())); // helper.setImageResource(com.xscm.moduleutil.R.id.iv_qiu2, mContext.getResources().getIdentifier(second, "mipmap", mContext.getPackageName()));
// helper.setImageResource(R.id.iv_qiu3, mContext.getResources().getIdentifier(third, "mipmap", mContext.getPackageName())); // helper.setImageResource(com.xscm.moduleutil.R.id.iv_qiu3, mContext.getResources().getIdentifier(third, "mipmap", mContext.getPackageName()));
// } catch (Exception e) { // } catch (Exception e) {
// e.printStackTrace(); // e.printStackTrace();
// } // }
// //
// } else { // } else {
// helper.setVisible(R.id.iv_qiu1, false); // helper.setVisible(com.xscm.moduleutil.R.id.iv_qiu1, false);
// helper.setVisible(R.id.iv_qiu2, false); // helper.setVisible(com.xscm.moduleutil.R.id.iv_qiu2, false);
// helper.setVisible(R.id.iv_qiu3, false); // helper.setVisible(com.xscm.moduleutil.R.id.iv_qiu3, false);
// } // }
// spanUtils.append(spanned); // spanUtils.append(spanned);
// tvContent8.setText(spanUtils.create()); // tvContent8.setText(spanUtils.create());
// break; // break;
// case 10: // case 10:
// TextView tv = helper.getView(R.id.tv_content); // TextView tv = helper.getView(com.xscm.moduleutil.R.id.tv_content);
// float height = tv.getTextSize();//获取字体高度 // float height = tv.getTextSize();//获取字体高度
// String bell = "<img src=\"" + R.drawable.ease_message_bell + "\"/>"; //前面加一个铃铛 // String bell = "<img src=\"" + R.drawable.ease_message_bell + "\"/>"; //前面加一个铃铛
// Spanned sp = Html.fromHtml(bell + txtBody.getMessage(), source -> { // Spanned sp = Html.fromHtml(bell + txtBody.getMessage(), source -> {
@@ -533,10 +543,10 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
// return drawable; // return drawable;
// }, null); // }, null);
// tv.setText(sp); // tv.setText(sp);
// helper.setGone(R.id.tv_red_rain_detail, false); // helper.setGone(com.xscm.moduleutil.R.id.tv_red_rain_detail, false);
// break; // break;
// case 11: // case 11:
// TextView tv11 = helper.getView(R.id.tv_content); // TextView tv11 = helper.getView(com.xscm.moduleutil.R.id.tv_content);
// float height11 = tv11.getTextSize();//获取字体高度 // float height11 = tv11.getTextSize();//获取字体高度
// String bell11 = "<img src=\"" + R.drawable.ease_message_bell + "\"/>"; //前面加一个铃铛 // String bell11 = "<img src=\"" + R.drawable.ease_message_bell + "\"/>"; //前面加一个铃铛
// Spanned sp11 = Html.fromHtml(bell11 + txtBody.getMessage(), source -> { // Spanned sp11 = Html.fromHtml(bell11 + txtBody.getMessage(), source -> {
@@ -546,11 +556,11 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
// return drawable; // return drawable;
// }, null); // }, null);
// tv11.setText(sp11); // tv11.setText(sp11);
// helper.setGone(R.id.tv_red_rain_detail, true); // helper.setGone(com.xscm.moduleutil.R.id.tv_red_rain_detail, true);
// helper.addOnClickListener(R.id.tv_red_rain_detail); // helper.addOnClickListener(com.xscm.moduleutil.R.id.tv_red_rain_detail);
// break; // break;
// default: // default:
// helper.setText(R.id.tv_content, Html.fromHtml(txtBody.getMessage())); // helper.setText(com.xscm.moduleutil.R.id.tv_content, Html.fromHtml(txtBody.getMessage()));
// break; // break;
} }
@@ -590,7 +600,7 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
@Override @Override
public void onViewRecycled(@NonNull BaseViewHolder holder) { public void onViewRecycled(@NonNull BaseViewHolder holder) {
Logger.e("onViewRecycled", "onViewRecycled"); LogUtils.e("onViewRecycled", "onViewRecycled");
// AdaptiveImageView imEmj = (AdaptiveImageView)holder.getView(com.xscm.moduleutil.R.id.im_emj); // AdaptiveImageView imEmj = (AdaptiveImageView)holder.getView(com.xscm.moduleutil.R.id.im_emj);
MeHeadView avatarOvalView = holder.getView(com.xscm.moduleutil.R.id.avatar); MeHeadView avatarOvalView = holder.getView(com.xscm.moduleutil.R.id.avatar);
ImageView ivNobility = holder.getView(com.xscm.moduleutil.R.id.iv_nobility); ImageView ivNobility = holder.getView(com.xscm.moduleutil.R.id.iv_nobility);

View File

@@ -14,6 +14,7 @@ import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.MeHeadView; import com.xscm.moduleutil.utils.MeHeadView;
import com.xscm.moduleutil.utils.SpUtil; import com.xscm.moduleutil.utils.SpUtil;
import com.xscm.moduleutil.widget.MyGridView; import com.xscm.moduleutil.widget.MyGridView;
import com.xscm.moduleutil.widget.ShineTextView;
import com.xscm.moduleutil.widget.img.FullScreenUtil; import com.xscm.moduleutil.widget.img.FullScreenUtil;
import java.util.List; import java.util.List;
@@ -53,8 +54,16 @@ public class ExpandColumnAdapter extends BaseQuickAdapter<ExpandColumnBean, Base
helper.getView(R.id.dy_image_recyc).setVisibility(View.VISIBLE); helper.getView(R.id.dy_image_recyc).setVisibility(View.VISIBLE);
helper.setText(R.id.tv_agree,(item.getAgree()!=null?item.getAgree():"0")+""); helper.setText(R.id.tv_agree,(item.getAgree()!=null?item.getAgree():"0")+"");
//昵称 //昵称
helper.setText(R.id.dy_name_text, item.getNickname()); helper.setText(com.xscm.moduleutil.R.id.dy_name_text, item.getNickname());
helper.setTextColor(R.id.dy_name_text,(item.getNickname_color()!=null && !item.getNickname_color().isEmpty())? Color.parseColor(item.getNickname_color()):Color.parseColor("#333333")); ShineTextView tvName = helper.getView(com.xscm.moduleutil.R.id.dy_name_text);
if (!item.getNickname_color().isEmpty()) {
tvName.setStartColor(Color.parseColor(item.getNickname_color()));
tvName.setShineColor(Color.parseColor(item.getNickname_color()));
tvName.setEndColor(Color.parseColor(item.getNickname_color()));
tvName.setShine(true);
tvName.setShineType(0);
}
// helper.setTextColor(R.id.dy_name_text,(item.getNickname_color()!=null && !item.getNickname_color().isEmpty())? Color.parseColor(item.getNickname_color()):Color.parseColor("#333333"));
helper.setText(R.id.tv_address, item.getLoginip()); helper.setText(R.id.tv_address, item.getLoginip());
if (item.getUser_id().equals(SpUtil.getUserId()+"")){ if (item.getUser_id().equals(SpUtil.getUserId()+"")){
helper.setVisible(R.id.gensui, false); helper.setVisible(R.id.gensui, false);

View File

@@ -48,7 +48,7 @@ public class HotAdapter extends BaseMultiItemQuickAdapter<TopRoom, BaseViewHolde
iv.setVisibility(GONE); iv.setVisibility(GONE);
} }
helper.setText(R.id.tv_num, formatHotValue(Integer.parseInt(item.getHot_value()))); helper.setText(R.id.tv_num, formatHotValue(Integer.parseInt(item.getHot_value())));
ImageUtils.loadHeadCC(item.getLabel_icon(), helper.getView(R.id.iv_type)); ImageUtils.loadRoomItem(item.getLabel_icon(), helper.getView(R.id.iv_type));
helper.itemView.setOnClickListener(new View.OnClickListener() { helper.itemView.setOnClickListener(new View.OnClickListener() {
@Override @Override

View File

@@ -15,6 +15,7 @@ import com.xscm.moduleutil.bean.CharmRankingResp;
import com.xscm.moduleutil.utils.ImageUtils; import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.StringUtil; import com.xscm.moduleutil.utils.StringUtil;
import com.xscm.moduleutil.utils.logger.Logger; import com.xscm.moduleutil.utils.logger.Logger;
import com.xscm.moduleutil.widget.ShineTextView;
import java.util.List; import java.util.List;
@@ -37,6 +38,16 @@ public class RankingCharmListAdapter extends BaseQuickAdapter<CharmRankingResp,
//数据绑定赋值 //数据绑定赋值
helper.setText(R.id.room_item_seq, String.valueOf(helper.getAdapterPosition() + 4));//从第四个开始设置值 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_name, item.getNickname());
ShineTextView shineTextView = helper.getView(R.id.room_item_name);
// if (!item.getNickname_color().isEmpty()){
// shineTextView.setStartColor(Color.parseColor(item.getNickname_color()));
// shineTextView.setShineColor(Color.parseColor(item.getNickname_color()));
// shineTextView.setEndColor(Color.parseColor(item.getNickname_color()));
// shineTextView.setShine(true);
// shineTextView.setShineType(0);
// }
helper.setText(R.id.room_item_pop, StringUtil.toWan2(item.getTotal(),2)); helper.setText(R.id.room_item_pop, StringUtil.toWan2(item.getTotal(),2));
// if (GG.equals(item.getSex())) { // if (GG.equals(item.getSex())) {
// helper.setBackgroundRes(R.id.room_item_pop, R.mipmap.room_bg_wheat_charm_gg_sr); // helper.setBackgroundRes(R.id.room_item_pop, R.mipmap.room_bg_wheat_charm_gg_sr);

View File

@@ -3,6 +3,7 @@ package com.xscm.modulemain.adapter;
import static android.view.View.GONE; import static android.view.View.GONE;
import static android.view.View.VISIBLE; import static android.view.View.VISIBLE;
import android.graphics.Color;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
@@ -13,6 +14,8 @@ import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.room.RoomOnlineBean; import com.xscm.moduleutil.bean.room.RoomOnlineBean;
import com.xscm.moduleutil.utils.ColorManager; import com.xscm.moduleutil.utils.ColorManager;
import com.xscm.moduleutil.utils.ImageUtils; import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.MeHeadView;
import com.xscm.moduleutil.widget.ShineTextView;
import java.util.List; import java.util.List;
@@ -53,8 +56,23 @@ public class RoomOnlineAdapter extends BaseMultiItemQuickAdapter<RoomOnlineBean,
if (item.getItemType() == 1) { if (item.getItemType() == 1) {
helper.setText(R.id.maishang, item.getTypeNames()); helper.setText(R.id.maishang, item.getTypeNames());
} else if (item.getItemType() == 2) { } else if (item.getItemType() == 2) {
ImageUtils.loadHeadCC(item.getAvatar(), helper.getView(R.id.like_avatar)); // ImageUtils.loadHeadCC(item.getAvatar(), helper.getView(R.id.like_avatar));
MeHeadView headView = helper.getView(R.id.like_avatar);
headView.setData(item.getAvatar(), "", ""/*item.getNobility_image()*/);
helper.setText(R.id.tv_nickname, item.getNickname()); helper.setText(R.id.tv_nickname, item.getNickname());
// ShineTextView tvName = helper.getView(R.id.tv_nickname);
// if (!item.getNickname_color().isEmpty()) {
// tvName.setStartColor(Color.parseColor(item.getNickname_color()));
// tvName.setShineColor(Color.parseColor(item.getNickname_color()));
// tvName.setEndColor(Color.parseColor(item.getNickname_color()));
// tvName.setShine(true);
// tvName.setShineType(0);
// }
//
ImageView imageView = helper.getView(R.id.im_i); ImageView imageView = helper.getView(R.id.im_i);
TextView textView = helper.getView(R.id.tv_status); TextView textView = helper.getView(R.id.tv_status);
imageView.setVisibility(VISIBLE); imageView.setVisibility(VISIBLE);

View File

@@ -15,11 +15,11 @@ import com.xscm.modulemain.activity.room.contacts.HourlyChartContacts;
import com.xscm.modulemain.activity.room.presenter.HourlyChartPresenter; import com.xscm.modulemain.activity.room.presenter.HourlyChartPresenter;
import com.xscm.modulemain.adapter.RoomHourlyAdapter; import com.xscm.modulemain.adapter.RoomHourlyAdapter;
import com.xscm.modulemain.databinding.DialogHourlyChartFragmentBinding; import com.xscm.modulemain.databinding.DialogHourlyChartFragmentBinding;
import com.xscm.modulemain.manager.RoomManager;
import com.xscm.moduleutil.base.BaseMvpDialogFragment; import com.xscm.moduleutil.base.BaseMvpDialogFragment;
import com.xscm.moduleutil.base.CommonAppContext; import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.bean.room.RoomHourBean; import com.xscm.moduleutil.bean.room.RoomHourBean;
import org.greenrobot.eventbus.EventBus;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.util.ArrayList; import java.util.ArrayList;
@@ -129,7 +129,8 @@ public class HourlyChartDialog extends BaseMvpDialogFragment<HourlyChartPresente
@Override @Override
public void onItemClick(RoomHourBean.RoomListBean item, int position) { public void onItemClick(RoomHourBean.RoomListBean item, int position) {
RoomManager.getInstance().fetchRoomDataAndEnter(getActivity(), item.getRoom_id(),"",null); // RoomManager.getInstance().fetchRoomDataAndEnter(getActivity(), item.getRoom_id(),"",null);
EventBus.getDefault().post(item);
dismiss(); dismiss();
} }
}); });

View File

@@ -10,6 +10,7 @@ import android.graphics.Color;
import android.os.Bundle; import android.os.Bundle;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import android.view.Gravity; import android.view.Gravity;
@@ -105,6 +106,12 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
} }
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
MvpPre.getRoomUserInfo(room_id, user_id);
}
@Override @Override
protected void initDialogStyle(Window window) { protected void initDialogStyle(Window window) {
super.initDialogStyle(window); super.initDialogStyle(window);
@@ -123,7 +130,6 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
@Override @Override
protected void initData() { protected void initData() {
MvpPre.getRoomUserInfo(room_id, user_id);
if (type == 0) { if (type == 0) {
mBinding.roomDian.setVisibility(GONE); mBinding.roomDian.setVisibility(GONE);
} else { } else {
@@ -381,7 +387,16 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
String sex = userInfo.getSex()==1?"":""; String sex = userInfo.getSex()==1?"":"";
mBinding.tvId.setText(sex+" | ID:"+userInfo.getUser_code()); mBinding.tvId.setText(sex+" | ID:"+userInfo.getUser_code());
mBinding.tvName.setText(userInfo.getNickname()); mBinding.tvName.setText(userInfo.getNickname());
mBinding.tvName.setTextColor( (userInfo.getNickname_color()!=null && !userInfo.getNickname_color().equals(""))? Color.parseColor(userInfo.getNickname_color()):Color.parseColor("#333333"));
if (!userInfo.getNickname_color().isEmpty()){
mBinding.tvName.setStartColor(Color.parseColor(userInfo.getNickname_color()));
mBinding.tvName.setShineColor(Color.parseColor(userInfo.getNickname_color()));
mBinding.tvName.setEndColor(Color.parseColor(userInfo.getNickname_color()));
mBinding.tvName.setShine(true);
mBinding.tvName.setShineType(0);
}
// mBinding.tvName.setTextColor( (userInfo.getNickname_color()!=null && !userInfo.getNickname_color().equals(""))? Color.parseColor(userInfo.getNickname_color()):Color.parseColor("#333333"));
// mBinding.tvId.setText("ID:" + userInfo.getUser_code()); // mBinding.tvId.setText("ID:" + userInfo.getUser_code());
if (userInfo.getIs_in_pit() == 1) { if (userInfo.getIs_in_pit() == 1) {
mBinding.roomMCz.setText("下麦"); mBinding.roomMCz.setText("下麦");

View File

@@ -9,9 +9,12 @@ import android.util.Log;
import com.alibaba.android.arouter.launcher.ARouter; import com.alibaba.android.arouter.launcher.ARouter;
import com.blankj.utilcode.util.ActivityUtils; import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.FragmentUtils;
import com.blankj.utilcode.util.LogUtils; import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.ToastUtils; import com.blankj.utilcode.util.ToastUtils;
import com.xscm.modulemain.activity.main.activity.MainActivity;
import com.xscm.modulemain.activity.room.activity.RoomActivity; import com.xscm.modulemain.activity.room.activity.RoomActivity;
import com.xscm.modulemain.activity.user.activity.MyRoomActivity;
import com.xscm.moduleutil.base.CommonAppContext; import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.bean.room.RoomInfoResp; import com.xscm.moduleutil.bean.room.RoomInfoResp;
import com.xscm.moduleutil.bean.room.RoomOnline; import com.xscm.moduleutil.bean.room.RoomOnline;
@@ -151,6 +154,12 @@ public class RoomManager {
.joinRoom(token, roomId, uid, enableMic, enableJs); .joinRoom(token, roomId, uid, enableMic, enableJs);
cacheRoomData(roomId, resp); cacheRoomData(roomId, resp);
navigateToRoom(context, roomId, password, resp, false, taskId); navigateToRoom(context, roomId, password, resp, false, taskId);
}else {
if (ActivityUtils.getTopActivity() instanceof MainActivity){
((MainActivity) ActivityUtils.getTopActivity()).isShowLoading(false);
}else if (ActivityUtils.getTopActivity() instanceof MyRoomActivity){
((MyRoomActivity) ActivityUtils.getTopActivity()).isShowLoading(false);
}
} }
} }

View File

@@ -1,193 +1,181 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<layout <layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"
xmlns:tools="http://schemas.android.com/tools" tools:context=".activity.NobleTitleActivity">
tools:context=".activity.NobleTitleActivity">
<data> <data>
</data> </data>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@mipmap/noble_bj"> android:background="@mipmap/noble_bj">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/top_bar" android:id="@+id/top_bar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="45dp" android:layout_height="45dp"
android:layout_marginTop="@dimen/dp_40" android:layout_marginTop="@dimen/dp_40"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
<ImageView <ImageView
android:id="@+id/iv_back" android:id="@+id/iv_back"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:contentDescription="@null" android:contentDescription="@null"
android:scaleType="centerInside" android:scaleType="centerInside"
android:src="@mipmap/ic_topbar_back_dark" android:src="@mipmap/ic_topbar_back_dark"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintDimensionRatio="1:1" app:layout_constraintDimensionRatio="1:1"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent" />
/>
<ImageView <ImageView
android:id="@+id/tv_title" android:id="@+id/tv_title"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:src="@mipmap/icon_noble_title" android:src="@mipmap/icon_noble_title"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent" />
/>
<ImageView <ImageView
android:id="@+id/iv_intent" android:id="@+id/iv_intent"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent" android:layout_marginEnd="@dimen/dp_16"
app:layout_constraintEnd_toEndOf="parent" android:src="@mipmap/icon_noble_gz"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent"
android:src="@mipmap/icon_noble_gz" app:layout_constraintEnd_toEndOf="parent"
android:layout_marginEnd="@dimen/dp_16" app:layout_constraintTop_toTopOf="parent" />
/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<com.xscm.moduleutil.widget.CircularImage <com.xscm.moduleutil.widget.CircularImage
android:id="@+id/ci_user_image" android:id="@+id/ci_user_image"
android:layout_width="@dimen/dp_30" android:layout_width="@dimen/dp_30"
android:layout_height="@dimen/dp_30" android:layout_height="@dimen/dp_30"
android:layout_marginTop="@dimen/dp_16" android:layout_marginStart="@dimen/dp_16"
android:layout_marginStart="@dimen/dp_16" android:layout_marginTop="@dimen/dp_16"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/top_bar" app:layout_constraintTop_toBottomOf="@+id/top_bar"
tools:src="@mipmap/ic_launcher_foreground" tools:src="@mipmap/ic_launcher_foreground" />
/>
<TextView <TextView
android:id="@+id/tv_user_name" android:id="@+id/tv_user_name"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_6" android:layout_marginStart="@dimen/dp_6"
app:layout_constraintTop_toTopOf="@+id/ci_user_image" android:textColor="#F5E9D1"
app:layout_constraintBottom_toBottomOf="@+id/ci_user_image" android:textSize="@dimen/sp_12"
app:layout_constraintStart_toEndOf="@+id/ci_user_image" app:layout_constraintBottom_toBottomOf="@+id/ci_user_image"
tools:text="用户名" app:layout_constraintStart_toEndOf="@+id/ci_user_image"
android:textColor="#F5E9D1" app:layout_constraintTop_toTopOf="@+id/ci_user_image"
android:textSize="@dimen/sp_12" tools:text="用户名" />
/>
<TextView <TextView
android:id="@+id/tv_user_lv" android:id="@+id/tv_user_lv"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:layout_constraintStart_toEndOf="@+id/tv_user_name" android:textColor="#F5E9D1"
app:layout_constraintTop_toTopOf="@+id/tv_user_name" android:textSize="@dimen/sp_12"
app:layout_constraintBottom_toBottomOf="@+id/tv_user_name" app:layout_constraintBottom_toBottomOf="@+id/tv_user_name"
tools:text="Lv.1" app:layout_constraintStart_toEndOf="@+id/tv_user_name"
android:textColor="#F5E9D1" app:layout_constraintTop_toTopOf="@+id/tv_user_name"
android:textSize="@dimen/sp_12" tools:text="Lv.1" />
/>
<ImageView <ImageView
android:id="@+id/im_me_noble" android:id="@+id/im_me_noble"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/dp_94" android:layout_height="@dimen/dp_94"
android:layout_marginTop="@dimen/dp_8" android:layout_marginStart="@dimen/dp_15"
android:layout_marginStart="@dimen/dp_15" android:layout_marginTop="@dimen/dp_8"
android:layout_marginEnd="@dimen/dp_15" android:layout_marginEnd="@dimen/dp_15"
app:layout_constraintTop_toBottomOf="@+id/ci_user_image" android:scaleType="fitXY"
app:layout_constraintStart_toStartOf="parent" android:src="@mipmap/me_noble_bj"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
android:src="@mipmap/me_noble_bj" app:layout_constraintStart_toStartOf="parent"
android:scaleType="fitXY" app:layout_constraintTop_toBottomOf="@+id/ci_user_image" />
/>
<TextView <TextView
android:id="@+id/tv_me_noble_lv" android:id="@+id/tv_me_noble_lv"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="@dimen/dp_44" android:layout_height="@dimen/dp_44"
android:layout_marginStart="@dimen/dp_15" android:layout_marginStart="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_8" android:layout_marginTop="@dimen/dp_8"
app:layout_constraintStart_toStartOf="@+id/im_me_noble" android:fontFamily="@font/youshebiaotihei"
app:layout_constraintTop_toTopOf="@+id/im_me_noble" android:textSize="@dimen/sp_34"
tools:text="Lv.1" android:visibility="gone"
android:fontFamily="@font/youshebiaotihei" app:layout_constraintStart_toStartOf="@+id/im_me_noble"
android:visibility="gone" app:layout_constraintTop_toTopOf="@+id/im_me_noble"
tools:visibility="visible" tools:text="Lv.1"
android:textSize="@dimen/sp_34" tools:visibility="visible" />
/>
<ImageView <ImageView
android:id="@+id/im_me_noble_status" android:id="@+id/im_me_noble_status"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="@dimen/dp_36" android:layout_height="@dimen/dp_36"
android:layout_marginStart="@dimen/dp_13" android:layout_marginStart="@dimen/dp_13"
android:layout_marginTop="@dimen/dp_13" android:layout_marginTop="@dimen/dp_13"
app:layout_constraintStart_toStartOf="@+id/im_me_noble" android:scaleType="fitCenter"
app:layout_constraintTop_toTopOf="@+id/im_me_noble" app:layout_constraintStart_toStartOf="@+id/im_me_noble"
android:scaleType="fitCenter" app:layout_constraintTop_toTopOf="@+id/im_me_noble"
tools:src="@mipmap/me_noble_no" tools:src="@mipmap/me_noble_no"
tools:visibility="gone" tools:visibility="gone" />
/>
<ImageView <ImageView
android:id="@+id/im_me_noble_xf" android:id="@+id/im_me_noble_xf"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_12" android:layout_marginStart="@dimen/dp_12"
app:layout_constraintStart_toEndOf="@+id/tv_me_noble_lv" android:src="@mipmap/me_noble_xf"
app:layout_constraintTop_toTopOf="@+id/tv_me_noble_lv" android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/tv_me_noble_lv" app:layout_constraintBottom_toBottomOf="@+id/tv_me_noble_lv"
android:src="@mipmap/me_noble_xf" app:layout_constraintStart_toEndOf="@+id/tv_me_noble_lv"
tools:visibility="visible" app:layout_constraintTop_toTopOf="@+id/tv_me_noble_lv"
android:visibility="gone" tools:visibility="visible" />
/>
<TextView <TextView
android:id="@+id/tv_user_status" android:id="@+id/tv_user_status"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_12" android:layout_marginStart="@dimen/dp_12"
android:layout_marginBottom="@dimen/dp_12" android:layout_marginTop="@dimen/dp_12"
android:layout_marginStart="@dimen/dp_12" android:layout_marginBottom="@dimen/dp_12"
app:layout_constraintStart_toStartOf="@+id/im_me_noble_status" android:textColor="#F5E9D1"
app:layout_constraintBottom_toBottomOf="@+id/im_me_noble" android:textSize="@dimen/sp_12"
tools:text="未开通" app:layout_constraintBottom_toBottomOf="@+id/im_me_noble"
android:textColor="#F5E9D1" app:layout_constraintStart_toStartOf="@+id/im_me_noble_status"
android:textSize="@dimen/sp_12" tools:text="未开通" />
/>
<ImageView <ImageView
android:id="@+id/im_noble_db" android:id="@+id/im_noble_db"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_8" android:layout_marginStart="@dimen/dp_15"
android:layout_marginStart="@dimen/dp_15" android:layout_marginTop="@dimen/dp_8"
android:layout_marginEnd="@dimen/dp_15" android:layout_marginEnd="@dimen/dp_15"
app:layout_constraintTop_toBottomOf="@+id/im_me_noble" android:scaleType="fitCenter"
app:layout_constraintStart_toStartOf="parent" android:src="@mipmap/noble_duib"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
android:src="@mipmap/noble_duib" app:layout_constraintStart_toStartOf="parent"
android:scaleType="fitCenter"/> app:layout_constraintTop_toBottomOf="@+id/im_me_noble" />
<ImageView <ImageView
android:id="@+id/im_noble" android:id="@+id/im_noble"
android:layout_width="@dimen/dp_104" android:layout_width="@dimen/dp_120"
android:layout_height="@dimen/dp_104" android:layout_height="@dimen/dp_120"
app:layout_constraintTop_toBottomOf="@+id/top_bar" android:layout_marginTop="@dimen/dp_10"
app:layout_constraintEnd_toEndOf="@+id/im_me_noble" android:layout_marginEnd="@dimen/dp_13"
android:src="@mipmap/me_noble_image" android:scaleType="fitXY"
android:scaleType="fitXY" android:src="@mipmap/me_noble_image"
android:layout_marginEnd="@dimen/dp_13" app:layout_constraintEnd_toEndOf="@+id/im_me_noble"
/> app:layout_constraintTop_toBottomOf="@+id/top_bar" />
<!-- <androidx.cardview.widget.CardView--> <!-- <androidx.cardview.widget.CardView-->
<!-- android:layout_width="match_parent"--> <!-- android:layout_width="match_parent"-->
@@ -203,83 +191,78 @@
<!-- >--> <!-- >-->
<FrameLayout <FrameLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:background="@drawable/noble_card_border" android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_13" android:layout_marginTop="@dimen/dp_13"
android:layout_marginStart="@dimen/dp_16" android:layout_marginEnd="@dimen/dp_16"
android:layout_marginEnd="@dimen/dp_16" android:background="@drawable/noble_card_border"
app:layout_constraintTop_toBottomOf="@+id/im_noble_db" app:layout_constraintBottom_toTopOf="@+id/im_kt"
app:layout_constraintBottom_toTopOf="@+id/im_kt" app:layout_constraintTop_toBottomOf="@+id/im_noble_db">
>
<LinearLayout <LinearLayout
android:orientation="vertical" android:id="@+id/contentView"
android:id="@+id/contentView" android:layout_width="match_parent"
android:layout_width="match_parent" android:layout_height="match_parent"
android:layout_height="match_parent" android:layout_margin="@dimen/dp_12"
android:layout_margin="@dimen/dp_12" android:background="@drawable/bg_r6_2a2a4e"
android:background="@drawable/bg_r6_2a2a4e" android:orientation="vertical" />
/>
</FrameLayout> </FrameLayout>
<!-- </androidx.cardview.widget.CardView>--> <!-- </androidx.cardview.widget.CardView>-->
<ImageView <ImageView
android:id="@+id/im_kt" android:id="@+id/im_kt"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent" android:scaleType="fitXY"
app:layout_constraintStart_toStartOf="parent" android:src="@mipmap/me_sj"
android:src="@mipmap/me_sj" android:visibility="gone"
android:scaleType="fitXY" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
tools:visibility="visible" app:layout_constraintStart_toStartOf="parent"
android:visibility="gone" tools:visibility="visible" />
/>
<com.xscm.moduleutil.widget.CircularImage <com.xscm.moduleutil.widget.CircularImage
android:id="@+id/ci_image2" android:id="@+id/ci_image2"
android:layout_width="@dimen/dp_30" android:layout_width="@dimen/dp_30"
android:layout_height="@dimen/dp_30" android:layout_height="@dimen/dp_30"
android:layout_marginStart="@dimen/dp_12" android:layout_marginStart="@dimen/dp_12"
app:layout_constraintStart_toStartOf="@+id/im_kt" android:visibility="gone"
app:layout_constraintTop_toTopOf="@+id/im_kt" app:layout_constraintBottom_toBottomOf="@+id/im_kt"
app:layout_constraintBottom_toBottomOf="@+id/im_kt" app:layout_constraintStart_toStartOf="@+id/im_kt"
tools:src="@mipmap/ic_launcher" app:layout_constraintTop_toTopOf="@+id/im_kt"
tools:visibility="visible" tools:src="@mipmap/ic_launcher"
android:visibility="gone"/> tools:visibility="visible" />
<TextView <TextView
android:id="@+id/tv_me_x" android:id="@+id/tv_me_x"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_6" android:layout_marginStart="@dimen/dp_6"
app:layout_constraintStart_toEndOf="@+id/ci_image2" android:ellipsize="end"
app:layout_constraintTop_toTopOf="@+id/im_kt" android:maxEms="12"
app:layout_constraintBottom_toBottomOf="@+id/im_kt" android:maxLines="1"
tools:text="夏沫..的当前爵位状态是骑" android:singleLine="true"
android:textColor="#F5E9D1" android:textColor="#F5E9D1"
android:textSize="@dimen/sp_12" android:textSize="@dimen/sp_12"
android:maxLines="1" android:visibility="gone"
android:ellipsize="end" app:layout_constraintBottom_toBottomOf="@+id/im_kt"
android:singleLine="true" app:layout_constraintStart_toEndOf="@+id/ci_image2"
android:maxEms="12" app:layout_constraintTop_toTopOf="@+id/im_kt"
tools:visibility="visible" tools:text="夏沫..的当前爵位状态是骑"
android:visibility="gone" tools:visibility="visible" />
/>
<ImageView <ImageView
android:id="@+id/im_sj" android:id="@+id/im_sj"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="@dimen/dp_36" android:layout_height="@dimen/dp_36"
android:src="@mipmap/noble_sj" android:layout_marginEnd="@dimen/dp_16"
app:layout_constraintEnd_toEndOf="parent" android:src="@mipmap/noble_sj"
app:layout_constraintTop_toTopOf="@+id/im_kt" android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/im_kt" app:layout_constraintBottom_toBottomOf="@+id/im_kt"
android:layout_marginEnd="@dimen/dp_16" app:layout_constraintEnd_toEndOf="parent"
tools:visibility="visible" app:layout_constraintTop_toTopOf="@+id/im_kt"
android:visibility="gone" tools:visibility="visible" />
/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -258,6 +258,26 @@
</LinearLayout> </LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_alignParentBottom="true"
android:background="@color/color_FFE5E5E5" />
<LinearLayout
android:id="@+id/ll_send_log"
style="@style/My_Info_Item_LL_Style"
android:background="@drawable/bg_r15_white">
<TextView
style="@style/My_Info_Item_Title_Style"
android:layout_width="0dp"
android:layout_weight="1"
android:text="上传报错信息" />
<ImageView style="@style/My_Info_Item_Arrow_Style" />
</LinearLayout>
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0.5dp" android:layout_height="0.5dp"
@@ -300,6 +320,8 @@
<ImageView style="@style/My_Info_Item_Arrow_Style" /> <ImageView style="@style/My_Info_Item_Arrow_Style" />
</LinearLayout> </LinearLayout>
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0.5dp" android:layout_height="0.5dp"
@@ -386,6 +408,7 @@
<TextView <TextView
android:id="@+id/tv_share" android:id="@+id/tv_share"
android:visibility="gone"
android:layout_gravity="start" android:layout_gravity="start"
android:padding="@dimen/dp_40" android:padding="@dimen/dp_40"
android:layout_marginTop="-50dp" android:layout_marginTop="-50dp"

View File

@@ -1,128 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
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"
android:id="@+id/bubble"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="@dimen/dp_256"
android:maxWidth="@dimen/dp_256"
android:padding="@dimen/dp_8"
android:background="@drawable/ease_row_pubilc_user_bg"
>
<!-- 网络背景图片 -->
<!-- <ImageView-->
<!-- android:id="@+id/network_background"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="0dp"-->
<!-- tools:src="@mipmap/a1img_9"-->
<!-- app:layout_constraintTop_toTopOf="parent"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"/>-->
<!-- 用户头像 -->
<com.xscm.moduleutil.utils.MeHeadView
android:id="@+id/avatar"
android:layout_width="@dimen/dp_40"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_3"
android:layout_marginTop="@dimen/dp_3"
android:layout_marginBottom="@dimen/dp_3"
android:layout_marginStart="@dimen/dp_8"
app:riv_oval="true"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<!-- 用户名称 -->
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#CCA882"
android:textSize="@dimen/sp_12"
android:layout_marginStart="@dimen/dp_2"
tools:text="饶利"
app:layout_constraintStart_toEndOf="@+id/avatar"
app:layout_constraintTop_toTopOf="@+id/avatar"/>
<!-- 用户标签容器 -->
<LinearLayout
android:id="@+id/line"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_2"
android:layout_marginTop="@dimen/dp_5"
android:orientation="horizontal"
app:layout_constraintStart_toEndOf="@+id/avatar"
app:layout_constraintTop_toBottomOf="@+id/tv_name"/>
<!-- 消息内容 -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="left|center_vertical"
android:layout_marginStart="4dp"
android:layout_marginTop="2dp"
android:padding="@dimen/dp_3"
android:paddingEnd="@dimen/dp_10"
app:layout_constraintStart_toEndOf="@+id/avatar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/line">
<TextView
android:id="@+id/tv_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:lineHeight="@dimen/dp_20"
android:lineSpacingExtra="@dimen/dp_2"
android:paddingStart="@dimen/dp_8"
android:paddingEnd="@dimen/dp_8"
android:textColor="@color/white"
android:textSize="@dimen/sp_14"
tools:text="饶利: 潇洒亼◇生2.0"
tools:visibility="gone"/>
<com.xscm.moduleutil.widget.AdaptiveImageView
android:id="@+id/im_emj"
android:layout_width="@dimen/dp_40"
android:layout_height="@dimen/dp_40"
android:layout_marginStart="@dimen/dp_2"
tools:src="@mipmap/ic_launcher"
android:scaleType="fitXY"
android:adjustViewBounds="true"
android:visibility="gone"
tools:visibility="visible"/>
<!-- <ImageView-->
<!-- android:id="@+id/im_emj"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="0dp"-->
<!-- android:layout_marginStart="@dimen/dp_2"-->
<!-- android:paddingStart="@dimen/dp_8"-->
<!-- android:paddingEnd="@dimen/dp_8"-->
<!-- tools:src="@mipmap/ic_launcher"-->
<!-- android:maxHeight="@dimen/dp_50"-->
<!-- android:maxWidth="@dimen/dp_50"-->
<!-- android:minWidth="@dimen/dp_40"-->
<!-- android:minHeight="@dimen/dp_40"-->
<!-- android:scaleType="centerCrop"-->
<!-- android:adjustViewBounds="true"-->
<!-- android:visibility="gone"-->
<!-- tools:visibility="visible"-->
<!-- app:layout_constraintWidth_default="wrap"-->
<!-- app:layout_constraintHeight_default="wrap"-->
<!-- app:layout_constraintWidth_min="@dimen/dp_40"-->
<!-- app:layout_constraintHeight_min="@dimen/dp_40"-->
<!-- app:layout_constraintWidth_max="@dimen/dp_50"-->
<!-- app:layout_constraintHeight_max="@dimen/dp_50"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent"/>-->
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -24,7 +24,7 @@
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
<TextView <com.xscm.moduleutil.widget.ShineTextView
android:id="@+id/tv_name" android:id="@+id/tv_name"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -32,6 +32,7 @@
android:text="用户名" android:text="用户名"
android:textColor="#ffffff" android:textColor="#ffffff"
android:textSize="@dimen/sp_14" android:textSize="@dimen/sp_14"
app:isShine="false"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
@@ -96,9 +97,9 @@
android:gravity="center" android:gravity="center"
android:text="转币" android:text="转币"
android:textColor="@color/white" android:textColor="@color/white"
android:visibility="gone"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent" />
android:visibility="gone"/>
<ImageView <ImageView
android:id="@+id/kb" android:id="@+id/kb"
@@ -132,8 +133,7 @@
android:visibility="gone" android:visibility="gone"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/im_qml" app:layout_constraintTop_toBottomOf="@+id/im_qml"
tools:visibility="visible"/> tools:visibility="visible" />
<ImageView <ImageView
@@ -145,9 +145,7 @@
android:src="@mipmap/gsui" android:src="@mipmap/gsui"
android:visibility="gone" android:visibility="gone"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/kb" app:layout_constraintTop_toBottomOf="@+id/kb" />
/>
<TextView <TextView
@@ -347,9 +345,9 @@
android:layout_alignStart="@+id/user_nav1" android:layout_alignStart="@+id/user_nav1"
android:layout_alignEnd="@+id/user_nav1" android:layout_alignEnd="@+id/user_nav1"
android:gravity="center" android:gravity="center"
tools:text="用户昵称"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/sp_10" /> android:textSize="@dimen/sp_10"
tools:text="用户昵称" />
<RelativeLayout <RelativeLayout
android:id="@+id/rl_reqit" android:id="@+id/rl_reqit"
@@ -366,10 +364,10 @@
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/dp_40" android:layout_marginTop="@dimen/dp_40"
android:gravity="center" android:gravity="center"
tools:text="开始使用"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/sp_12" android:textSize="@dimen/sp_12"
android:textStyle="bold" /> android:textStyle="bold"
tools:text="开始使用" />
</RelativeLayout> </RelativeLayout>
@@ -402,13 +400,13 @@
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:layout_marginTop="@dimen/dp_43" android:layout_marginTop="@dimen/dp_43"
android:layout_marginEnd="@dimen/dp_22" android:layout_marginEnd="@dimen/dp_22"
android:background="@drawable/bg_r53_33333"
android:gravity="center" android:gravity="center"
android:paddingStart="5dp" android:paddingStart="5dp"
android:paddingEnd="5dp" android:paddingEnd="5dp"
android:background="@drawable/bg_r53_33333"
tools:text="5天"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/sp_9" /> android:textSize="@dimen/sp_9"
tools:text="5天" />
</RelativeLayout> </RelativeLayout>
<com.google.android.flexbox.FlexboxLayout <com.google.android.flexbox.FlexboxLayout

View File

@@ -7,12 +7,12 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:overScrollMode="never" android:overScrollMode="never"
android:background="@mipmap/home_bj" android:background="@mipmap/home_bj">
android:paddingBottom="@dimen/dp_60">
<androidx.appcompat.widget.LinearLayoutCompat <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:paddingBottom="@dimen/dp_60"
android:orientation="vertical"> android:orientation="vertical">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
@@ -85,8 +85,20 @@
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:riv_oval="true"/> app:riv_oval="true"/>
<TextView <com.xscm.moduleutil.widget.ShineTextView
android:id="@+id/tv_nick_name" android:id="@+id/tv_nick_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/sp_16"
android:layout_marginTop="@dimen/dp_5"
android:textColor="@color/white"
app:isShine="false"
app:layout_constraintStart_toEndOf="@+id/riv_user_head"
app:layout_constraintTop_toTopOf="@+id/riv_user_head"
android:layout_marginStart="@dimen/dp_14"
tools:text="用户22333333"/>
<TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="#fff" android:textColor="#fff"
@@ -139,66 +151,6 @@
app:layout_constraintStart_toStartOf="@+id/beautiful_view" app:layout_constraintStart_toStartOf="@+id/beautiful_view"
/> />
<!-- <LinearLayout-->
<!-- android:id="@+id/lin"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="match_parent"-->
<!-- android:orientation="vertical"-->
<!-- android:layout_marginStart="@dimen/dp_14"-->
<!-- app:layout_constraintStart_toEndOf="@+id/riv_user_head"-->
<!-- app:layout_constraintTop_toTopOf="@+id/riv_user_head">-->
<!-- <TextView-->
<!-- android:id="@+id/tv_nick_name"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:textColor="#fff"-->
<!-- android:textSize="@dimen/sp_16"-->
<!-- tools:text="用户22333333" />-->
<!-- <LinearLayout-->
<!-- android:id="@+id/beautiful_view_copy"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginTop="7dp"-->
<!-- android:gravity="center_vertical"-->
<!-- android:orientation="horizontal">-->
<!-- <TextView-->
<!-- android:id="@+id/beautiful_view"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:textColor="@color/color_FFFFFFE0"-->
<!-- android:textSize="@dimen/sp_12"-->
<!-- tools:text="22222" />-->
<!-- <TextView-->
<!-- android:id="@+id/tv_copy"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginLeft="5dp"-->
<!-- android:background="@mipmap/copy"-->
<!-- android:textColor="@color/color_666666"-->
<!-- android:textSize="12sp" />-->
<!-- <ImageView-->
<!-- android:id="@+id/im_beautiful"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="@dimen/dp_11"-->
<!-- android:layout_marginLeft="5dp"-->
<!-- android:scaleType="fitCenter"-->
<!-- tools:src="@mipmap/beautiful" />-->
<!-- </LinearLayout>-->
<!-- <LinearLayout-->
<!-- android:id="@+id/ll_image_container"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:orientation="horizontal"-->
<!-- android:layout_gravity="bottom"-->
<!-- android:layout_marginTop="@dimen/dp_4"-->
<!-- >-->
<!-- </LinearLayout>-->
<!-- </LinearLayout>-->
<ImageView <ImageView
android:id="@+id/tv_home" android:id="@+id/tv_home"
android:layout_width="@dimen/dp_60" android:layout_width="@dimen/dp_60"
@@ -364,34 +316,6 @@
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<!-- <androidx.cardview.widget.CardView-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_gravity="bottom"-->
<!-- android:layout_marginLeft="@dimen/dp_12"-->
<!-- android:layout_marginTop="-46dp"-->
<!-- android:layout_marginRight="@dimen/dp_12"-->
<!-- app:cardCornerRadius="10dp"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/me_linearlayout3"-->
<!-- tools:layout_editor_absoluteX="13dp">-->
<!-- <LinearLayout-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:gravity="center_vertical"-->
<!-- android:layout_marginTop="-50dp"-->
<!-- android:layout_marginStart="@dimen/dp_16"-->
<!-- android:layout_marginEnd="@dimen/dp_16">-->
<!-- <ImageView-->
<!-- android:id="@+id/im_my_room"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="@dimen/dp_67"-->
<!-- android:src="@mipmap/me_wallet_icon"/>-->
<!-- </LinearLayout>-->
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_noble_title" android:id="@+id/cl_noble_title"
android:layout_width="match_parent" android:layout_width="match_parent"

View File

@@ -112,20 +112,5 @@
android:background="@color/color_transparent"/> android:background="@color/color_transparent"/>
</LinearLayout> </LinearLayout>
<RelativeLayout
android:id="@+id/cool_wait_view"
android:visibility="gone"
android:clickable="true"
android:focusable="true"
android:layout_width="match_parent"
android:layout_height="match_parent">
<app.dinus.com.loadingdrawable.LoadingView
android:layout_width="@dimen/dp_100"
android:layout_height="@dimen/dp_100"
android:layout_centerInParent="true"
android:background="@drawable/ps_ic_shadow_bg"
app:loading_renderer="CoolWaitLoadingRenderer" />
</RelativeLayout>
</RelativeLayout> </RelativeLayout>
</layout> </layout>

View File

@@ -46,11 +46,12 @@
android:gravity="center_vertical" android:gravity="center_vertical"
android:orientation="horizontal"> android:orientation="horizontal">
<TextView <com.xscm.moduleutil.widget.ShineTextView
android:id="@+id/dy_name_text" android:id="@+id/dy_name_text"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="@color/color_FF333333" android:textColor="@color/color_FF333333"
app:isShine="false"
android:textStyle="bold" android:textStyle="bold"
android:text="萌新驾到" android:text="萌新驾到"
android:textSize="18sp" /> android:textSize="18sp" />

View File

@@ -2,14 +2,14 @@
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:id="@+id/item" android:id="@+id/item"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_50" android:layout_height="@dimen/dp_50"
android:layout_marginStart="@dimen/dp_16" android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_10" android:layout_marginTop="@dimen/dp_10"
android:layout_marginEnd="@dimen/dp_16"> android:layout_marginEnd="@dimen/dp_16">
<com.xscm.moduleutil.widget.GifAvatarOvalView <com.xscm.moduleutil.utils.MeHeadView
android:id="@+id/like_avatar" android:id="@+id/like_avatar"
android:layout_width="@dimen/dp_50" android:layout_width="@dimen/dp_50"
android:layout_height="@dimen/dp_50" android:layout_height="@dimen/dp_50"
@@ -17,17 +17,17 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:riv_oval="true" /> app:riv_oval="true" />
<ImageView <ImageView
android:id="@+id/im_i" android:id="@+id/im_i"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:src="@mipmap/zc" android:src="@mipmap/zc"
app:layout_constraintStart_toStartOf="@+id/like_avatar"
app:layout_constraintBottom_toBottomOf="@+id/like_avatar" app:layout_constraintBottom_toBottomOf="@+id/like_avatar"
app:layout_constraintEnd_toEndOf="@+id/like_avatar" app:layout_constraintEnd_toEndOf="@+id/like_avatar"
/> app:layout_constraintStart_toStartOf="@+id/like_avatar" />
<TextView <com.xscm.moduleutil.widget.ShineTextView
android:id="@+id/tv_nickname" android:id="@+id/tv_nickname"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="@dimen/dp_21" android:layout_height="@dimen/dp_21"
@@ -35,6 +35,7 @@
android:text="用户名" android:text="用户名"
android:textColor="@color/color_FF333333" android:textColor="@color/color_FF333333"
android:textSize="@dimen/sp_12" android:textSize="@dimen/sp_12"
app:isShine="false"
app:layout_constraintStart_toEndOf="@+id/like_avatar" app:layout_constraintStart_toEndOf="@+id/like_avatar"
app:layout_constraintTop_toTopOf="@+id/like_avatar" /> app:layout_constraintTop_toTopOf="@+id/like_avatar" />

View File

@@ -42,27 +42,14 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/tv_main_title" /> app:layout_constraintTop_toTopOf="@+id/tv_main_title" />
<!-- <LinearLayout-->
<!-- android:id="@+id/video_container"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="160dp"-->
<!-- android:layout_alignParentTop="true"-->
<!-- android:orientation="horizontal"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/tv_main_title">-->
<!-- </LinearLayout>-->
<ImageView <ImageView
android:id="@+id/im" android:id="@+id/im"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/iv_exit" android:scaleType="fitXY"
app:layout_constraintStart_toStartOf="parent"
android:src="@mipmap/xiaohei_bj" android:src="@mipmap/xiaohei_bj"
android:scaleType="fitXY"/> app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/iv_exit" />
<TextView <TextView
android:id="@+id/dating_time" android:id="@+id/dating_time"
@@ -86,11 +73,10 @@
android:id="@+id/cl_2" android:id="@+id/cl_2"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="@+id/im"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/im" app:layout_constraintTop_toTopOf="@+id/im">
app:layout_constraintBottom_toBottomOf="@+id/im"
>
<com.xscm.moduleutil.widget.RoomMakeWheatView <com.xscm.moduleutil.widget.RoomMakeWheatView
@@ -102,61 +88,26 @@
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:room_make_wheat_number="000" /> app:room_make_wheat_number="000" />
<!-- <com.qxcm.moduleutil.widget.GifAvatarOvalView-->
<!-- android:id="@+id/riv_room"-->
<!-- android:layout_width="@dimen/dp_60"-->
<!-- android:layout_height="@dimen/dp_70"-->
<!-- android:layout_marginStart="@dimen/dp_35"-->
<!-- android:src="@mipmap/default_avatar"-->
<!-- app:gav_border_color="#404F8591"-->
<!-- app:gav_border_width="@dimen/dp_5"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent"-->
<!-- app:riv_border_color="#404F8591"-->
<!-- app:riv_border_width="@dimen/dp_5"-->
<!-- app:riv_oval="true"-->
<!-- tools:src="@mipmap/default_avatar"/>-->
<!-- <TextView--> <RelativeLayout
<!-- android:id="@+id/user_name"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="房间号"-->
<!-- android:textColor="@color/white"-->
<!-- android:textSize="14sp"-->
<!-- app:layout_constraintEnd_toEndOf="@+id/riv_room"-->
<!-- app:layout_constraintStart_toStartOf="@+id/riv_room"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/riv_room" />-->
<FrameLayout
android:id="@+id/fl_heart_value2" android:id="@+id/fl_heart_value2"
android:layout_width="@dimen/dp_180" android:layout_width="@dimen/dp_180"
android:layout_height="@dimen/dp_85" android:layout_height="@dimen/dp_85"
android:layout_gravity="center_vertical|center_horizontal|center" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="@+id/room_make_wheat1" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@+id/room_make_wheat2" app:layout_constraintTop_toTopOf="parent">
app:layout_constraintStart_toEndOf="@+id/room_make_wheat1"
app:layout_constraintTop_toTopOf="@+id/room_make_wheat1"
>
<!-- <ImageView-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="@dimen/dp_20"-->
<!-- android:layout_gravity="center_vertical|center_horizontal"-->
<!-- android:src="@mipmap/cxian" />-->
<ImageView <ImageView
android:id="@+id/iv_heart_value2" android:id="@+id/iv_heart_value2"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_gravity="center_vertical|center_horizontal"
android:src="@mipmap/dating_heart_line2" /> android:src="@mipmap/dating_heart_line2" />
<TextView <TextView
android:id="@+id/tv_heart_value2" android:id="@+id/tv_heart_value2"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal" android:layout_centerInParent="true"
android:shadowColor="#40b40066" android:shadowColor="#40b40066"
android:shadowDx="0" android:shadowDx="0"
android:shadowDy="1" android:shadowDy="1"
@@ -164,7 +115,7 @@
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/sp_18" android:textSize="@dimen/sp_18"
tools:text="1000000" /> tools:text="1000000" />
</FrameLayout> </RelativeLayout>
<com.xscm.moduleutil.widget.RoomMakeWheatView <com.xscm.moduleutil.widget.RoomMakeWheatView
android:id="@+id/room_make_wheat2" android:id="@+id/room_make_wheat2"
@@ -174,46 +125,9 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:room_make_wheat_number="000" /> app:room_make_wheat_number="000" />
<!-- <com.qxcm.moduleutil.widget.GifAvatarOvalView-->
<!-- android:id="@+id/riv_room2"-->
<!-- android:layout_width="@dimen/dp_60"-->
<!-- android:layout_height="@dimen/dp_60"-->
<!-- android:layout_marginEnd="@dimen/dp_35"-->
<!-- android:src="@mipmap/default_avatar"-->
<!-- app:gav_border_color="#404F8591"-->
<!-- app:gav_border_width="@dimen/dp_5"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent"-->
<!-- app:riv_border_color="#404F8591"-->
<!-- app:riv_border_width="@dimen/dp_5"-->
<!-- app:riv_oval="true" />-->
<!-- <TextView-->
<!-- android:id="@+id/user_name2"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="房间号"-->
<!-- android:textColor="@color/white"-->
<!-- android:textSize="14sp"-->
<!-- app:layout_constraintEnd_toEndOf="@+id/riv_room2"-->
<!-- app:layout_constraintStart_toStartOf="@+id/riv_room2"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/riv_room2" />-->
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<!-- <androidx.recyclerview.widget.RecyclerView-->
<!-- android:id="@+id/rv_gift"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="@dimen/dp_140"-->
<!-- android:layout_marginStart="@dimen/dp_16"-->
<!-- android:layout_marginTop="@dimen/dp_60"-->
<!-- android:layout_marginEnd="@dimen/dp_16"-->
<!-- android:visibility="gone"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/cl_2"-->
<!-- tools:listitem="@layout/room_gift_wall_item" />-->
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -248,28 +162,5 @@
android:src="@mipmap/gongxiang" /> android:src="@mipmap/gongxiang" />
</LinearLayout> </LinearLayout>
<!-- <com.qxcm.moduleutil.widget.DropView-->
<!-- android:id="@+id/drop_view"-->
<!-- android:layout_width="@dimen/dp_240"-->
<!-- android:layout_height="@dimen/dp_135"-->
<!-- android:background="@drawable/bg_r6_000000"-->
<!-- 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"-->
<!-- />-->
<!-- <ImageView-->
<!-- android:layout_width="@dimen/dp_18"-->
<!-- android:layout_height="@dimen/dp_18"-->
<!-- android:layout_gravity="center|bottom"-->
<!-- android:layout_marginEnd="@dimen/dp_16"-->
<!-- android:src="@mipmap/quan" />-->
<!-- </com.qxcm.moduleutil.widget.DropView>-->
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</layout> </layout>

View File

@@ -128,10 +128,10 @@
app:tl_indicator_corner_radius="@dimen/dp_3" app:tl_indicator_corner_radius="@dimen/dp_3"
app:tl_indicator_drawable="@color/transparent" app:tl_indicator_drawable="@color/transparent"
app:tl_indicator_height="@dimen/dp_6" app:tl_indicator_height="@dimen/dp_6"
app:tl_tab_padding="@dimen/dp_10"
app:tl_indicator_margin_bottom="@dimen/dp_3" app:tl_indicator_margin_bottom="@dimen/dp_3"
app:tl_indicator_width="0dp" app:tl_indicator_width="0dp"
app:tl_showCateIndicator="false" app:tl_showCateIndicator="false"
app:tl_tab_width="@dimen/dp_50"
app:tl_textBold="SELECT" app:tl_textBold="SELECT"
app:tl_textSelectColor="@color/white" app:tl_textSelectColor="@color/white"
app:tl_textSelectedSize="@dimen/sp_14" app:tl_textSelectedSize="@dimen/sp_14"

View File

@@ -63,7 +63,8 @@
app:layout_constraintEnd_toEndOf="@id/view_top2" app:layout_constraintEnd_toEndOf="@id/view_top2"
app:layout_constraintStart_toStartOf="@id/view_top2"/> app:layout_constraintStart_toStartOf="@id/view_top2"/>
<TextView <com.xscm.moduleutil.widget.ShineTextView
app:isShine="false"
android:id="@+id/room_top2_name" android:id="@+id/room_top2_name"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -167,9 +168,10 @@
app:layout_constraintTop_toBottomOf="@+id/room_top2_name" app:layout_constraintTop_toBottomOf="@+id/room_top2_name"
android:visibility="gone"/> android:visibility="gone"/>
<TextView <com.xscm.moduleutil.widget.ShineTextView
android:id="@+id/room_top1_name" android:id="@+id/room_top1_name"
android:layout_width="0dp" android:layout_width="0dp"
app:isShine="false"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:ellipsize="end" android:ellipsize="end"
@@ -207,7 +209,8 @@
app:layout_constraintTop_toBottomOf="@+id/room_top1_name" app:layout_constraintTop_toBottomOf="@+id/room_top1_name"
android:visibility="gone"/> android:visibility="gone"/>
<TextView <com.xscm.moduleutil.widget.ShineTextView
app:isShine="false"
android:id="@+id/room_top3_name" android:id="@+id/room_top3_name"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View File

@@ -46,7 +46,8 @@
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.20"> app:layout_constraintVertical_bias="0.20">
<TextView <com.xscm.moduleutil.widget.ShineTextView
app:isShine="false"
android:id="@+id/room_item_name" android:id="@+id/room_item_name"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View File

@@ -46,9 +46,10 @@
android:layout_marginEnd="@dimen/dp_12" android:layout_marginEnd="@dimen/dp_12"
android:background="@mipmap/gsui" /> android:background="@mipmap/gsui" />
<TextView <com.xscm.moduleutil.widget.ShineTextView
android:id="@+id/tv_nick_name" android:id="@+id/tv_nick_name"
android:layout_width="wrap_content" android:layout_width="wrap_content"
app:isShine="false"
android:layout_height="@dimen/dp_24" android:layout_height="@dimen/dp_24"
android:layout_below="@+id/riv_user_head" android:layout_below="@+id/riv_user_head"
android:layout_marginStart="@dimen/dp_15" android:layout_marginStart="@dimen/dp_15"

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>

View File

@@ -54,7 +54,10 @@ android {
dimension "environment" dimension "environment"
// 正式版包名使用基础包名com.example.myapp // 正式版包名使用基础包名com.example.myapp
applicationIdSuffix "" applicationIdSuffix ""
// // 测试版包名:基础包名 + .betacom.example.myapp.beta
// applicationIdSuffix ".beta.b"
// // 测试版版本名1.0-beta
// versionNameSuffix "-beta.b"
// 【正式版应用名称】通过resValue动态生成string资源 // 【正式版应用名称】通过resValue动态生成string资源
resValue "string", "app_name", "羽声语音" resValue "string", "app_name", "羽声语音"

View File

@@ -7,8 +7,8 @@ android {
defaultConfig { defaultConfig {
minSdk 24 minSdk 24
targetSdk 35 targetSdk 35
versionCode 12 versionCode 1
versionName "1.1.2" versionName "1.0.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"