diff --git a/gradle.properties b/gradle.properties index da6b6e5..57c9693 100644 --- a/gradle.properties +++ b/gradle.properties @@ -30,7 +30,7 @@ isBuildModule=false android.injected.testOnly=false APP_VERSION_NAME=1.0.0 -APP_VERSION_CODE=119 +APP_VERSION_CODE=120 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/bean/RoomUserCharmListBean.java b/moduleUtil/src/main/java/com/xscm/moduleutil/bean/RoomUserCharmListBean.java new file mode 100644 index 0000000..7fc4fa7 --- /dev/null +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/bean/RoomUserCharmListBean.java @@ -0,0 +1,21 @@ +package com.xscm.moduleutil.bean; + +import java.util.List; + +import lombok.Data; + +/** + *@author qx + *@data 2025/9/10 + *@description: 魅力详情列表 + */ +@Data +public class RoomUserCharmListBean { + private int user_id; + private String total_price; + private String nickname; + private String avatar; + private String user_code; + private int charm; + private List icon ; +} diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/utils/ClickUtils.java b/moduleUtil/src/main/java/com/xscm/moduleutil/utils/ClickUtils.java new file mode 100644 index 0000000..84c6322 --- /dev/null +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/utils/ClickUtils.java @@ -0,0 +1,19 @@ +package com.xscm.moduleutil.utils; +/** + *@author qx + *@data 2025/9/10 + *@description: 防止重复点击的工具类 + */ +public class ClickUtils { + private static final long CLICK_INTERVAL = 500; // 500ms内不允许重复点击 + private static long lastClickTime = 0; + + public static boolean isFastDoubleClick() { + long currentTime = System.currentTimeMillis(); + if (currentTime - lastClickTime < CLICK_INTERVAL) { + return true; + } + lastClickTime = currentTime; + return false; + } +} diff --git a/moduleUtil/src/main/res/mipmap-xxxhdpi/room_charm_b.png b/moduleUtil/src/main/res/mipmap-xxxhdpi/room_charm_b.png new file mode 100644 index 0000000..85d3f11 Binary files /dev/null and b/moduleUtil/src/main/res/mipmap-xxxhdpi/room_charm_b.png differ diff --git a/moduleroom/src/main/java/com/example/moduleroom/adapter/RoomCharmAdapter.java b/moduleroom/src/main/java/com/example/moduleroom/adapter/RoomCharmAdapter.java new file mode 100644 index 0000000..43021c2 --- /dev/null +++ b/moduleroom/src/main/java/com/example/moduleroom/adapter/RoomCharmAdapter.java @@ -0,0 +1,60 @@ +package com.example.moduleroom.adapter; + +import static com.xscm.moduleutil.utils.UtilConfig.getContext; + +import android.widget.ImageView; +import android.widget.LinearLayout; + +import com.chad.library.adapter.base.BaseQuickAdapter; +import com.chad.library.adapter.base.BaseViewHolder; +import com.example.moduleroom.R; +import com.xscm.moduleutil.bean.RoomUserCharmListBean; +import com.xscm.moduleutil.utils.ImageUtils; +import com.xscm.moduleutil.utils.MeHeadView; + +import java.util.List; + +/** + *@author qx + *@data 2025/9/10 + *@description: 魅力详情适配器 + */ +public class RoomCharmAdapter extends BaseQuickAdapter { + public RoomCharmAdapter() { + super(R.layout.item_charm_dialog); + } + + @Override + protected void convert(BaseViewHolder helper, RoomUserCharmListBean item) { + helper.setText(R.id.tv_nick_name, item.getNickname()); + helper.setText(R.id.tv_charm, item.getCharm()+""); + helper.setText(R.id.tv_user_id,"ID:"+item.getUser_code()); + MeHeadView headView = helper.getView(R.id.im_user); + headView.setData(item.getAvatar(), "", ""); + + LinearLayout llContainer =helper.getView(R.id.ll_in); + llContainer.removeAllViews(); // 清空旧的 ImageView + if (item.getIcon() == null){ + return; + } + List images = item.getIcon(); // 获取图片列表 + + for (String url : images) { + if (url.contains("http")) { + ImageView imageView1 = new ImageView(getContext()); + LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( + getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_37), + getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15) + ); + params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距 + imageView1.setLayoutParams(params); + imageView1.setScaleType(ImageView.ScaleType.CENTER_CROP); + + // 使用 Glide 加载图片 + ImageUtils.loadHeadCC(url, imageView1); + + llContainer.addView(imageView1); + } + } + } +} diff --git a/moduleroom/src/main/java/com/example/moduleroom/contacts/RoomCharmDialogContacts.java b/moduleroom/src/main/java/com/example/moduleroom/contacts/RoomCharmDialogContacts.java new file mode 100644 index 0000000..3b83f1b --- /dev/null +++ b/moduleroom/src/main/java/com/example/moduleroom/contacts/RoomCharmDialogContacts.java @@ -0,0 +1,20 @@ +package com.example.moduleroom.contacts; + +import android.app.Activity; + +import com.xscm.moduleutil.activity.IPresenter; +import com.xscm.moduleutil.activity.IView; +import com.xscm.moduleutil.bean.RoomUserCharmListBean; + +import java.util.List; + +public class RoomCharmDialogContacts { + public interface View extends IView { + void roomUserCharmList(List roomUserCharmListBeans); + } + + public interface IRoomPre extends IPresenter { + + void roomUserCharmList(String room_id, String user_id); + } +} diff --git a/moduleroom/src/main/java/com/example/moduleroom/dialog/RoomCharmDialog.java b/moduleroom/src/main/java/com/example/moduleroom/dialog/RoomCharmDialog.java new file mode 100644 index 0000000..628580c --- /dev/null +++ b/moduleroom/src/main/java/com/example/moduleroom/dialog/RoomCharmDialog.java @@ -0,0 +1,91 @@ +package com.example.moduleroom.dialog; + +import android.os.Bundle; +import android.view.Gravity; +import android.view.Window; +import android.view.WindowManager; + +import androidx.recyclerview.widget.LinearLayoutManager; + +import com.example.moduleroom.R; +import com.example.moduleroom.adapter.RoomCharmAdapter; +import com.example.moduleroom.contacts.RoomCharmDialogContacts; +import com.example.moduleroom.databinding.DialogCharmFragmentBinding; +import com.example.moduleroom.presenter.RoomCharmDialogPresenter; +import com.hjq.toast.ToastUtils; +import com.xscm.moduleutil.base.BaseMvpDialogFragment; +import com.xscm.moduleutil.bean.RoomUserCharmListBean; + +import java.util.ArrayList; +import java.util.List; + +/** + *@author qx + *@data 2025/9/10 + *@description: 魅力弹框 + */ +public class RoomCharmDialog extends BaseMvpDialogFragment implements RoomCharmDialogContacts.View{ + + private String mRoomId; + private String mUserId; + private RoomCharmAdapter mAdapter; + public static RoomCharmDialog newInstance(String roomId,String userId) { + RoomCharmDialog fragment = new RoomCharmDialog(); + Bundle bundle = new Bundle(); + bundle.putString("roomId", roomId); + bundle.putString("userId", userId); + fragment.setArguments(bundle); + return fragment; + } + + @Override + public void initArgs(Bundle arguments) { + super.initArgs(arguments); + mRoomId = arguments.getString("roomId"); + mUserId = arguments.getString("userId"); + } + @Override + protected RoomCharmDialogPresenter bindPresenter() { + return new RoomCharmDialogPresenter(this, getActivity()); + } + @Override + protected void initDialogStyle(Window window) { + super.initDialogStyle(window); + window.setGravity(Gravity.BOTTOM); + WindowManager.LayoutParams lp = window.getAttributes(); + lp.dimAmount = 0.5f; + // 固定对话框的宽度和高度 + lp.width = WindowManager.LayoutParams.MATCH_PARENT; // 宽度设置为屏幕宽度 + lp.height = WindowManager.LayoutParams.WRAP_CONTENT; // 高度设置为内容高度 + + window.setAttributes(lp); + window.addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); + } + @Override + protected void initData() { + MvpPre.roomUserCharmList(mRoomId, mUserId); + } + + @Override + protected void initView() { + mBinding.rvCharmList.setLayoutManager(new LinearLayoutManager(getContext())); + mAdapter = new RoomCharmAdapter(); + mBinding.rvCharmList.setAdapter(mAdapter); + } + + @Override + protected int getLayoutId() { + return R.layout.dialog_charm_fragment; + } + + @Override + public void roomUserCharmList(List roomUserCharmListBeans) { + if (roomUserCharmListBeans!=null){ + mAdapter.setNewData(roomUserCharmListBeans); + }else { + mAdapter.setNewData(new ArrayList<>()); + ToastUtils.show("暂无数据"); + } + + } +} diff --git a/moduleroom/src/main/java/com/example/moduleroom/presenter/RoomCharmDialogPresenter.java b/moduleroom/src/main/java/com/example/moduleroom/presenter/RoomCharmDialogPresenter.java new file mode 100644 index 0000000..0e4677b --- /dev/null +++ b/moduleroom/src/main/java/com/example/moduleroom/presenter/RoomCharmDialogPresenter.java @@ -0,0 +1,44 @@ +package com.example.moduleroom.presenter; + +import android.content.Context; + +import com.example.moduleroom.contacts.BidListContacts; +import com.example.moduleroom.contacts.RoomCharmDialogContacts; +import com.xscm.moduleutil.bean.RoomUserCharmListBean; +import com.xscm.moduleutil.http.BaseObserver; +import com.xscm.moduleutil.presenter.BasePresenter; + +import java.lang.ref.WeakReference; +import java.util.List; + +import io.reactivex.disposables.Disposable; + +public class RoomCharmDialogPresenter extends BasePresenter implements RoomCharmDialogContacts.IRoomPre { + + RoomCharmDialogContacts.View mView; + + public RoomCharmDialogPresenter(RoomCharmDialogContacts.View view, Context context) { + super(view, context); + mView = view; + } + + + @Override + public void roomUserCharmList(String room_id, String user_id) { + api.roomUserCharmList(room_id, user_id,new BaseObserver>() { + + @Override + public void onSubscribe(Disposable d) { + addDisposable(d); + } + + @Override + public void onNext(List roomUserCharmListBeans) { + if (MvpRef==null){ + MvpRef=new WeakReference<>(mView); + } + MvpRef.get().roomUserCharmList(roomUserCharmListBeans); + } + }); + } +} diff --git a/moduleroom/src/main/res/layout/custom_tab_layou_giftt.xml b/moduleroom/src/main/res/layout/custom_tab_layou_giftt.xml new file mode 100644 index 0000000..f510cbe --- /dev/null +++ b/moduleroom/src/main/res/layout/custom_tab_layou_giftt.xml @@ -0,0 +1,15 @@ + + + + + + diff --git a/moduleroom/src/main/res/layout/dialog_charm_fragment.xml b/moduleroom/src/main/res/layout/dialog_charm_fragment.xml new file mode 100644 index 0000000..0c54c75 --- /dev/null +++ b/moduleroom/src/main/res/layout/dialog_charm_fragment.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/moduleroom/src/main/res/layout/item_charm_dialog.xml b/moduleroom/src/main/res/layout/item_charm_dialog.xml new file mode 100644 index 0000000..70efcee --- /dev/null +++ b/moduleroom/src/main/res/layout/item_charm_dialog.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modulevocal/src/main/res/layout/fragment_revenue.xml b/modulevocal/src/main/res/layout/fragment_revenue.xml index c4a9c7a..6f8db0a 100644 --- a/modulevocal/src/main/res/layout/fragment_revenue.xml +++ b/modulevocal/src/main/res/layout/fragment_revenue.xml @@ -30,10 +30,10 @@ android:layout_height="wrap_content" android:layout_marginStart="@dimen/dp_12" android:layout_weight="1" - tools:text="开始日期" android:hint="开始日期" android:textColor="@color/color_FF999999" - android:textSize="12sp" /> + android:textSize="12sp" + tools:text="开始日期" /> + android:textSize="12sp" + tools:text="结束日期" /> + + + - - - - + app:srlEnableLoadMore="true" + app:srlEnableRefresh="true"> - - - - - + android:layout_height="wrap_content" + android:orientation="vertical"> + + + + + + + \ No newline at end of file