diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/bean/RoonGiftModel.java b/BaseModule/src/main/java/com/xscm/moduleutil/bean/RoonGiftModel.java index 91cb2d94..388a23cf 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/bean/RoonGiftModel.java +++ b/BaseModule/src/main/java/com/xscm/moduleutil/bean/RoonGiftModel.java @@ -13,7 +13,7 @@ public class RoonGiftModel { private String gift_name;//礼物名称 private String base_image;//礼物图片 private String gift_price;//礼物价格 - private String gift_id;//礼物id + private String gift_id="";//礼物id private String gift_bag_name; private String rule; private String rule_url; @@ -38,6 +38,12 @@ public class RoonGiftModel { private int is_cp;//1:是 0:不是 是不是cp心动礼物 private int is_teacher;//1:是 0:不是 是不是师徒礼物 + + + //下面是在酒吧房使用的参数 + private int id; + private String new_gift_name="";//用户设置的礼物内容 + public boolean isCan_send_self() { if ( isManghe()) { return true; diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/http/ApiServer.java b/BaseModule/src/main/java/com/xscm/moduleutil/http/ApiServer.java index e9f4645a..0d076fee 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/http/ApiServer.java +++ b/BaseModule/src/main/java/com/xscm/moduleutil/http/ApiServer.java @@ -40,6 +40,10 @@ public interface ApiServer { @POST(Constants.MODIFY_MOBILE) Call> mobileView(@Field("mobile") String mobile, @Field("new_mobile") String new_mobile, @Field("sms_code") String sms_code,@Field("new_sms_code") String new_sms_code); + @FormUrlEncoded + @POST(Constants.SET_PIT_TIME) + Call> setPitTime(@Field("room_id") String roomId, @Field("time") String time); + @GET(Constants.GET_FESTIVAL_THEME) Call> getFestivalThemeBean(); @@ -353,6 +357,15 @@ public interface ApiServer { @GET(Constants.GIFT_LIST) Call>> getGiftList(@Query("label") int label, @Query("room_id") String room_id); + @GET(Constants.GET_CUSTOM_GIFT_LIST) + Call>> getCustomGiftList(); + + @GET(Constants.GET_NEW_GIFT_LIST) + Call>> getNewGiftList(@Query("label") int label, @Query("type") String type ); + + @GET(Constants.SET_CUSTOM_GIFT) + Call> setCustomGift(@Query("gift_id") String gift_id, @Query("new_gift_name") String new_gift_name ); + @GET(Constants.TOPIC_LIST) //获取话题 Call>> topicList(@Query("page") String page, @Query("page_limit") String page_limit); diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java b/BaseModule/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java index a7c7d677..5bb5351b 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java +++ b/BaseModule/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java @@ -304,7 +304,26 @@ public class RetrofitClient { LogUtils.e("getFestivalTheme", t.toString()); } }); + } + public void setPitTime(String room_id,String time,BaseObserver observer) { + sApiServer.setPitTime(room_id,time).enqueue(new Callback>() { + + @Override + public void onResponse(Call> call, Response> response) { + if (response.code() == 200) { + onNextRetu(response, observer); + }else { + ToastUtils.showLong("麦位时长设置错误", response.code()); + LogUtils.e("setPitTime", response.message()); + } + } + + @Override + public void onFailure(Call> call, Throwable t) { + LogUtils.e("setPitTime", t.toString()); + } + }); } public void mobileView(String mobile, String new_mobile, String sms_code, String new_sms_code, BaseObserver observer) { @@ -2247,6 +2266,78 @@ public class RetrofitClient { }); } + public void getCustomGiftList(BaseObserver> observer) { + sApiServer.getCustomGiftList().enqueue(new Callback>>() { + @Override + public void onResponse(Call>> call, Response>> response) { + if (response.code() == 200) { + BaseModel> listBaseModel = response.body(); + if (listBaseModel.getCode() == 1) { + observer.onNext(listBaseModel.getData()==null ? new ArrayList<>() : listBaseModel.getData()); + } else if (listBaseModel.getCode() == 0) { + ToastUtils.showLong(listBaseModel.getMsg()); + } else if (listBaseModel.getCode() == 301) { + setCode301(listBaseModel.getMsg()); + } + } else { + ToastUtils.showLong("自定义礼物数据错误",response.code()); + LogUtils.e("getGiftList", response.message()); + } + } + + @Override + public void onFailure(Call>> call, Throwable t) { + LogUtils.e("getGiftList", t.fillInStackTrace()); + } + }); + } + public void getNewGiftList(int label,String type,BaseObserver> observer) { + sApiServer.getNewGiftList(label,type).enqueue(new Callback>>() { + @Override + public void onResponse(Call>> call, Response>> response) { + if (response.code() == 200) { + BaseModel> listBaseModel = response.body(); + if (listBaseModel.getCode() == 1) { + observer.onNext(listBaseModel.getData()==null ? new ArrayList<>() : listBaseModel.getData()); + } else if (listBaseModel.getCode() == 0) { + ToastUtils.showLong(listBaseModel.getMsg()); + } else if (listBaseModel.getCode() == 301) { + setCode301(listBaseModel.getMsg()); + } + } else { + ToastUtils.showLong("酒吧房礼物数据错误",response.code()); + LogUtils.e("getGiftList", response.message()); + } + } + + @Override + public void onFailure(Call>> call, Throwable t) { + LogUtils.e("getGiftList", t.fillInStackTrace()); + } + }); + } + + public void setCustomGift(String gift_id, String new_gift_name, BaseObserver observer) { + sApiServer.setCustomGift(gift_id, new_gift_name).enqueue(new Callback>() { + + @Override + public void onResponse(Call> call, Response> response) { + if (response.code() == 200) { + onNextRetu(response,observer); + }else { + ToastUtils.showLong("自定义礼物设置错误",response.code()); + LogUtils.e("setCustomGift", response.message()); + } + } + + @Override + public void onFailure(Call> call, Throwable t) { + LogUtils.e("setCustomGift", t.fillInStackTrace()); + } + }); + + } + public void singerUpdateSong(String songId, String song_name, String gift_id, String gift_num, BaseObserver observer) { sApiServer.singerUpdateSong(songId, song_name, gift_id, gift_num).enqueue(new Callback>() { diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/widget/Constants.java b/BaseModule/src/main/java/com/xscm/moduleutil/widget/Constants.java index 6df28040..fa0bf35d 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/widget/Constants.java +++ b/BaseModule/src/main/java/com/xscm/moduleutil/widget/Constants.java @@ -225,6 +225,9 @@ public class Constants { public static final String GET_REWARD_LIST = "/api/UserZone/reward_list";//动态打赏列表 public static final String GET_GIFT_LABEL = "/api/Gift/get_gift_label";//礼物标签 public static final String GIFT_LIST = "/api/Gift/get_gift_list";//礼物列表 + public static final String GET_CUSTOM_GIFT_LIST = "/api/GiftNew/get_custom_gift_list";//自定义礼物列表 + public static final String GET_NEW_GIFT_LIST = "/api/GiftNew/get_gift_list";//新礼物列表 + public static final String SET_CUSTOM_GIFT = "/api/GiftNew/set_custom_gift";//自定义礼物设置 public static final String TOPIC_LIST = "/api/UserZone/topic_list";//获取话题列表 public static final String PUBLISH_ZONE = "/api/UserZone/publish_zone";//发布动态 public static final String GET_CATEGORIES = "/api/UserZone/get_zone_topic";//动态引用的四条话题 @@ -452,9 +455,9 @@ public class Constants { public static final String POST_DAILY_TASKS_SIGN_STATUS = "/api/Tasks/dailyTasksSignStatus";//每日签到状态 - -// public static final String MODIFY_MOBILE = "/api/UserData/modify_mobile";//手机换绑 + // public static final String MODIFY_MOBILE = "/api/UserData/modify_mobile";//手机换绑 public static final String MODIFY_MOBILE = "/api/UserData/modify_mobiles";//手机换绑 + public static final String SET_PIT_TIME = "/api/BarRoom/set_pit_time";//房间麦位时长设置 public static final String BIND_MOBILE = "/api/UserData/bind_mobile";//手机绑定 public static final String GET_FESTIVAL_THEME = "/api/Theme/get_festival_theme";//节日主题接口 public static final String GET_PERSONALTY_LIST_BEAN = "/api/Decorate/get_decorate_list";//装饰列表 @@ -467,5 +470,4 @@ public class Constants { public static final String POST_SIGN_COIN = "/api/Sign/sign_coin";//签约出价 - } diff --git a/BaseModule/src/main/res/mipmap-hdpi/icon_bar.png b/BaseModule/src/main/res/mipmap-hdpi/icon_bar.png new file mode 100644 index 00000000..65dc1aff Binary files /dev/null and b/BaseModule/src/main/res/mipmap-hdpi/icon_bar.png differ diff --git a/BaseModule/src/main/res/mipmap-xhdpi/icon_bar.png b/BaseModule/src/main/res/mipmap-xhdpi/icon_bar.png new file mode 100644 index 00000000..56e06076 Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xhdpi/icon_bar.png differ diff --git a/BaseModule/src/main/res/mipmap-xxhdpi/icon_bar.png b/BaseModule/src/main/res/mipmap-xxhdpi/icon_bar.png new file mode 100644 index 00000000..674e5132 Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xxhdpi/icon_bar.png differ diff --git a/BaseModule/src/main/res/mipmap-xxhdpi/icon_make_friends.png b/BaseModule/src/main/res/mipmap-xxhdpi/icon_make_friends.png new file mode 100644 index 00000000..cf680ece Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xxhdpi/icon_make_friends.png differ diff --git a/BaseModule/src/main/res/mipmap-xxhdpi/room_make.png b/BaseModule/src/main/res/mipmap-xxhdpi/room_make.png new file mode 100644 index 00000000..20bbe73b Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xxhdpi/room_make.png differ diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/room/activity/RoomActivity.kt b/MainModule/src/main/java/com/xscm/modulemain/activity/room/activity/RoomActivity.kt index d59c2c09..df208a2c 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/activity/room/activity/RoomActivity.kt +++ b/MainModule/src/main/java/com/xscm/modulemain/activity/room/activity/RoomActivity.kt @@ -95,6 +95,7 @@ import com.xscm.modulemain.dialog.RoomPkDialogFragment import com.xscm.modulemain.dialog.RoomSettingFragment import com.xscm.modulemain.dialog.SoundEffectsDialogFragment import com.xscm.modulemain.dialog.TourClubDialogFragment +import com.xscm.modulemain.dialog.barRoom.MakeFriendsDialog import com.xscm.modulemain.manager.RoomManager import com.xscm.modulemain.service.ForegroundService import com.xscm.modulemain.service.RoomPlayService @@ -498,6 +499,11 @@ class RoomActivity : BaseMvpActivity(), view ) } + mBinding!!.roomTop.rl2.setOnClickListener { view: View -> + this.onClick( + view + ) + } mBinding!!.ivSoundEffects.setOnClickListener { view: View -> this.onClick( view @@ -2603,7 +2609,10 @@ class RoomActivity : BaseMvpActivity(), ) } else if (id == R.id.rl) { MvpPre!!.clearUserCharm(roomId, "") - } else if (id == R.id.ll_input) { + }else if (id == R.id.rl2) { + MakeFriendsDialog(this, roomId).show() + } + else if (id == R.id.ll_input) { mBinding?.llInput?.visibility = View.GONE mBinding?.inputMenu1?.dismiss() } else if (id == R.id.iv_emoji) { @@ -4024,6 +4033,7 @@ class RoomActivity : BaseMvpActivity(), mBinding!!.roomTop.btnCloseLive.setOnClickListener(null) mBinding!!.roomTop.tvNum.setOnClickListener(null) mBinding!!.roomTop.rl.setOnClickListener(null) + mBinding!!.roomTop.rl2.setOnClickListener(null) mBinding!!.ivSoundEffects.setOnClickListener(null) mBinding!!.ivWheatFeeding.setOnClickListener(null) mBinding!!.clFirstCharge.setOnClickListener(null) @@ -4279,6 +4289,16 @@ class RoomActivity : BaseMvpActivity(), } else { mBinding?.roomTop?.rl?.visibility = View.GONE } + userMakeVisibility() + } + + // TODO: 判断房间类型是否是酒吧房,只有酒吧房才会有交友小屋,其他房间类型没有 + private fun userMakeVisibility(){ + if(mRoomInfoResp?.room_info?.type_id=="11"){ + mBinding?.roomTop?.rl2?.visibility = View.VISIBLE + }else{ + mBinding?.roomTop?.rl2?.visibility = View.GONE + } } @SuppressLint("MissingInflatedId") diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomJukeboxFragment.java b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomJukeboxFragment.java index 1f0dbebc..d17d2e17 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomJukeboxFragment.java +++ b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomJukeboxFragment.java @@ -93,13 +93,16 @@ public class RoomJukeboxFragment extends BaseMvpFragment indexList[idx].toInt() - 1) { view.setRoomWheatNumber(indexList[idx]) @@ -71,14 +78,21 @@ class RoomPubFragment(var mRoomInfoResp: RoomInfoResp?) : view.iv_custom_gift?.setOnClickListener { ToastUtils.showShort("礼物") + GiftGivingDialog(ActivityUtils.getTopActivity(), mRoomId,view.pitBean.user_id,view.pitBean.nickname,view.pitBean.avatar).show() } view.ivYueT?.setOnClickListener { ToastUtils.showShort("约她") + RoomAboutDialog(ActivityUtils.getTopActivity(),mRoomId,view.pitBean.user_id,view.pitBean.nickname,view.pitBean.avatar).show() } view.ivLiaoT?.setOnClickListener { ToastUtils.showShort("撩她") + if (!SpUtil.getBooleanValue("pub", false)) { + FlirtatiousDialog(ActivityUtils.getTopActivity()).show() + }else{ + + } } view.setOnClickListener { v -> @@ -132,6 +146,21 @@ class RoomPubFragment(var mRoomInfoResp: RoomInfoResp?) : mBinding.ivSetTime.setOnClickListener { RoomDurationDialog(ActivityUtils.getTopActivity(),mRoomId).show() } + mBinding.ivCustomGift.setOnClickListener { + SetupCustomGiftDialog(ActivityUtils.getTopActivity(), mRoomId).show() + } + + mBinding.ivPubHeart.setOnClickListener { + //酒吧房规则 + val bundle = Bundle() + bundle.putString( + "url", + CommonAppContext.getInstance() + .getCurrentEnvironment().serverUrl + "api/Page/page_show?id=36" + ) + val dialog = RoomAuctionWebViewDialog(ActivityUtils.getTopActivity(), bundle) + dialog.show() + } } fun roomInfoUpdate(roomInfoResp: RoomInfoResp) { diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/user/activity/AlbumDetailActivity.java b/MainModule/src/main/java/com/xscm/modulemain/activity/user/activity/AlbumDetailActivity.java index 6023cf29..2a432838 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/activity/user/activity/AlbumDetailActivity.java +++ b/MainModule/src/main/java/com/xscm/modulemain/activity/user/activity/AlbumDetailActivity.java @@ -86,6 +86,7 @@ public class AlbumDetailActivity extends BaseMvpActivity() { + + class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + // 在这里定义你的视图组件,例如: + // val imageView: ImageView = itemView.findViewById(R.id.imageView) + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + // 使用你的实际布局资源替换 R.layout.item_fixed + val view = LayoutInflater.from(parent.context) + .inflate(R.layout.item_make_friends, parent, false) + + return ViewHolder(view) + } + + override fun onBindViewHolder(holder: ViewHolder, position: Int) { + // 设置点击监听器 +// holder.itemView.setOnClickListener { +// itemClickListener?.invoke(position) +// } + + // 如果所有图片都一样,可以在这里设置相同的图片资源 + // holder.imageView.setImageResource(R.drawable.your_image) + } + + override fun getItemCount(): Int { + return itemCount + } + + /** + * 更新项目数量 + */ + fun updateCount(newCount: Int) { + // 如果使用DiffUtil,可以实现更高效的更新 + notifyDataSetChanged() + } +} diff --git a/MainModule/src/main/java/com/xscm/modulemain/adapter/HorizontalListAdapter.java b/MainModule/src/main/java/com/xscm/modulemain/adapter/HorizontalListAdapter.java index e129532b..a80b35e8 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/adapter/HorizontalListAdapter.java +++ b/MainModule/src/main/java/com/xscm/modulemain/adapter/HorizontalListAdapter.java @@ -120,6 +120,8 @@ public class HorizontalListAdapter extends RecyclerView.Adapter, 53 ) tv_wheat_qd.setTextColor(ColorManager.getInstance().buttonColorInt) + tv_gift_desc.text = item.new_gift_name tv_wheat_qd.setOnClickListener { // 回调选中的值和位置 diff --git a/MainModule/src/main/java/com/xscm/modulemain/adapter/RoomSettingAdapter.java b/MainModule/src/main/java/com/xscm/modulemain/adapter/RoomSettingAdapter.java index ecf2daf7..fc3448db 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/adapter/RoomSettingAdapter.java +++ b/MainModule/src/main/java/com/xscm/modulemain/adapter/RoomSettingAdapter.java @@ -111,7 +111,7 @@ public class RoomSettingAdapter extends BaseQuickAdapter, diff --git a/MainModule/src/main/java/com/xscm/modulemain/adapter/SetupCustomGiftAdapter.kt b/MainModule/src/main/java/com/xscm/modulemain/adapter/SetupCustomGiftAdapter.kt index 001be9f5..3edb0096 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/adapter/SetupCustomGiftAdapter.kt +++ b/MainModule/src/main/java/com/xscm/modulemain/adapter/SetupCustomGiftAdapter.kt @@ -1,5 +1,6 @@ package com.xscm.modulemain.adapter +import android.graphics.Color import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -47,6 +48,13 @@ class SetupCustomGiftAdapter(private val dataList: List, fun bind(item: RoonGiftModel, position: Int) { tv_gift_name.text = item.gift_name tv_gift_price.text = item.gift_price + if (item.new_gift_name.isNotEmpty()) { + tv_gift_desc.text = item.new_gift_name + tv_gift_desc.setTextColor(Color.parseColor("#F5F24F")) // 金色 + } else { + tv_gift_desc.text = "待设置" + tv_gift_desc.setTextColor(Color.parseColor("#999999")) // 灰色 + } //加载礼物图片 ImageUtils.loadImageView(item.getBase_image(), iv_gift_pic) diff --git a/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/FlirtatiousDialog.kt b/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/FlirtatiousDialog.kt index 9ec0f100..b7154498 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/FlirtatiousDialog.kt +++ b/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/FlirtatiousDialog.kt @@ -1,20 +1,19 @@ package com.xscm.modulemain.dialog.barRoom import android.content.Context -import android.content.Intent import android.view.Gravity +import android.view.View import android.view.ViewGroup -import com.blankj.utilcode.util.ActivityUtils.startActivity +import com.blankj.utilcode.util.LogUtils import com.blankj.utilcode.util.ScreenUtils import com.xscm.modulemain.R -import com.xscm.modulemain.activity.user.activity.RechargeActivity -import com.xscm.modulemain.databinding.DialogAboutRoomBinding import com.xscm.modulemain.databinding.DialogFlirtatiousBinding import com.xscm.moduleutil.bean.WalletBean import com.xscm.moduleutil.color.ThemeableDrawableUtils import com.xscm.moduleutil.http.BaseObserver import com.xscm.moduleutil.http.RetrofitClient import com.xscm.moduleutil.utils.ColorManager +import com.xscm.moduleutil.utils.SpUtil import com.xscm.moduleutil.widget.dialog.BaseDialog import io.reactivex.disposables.Disposable @@ -56,7 +55,15 @@ class FlirtatiousDialog(context: Context) : onConfirmCallback?.invoke("") dismiss() } - + mBinding.tvCancel.setOnClickListener { + dismiss() + } + mBinding.vCheckbox.setOnClickListener { + it.isSelected = !it.isSelected + if (it.isSelected) { + SpUtil.setBooleanValue("pub", true) + } + } } diff --git a/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/GiftGivingDialog.kt b/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/GiftGivingDialog.kt index e6bfd4e4..155ff133 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/GiftGivingDialog.kt +++ b/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/GiftGivingDialog.kt @@ -1,6 +1,7 @@ package com.xscm.modulemain.dialog.barRoom import android.content.Context +import android.text.TextUtils import android.view.Gravity import android.view.ViewGroup import androidx.recyclerview.widget.GridLayoutManager @@ -12,6 +13,7 @@ import com.xscm.modulemain.databinding.DialogGiftGivingBinding import com.xscm.moduleutil.bean.RoonGiftModel import com.xscm.moduleutil.http.BaseObserver import com.xscm.moduleutil.http.RetrofitClient +import com.xscm.moduleutil.utils.ImageUtils import com.xscm.moduleutil.widget.dialog.BaseDialog import io.reactivex.disposables.Disposable @@ -20,9 +22,21 @@ import io.reactivex.disposables.Disposable * 时间:2026/1/5 10:41 * 用途:酒吧房赠送自定义礼物 */ -class GiftGivingDialog (context: Context, val roomId: String) : +class GiftGivingDialog( + context: Context, + roomId: String, + userId: String, + username: String, + avatar: String +) : BaseDialog(context, com.xscm.moduleutil.R.style.BaseDialogStyleH) { + // 将参数存储为私有变量,避免在基类构造函数调用时被访问 + private var mRoomId: String = roomId + private var mUserId: String = userId + private var mUsername: String = username + private var mAvatar: String = avatar + var adapter: RoomGiftGivingAdapter? = null var time: MutableList = mutableListOf() @@ -33,42 +47,62 @@ class GiftGivingDialog (context: Context, val roomId: String) : override fun initView() { setupWindow() - val layoutManager = GridLayoutManager(context, 4) + val layoutManager = GridLayoutManager(context, 3) mBinding.recycleView.layoutManager = layoutManager mBinding.recycleView.adapter = adapter + + mBinding.ivClose.setOnClickListener { + dismiss() + } } override fun initData() { - // TODO: 这里调用的事设置插队礼物接口 - RetrofitClient.getInstance().getGiftList(1,roomId,object : BaseObserver>() { - override fun onSubscribe(d: Disposable) { - } + // 不在这里初始化数据,改为在 show() 方法中初始化 + } - override fun onNext(t: MutableList) { - if (t.isNotEmpty()) { - adapter = RoomGiftGivingAdapter(t) { selectedValue, position -> - // 处理选中事件 - LogUtils.e("选中了: $selectedValue, 位置: $position") - } + // 重写 show() 方法,在显示 Dialog 之前初始化数据 + override fun show() { + // 确保参数不为空 + if (!TextUtils.isEmpty(mUsername)) { + mBinding.tvName.text = mUsername + } + if (!TextUtils.isEmpty(mAvatar)) { + ImageUtils.loadHead(mAvatar, mBinding.ivAvatar) + } - // 设置GridLayoutManager,每行显示4个item - val layoutManager = - GridLayoutManager(context, 4) - mBinding.recycleView.layoutManager = layoutManager - mBinding.recycleView.adapter = adapter + // 调用父类的 show() 方法 + super.show() + + // TODO: 调用赠送自定义礼物。点击麦位上左边的最小图标 + RetrofitClient.getInstance() + .getCustomGiftList(object : BaseObserver>() { + override fun onSubscribe(d: Disposable) { } - } - }) + override fun onNext(t: MutableList) { + if (t.isNotEmpty()) { + adapter = RoomGiftGivingAdapter(t) { selectedValue, position -> + // 处理选中事件,使用roomId和userId + LogUtils.e("选中了: $selectedValue, 位置: $position, roomId: $mRoomId, userId: $mUserId") + } + + // 设置GridLayoutManager,每行显示4个item + val layoutManager = + GridLayoutManager(context, 3) + mBinding.recycleView.layoutManager = layoutManager + mBinding.recycleView.adapter = adapter + } + } + }) } private fun setupWindow() { val window = window ?: return - window.setGravity(Gravity.BOTTOM) + window.setGravity(Gravity.CENTER) window.setLayout( - ViewGroup.LayoutParams.MATCH_PARENT, - (ScreenUtils.getAppScreenHeight() * 348f / 812).toInt() + (ScreenUtils.getAppScreenWidth() * 287f / 375).toInt(), + (ScreenUtils.getAppScreenHeight() * 290f / 812).toInt() ) window.setBackgroundDrawableResource(android.R.color.transparent) diff --git a/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/MakeFriendsDialog.kt b/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/MakeFriendsDialog.kt new file mode 100644 index 00000000..f6d1d359 --- /dev/null +++ b/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/MakeFriendsDialog.kt @@ -0,0 +1,85 @@ +package com.xscm.modulemain.dialog.barRoom + +import android.content.Context +import android.view.Gravity +import android.view.ViewGroup +import androidx.recyclerview.widget.GridLayoutManager +import com.blankj.utilcode.util.LogUtils +import com.blankj.utilcode.util.ScreenUtils +import com.xscm.modulemain.R +import com.xscm.modulemain.adapter.FixedItemAdapter +import com.xscm.modulemain.adapter.RoomGiftGivingAdapter +import com.xscm.modulemain.databinding.DialogGiftGivingBinding +import com.xscm.modulemain.databinding.DialogMakeFriendsBinding +import com.xscm.moduleutil.bean.RoonGiftModel +import com.xscm.moduleutil.http.BaseObserver +import com.xscm.moduleutil.http.RetrofitClient +import com.xscm.moduleutil.widget.dialog.BaseDialog +import io.reactivex.disposables.Disposable + +/** + * 项目名称:羽声语音 + * 时间:2026/1/5 19:27 + * 用途:交友小屋弹窗 + */ +class MakeFriendsDialog(context: Context, val roomId: String?) : + BaseDialog(context, com.xscm.moduleutil.R.style.BaseDialogStyleH) { + + var adapter: FixedItemAdapter? = null + + override fun getLayoutId(): Int { + return R.layout.dialog_make_friends + } + + override fun initView() { + setupWindow() + + val layoutManager = GridLayoutManager(context, 2) + mBinding.recycleView.layoutManager = layoutManager + mBinding.recycleView.adapter = adapter + } + + + override fun initData() { + // TODO: 这里调用的事设置插队礼物接口 +// RetrofitClient.getInstance().getGiftList(1,roomId,object : BaseObserver>() { +// override fun onSubscribe(d: Disposable) { +// } +// +// override fun onNext(t: MutableList) { +// if (t.isNotEmpty()) { +// adapter = RoomGiftGivingAdapter(t) { selectedValue, position -> +// // 处理选中事件 +// LogUtils.e("选中了: $selectedValue, 位置: $position") +// } +// +// // 设置GridLayoutManager,每行显示4个item +// val layoutManager = +// GridLayoutManager(context, 4) +// mBinding.recycleView.layoutManager = layoutManager +// mBinding.recycleView.adapter = adapter +// } +// } +// }) + val layoutManager = + GridLayoutManager(context, 2) + adapter= FixedItemAdapter(15) + mBinding.recycleView.layoutManager = layoutManager + mBinding.recycleView.adapter = adapter + + } + + private fun setupWindow() { + val window = window ?: return + window.setGravity(Gravity.BOTTOM) + window.setLayout( + ViewGroup.LayoutParams.MATCH_PARENT, + (ScreenUtils.getAppScreenHeight() * 400f / 812).toInt() + ) + window.setBackgroundDrawableResource(android.R.color.transparent) + + val params = window.attributes + params.windowAnimations = com.xscm.moduleutil.R.style.BaseDialogStyleH + window.attributes = params + } +} \ No newline at end of file diff --git a/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/PerformInputDialog.kt b/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/PerformInputDialog.kt index b041cf64..f87f1d50 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/PerformInputDialog.kt +++ b/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/PerformInputDialog.kt @@ -6,6 +6,7 @@ import android.view.ViewGroup import com.blankj.utilcode.util.ScreenUtils import com.xscm.modulemain.R import com.xscm.modulemain.databinding.DialogPerformInputBinding +import com.xscm.moduleutil.bean.RoonGiftModel import com.xscm.moduleutil.color.ThemeableDrawableUtils import com.xscm.moduleutil.utils.ColorManager import com.xscm.moduleutil.widget.dialog.BaseDialog @@ -18,15 +19,18 @@ import com.xscm.moduleutil.widget.dialog.BaseDialog class PerformInputDialog(context: Context) : BaseDialog(context, com.xscm.moduleutil.R.style.BaseDialogStyleH) { + private var giftModel: RoonGiftModel? = null + // 定义回调接口 private var onConfirmCallback: ((String) -> Unit)? = null - // 设置回调接口的方法 fun setOnConfirmListener(callback: (String) -> Unit): PerformInputDialog { onConfirmCallback = callback return this } + + override fun getLayoutId(): Int { return R.layout.dialog_perform_input } @@ -51,12 +55,16 @@ class PerformInputDialog(context: Context) : mBinding.tvConfirm.setOnClickListener { val inputText = mBinding.etInput.text.toString().trim() onConfirmCallback?.invoke(inputText) - dismiss() } } override fun initData() { // 初始化数据,如果需要的话 + giftModel?.let { model -> + if (model.new_gift_name?.isNotEmpty() == true) { + mBinding.etInput.setText(model.new_gift_name) + } + } } private fun setupWindow() { @@ -72,4 +80,24 @@ class PerformInputDialog(context: Context) : params.windowAnimations = com.xscm.moduleutil.R.style.BaseDialogStyleH window.attributes = params } + + fun show(item: RoonGiftModel?) { + giftModel = item + super.show() + // 确保在显示后立即刷新数据 + refreshData() + } + + private fun refreshData() { + giftModel?.let { model -> + if (model.new_gift_name?.isNotEmpty() == true) { + mBinding.etInput.setText(model.new_gift_name) + } + } + } + + override fun dismiss() { + super.dismiss() + mBinding.etInput.text?.clear() + } } \ No newline at end of file diff --git a/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/RoomAboutDialog.kt b/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/RoomAboutDialog.kt index fbcfebac..ea243a8d 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/RoomAboutDialog.kt +++ b/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/RoomAboutDialog.kt @@ -2,18 +2,24 @@ package com.xscm.modulemain.dialog.barRoom import android.content.Context import android.content.Intent +import android.text.TextUtils import android.view.Gravity import android.view.ViewGroup +import androidx.recyclerview.widget.GridLayoutManager import com.blankj.utilcode.util.ActivityUtils.startActivity +import com.blankj.utilcode.util.LogUtils import com.blankj.utilcode.util.ScreenUtils import com.xscm.modulemain.R import com.xscm.modulemain.activity.user.activity.RechargeActivity +import com.xscm.modulemain.adapter.RoomGiftGivingAdapter import com.xscm.modulemain.databinding.DialogAboutRoomBinding +import com.xscm.moduleutil.bean.RoonGiftModel import com.xscm.moduleutil.bean.WalletBean import com.xscm.moduleutil.color.ThemeableDrawableUtils import com.xscm.moduleutil.http.BaseObserver import com.xscm.moduleutil.http.RetrofitClient import com.xscm.moduleutil.utils.ColorManager +import com.xscm.moduleutil.utils.ImageUtils import com.xscm.moduleutil.widget.dialog.BaseDialog import io.reactivex.disposables.Disposable @@ -22,9 +28,18 @@ import io.reactivex.disposables.Disposable * 时间:2026/1/5 14:18 * 用途:酒吧房约她弹框 */ -class RoomAboutDialog (context: Context) : +class RoomAboutDialog( + context: Context, + roomId: String, + userId: String, + username: String, + avatar: String +) : BaseDialog(context, com.xscm.moduleutil.R.style.BaseDialogStyleH) { - + private var mRoomId: String = roomId + private var mUserId: String = userId + private var mUsername: String = username + private var mAvatar: String = avatar // 定义回调接口 private var onConfirmCallback: ((String) -> Unit)? = null @@ -65,7 +80,7 @@ class RoomAboutDialog (context: Context) : override fun initData() { // 初始化数据,如果需要的话 - RetrofitClient.getInstance().wallet(object : BaseObserver(){ + RetrofitClient.getInstance().wallet(object : BaseObserver() { override fun onSubscribe(d: Disposable) { } @@ -73,6 +88,23 @@ class RoomAboutDialog (context: Context) : mBinding.tvBalance.text = t.coin ?: "0" } }) + + } + + + override fun show() { + // 确保参数不为空 + if (!TextUtils.isEmpty(mUsername)) { + mBinding.tvName.text = mUsername + } + if (!TextUtils.isEmpty(mAvatar)) { + ImageUtils.loadHead(mAvatar, mBinding.ivAvatar) + } + + // 调用父类的 show() 方法 + super.show() + + } private fun setupWindow() { diff --git a/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/RoomDurationDialog.kt b/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/RoomDurationDialog.kt index d951552e..b1edf985 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/RoomDurationDialog.kt +++ b/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/RoomDurationDialog.kt @@ -4,13 +4,19 @@ import android.content.Context import android.view.Gravity import android.view.ViewGroup import androidx.recyclerview.widget.GridLayoutManager +import com.blankj.utilcode.util.ActivityUtils import com.blankj.utilcode.util.LogUtils import com.blankj.utilcode.util.ScreenUtils import com.hjq.toast.ToastUtils import com.xscm.modulemain.R import com.xscm.modulemain.adapter.RoomTalentAdapter import com.xscm.modulemain.databinding.DialogRoomDurationBinding +import com.xscm.moduleutil.color.ThemeableDrawableUtils +import com.xscm.moduleutil.http.BaseObserver +import com.xscm.moduleutil.http.RetrofitClient +import com.xscm.moduleutil.utils.ColorManager import com.xscm.moduleutil.widget.dialog.BaseDialog +import io.reactivex.disposables.Disposable /** * 项目名称:羽声语音 @@ -36,23 +42,30 @@ class RoomDurationDialog (context: Context, val roomId: String) : if (adapter?.getSelectedValue()?.isEmpty() == true || adapter?.getSelectedValue()==null) { ToastUtils.show("请选择时间") } else {//确定 -// var messageEvent = -// RoomInputEvent(SpUtil.getUserInfo().nickname + "选择了" + adapter?.getSelectedValue() + "时间") -// (ActivityUtils.getTopActivity() as? RoomActivity)?.let { roomActivity -> -// roomActivity.dialogMessage(messageEvent) -// } - dismiss() + RetrofitClient.getInstance().setPitTime(roomId, adapter?.getSelectedValue()!!.replace("分钟", ""),object : + BaseObserver() { + override fun onSubscribe(d: Disposable) { + } + + override fun onNext(t: String) { + dismiss() + } + }) } } + ThemeableDrawableUtils.setThemeableRoundedBackground( + mBinding.tvQd, + ColorManager.getInstance().primaryColorInt, + 53 + ) + mBinding.tvQd.setTextColor(ColorManager.getInstance().buttonColorInt) - val layoutManager = GridLayoutManager(context, 3) - mBinding.recycleView.layoutManager = layoutManager - mBinding.recycleView.adapter = adapter } override fun initData() { + time= mutableListOf() time.clear() time.add("5分钟") @@ -65,6 +78,9 @@ class RoomDurationDialog (context: Context, val roomId: String) : // 处理选中事件 LogUtils.e("选中了: $selectedValue, 位置: $position") } + val layoutManager = GridLayoutManager(context, 3) + mBinding.recycleView.layoutManager = layoutManager + mBinding.recycleView.adapter = adapter } private fun setupWindow() { diff --git a/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/SetupCustomGiftDialog.kt b/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/SetupCustomGiftDialog.kt index 683e4df7..3228c12a 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/SetupCustomGiftDialog.kt +++ b/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/SetupCustomGiftDialog.kt @@ -6,12 +6,9 @@ import android.view.ViewGroup import androidx.recyclerview.widget.GridLayoutManager import com.blankj.utilcode.util.LogUtils import com.blankj.utilcode.util.ScreenUtils -import com.hjq.toast.ToastUtils import com.xscm.modulemain.R -import com.xscm.modulemain.adapter.RoomWishGiftAdapter import com.xscm.modulemain.adapter.SetupCustomGiftAdapter import com.xscm.modulemain.databinding.DialogSetupCustomGiftBinding -import com.xscm.modulemain.databinding.DialogWishGiftBinding import com.xscm.moduleutil.bean.RoonGiftModel import com.xscm.moduleutil.http.BaseObserver import com.xscm.moduleutil.http.RetrofitClient @@ -48,9 +45,9 @@ class SetupCustomGiftDialog(context: Context, val roomId: String) : override fun initData() { - // TODO: 这里调用的事设置插队礼物接口 + // TODO: 获取自定义礼物 RetrofitClient.getInstance() - .getGiftList(1, roomId, object : BaseObserver>() { + .getNewGiftList(14, "6", object : BaseObserver>() { override fun onSubscribe(d: Disposable) { } @@ -58,14 +55,21 @@ class SetupCustomGiftDialog(context: Context, val roomId: String) : if (t.isNotEmpty()) { adapter = SetupCustomGiftAdapter(t) { selectedValue, position -> // 处理选中事件 - LogUtils.e("选中了: $selectedValue, 位置: $position") - if (performInputDialog == null) { - performInputDialog = PerformInputDialog(context) - } - performInputDialog?.show() + LogUtils.e("选中了: $selectedValue, 位置: ${t[position]}") + performInputDialog = PerformInputDialog(context) + performInputDialog?.show(t[position]) performInputDialog?.setOnConfirmListener { content -> // TODO: 这里表演内容的回调 - ToastUtils.show(content) + t[position].new_gift_name=content + RetrofitClient.getInstance().setCustomGift(t[position].gift_id,content,object : BaseObserver() { + override fun onSubscribe(d: Disposable) { + } + + override fun onNext(t: String) { + performInputDialog?.dismiss() + adapter?.notifyItemChanged(position) + } + }) } } @@ -79,6 +83,7 @@ class SetupCustomGiftDialog(context: Context, val roomId: String) : } }) + } private fun setupWindow() { diff --git a/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/WishGiftDialog.kt b/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/WishGiftDialog.kt index f79b9f77..1463977e 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/WishGiftDialog.kt +++ b/MainModule/src/main/java/com/xscm/modulemain/dialog/barRoom/WishGiftDialog.kt @@ -38,7 +38,7 @@ class WishGiftDialog(context: Context, val roomId: String) : } mBinding.tvQd.setOnClickListener { if ( adapter?.getSelectedValue()==null) { - ToastUtils.show("请心愿礼物") + ToastUtils.show("请选择心愿礼物") } else {//确定 // var messageEvent = // RoomInputEvent(SpUtil.getUserInfo().nickname + "选择了" + adapter?.getSelectedValue() + "时间") @@ -57,8 +57,8 @@ class WishGiftDialog(context: Context, val roomId: String) : override fun initData() { - // TODO: 这里调用的事设置插队礼物接口 - RetrofitClient.getInstance().getGiftList(1,roomId,object : BaseObserver>() { + // TODO: label 15:酒吧房普通礼物 14:自定义礼物 + RetrofitClient.getInstance().getNewGiftList(15,"6",object : BaseObserver>() { override fun onSubscribe(d: Disposable) { } diff --git a/MainModule/src/main/res/layout/dialog_about_room.xml b/MainModule/src/main/res/layout/dialog_about_room.xml index 8705edf1..b2165f41 100644 --- a/MainModule/src/main/res/layout/dialog_about_room.xml +++ b/MainModule/src/main/res/layout/dialog_about_room.xml @@ -112,7 +112,7 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:singleLine="true" - android:text="甜蜜奶酪" + tools:text="甜蜜奶酪" android:textColor="@color/colorWhite85" android:textSize="@dimen/sp_12" /> @@ -123,7 +123,7 @@ android:layout_gravity="center" android:drawableLeft="@mipmap/jinb" android:drawablePadding="@dimen/dp_3" - android:text="1" + tools:text="1" android:textColor="@color/colorWhite85" android:textSize="@dimen/sp_12" /> diff --git a/MainModule/src/main/res/layout/dialog_gift_giving.xml b/MainModule/src/main/res/layout/dialog_gift_giving.xml index 880ceabf..f6fb81a4 100644 --- a/MainModule/src/main/res/layout/dialog_gift_giving.xml +++ b/MainModule/src/main/res/layout/dialog_gift_giving.xml @@ -4,23 +4,60 @@ xmlns:tools="http://schemas.android.com/tools"> - + + + + + + + + + + + diff --git a/MainModule/src/main/res/layout/dialog_make_friends.xml b/MainModule/src/main/res/layout/dialog_make_friends.xml new file mode 100644 index 00000000..4ec3fbf9 --- /dev/null +++ b/MainModule/src/main/res/layout/dialog_make_friends.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/MainModule/src/main/res/layout/dialog_perform_input.xml b/MainModule/src/main/res/layout/dialog_perform_input.xml index d2f7f89a..0ee14026 100644 --- a/MainModule/src/main/res/layout/dialog_perform_input.xml +++ b/MainModule/src/main/res/layout/dialog_perform_input.xml @@ -52,7 +52,10 @@ android:paddingEnd="@dimen/dp_12" android:textColor="@color/color_FF333333" android:textColorHint="@color/color_FF999999" - android:textSize="@dimen/sp_14" /> + android:textSize="@dimen/sp_14" + android:maxLength="4" + android:inputType="text" + /> + android:background="@drawable/bg_r5_e9e9" + > + + + + + \ No newline at end of file diff --git a/MainModule/src/main/res/layout/item_setup_custom_gift.xml b/MainModule/src/main/res/layout/item_setup_custom_gift.xml index d7f7f449..0772a392 100644 --- a/MainModule/src/main/res/layout/item_setup_custom_gift.xml +++ b/MainModule/src/main/res/layout/item_setup_custom_gift.xml @@ -92,7 +92,7 @@ android:id="@+id/tv_gift_desc" android:layout_width="wrap_content" android:layout_height="wrap_content" - tools:text="待设置" + android:text="待设置" android:textColor="@color/color_FF999999" android:textSize="@dimen/sp_12" android:maxLines="1" diff --git a/MainModule/src/main/res/layout/room_top.xml b/MainModule/src/main/res/layout/room_top.xml index 581d8a1d..6504bb62 100644 --- a/MainModule/src/main/res/layout/room_top.xml +++ b/MainModule/src/main/res/layout/room_top.xml @@ -223,6 +223,40 @@ + + + + + + +