From 3b117060d3e5ad284a7700c76c6afa3aeb4401a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E5=B0=8F=E6=B1=9F?= <461355754@qq.com> Date: Tue, 30 Sep 2025 10:20:26 +0800 Subject: [PATCH] =?UTF-8?q?1:=E6=B7=BB=E5=8A=A0=E5=B0=8F=E6=97=B6=E6=A6=9C?= =?UTF-8?q?=202=EF=BC=9A=E6=B7=BB=E5=8A=A0=E5=B0=8F=E6=97=B6=E6=A6=9C?= =?UTF-8?q?=E9=A3=98=E5=B1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 26 +- gradle.properties | 4 +- .../activity/BaseAppCompatActivity.java | 232 ++++ .../moduleutil/base/CommonAppContext.java | 2 + .../moduleutil/bean/room/RoomHourBean.java | 27 + .../moduleutil/bean/room/RoomInfoResp.java | 1 + .../com/xscm/moduleutil/event/HourlyBean.java | 14 + .../com/xscm/moduleutil/http/ApiServer.java | 11 +- .../xscm/moduleutil/http/RetrofitClient.java | 31 +- .../xscm/moduleutil/service/MqttConnect.java | 4 + .../moduleutil/service/MqttInitCallback.java | 56 + .../utils/config/EnvironmentPrefs.java | 4 +- .../xscm/moduleutil/widget/BaseWheatView.java | 2 +- .../com/xscm/moduleutil/widget/Constants.java | 1 + .../main/res/layout/item_hourly_floating.xml | 70 ++ .../main/res/mipmap-xhdpi/hourly_xlh_sta.webp | Bin 0 -> 6406 bytes moduleUtil/src/main/res/mipmap-xhdpi/top1.png | Bin 0 -> 3711 bytes moduleUtil/src/main/res/mipmap-xhdpi/top2.png | Bin 0 -> 3441 bytes moduleUtil/src/main/res/mipmap-xhdpi/top3.png | Bin 0 -> 4085 bytes moduleUtil/src/main/res/mipmap-xxhdpi/dcl.png | Bin 0 -> 13129 bytes .../main/res/mipmap-xxxhdpi/hourl_top1.webp | Bin 0 -> 28146 bytes .../main/res/mipmap-xxxhdpi/hourl_top2.webp | Bin 0 -> 27534 bytes .../main/res/mipmap-xxxhdpi/hourl_top3.webp | Bin 0 -> 26034 bytes moduleUtil/src/main/res/values/colors.xml | 2 + .../moduleroom/activity/RoomActivity.kt | 74 +- .../moduleroom/adapter/RoomHourlyAdapter.java | 61 + .../contacts/HourlyChartContacts.java | 5 +- .../moduleroom/dialog/HourlyChartDialog.java | 104 ++ .../presenter/HourlyChartPresenter.java | 30 + .../src/main/res/layout/activity_room.xml | 1066 +++++++++-------- .../layout/dialog_hourly_chart_fragment.xml | 137 ++- .../src/main/res/layout/item_hourly.xml | 143 +-- moduleroom/src/main/res/layout/room_top.xml | 68 +- .../src/main/res/layout/item_withdrawal.xml | 193 ++- 34 files changed, 1579 insertions(+), 789 deletions(-) create mode 100644 moduleUtil/src/main/java/com/xscm/moduleutil/bean/room/RoomHourBean.java create mode 100644 moduleUtil/src/main/java/com/xscm/moduleutil/event/HourlyBean.java create mode 100644 moduleUtil/src/main/res/layout/item_hourly_floating.xml create mode 100644 moduleUtil/src/main/res/mipmap-xhdpi/hourly_xlh_sta.webp create mode 100644 moduleUtil/src/main/res/mipmap-xhdpi/top1.png create mode 100644 moduleUtil/src/main/res/mipmap-xhdpi/top2.png create mode 100644 moduleUtil/src/main/res/mipmap-xhdpi/top3.png create mode 100644 moduleUtil/src/main/res/mipmap-xxhdpi/dcl.png create mode 100644 moduleUtil/src/main/res/mipmap-xxxhdpi/hourl_top1.webp create mode 100644 moduleUtil/src/main/res/mipmap-xxxhdpi/hourl_top2.webp create mode 100644 moduleUtil/src/main/res/mipmap-xxxhdpi/hourl_top3.webp create mode 100644 moduleroom/src/main/java/com/example/moduleroom/adapter/RoomHourlyAdapter.java diff --git a/app/build.gradle b/app/build.gradle index ed90f76..c623fdf 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -66,19 +66,19 @@ android { // // 测试版配置 beta { - dimension "environment" - // 测试版包名:基础包名 + .beta(com.example.myapp.beta) - applicationIdSuffix ".beta" - // 测试版版本名:1.0-beta - versionNameSuffix "-beta" - - // 【测试版应用名称】动态生成带标识的名称 - resValue "string", "app_name", "秘地-测试版" - - // 【测试版图标】替换为测试专用图标 - manifestPlaceholders = [ - appIcon: "@mipmap/ic_launcher_app_bat" // 需在main/res/mipmap放置该图标 - ] +// dimension "environment" +// // 测试版包名:基础包名 + .beta(com.example.myapp.beta) +// applicationIdSuffix ".beta" +// // 测试版版本名:1.0-beta +// versionNameSuffix "-beta" +// +// // 【测试版应用名称】动态生成带标识的名称 +// resValue "string", "app_name", "秘地-测试版" +// +// // 【测试版图标】替换为测试专用图标 +// manifestPlaceholders = [ +// appIcon: "@mipmap/ic_launcher_app_bat" // 需在main/res/mipmap放置该图标 +// ] } } diff --git a/gradle.properties b/gradle.properties index 1092726..1902428 100644 --- a/gradle.properties +++ b/gradle.properties @@ -28,8 +28,8 @@ isBuildModule=false #org.gradle.deamon=false android.injected.testOnly=false -APP_VERSION_NAME=1.1.6 -APP_VERSION_CODE=168 +APP_VERSION_NAME=1.1.7 +APP_VERSION_CODE=169 org.gradle.jvm.toolchain.useLegacyAdapters=false #org.gradle.java.home=C\:\\Users\\qx\\.jdks\\ms-17.0.15 diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/activity/BaseAppCompatActivity.java b/moduleUtil/src/main/java/com/xscm/moduleutil/activity/BaseAppCompatActivity.java index b8397ab..2422566 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/activity/BaseAppCompatActivity.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/activity/BaseAppCompatActivity.java @@ -18,6 +18,9 @@ import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.provider.Settings; +import android.text.Spannable; +import android.text.SpannableStringBuilder; +import android.text.style.ForegroundColorSpan; import android.util.DisplayMetrics; import android.view.Gravity; import android.view.LayoutInflater; @@ -37,6 +40,7 @@ import android.widget.TextView; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; +import androidx.core.content.ContextCompat; import androidx.databinding.DataBindingUtil; import androidx.databinding.ViewDataBinding; @@ -50,6 +54,7 @@ import com.xscm.moduleutil.R; import com.xscm.moduleutil.base.CommonAppContext; import com.xscm.moduleutil.base.RoomManager; import com.xscm.moduleutil.bean.XLHBean; +import com.xscm.moduleutil.event.HourlyBean; import com.xscm.moduleutil.event.MqttBean; import com.xscm.moduleutil.utils.ARouteConstants; import com.xscm.moduleutil.utils.BackgroundManager; @@ -66,6 +71,7 @@ import org.greenrobot.eventbus.ThreadMode; import java.lang.reflect.Method; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -410,6 +416,232 @@ public abstract class BaseAppCompatActivity extends private View currentMqttView = null; // 当前正在播放的MQTT视图 private View currentXlhView = null; // 当前正在播放的XLH视图 + private final List hourlyMessageQueue = new ArrayList<>(); // 小时榜消息队列 + private final Map currentHourlyViews = new HashMap<>(); // 当前显示的小时榜视图 + private final Object hourlyQueueLock = new Object(); // 小时榜队列同步锁 + private boolean isHourlyProcessing = false; // 小时榜处理状态标志 + + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onMessageReceived(List hourlyBean) { + LogUtils.e("收到小时榜", hourlyBean); + if (hourlyBean == null) return; + if (SpUtil.getFloatingScreen() == 1) { + synchronized (hourlyQueueLock) { + hourlyMessageQueue.addAll(hourlyBean); + if (!isHourlyProcessing) { + isHourlyProcessing = true; + processHourlyMessages(); + } + } + }else { + hourlyMessageQueue.clear(); + clearAllHourlyViews(); + } + } + + private void processHourlyMessages() { + List messagesToProcess; + synchronized (hourlyQueueLock) { + if (hourlyMessageQueue.isEmpty()) { + isHourlyProcessing = false; + return; + } + // 最多处理3条数据 + int processCount = Math.min(3, hourlyMessageQueue.size()); + messagesToProcess = new ArrayList<>(hourlyMessageQueue.subList(0, processCount)); + // 从队列中移除已处理的数据 + for (int i = 0; i < processCount; i++) { + hourlyMessageQueue.remove(0); + } + } + + // 同时展示多条数据 + for (int i = 0; i < messagesToProcess.size(); i++) { + HourlyBean bean = messagesToProcess.get(i); + showHourlyFloatingMessage(bean, i); + } + } + + private void showHourlyFloatingMessage(HourlyBean hourlyBean, int positionIndex) { + try { + ViewGroup decorView = (ViewGroup) getWindow().getDecorView(); + + // 创建新的视图 + View hourlyView = LayoutInflater.from(this).inflate(R.layout.item_hourly_floating, null); + FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams( + FrameLayout.LayoutParams.MATCH_PARENT, + FrameLayout.LayoutParams.WRAP_CONTENT); + + // 根据位置设置不同的垂直间距 + int baseMargin = com.sunfusheng.marqueeview.DisplayUtil.dip2px(this, 70); + int verticalSpacing = com.sunfusheng.marqueeview.DisplayUtil.dip2px(this, 50); + layoutParams.topMargin = baseMargin + (positionIndex * verticalSpacing); + layoutParams.gravity = Gravity.TOP | Gravity.CENTER_HORIZONTAL; + hourlyView.setLayoutParams(layoutParams); + + decorView.addView(hourlyView); + + // 保存视图引用 + currentHourlyViews.put(positionIndex, hourlyView); + + // 更新视图数据 + updateHourlyFloatingViewData(hourlyView, hourlyBean); + + // 根据类型获取展示时间 + long displayDuration = getDisplayDurationByType(Integer.parseInt(hourlyBean.getRank_number())); + + // 启动动画 + resetAndStartHourlyAnimation(hourlyView, displayDuration, () -> { + // 动画结束后清理视图 + if (hourlyView.getParent() != null) { + decorView.removeView(hourlyView); + } + currentHourlyViews.remove(positionIndex); + + // 检查是否还有更多消息需要处理 + synchronized (hourlyQueueLock) { + if (hourlyMessageQueue.isEmpty() && currentHourlyViews.isEmpty()) { + isHourlyProcessing = false; + } else if (!hourlyMessageQueue.isEmpty() && currentHourlyViews.isEmpty()) { + // 所有当前视图都已消失,处理下一批消息 + processHourlyMessages(); + } + } + }); + } catch (Exception e) { + LogUtils.e("显示小时榜飘屏失败", e); + } + } + + private long getDisplayDurationByType(int type) { + // 根据不同类型设置不同的展示时间(毫秒) + switch (type) { + case 1: // 第一名 + return 5000; // 5秒 + case 2: // 第二名 + return 4000; // 4秒 + case 3: // 第三名 + return 3000; // 3秒 + default: + return 3000; // 默认3秒 + } + } + + private void updateHourlyFloatingViewData(View view, HourlyBean hourlyBean) { + TextView tvName = view.findViewById(R.id.tv_name); + ImageView ivAvatar = view.findViewById(R.id.im_h_t); + + if (hourlyBean != null) { + // 根据排名设置不同的显示 + switch (hourlyBean.getRank_number()) { + case "1": +// tvName.setText("新科状元! ["+hourlyBean.getRoom_name()+"] 独占鳌头!"); + setColoredText(tvName, "新科状元! [", hourlyBean.getRoom_name(), "] 独占鳌头!", R.color.color_FFFA63); + ivAvatar.setImageResource(R.mipmap.hourl_top1); + break; + case "2": +// tvName.setText("金榜榜眼! ["+hourlyBean.getRoom_name()+"] 才气逼人!"); + setColoredText(tvName, "金榜榜眼! [", hourlyBean.getRoom_name(), "] 才气逼人!", R.color.color_FFFA63); + + ivAvatar.setImageResource(R.mipmap.hourl_top2); + break; + case "3": + setColoredText(tvName, "风采探花! [", hourlyBean.getRoom_name(), "] 实力绽放!", R.color.color_1FFFE5); +// tvName.setText("风采探花! ["+hourlyBean.getRoom_name()+"] 实力绽放!"); + + ivAvatar.setImageResource(R.mipmap.hourl_top3); + break; + default: + + break; + } + + } + } + // 设置带颜色的文本 + // 设置带颜色的文本 + private void setColoredText(TextView textView, String prefix, String roomName, String suffix, int colorRes) { + String fullText = prefix + roomName + suffix; + SpannableStringBuilder builder = new SpannableStringBuilder(fullText); + + // 先为整个文本设置白色 + builder.setSpan( + new ForegroundColorSpan(ContextCompat.getColor(this, R.color.white)), + 0, + fullText.length(), + Spannable.SPAN_EXCLUSIVE_EXCLUSIVE + ); + + // 查找房间名在文本中的位置 + int start = fullText.indexOf("["); + int end = fullText.indexOf("]") + 1; + + if (start >= 0 && end > start) { + // 为房间名部分设置指定颜色 + builder.setSpan( + new ForegroundColorSpan(ContextCompat.getColor(this, colorRes)), + start, + end, + Spannable.SPAN_EXCLUSIVE_EXCLUSIVE + ); + } + + textView.setText(builder); + } + + private void resetAndStartHourlyAnimation(View view, long displayDuration, Runnable onAnimationEnd) { + try { + int screenWidth = getScreenWidth(); + // 设置初始位置:在屏幕右侧外部 + view.setTranslationX(screenWidth); + + // 进入动画 + ObjectAnimator enterAnimator = ObjectAnimator.ofFloat(view, "translationX", screenWidth, 0f); + enterAnimator.setDuration(500); + enterAnimator.setInterpolator(new DecelerateInterpolator()); + enterAnimator.start(); + + // 停留后退出动画 + view.postDelayed(() -> { + try { + ObjectAnimator exitAnimator = ObjectAnimator.ofFloat(view, "translationX", 0f, -screenWidth); + exitAnimator.setDuration(500); + exitAnimator.setInterpolator(new AccelerateInterpolator()); + exitAnimator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + onAnimationEnd.run(); + } + + @Override + public void onAnimationCancel(Animator animation) { + onAnimationEnd.run(); + } + }); + exitAnimator.start(); + } catch (Exception e) { + LogUtils.e("小时榜退出动画执行失败", e); + onAnimationEnd.run(); + } + }, displayDuration); // 根据类型设置的展示时间 + + } catch (Exception e) { + LogUtils.e("小时榜动画启动失败", e); + onAnimationEnd.run(); + } + } + + private void clearAllHourlyViews() { + ViewGroup decorView = (ViewGroup) getWindow().getDecorView(); + for (View view : currentHourlyViews.values()) { + if (view.getParent() != null) { + decorView.removeView(view); + } + } + currentHourlyViews.clear(); + } + /// 礼物特效 - MQTT消息处理 @Subscribe(threadMode = ThreadMode.MAIN) public void onMessageReceived(MqttBean mqttBean) { diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/base/CommonAppContext.java b/moduleUtil/src/main/java/com/xscm/moduleutil/base/CommonAppContext.java index c6a7af5..7af752a 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/base/CommonAppContext.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/base/CommonAppContext.java @@ -114,6 +114,8 @@ public class CommonAppContext extends MultiDexApplication implements Applicatio // 添加后台状态标记 private boolean wasInBackground = false; + public boolean isMai=false; + public void onAppBackground() { wasInBackground = true; } diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/bean/room/RoomHourBean.java b/moduleUtil/src/main/java/com/xscm/moduleutil/bean/room/RoomHourBean.java new file mode 100644 index 0000000..6221d4d --- /dev/null +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/bean/room/RoomHourBean.java @@ -0,0 +1,27 @@ +package com.xscm.moduleutil.bean.room; + +import lombok.Data; + +import java.util.List; +/** + *@author qx + *@data 2025/9/29 + *@description:小时榜实体类 + */ +@Data +public class RoomHourBean { + private String time_range; + private List lists; + + @Data + public class RoomListBean { + private String room_id; + private String room_name; + private int label_id; + private String room_cover; + private int total_price; + private String label_icon; + private int xlh_status; + } + +} diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/bean/room/RoomInfoResp.java b/moduleUtil/src/main/java/com/xscm/moduleutil/bean/room/RoomInfoResp.java index f9bb504..0729ea3 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/bean/room/RoomInfoResp.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/bean/room/RoomInfoResp.java @@ -30,6 +30,7 @@ public class RoomInfoResp implements Serializable { private List song_pit_list; private FriendInfo friend_info; private GiftXlh gift_cycle; + private int hour_ranking_open;//1:开启 0:关闭 //弹出麦位操作弹出 diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/event/HourlyBean.java b/moduleUtil/src/main/java/com/xscm/moduleutil/event/HourlyBean.java new file mode 100644 index 0000000..afe1d96 --- /dev/null +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/event/HourlyBean.java @@ -0,0 +1,14 @@ +package com.xscm.moduleutil.event; + +import lombok.Data; + +/** + * 小时榜飘屏 + */ +@Data +public class HourlyBean { + private String room_id; + private String room_name; + private String text; + private String rank_number; +} diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/http/ApiServer.java b/moduleUtil/src/main/java/com/xscm/moduleutil/http/ApiServer.java index 72dfece..12effa2 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/http/ApiServer.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/http/ApiServer.java @@ -63,13 +63,7 @@ import com.xscm.moduleutil.bean.WithdrawalBean; import com.xscm.moduleutil.bean.blindboxwheel.BlindBoxBean; import com.xscm.moduleutil.bean.blindboxwheel.BlindReslutBean; import com.xscm.moduleutil.bean.blindboxwheel.XlhDrawBean; -import com.xscm.moduleutil.bean.room.AuctionBean; -import com.xscm.moduleutil.bean.room.FriendUserBean; -import com.xscm.moduleutil.bean.room.RoomApplyListBean; -import com.xscm.moduleutil.bean.room.RoomAuction; -import com.xscm.moduleutil.bean.room.RoomBean; -import com.xscm.moduleutil.bean.room.RoomInfoResp; -import com.xscm.moduleutil.bean.room.RoomOnline; +import com.xscm.moduleutil.bean.room.*; import com.xscm.moduleutil.bean.zhuangb.ZhuangBanShangChengBean; import com.xscm.moduleutil.widget.Constants; @@ -95,6 +89,9 @@ public interface ApiServer { @POST(Constants.LOGIN) Call>> login(@Field("user_login") String user_login, @Field("sms_code") String sms_code); + @FormUrlEncoded + @POST(Constants.ROOM_HOUR_BEAN) + Call> getRoomHourRanking(@Field("page") String page,@Field("page_limit")String page_limit); @FormUrlEncoded //手机换绑 @POST(Constants.MODIFY_MOBILE) Call> mobileView(@Field("mobile") String mobile, @Field("new_mobile") String new_mobile, @Field("sms_code") String sms_code); diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java b/moduleUtil/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java index 440b03d..378ebfa 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java @@ -80,13 +80,7 @@ import com.xscm.moduleutil.bean.WithdrawalBean; import com.xscm.moduleutil.bean.blindboxwheel.BlindBoxBean; import com.xscm.moduleutil.bean.blindboxwheel.BlindReslutBean; import com.xscm.moduleutil.bean.blindboxwheel.XlhDrawBean; -import com.xscm.moduleutil.bean.room.AuctionBean; -import com.xscm.moduleutil.bean.room.FriendUserBean; -import com.xscm.moduleutil.bean.room.RoomApplyListBean; -import com.xscm.moduleutil.bean.room.RoomAuction; -import com.xscm.moduleutil.bean.room.RoomBean; -import com.xscm.moduleutil.bean.room.RoomInfoResp; -import com.xscm.moduleutil.bean.room.RoomOnline; +import com.xscm.moduleutil.bean.room.*; import com.xscm.moduleutil.bean.zhuangb.ZhuangBanShangChengBean; import com.xscm.moduleutil.listener.MessageListenerSingleton; import com.xscm.moduleutil.utils.SpUtil; @@ -351,6 +345,29 @@ public class RetrofitClient { }); } + public void getRoomHourRanking(String page, String page_limit, BaseObserver observer){ + sApiServer.getRoomHourRanking(page, page_limit).enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + if (response.code() == 200) { + BaseModel listBaseModel = response.body(); + if (listBaseModel != null) { + if (listBaseModel.getCode()==1) { + observer.onNext(listBaseModel.getData()); + }else { + ToastUtils.showShort(listBaseModel.getMsg()); + } + + } + } + } + @Override + public void onFailure(Call> call, Throwable t) { + t.printStackTrace(); + } + }); + } + public void userLogin(String mobile, String password, BaseObserver> observer) { sApiServer.userLogin(mobile, password).enqueue(new Callback>>() { @Override diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/service/MqttConnect.java b/moduleUtil/src/main/java/com/xscm/moduleutil/service/MqttConnect.java index acd5c93..d19e6b8 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/service/MqttConnect.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/service/MqttConnect.java @@ -31,6 +31,7 @@ public class MqttConnect { // 订阅主题 public static String shutdown = ""; public static String update_app = ""; + public static String qx_hour_ranking = ""; Handler handler = new Handler(Looper.getMainLooper()); String[] topic; int[] qos = {1,2,3,0,0,0,0,0,0,0,0,0,0}; // 消息质量 @@ -44,10 +45,12 @@ public class MqttConnect { // 这里是你自己需要订阅的主题 shutdown = "qx_room_topic"; // 关机 update_app = "qx_xunlehui"; // 发送更新APP + qx_hour_ranking = "qx_hour_ranking"; ArrayList topicList = new ArrayList<>(); topicList.add(shutdown); topicList.add(update_app); + topicList.add(qx_hour_ranking); topic = topicList.toArray(new String[0]); } @@ -82,6 +85,7 @@ public class MqttConnect { // sub(topic,qos); sub(shutdown); sub(update_app); + sub(qx_hour_ranking); // uiTip("MQTT连接成功"); }catch (MqttException e){ // uiTip("MQTT连接失败,准备重连。。。:"+e.getMessage()); diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/service/MqttInitCallback.java b/moduleUtil/src/main/java/com/xscm/moduleutil/service/MqttInitCallback.java index bb1c37e..79e3763 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/service/MqttInitCallback.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/service/MqttInitCallback.java @@ -12,6 +12,7 @@ import com.hjq.toast.ToastUtils; import com.orhanobut.logger.Logger; import com.xscm.moduleutil.bean.MqttXlhEnd; import com.xscm.moduleutil.bean.XLHBean; +import com.xscm.moduleutil.event.HourlyBean; import com.xscm.moduleutil.event.RoomGiftRunable; import com.xscm.moduleutil.utils.SpUtil; @@ -20,6 +21,8 @@ import org.eclipse.paho.client.mqttv3.MqttCallback; import org.eclipse.paho.client.mqttv3.MqttMessage; import org.greenrobot.eventbus.EventBus; +import java.util.List; + public class MqttInitCallback implements MqttCallback { private String Tag = "MqttInitCallback"; private String HOST; @@ -58,6 +61,59 @@ public class MqttInitCallback implements MqttCallback { } else if (topic.equals("qx_xunlehui")) { // ToastUtils.show("收到轮盘飘屏"); receiveXlhMessage(messageStr); + }else if (topic.equals("qx_hour_ranking")){ + receiveQXHourRanking(topic, messageStr); + } + } + + private void receiveQXHourRanking(String topic, String data) { + try { + JSONObject jsonObject = JSON.parseObject(data); + int type = jsonObject.getIntValue("type"); + String message = jsonObject.getString("msg"); + + // 将事件处理放到主线程执行 + new Handler(Looper.getMainLooper()).post(() -> { + processMessage(topic, message); + }); + } catch (Exception e) { + Log.e("MQTT", "解析MQTT消息异常", e); +// ToastUtils.show("收到礼物飘屏,解析异常"); + } + } + + private void processMessage(String topic, String data){ + try { + // 如果 data 是集合字符串 + if (isJsonArray(data)) { + // 解析为集合 + List dataList = JSON.parseArray(data, HourlyBean.class); + + // 在主线程处理集合数据 + new Handler(Looper.getMainLooper()).post(() -> { + processDataList(dataList); + }); + } + } catch (Exception e) { + Log.e("MQTT", "解析MQTT消息异常", e); + } + } + // 处理集合数据 + private void processDataList(List dataList) { + // 遍历集合并发送每个元素 +// for (HourlyBean dataItem : dataList) { +// EventBus.getDefault().post(dataItem); +// } + + // 或者发送整个集合 + EventBus.getDefault().post(dataList); + } + // 判断是否为 JSON 数组 + private boolean isJsonArray(String jsonString) { + try { + return JSON.parseArray(jsonString) != null; + } catch (Exception e) { + return false; } } private void receiveMessage(String topic, String data) { diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/utils/config/EnvironmentPrefs.java b/moduleUtil/src/main/java/com/xscm/moduleutil/utils/config/EnvironmentPrefs.java index 6fac379..a1d591a 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/utils/config/EnvironmentPrefs.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/utils/config/EnvironmentPrefs.java @@ -51,11 +51,11 @@ public class EnvironmentPrefs { // } // 默认使用生产环境 - String envName = sharedPreferences.getString(KEY_ENV, EnvironmentEnum.TEST.name()); + String envName = sharedPreferences.getString(KEY_ENV, EnvironmentEnum.PRODUCTION.name()); try { return EnvironmentEnum.valueOf(envName); } catch (IllegalArgumentException e) { - return EnvironmentEnum.TEST; // 出错时默认返回生产环境 + return EnvironmentEnum.PRODUCTION; // 出错时默认返回生产环境 } } } \ No newline at end of file diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/widget/BaseWheatView.java b/moduleUtil/src/main/java/com/xscm/moduleutil/widget/BaseWheatView.java index 450f3cc..ba101ee 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/widget/BaseWheatView.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/widget/BaseWheatView.java @@ -538,7 +538,7 @@ public abstract class BaseWheatView extends ConstraintLayout implements IBaseWhe @Subscribe(threadMode = ThreadMode.MAIN) @Override public void subscribeMessages(RoomBeckoningEvent roomBeckoningEvent) { - if (roomId.equals(roomBeckoningEvent.getRoomId())) { + if (roomId != null && roomId.equals(roomBeckoningEvent.getRoomId())) { mCharmView.setVisibility(roomBeckoningEvent.isOpen() ? VISIBLE : INVISIBLE); } } diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/widget/Constants.java b/moduleUtil/src/main/java/com/xscm/moduleutil/widget/Constants.java index aff2c81..cf73fac 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/widget/Constants.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/widget/Constants.java @@ -392,6 +392,7 @@ public class Constants { public static final String GET_GIFT_PACK_LIST_COUNT = "/api/UserGiftPack/get_gift_pack_list_count";//背包礼物总价值 public static final String ROOM_USER_RECONNECT = "/api/Room/user_reconnect";//用户重连 public static final String USER_ROOM_BACK = "/api/Room/user_in_room_background";//用户在房间内切后台保留数据操作 + public static final String ROOM_HOUR_BEAN = "/api/RoomHourRanking/room_hour_ranking";//房间小时榜 diff --git a/moduleUtil/src/main/res/layout/item_hourly_floating.xml b/moduleUtil/src/main/res/layout/item_hourly_floating.xml new file mode 100644 index 0000000..0a0f55b --- /dev/null +++ b/moduleUtil/src/main/res/layout/item_hourly_floating.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/moduleUtil/src/main/res/mipmap-xhdpi/hourly_xlh_sta.webp b/moduleUtil/src/main/res/mipmap-xhdpi/hourly_xlh_sta.webp new file mode 100644 index 0000000000000000000000000000000000000000..b35e97ea64b487c4c21067f779c9789f04330b43 GIT binary patch literal 6406 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 U5Cr}rpFV)nJ<~LfF&jVt0GhUULjV8( literal 0 HcmV?d00001 diff --git a/moduleUtil/src/main/res/mipmap-xhdpi/top1.png b/moduleUtil/src/main/res/mipmap-xhdpi/top1.png new file mode 100644 index 0000000000000000000000000000000000000000..d72b1dd6c7327bde774f332b9dc8a4c0585bd435 GIT binary patch literal 3711 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 dR_Rwp{|9VSsafkyUg>;Ve>CTXXzP$M4fdlgO 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 literal 0 HcmV?d00001 diff --git a/moduleUtil/src/main/res/mipmap-xxhdpi/dcl.png b/moduleUtil/src/main/res/mipmap-xxhdpi/dcl.png new file mode 100644 index 0000000000000000000000000000000000000000..c481a850e65cbf1499e949737eb9a1dad8c73a28 GIT binary patch literal 13129 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 literal 0 HcmV?d00001 diff --git a/moduleUtil/src/main/res/mipmap-xxxhdpi/hourl_top2.webp b/moduleUtil/src/main/res/mipmap-xxxhdpi/hourl_top2.webp new file mode 100644 index 0000000000000000000000000000000000000000..b01dab61288a5812487d4af86d8c97efe918a0f9 GIT binary patch literal 27534 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 literal 0 HcmV?d00001 diff --git a/moduleUtil/src/main/res/mipmap-xxxhdpi/hourl_top3.webp b/moduleUtil/src/main/res/mipmap-xxxhdpi/hourl_top3.webp new file mode 100644 index 0000000000000000000000000000000000000000..e68d1a9aa313719b768b9a4df0e4f5f6040f24f8 GIT binary patch literal 26034 zcmV(=K-s@iNk&GhWdHzIMM6+kP&il$0000G0002#0sylB06|PpNOwa3009{WjU-7) z^TYJ`7kmd;i0J8bAo5CbGfi^Ln<;5CnR@ooAbN*@jh_=bZtTm!BL3ZQDr6 z${+QfI|vam0qouZ;+$j64Zx*Np0ZR8YERE%xJYhuUnim>Vt6JZEJ~6sx@~hQAp#75 zz4z>WgjD$gf7rGyYol%7ah&HRI02%>>#k!Rch}q9A9r`X-QC^Y#vYk=+&gJfx6~5i z2?-Fmxa>TZC7c&+kUsP9S46;qWZOw};KAb&oEr#>==!Zml5N$tZKtZ>`Vu{@J2jMA(9CTWDJeTY46jQ18Pz zAlb=GzH51*ufPBE|NgJP|MUO;ufPBEB9@+O`M+vUlKQ$~Q9n<UH$@6~+{T$MAtnRxszQeP+?8a+#Ckgf55I0`86Iavf`Op5r(^E0J$H8+r zT$o0}48C^Ej2S?ua~uXJVW3QgVc~!cm}JU=8H^{VjsG9|?nJG##qhL4bsGn{-xUiN zDqJFrG8?Xna5)U%MXS^M{ZeqjBn%N8;2d)ePrzsP$AB4QVKTh`h3SSz0nEQDY+;2( zL%z;M0M8wTRtYY6a1sX1ObA>MW&sBIoPL@Mf&q%5B@~+q2Et�H;=$8b=`4XBC(Q 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 #FF8ACC #45D08C + #1FFFE5 + #FFFA63 #959595 #FF2727 diff --git a/moduleroom/src/main/java/com/example/moduleroom/activity/RoomActivity.kt b/moduleroom/src/main/java/com/example/moduleroom/activity/RoomActivity.kt index c9b6fa5..dd4c50e 100644 --- a/moduleroom/src/main/java/com/example/moduleroom/activity/RoomActivity.kt +++ b/moduleroom/src/main/java/com/example/moduleroom/activity/RoomActivity.kt @@ -48,8 +48,10 @@ import com.blankj.utilcode.util.ThreadUtils import com.blankj.utilcode.util.TimeUtils import com.chad.library.adapter.base.BaseQuickAdapter import com.example.moduleroom.R + import com.example.moduleroom.contacts.RoomContacts import com.example.moduleroom.databinding.ActivityRoomBinding + import com.example.moduleroom.dialog.ExitRoomBottomSheet import com.example.moduleroom.dialog.ExitRoomBottomSheet.OnOptionSelectedListener import com.example.moduleroom.dialog.FriendsDialogFragment @@ -677,7 +679,6 @@ class RoomActivity : BaseMvpActivity(), } - private val imSdkListener = object : V2TIMSDKListener() { override fun onConnecting() {} @@ -970,6 +971,12 @@ class RoomActivity : BaseMvpActivity(), newDialog.show(fm, "TourClubDialogFragment") } } + + mBinding!!.clXsb.visibility = View.GONE + mBinding!!.tvXlh.setOnClickListener { view -> + val fragment = HourlyChartDialog.newInstance() + fragment.show(supportFragmentManager, "HourlyChartDialog") + } } private fun onGiftGiveProgressClcik() { @@ -1411,12 +1418,13 @@ class RoomActivity : BaseMvpActivity(), // ToastUtils.showShort("点击了房间,事件穿透"); } - mBinding!!.roomTop.clXsb.setOnClickListener { - val fragment = HourlyChartDialog.newInstance() - if (fragment != null) { - addActiveDialogFragment(fragment) // 添加到管理列表 - } - } +// mBinding!!.clXsb.setOnClickListener { +// val fragment = HourlyChartDialog.newInstance() +// fragment.show(supportFragmentManager,"HourlyChartDialog") +// if (fragment != null) { +// addActiveDialogFragment(fragment) // 添加到管理列表 +// } +// } } @@ -1545,7 +1553,7 @@ class RoomActivity : BaseMvpActivity(), roomFragment!!.handleMsgType1028(messageEvent) } else if (msgType == 1058) { var userId = messageEvent!!.text!!.user_id!! - LogUtils.e("messageEvent!!.text.type"+messageEvent!!.text.type) + LogUtils.e("messageEvent!!.text.type" + messageEvent!!.text.type) CommonAppContext.getInstance().onlineMap.set( userId?.toString() ?: "", messageEvent!!.text.type @@ -1999,7 +2007,7 @@ class RoomActivity : BaseMvpActivity(), if ("2" == labelId) { roomFragment!!.KtvFragmentEvent(messageEvent) } else if ("1" == labelId) { - mRoomInfoResp!!.room_info.pit_list.set(pitNumber.toInt()-1, getPitBean(messageEvent)) + mRoomInfoResp!!.room_info.pit_list.set(pitNumber.toInt() - 1, getPitBean(messageEvent)) roomFragment!!.upRoomInfoData(mRoomInfoResp) roomFragment!!.SingSongEvent(messageEvent) } @@ -2076,7 +2084,7 @@ class RoomActivity : BaseMvpActivity(), if ("2" == labelId) { roomFragment!!.KtvFragmentEvent(messageEvent) } else if ("1" == labelId) { - mRoomInfoResp!!.room_info.pit_list.set(pitNumber.toInt()-1, getPitBean2(messageEvent,pitNumber)) + mRoomInfoResp!!.room_info.pit_list.set(pitNumber.toInt() - 1, getPitBean2(messageEvent, pitNumber)) roomFragment!!.upRoomInfoData(mRoomInfoResp) roomFragment!!.SingSongEvent(messageEvent) if (mRoomInfoResp!!.user_info.user_id == SpUtil.getUserId().toString() + "") { @@ -2959,12 +2967,14 @@ class RoomActivity : BaseMvpActivity(), isSwith = false AgoraManager.getInstance(this).muteLocalAudioStream(false) AgoraManager.getInstance(this).ClientRole(true) + CommonAppContext.getInstance().isMai = true } else { mBinding!!.ivMic.setImageResource(com.xscm.moduleutil.R.mipmap.room_microphone_off) AgoraManager.getInstance(this) .setLocalAudioEnabled(false, SpUtil.getUserId().toString() + "") isSwith = true isMute(1) + CommonAppContext.getInstance().isMai = false } } @@ -3389,10 +3399,14 @@ class RoomActivity : BaseMvpActivity(), mBinding!!.xlhRk.visibility = View.INVISIBLE releaseCountDownTimer1() } -// tzblChanged() - // sharedViewModel.setDataForFragment(mRoomInfoResp); -// + + if (mRoomInfoResp!!.hour_ranking_open == 1) { + mBinding!!.clXsb.visibility = View.VISIBLE + } else { + mBinding!!.clXsb.visibility = View.GONE + } } + protected fun tzblChanged() { // mBinding.dhv9.updateTzbl(SpUtil.getTzbl(roomId)); @@ -3674,7 +3688,8 @@ class RoomActivity : BaseMvpActivity(), // customMusicFloatingView.initView(); customMusicFloatingView!!.show() // 等待 View 创建完成后才绑定点击事件 - ViewUtils.waitUntilViewReady(musicWindowControl!!, + ViewUtils.waitUntilViewReady( + musicWindowControl!!, OnViewCreatedListener { view: View? -> customMusicFloatingView!!.initView() // 这里 fxControl.getView() 不再为 null customMusicFloatingView!!.updatePlayState(false) @@ -3692,15 +3707,20 @@ class RoomActivity : BaseMvpActivity(), CommonAppContext.getInstance().isRoomJoininj = false // 当Activity恢复时,重置标记 userLeaving = true - RetrofitClient.getInstance().roomUserReconnect(CommonAppContext.getInstance().playId) - if(CommonAppContext.getInstance().onConnectFailed){//判断是否有有过断开腾讯IM - CommonAppContext.getInstance().onConnectFailed=false - if (CommonAppContext.getInstance().playId!=null && !CommonAppContext.getInstance().playId.isEmpty()) { //判断是否有roomId - LogUtils.e("RoomActivity", "onResume playId:"+CommonAppContext.getInstance().playId) - MvpPre!!.postRoomInfo(CommonAppContext.getInstance().playId)//当有过断开,然后重新连接 - LogUtils.e("RoomActivity", "onResume playId:"+CommonAppContext.getInstance().playId) +// RetrofitClient.getInstance().roomUserReconnect(CommonAppContext.getInstance().playId)//重连腾讯IM +// if(CommonAppContext.getInstance().onConnectFailed){//判断是否有有过断开腾讯IM +// CommonAppContext.getInstance().onConnectFailed=false +// if (CommonAppContext.getInstance().playId!=null && !CommonAppContext.getInstance().playId.isEmpty()) { //判断是否有roomId +// LogUtils.e("RoomActivity", "onResume playId:"+CommonAppContext.getInstance().playId) +// MvpPre!!.postRoomInfo(CommonAppContext.getInstance().playId)//当有过断开,然后重新连接 +// LogUtils.e("RoomActivity", "onResume playId:"+CommonAppContext.getInstance().playId) +// +// } +// } - } + if (isInBackground) { + isInBackground = false + MvpPre!!.postRoomInfo(CommonAppContext.getInstance().playId) } // // 正常启动或从后台恢复 @@ -3963,7 +3983,9 @@ class RoomActivity : BaseMvpActivity(), AgoraManager.stopMuisc() - initializeAudio() + if (!CommonAppContext.getInstance().isMai) { + initializeAudio() + } if (mRoomInfoResp!!.room_info.label_id == "2" || mRoomInfoResp!!.room_info.type_id == "7") { mBinding!!.rlMore.visibility = View.GONE @@ -3979,6 +4001,12 @@ class RoomActivity : BaseMvpActivity(), mBinding!!.rlMore.visibility = View.GONE mBinding!!.rlMisc.visibility = View.GONE } + + if (mRoomInfoResp!!.hour_ranking_open == 1) { + mBinding!!.clXsb.visibility = View.VISIBLE + } else { + mBinding!!.clXsb.visibility = View.GONE + } } fun upHeight() { diff --git a/moduleroom/src/main/java/com/example/moduleroom/adapter/RoomHourlyAdapter.java b/moduleroom/src/main/java/com/example/moduleroom/adapter/RoomHourlyAdapter.java new file mode 100644 index 0000000..e09e061 --- /dev/null +++ b/moduleroom/src/main/java/com/example/moduleroom/adapter/RoomHourlyAdapter.java @@ -0,0 +1,61 @@ +package com.example.moduleroom.adapter; + +import android.view.View; +import com.chad.library.adapter.base.BaseQuickAdapter; +import com.chad.library.adapter.base.BaseViewHolder; +import com.example.moduleroom.R; +import com.xscm.moduleutil.bean.room.RoomHourBean; +import com.xscm.moduleutil.utils.ImageUtils; + +public class RoomHourlyAdapter extends BaseQuickAdapter { + public RoomHourlyAdapter() { + super(R.layout.item_hourly); + } + + // 定义点击监听器接口 + public interface OnItemClickListener { + void onItemClick(RoomHourBean.RoomListBean item, int position); + } + + private OnItemClickListener mOnItemClickListener; + + // 设置监听器的方法 + public void setOnItemClickListener(OnItemClickListener listener) { + this.mOnItemClickListener = listener; + } + + @Override + protected void convert(BaseViewHolder baseViewHolder, RoomHourBean.RoomListBean roomListBean) { + // 获取当前项的索引 + int position = baseViewHolder.getAdapterPosition(); + if (position == 0){ + baseViewHolder.setBackgroundRes(R.id.tv_num, com.xscm.moduleutil.R.mipmap.top1); + }else if (position == 1){ + baseViewHolder.setBackgroundRes(R.id.tv_num, com.xscm.moduleutil.R.mipmap.top2); + }else if (position == 2){ + baseViewHolder.setBackgroundRes(R.id.tv_num, com.xscm.moduleutil.R.mipmap.top3); + }else { + baseViewHolder.setText(R.id.tv_num, position+1+""); + } + + ImageUtils.loadHeadCC(roomListBean.getRoom_cover(), baseViewHolder.getView(R.id.room_tx)); + if (roomListBean.getXlh_status()==1){ + baseViewHolder.getView(R.id.im_xlh).setVisibility(View.VISIBLE); + baseViewHolder.setImageResource(R.id.im_xlh, com.xscm.moduleutil.R.mipmap.hourly_xlh_status); + }else if (roomListBean.getXlh_status()==2){ + baseViewHolder.getView(R.id.im_xlh).setVisibility(View.VISIBLE); + baseViewHolder.setImageResource(R.id.im_xlh, com.xscm.moduleutil.R.mipmap.hourly_xlh_sta); + }else { + baseViewHolder.getView(R.id.im_xlh).setVisibility(View.GONE); + } + baseViewHolder.setText(R.id.room_name, roomListBean.getRoom_name()); + ImageUtils.loadHeadCC(roomListBean.getLabel_icon(), baseViewHolder.getView(R.id.iv_type)); + baseViewHolder.setText(R.id.room_hr, roomListBean.getTotal_price()+""); +// 为整个item设置点击事件 + baseViewHolder.itemView.setOnClickListener(v -> { + if (mOnItemClickListener != null) { + mOnItemClickListener.onItemClick(roomListBean, position); + } + }); + } +} diff --git a/moduleroom/src/main/java/com/example/moduleroom/contacts/HourlyChartContacts.java b/moduleroom/src/main/java/com/example/moduleroom/contacts/HourlyChartContacts.java index 4b38047..74f6f60 100644 --- a/moduleroom/src/main/java/com/example/moduleroom/contacts/HourlyChartContacts.java +++ b/moduleroom/src/main/java/com/example/moduleroom/contacts/HourlyChartContacts.java @@ -4,13 +4,16 @@ import android.app.Activity; import com.xscm.moduleutil.activity.IPresenter; import com.xscm.moduleutil.activity.IView; +import com.xscm.moduleutil.bean.room.RoomHourBean; public class HourlyChartContacts { public interface View extends IView { + void getRoomHourRanking(RoomHourBean roomHourBean); + void findView(); } public interface IRoomPre extends IPresenter { - + void getRoomHourRanking(String page,String page_limit);// 房间小时榜 } } diff --git a/moduleroom/src/main/java/com/example/moduleroom/dialog/HourlyChartDialog.java b/moduleroom/src/main/java/com/example/moduleroom/dialog/HourlyChartDialog.java index b00a9ac..4302e1f 100644 --- a/moduleroom/src/main/java/com/example/moduleroom/dialog/HourlyChartDialog.java +++ b/moduleroom/src/main/java/com/example/moduleroom/dialog/HourlyChartDialog.java @@ -1,17 +1,37 @@ package com.example.moduleroom.dialog; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.view.Gravity; +import android.view.ViewGroup; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.LinearLayoutManager; import com.example.moduleroom.R; +import com.example.moduleroom.adapter.RoomHourlyAdapter; import com.example.moduleroom.contacts.HourlyChartContacts; import com.example.moduleroom.databinding.DialogHourlyChartFragmentBinding; import com.example.moduleroom.presenter.HourlyChartPresenter; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener; import com.xscm.moduleutil.activity.IPresenter; +import com.xscm.moduleutil.adapter.CirleListAdapter; import com.xscm.moduleutil.base.BaseMvpDialogFragment; +import com.xscm.moduleutil.base.RoomManager; +import com.xscm.moduleutil.bean.room.RoomHourBean; +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; + /** *@author qx *@data 2025/9/29 *@description:小时榜 */ public class HourlyChartDialog extends BaseMvpDialogFragment implements HourlyChartContacts.View { + private int page; + + private RoomHourlyAdapter roomHourlyAdapter; + @Override protected HourlyChartPresenter bindPresenter() { return new HourlyChartPresenter( this, getActivity()); @@ -27,14 +47,98 @@ public class HourlyChartDialog extends BaseMvpDialogFragment dismiss()); } @Override protected int getLayoutId() { return R.layout.dialog_hourly_chart_fragment; } + + @Override + public void getRoomHourRanking(RoomHourBean roomHourBean) { + if (roomHourBean!=null){ + mBinding.tvHourlyDjs.setText("榜单时间 "+roomHourBean.getTime_range()); + if (page == 1) { + if (roomHourBean.getLists() != null && !roomHourBean.getLists().isEmpty()) { + roomHourlyAdapter.setNewData(roomHourBean.getLists()); + } else { + roomHourlyAdapter.setNewData(new ArrayList<>()); // 清空旧数据并提示空状态 + } + } else { + if (roomHourBean.getLists() != null && !roomHourlyAdapter.getData().isEmpty()) { + roomHourlyAdapter.addData(roomHourBean.getLists()); + } else { + // 没有更多数据时可调用 finishLoadMoreWithNoMoreData() + mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData(); + } + } + } + } + + @Override + public void findView() { + mBinding.smartRefreshLayout.finishLoadMore() ; + mBinding.smartRefreshLayout.finishRefresh(); + } } diff --git a/moduleroom/src/main/java/com/example/moduleroom/presenter/HourlyChartPresenter.java b/moduleroom/src/main/java/com/example/moduleroom/presenter/HourlyChartPresenter.java index 9e0be60..36484cf 100644 --- a/moduleroom/src/main/java/com/example/moduleroom/presenter/HourlyChartPresenter.java +++ b/moduleroom/src/main/java/com/example/moduleroom/presenter/HourlyChartPresenter.java @@ -4,10 +4,40 @@ import android.content.Context; import com.example.moduleroom.contacts.BidListContacts; import com.example.moduleroom.contacts.HourlyChartContacts; +import com.xscm.moduleutil.bean.room.RoomHourBean; +import com.xscm.moduleutil.http.BaseObserver; import com.xscm.moduleutil.presenter.BasePresenter; +import io.reactivex.disposables.Disposable; +import org.jetbrains.annotations.NotNull; + +import java.lang.ref.WeakReference; public class HourlyChartPresenter extends BasePresenter implements HourlyChartContacts.IRoomPre{ + + HourlyChartContacts.View mView; public HourlyChartPresenter(HourlyChartContacts.View view, Context context) { super(view, context); + this.mView=view; + } + + + + @Override + public void getRoomHourRanking(String page, String page_limit) { + api.getRoomHourRanking(page, page_limit, new BaseObserver() { + @Override + public void onSubscribe(@NotNull Disposable d) { + addDisposable(d); + } + + @Override + public void onNext(@NotNull RoomHourBean roomHourBean) { + if (MvpRef==null){ + MvpRef=new WeakReference<>(mView); + } + MvpRef.get().getRoomHourRanking(roomHourBean); + MvpRef.get().findView(); + } + }); } } diff --git a/moduleroom/src/main/res/layout/activity_room.xml b/moduleroom/src/main/res/layout/activity_room.xml index 8463aa7..bcc2130 100644 --- a/moduleroom/src/main/res/layout/activity_room.xml +++ b/moduleroom/src/main/res/layout/activity_room.xml @@ -1,245 +1,245 @@ + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + tools:context=".activity.RoomActivity"> - - - - - - - + android:keepScreenOn="true"> - - - - - - - - - - - - + app:layout_constraintTop_toTopOf="parent"/> + + + + + + + + + + + + + + + + + + + android:id="@+id/svga_ride" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:minHeight="@dimen/dp_80"/> - - - - - - - - - + + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + + android:id="@+id/input_menu1" + android:layout_width="0dp" + android:layout_height="wrap_content" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent"/> + android:id="@+id/ll_bottom" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="@dimen/dp_15" + android:animateLayoutChanges="true" + android:gravity="center_vertical" + android:orientation="horizontal" + android:paddingLeft="@dimen/dp_16" + android:paddingRight="@dimen/dp_16" + app:layout_constraintBottom_toTopOf="@+id/input_menu1" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent"> + android:layout_width="0dp" + android:layout_height="@dimen/dp_36" + android:layout_weight="1.4" + android:background="@drawable/room_bottom_bg" + android:gravity="center_vertical" + android:orientation="horizontal" + android:paddingLeft="@dimen/dp_5" + android:paddingRight="@dimen/dp_5"> + android:id="@+id/iv_emoji" + android:layout_width="@dimen/dp_24" + android:layout_height="@dimen/dp_24" + android:layout_marginLeft="@dimen/dp_5" + android:src="@mipmap/mess"/> + android:id="@+id/iv_chat" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="@dimen/dp_10" + android:layout_marginRight="@dimen/dp_10" + android:text="说点什么" + android:textColor="#80ffffff" + android:textSize="@dimen/sp_13"/> + android:layout_width="0dp" + android:layout_height="1dp" + android:layout_weight="0.2"/> + android:id="@+id/rl_voive" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginEnd="@dimen/dp_5" + android:layout_weight="0.3"> + android:id="@+id/im_voive" + android:layout_width="@dimen/dp_24" + android:layout_height="@dimen/dp_24" + android:layout_centerInParent="true" + android:src="@mipmap/room_voice_kg"/> + android:id="@+id/rl_mic" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginEnd="@dimen/dp_5" + android:layout_weight="0.3" + android:gravity="center_vertical"> + android:id="@+id/iv_mic" + android:layout_width="@dimen/dp_24" + android:layout_height="@dimen/dp_24" + android:layout_centerInParent="true" + android:src="@mipmap/room_microphone_off" + android:visibility="visible" + tools:visibility="visible"/> + android:id="@+id/rl_message" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginEnd="@dimen/dp_5" + android:layout_weight="0.3"> + android:id="@+id/iv_message" + android:layout_width="@dimen/dp_24" + android:layout_height="@dimen/dp_24" + android:layout_centerInParent="true" + android:src="@mipmap/room_message" + android:visibility="visible"/> @@ -251,426 +251,450 @@ + android:id="@+id/iv_message_dot" + android:layout_width="@dimen/dp_14" + android:layout_height="@dimen/dp_14" + android:layout_alignParentEnd="true" + android:background="@drawable/ease_bg_msg_count" + android:gravity="center" + android:paddingLeft="@dimen/dp_5" + android:paddingTop="1.5dp" + android:paddingRight="@dimen/dp_5" + android:paddingBottom="2dp" + android:textColor="@color/white" + android:textSize="@dimen/sp_8" + android:visibility="gone" + tools:text="99+" + tools:visibility="visible"/> + android:id="@+id/rl_more" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginEnd="@dimen/dp_5" + android:layout_weight="0.3"> + android:id="@+id/iv_more" + android:layout_width="@dimen/dp_24" + android:layout_height="@dimen/dp_24" + android:layout_centerInParent="true" + android:src="@mipmap/room_pk"/> + android:id="@+id/rl_misc" + android:layout_width="0dp" + android:layout_height="20dp" + android:layout_marginEnd="@dimen/dp_5" + android:layout_weight="0.3"> + android:id="@+id/iv_misc" + android:layout_width="@dimen/dp_24" + android:layout_height="@dimen/dp_24" + android:layout_centerInParent="true" + android:src="@mipmap/room_mis"/> + android:id="@+id/rl_gift" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginEnd="@dimen/dp_5" + android:layout_weight="0.3"> + android:id="@+id/iv_gift" + android:layout_width="@dimen/dp_24" + android:layout_height="@dimen/dp_24" + android:layout_centerInParent="true" + android:src="@mipmap/room_gift"/> + android:id="@+id/rl_sett" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="0.3"> + android:id="@+id/iv_sett" + android:layout_width="@dimen/dp_24" + android:layout_height="@dimen/dp_24" + android:layout_centerInParent="true" + android:src="@mipmap/room_sett"/> + android:id="@+id/ll_input" + android:layout_width="0dp" + android:layout_height="0dp" + android:orientation="horizontal" + app:layout_constraintBottom_toTopOf="@id/ll_bottom" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"/> - - - - - - - - + android:id="@+id/svga_gift" + android:layout_width="0dp" + android:layout_height="0dp" + android:background="@color/transparent" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"/> + + + + + + + + - - - - - - - - + + + + + + + + + android:id="@+id/gift_show_layout" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="200dp" + android:layout_marginEnd="15dp" + android:visibility="gone" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintBottom_toTopOf="@+id/cl_first_charge" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" + tools:visibility="visible"> + android:id="@+id/gift_show_progress_img" + android:layout_width="40dp" + android:layout_height="40dp" + android:src="@mipmap/default_avatar" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"/> + android:id="@+id/gift_show_progress" + android:layout_width="60dp" + android:layout_height="60dp" + app:backColor="#FF9800" + app:backWidth="3dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:progColor="#888888" + app:progWidth="3dp" + app:progress="0"/> - - + android:id="@+id/cl_first_charge" + android:layout_width="@dimen/dp_98" + android:layout_height="@dimen/dp_43" + android:layout_marginBottom="@dimen/dp_14" + android:visibility="gone" + app:layout_constraintBottom_toTopOf="@+id/iv_sound_effects" + app:layout_constraintEnd_toEndOf="parent" + tools:visibility="visible"> + android:id="@+id/iv_first_charge" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:scaleType="centerInside" + android:src="@mipmap/paimai" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"/> + android:id="@+id/tv_first_charge" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/dp_34" + android:gravity="center" + android:text="排麦模式" + android:textColor="#FFFFFF" + android:textSize="12sp" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/iv_first_charge" + app:layout_constraintTop_toTopOf="parent"/> + android:id="@+id/tv_first" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/dp_15" + android:textColor="#FFFFFF" + android:textSize="12sp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/tv_first_charge" + tools:text="0人排队"/> + android:id="@+id/iv_sound_effects" + android:layout_width="@dimen/dp_46" + android:layout_height="@dimen/dp_78" + android:layout_marginEnd="@dimen/dp_16" + android:layout_marginBottom="@dimen/dp_14" + android:src="@mipmap/room_sound_effects" + android:visibility="gone" + app:layout_constraintBottom_toTopOf="@+id/iv_wheat_feeding" + app:layout_constraintEnd_toEndOf="parent" + tools:visibility="visible"/> - - - - + android:id="@+id/iv_wheat_feeding" + android:layout_width="@dimen/dp_56" + android:layout_height="@dimen/dp_27" + android:layout_marginEnd="@dimen/dp_16" + android:layout_marginBottom="@dimen/dp_100" + android:src="@mipmap/room_wheat_feeding" + android:translationZ="@dimen/dp_2" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + tools:visibility="visible"/> + + android:id="@+id/xlh_rk" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/dp_10" + android:layout_marginBottom="@dimen/dp_100" + android:background="@color/transparent" + android:gravity="center_vertical|center" + android:orientation="vertical" + android:visibility="invisible" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + tools:visibility="visible"> + android:id="@+id/xlh_im" + android:layout_width="@dimen/dp_80" + android:layout_height="@dimen/dp_80" + android:layout_gravity="center_vertical" + android:src="@mipmap/xlh_rk_bj" + app:riv_oval="true"/> + android:id="@+id/tv_djs" + android:layout_width="wrap_content" + android:layout_height="@dimen/dp_18" + android:layout_gravity="center_vertical" + android:textColor="#FFEBBD" + android:textSize="@dimen/sp_12" + android:visibility="visible" + tools:text="倒计时:12:12"/> + + + + + + + + + + android:id="@+id/flaoat" + android:layout_width="@dimen/dp_240" + android:layout_height="@dimen/dp_135" + android:visibility="gone" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + tools:visibility="visible"> + android:id="@+id/fl_screenshare" + android:layout_width="match_parent" + android:layout_height="match_parent"/> + android:id="@+id/iv_quan" + android:layout_width="@dimen/dp_18" + android:layout_height="@dimen/dp_18" + android:layout_gravity="end|bottom" + android:layout_marginEnd="@dimen/dp_16" + android:layout_marginBottom="@dimen/dp_5" + android:src="@mipmap/quan" + android:translationZ="10dp"/> + > + android:layout_width="wrap_content" + android:layout_height="@dimen/dp_65" + android:layout_gravity="center" + android:gravity="center" + android:orientation="horizontal"> + android:id="@+id/cl" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginStart="-5dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toEndOf="@+id/im_hq"> + android:layout_width="match_parent" + android:layout_height="match_parent" + android:scaleType="fitXY" + android:src="@mipmap/headline_b" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"/> + android:id="@+id/head_avate" + android:layout_width="@dimen/dp_28" + android:layout_height="@dimen/dp_28" + android:layout_marginStart="@dimen/dp_26" + android:src="@mipmap/default_avatar" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:riv_oval="true"/> + android:id="@+id/headName" + android:layout_width="wrap_content" + android:layout_height="@dimen/dp_18" + android:layout_marginStart="@dimen/dp_4" + android:text="名称" + android:textColor="@color/color_FFFFF0F0" + android:textSize="@dimen/sp_12" + app:layout_constraintStart_toEndOf="@+id/head_avate" + app:layout_constraintTop_toTopOf="parent"/> + android:id="@+id/head_cone" + android:layout_width="wrap_content" + android:layout_height="@dimen/dp_18" + android:layout_marginStart="@dimen/dp_4" + android:gravity="center" + android:text="内容" + android:textColor="@color/color_FFFFF0F0" + android:textSize="@dimen/sp_12" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toEndOf="@+id/head_avate" + app:layout_constraintTop_toBottomOf="@+id/headName"/> + android:id="@+id/iv_quan_qiang" + android:layout_width="@dimen/dp_22" + android:layout_height="@dimen/dp_22" + android:src="@mipmap/tt_q" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toStartOf="@+id/im_yc" + app:layout_constraintTop_toTopOf="parent"/> + android:id="@+id/iv_quan_c" + android:layout_width="@dimen/dp_22" + android:layout_height="@dimen/dp_22" + android:layout_marginEnd="@dimen/dp_8" + android:src="@mipmap/tt_c" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toStartOf="@+id/iv_quan_qiang" + app:layout_constraintTop_toTopOf="parent"/> + android:id="@+id/im_yc" + android:layout_width="@dimen/dp_22" + android:layout_height="@dimen/dp_22" + android:src="@mipmap/tt_yc" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent"/> + android:id="@+id/im_hq" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:scaleType="fitXY" + android:src="@mipmap/heab_t" + android:visibility="visible" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"/> @@ -678,25 +702,25 @@ + android:id="@+id/fullscreen_container" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@android:color/black" + android:visibility="gone"/> + android:id="@+id/iv_exit_fullscreen" + android:layout_width="@dimen/dp_24" + android:layout_height="@dimen/dp_24" + android:layout_gravity="start|top" + android:layout_marginStart="@dimen/dp_16" + android:layout_marginTop="@dimen/dp_16" + android:layout_marginEnd="@dimen/dp_50" + android:layout_marginBottom="@dimen/dp_46" + android:src="@mipmap/quan" + android:visibility="gone" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent"/> \ No newline at end of file diff --git a/moduleroom/src/main/res/layout/dialog_hourly_chart_fragment.xml b/moduleroom/src/main/res/layout/dialog_hourly_chart_fragment.xml index c434381..47ef3f7 100644 --- a/moduleroom/src/main/res/layout/dialog_hourly_chart_fragment.xml +++ b/moduleroom/src/main/res/layout/dialog_hourly_chart_fragment.xml @@ -1,67 +1,90 @@ + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools"> - - - - - - - - + android:layout_height="match_parent" + android:background="@android:color/transparent"> - - + + + + + + + + + + + + + + + + + - \ No newline at end of file + diff --git a/moduleroom/src/main/res/layout/item_hourly.xml b/moduleroom/src/main/res/layout/item_hourly.xml index 0ba8f81..506098c 100644 --- a/moduleroom/src/main/res/layout/item_hourly.xml +++ b/moduleroom/src/main/res/layout/item_hourly.xml @@ -1,84 +1,89 @@ - + - - - - + android:id="@+id/room_tx" + android:layout_width="@dimen/dp_64" + android:layout_height="@dimen/dp_64" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintBottom_toBottomOf="parent" + android:layout_marginStart="@dimen/dp_21" + android:src="@mipmap/default_avatar" + app:riv_corner_radius="@dimen/dp_6" + android:background="@drawable/bg_r6_000ff"/> + + + - + android:id="@+id/im_xlh" + android:layout_width="@dimen/dp_44" + android:layout_height="@dimen/dp_48" + android:src="@mipmap/hourly_xlh_status" + android:scaleType="fitCenter" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintEnd_toEndOf="parent" + android:layout_marginEnd="@dimen/dp_8" + android:layout_marginTop="@dimen/dp_8"/> + + android:id="@+id/room_name" + android:layout_width="wrap_content" + android:layout_height="@dimen/dp_16" + app:layout_constraintStart_toEndOf="@+id/room_tx" + app:layout_constraintTop_toTopOf="@+id/room_tx" + android:textColor="@color/color_FFFFFFE0" + android:layout_marginStart="@dimen/dp_8" + tools:text="房间名称" + android:textSize="@dimen/sp_12"/> + android:id="@+id/iv_type" + android:layout_width="@dimen/dp_44" + android:layout_height="@dimen/dp_24" + android:src="@mipmap/ic_jiaoy" + android:scaleType="fitCenter" + app:layout_constraintStart_toStartOf="@+id/room_name" + app:layout_constraintTop_toBottomOf="@+id/room_name"/> + android:id="@+id/room_hr" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + app:layout_constraintStart_toEndOf="@+id/room_tx" + app:layout_constraintTop_toBottomOf="@+id/iv_type" + android:textColor="@color/color_FFFFFFE0" + android:drawableStart="@mipmap/f_h" + android:layout_marginStart="@dimen/dp_8" + tools:text="18k" + /> \ No newline at end of file diff --git a/moduleroom/src/main/res/layout/room_top.xml b/moduleroom/src/main/res/layout/room_top.xml index b4ae27b..1ae20e2 100644 --- a/moduleroom/src/main/res/layout/room_top.xml +++ b/moduleroom/src/main/res/layout/room_top.xml @@ -123,7 +123,7 @@ - + + + + + + + + - + + + + + + + + + + - + + + + + + + + + + + + - + diff --git a/modulevocal/src/main/res/layout/item_withdrawal.xml b/modulevocal/src/main/res/layout/item_withdrawal.xml index 52f1259..2d00645 100644 --- a/modulevocal/src/main/res/layout/item_withdrawal.xml +++ b/modulevocal/src/main/res/layout/item_withdrawal.xml @@ -1,64 +1,153 @@ - + + + + + + android:id="@+id/tv_amount_value" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textSize="@dimen/sp_14" + android:layout_marginEnd="@dimen/dp_13" + android:textColor="@color/color_ff2727" + app:layout_constraintTop_toTopOf="@id/tv_amount" + app:layout_constraintEnd_toEndOf="parent" + tools:text="142.12"/> + + + android:id="@+id/tv_fee" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textSize="@dimen/sp_14" + android:textColor="@color/color_FF666666" + android:layout_marginTop="@dimen/dp_13" + app:layout_constraintTop_toBottomOf="@id/tv_amount" + app:layout_constraintStart_toStartOf="@+id/tv_amount" + tools:text="手续费"/> + android:id="@+id/tv_fee_value" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textSize="@dimen/sp_14" + android:textColor="@color/color_FF666666" + android:layout_marginEnd="@dimen/dp_13" + app:layout_constraintTop_toBottomOf="@id/tv_amount_value" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="@+id/tv_fee" + tools:text="3.21"/> + + + - + android:id="@+id/tv_tax_value" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textSize="@dimen/sp_14" + android:textColor="@color/color_666666" + android:layout_marginEnd="@dimen/dp_13" + app:layout_constraintTop_toBottomOf="@id/tv_fee_value" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="@+id/tv_tax" + tools:text="计算中..."/> + android:id="@+id/view" + android:layout_width="match_parent" + android:layout_height="@dimen/dp_1" + android:background="#F1F2F3" + android:layout_marginStart="@dimen/dp_13" + android:layout_marginEnd="@dimen/dp_13" + app:layout_constraintTop_toBottomOf="@+id/tv_tax" + app:layout_constraintStart_toStartOf="@+id/tv_tax" + app:layout_constraintEnd_toEndOf="@+id/tv_tax_value" + android:layout_marginTop="@dimen/dp_12"/> + + + + + + + + + + + + + \ No newline at end of file