1:修改网络初始化的时候,放在点击了弹框后在进行
2:添加礼物墙展示用户信息功能
This commit is contained in:
@@ -42,7 +42,7 @@ public class GiftWallActivity extends BaseMvpActivity<GiftWallPresenter, Activit
|
||||
|
||||
// 在获取到数据后调用此方法初始化 ViewPager
|
||||
private void setupViewPagerWithData(GiftUserWallBean data) {
|
||||
sectionsPagerAdapter = new SectionsGifPagerAdapter(this, data);
|
||||
sectionsPagerAdapter = new SectionsGifPagerAdapter(this, data,userId+"");
|
||||
ViewPager2 viewPager = mBinding.viewPager;
|
||||
viewPager.setAdapter(sectionsPagerAdapter);
|
||||
TabLayout tabs = mBinding.tabs;
|
||||
|
||||
@@ -11,9 +11,11 @@ import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
|
||||
import com.blankj.utilcode.util.ActivityUtils;
|
||||
import com.xscm.modulemain.activity.user.PageViewModel;
|
||||
import com.xscm.modulemain.adapter.GiftWallAdapter;
|
||||
import com.xscm.modulemain.databinding.FragmentGiftWallBinding;
|
||||
import com.xscm.modulemain.dialog.GiftWallListDialog;
|
||||
import com.xscm.moduleutil.bean.GiftUserWallBean;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -35,6 +37,8 @@ public class PlaceholderGiftFragment extends Fragment {
|
||||
|
||||
private GiftWallAdapter mGiftWallAdapter;
|
||||
|
||||
private String userId;
|
||||
|
||||
public static PlaceholderGiftFragment newInstance(int index) {
|
||||
PlaceholderGiftFragment fragment = new PlaceholderGiftFragment();
|
||||
// Bundle bundle = new Bundle();
|
||||
@@ -63,6 +67,7 @@ public class PlaceholderGiftFragment extends Fragment {
|
||||
pageViewModel.setNoLiangDataList(giftList);
|
||||
}
|
||||
}
|
||||
userId=getArguments().getString("userId");
|
||||
}
|
||||
pageViewModel.setIndex(index);
|
||||
|
||||
@@ -72,7 +77,9 @@ public class PlaceholderGiftFragment extends Fragment {
|
||||
|
||||
@Override
|
||||
public void onUserClick(GiftUserWallBean.GiftWallBean emotion) {
|
||||
|
||||
// 处理用户点击事件
|
||||
GiftWallListDialog giftWallListDialog = new GiftWallListDialog(ActivityUtils.getTopActivity());
|
||||
giftWallListDialog.show(userId,emotion.getGift_id()+"", emotion.getGift_name(),emotion.getTop_users_count());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.blankj.utilcode.util.LogUtils;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.CombinedGiftBean;
|
||||
import com.xscm.moduleutil.bean.GiftUserWallBean;
|
||||
@@ -96,7 +97,9 @@ public class GiftWallAdapter extends BaseAdapter {
|
||||
public void onClick(View v) {
|
||||
if (item.is_liang()) {
|
||||
if (mOnUserClickListener != null) {
|
||||
mOnUserClickListener.onUserClick(item);
|
||||
if (item.getTop_users() != null && item.getTop_users().size() > 0) {
|
||||
mOnUserClickListener.onUserClick(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.xscm.modulemain.adapter
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.xscm.modulemain.R
|
||||
import com.xscm.moduleutil.bean.GiftWallUserBean
|
||||
import com.xscm.moduleutil.bean.GroupBean
|
||||
import com.xscm.moduleutil.utils.ImageUtils
|
||||
|
||||
/**
|
||||
* 项目名称:羽声语音
|
||||
* 时间:2026/1/23 10:35
|
||||
* 用途:礼物墙用户显示列表
|
||||
*/
|
||||
class GiftWallListAdapter : BaseQuickAdapter<GiftWallUserBean.GiftWallUserItemBean, BaseViewHolder>(R.layout.item_gift_wall_details) {
|
||||
|
||||
override fun convert(
|
||||
helper: BaseViewHolder,
|
||||
item: GiftWallUserBean.GiftWallUserItemBean?
|
||||
) {
|
||||
helper.setText(R.id.tv_gift_wheat_name, item?.nickname)
|
||||
ImageUtils.loadHead(item?.avatar, helper.getView(R.id.riv_gift_wheat_head))
|
||||
helper.setText(R.id.tv_gift_wheat_count, item?.count.toString())
|
||||
}
|
||||
}
|
||||
@@ -25,16 +25,19 @@ public class SectionsGifPagerAdapter extends FragmentStateAdapter {
|
||||
private final Context mContext;
|
||||
private GiftUserWallBean giftData; // 添加数据字段
|
||||
|
||||
private String userId;
|
||||
|
||||
// public SectionsPagerAdapter(Context context, FragmentManager fm, GiftUserWallBean giftData) {
|
||||
// super(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
|
||||
// this.mContext = context;
|
||||
// this.giftData = giftData;
|
||||
// }
|
||||
|
||||
public SectionsGifPagerAdapter(@NonNull FragmentActivity fragmentActivity, GiftUserWallBean giftData) {
|
||||
public SectionsGifPagerAdapter(@NonNull FragmentActivity fragmentActivity, GiftUserWallBean giftData, String userId) {
|
||||
super(fragmentActivity);
|
||||
this.mContext = fragmentActivity;
|
||||
this.giftData = giftData;
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@@ -55,6 +58,7 @@ public class SectionsGifPagerAdapter extends FragmentStateAdapter {
|
||||
}
|
||||
}
|
||||
args.putInt("section_number", position+1);
|
||||
args.putString("userId", userId);
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,151 @@
|
||||
package com.xscm.modulemain.dialog
|
||||
|
||||
import android.app.Dialog
|
||||
import android.content.Context
|
||||
import android.view.Gravity
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import com.blankj.utilcode.util.ScreenUtils
|
||||
import com.scwang.smartrefresh.layout.api.RefreshLayout
|
||||
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener
|
||||
import com.xscm.modulemain.R
|
||||
import com.xscm.modulemain.adapter.GiftWallListAdapter
|
||||
import com.xscm.modulemain.databinding.DialogEmotionPickerBinding
|
||||
import com.xscm.modulemain.databinding.DialogGiftWallListBinding
|
||||
import com.xscm.moduleutil.bean.GiftWallUserBean
|
||||
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/22 18:55
|
||||
* 用途:礼物墙展示人员信息
|
||||
*/
|
||||
class GiftWallListDialog(
|
||||
context: Context
|
||||
|
||||
) : Dialog(context, com.xscm.moduleutil.R.style.BaseDialogStyleH) {
|
||||
|
||||
var page: Int = 1
|
||||
var userId: String = ""
|
||||
var giftId: String = ""
|
||||
var giftName: String = ""
|
||||
var userSize: Int = 0
|
||||
private var mBinding: DialogGiftWallListBinding =
|
||||
DialogGiftWallListBinding.inflate(LayoutInflater.from(context))
|
||||
|
||||
init {
|
||||
setContentView(mBinding.root)
|
||||
|
||||
// 设置对话框从底部弹出
|
||||
window?.setGravity(Gravity.CENTER)
|
||||
// 设置对话框的宽度为屏幕宽度
|
||||
window?.setLayout(
|
||||
(ScreenUtils.getScreenWidth() * 348f / 375).toInt(),
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
)
|
||||
// 添加动画效果
|
||||
window?.setWindowAnimations(com.xscm.moduleutil.R.style.DialogAnimationt)
|
||||
setCancelable(false)
|
||||
setCanceledOnTouchOutside(false)
|
||||
}
|
||||
|
||||
|
||||
private fun initView() {
|
||||
mBinding.ivClose.setOnClickListener {
|
||||
dismiss()
|
||||
}
|
||||
|
||||
mBinding.tvTitle.text = giftName
|
||||
mBinding.tvName.text = giftName
|
||||
mBinding.tvUserNum.text = userSize.toString()
|
||||
|
||||
mBinding.rvGiftWall.adapter = GiftWallListAdapter()
|
||||
|
||||
}
|
||||
|
||||
private fun initData() {
|
||||
|
||||
mBinding.smartRefreshLayout.setOnRefreshLoadMoreListener(object :
|
||||
OnRefreshLoadMoreListener {
|
||||
override fun onRefresh(refreshLayout: RefreshLayout) {
|
||||
page = 1
|
||||
setHttp(page)
|
||||
}
|
||||
|
||||
override fun onLoadMore(refreshLayout: RefreshLayout) {
|
||||
page++
|
||||
setHttp(page)
|
||||
}
|
||||
|
||||
})
|
||||
setHttp(page)
|
||||
}
|
||||
|
||||
private fun setAdapterDetails(giftWallUserItemBean: List<GiftWallUserBean.GiftWallUserItemBean>) {
|
||||
if (page == 1) {
|
||||
(mBinding.rvGiftWall.adapter as GiftWallListAdapter).setNewData(giftWallUserItemBean)
|
||||
} else {
|
||||
|
||||
val adapter = mBinding.rvGiftWall.adapter as GiftWallListAdapter
|
||||
val currentData = adapter.data
|
||||
|
||||
// 过滤掉重复的数据
|
||||
val newData = giftWallUserItemBean.filter { newItem ->
|
||||
currentData.none { existingItem ->
|
||||
// 假设GiftWallUserItemBean有id字段用于比较
|
||||
existingItem.user_id == newItem.user_id
|
||||
}
|
||||
}
|
||||
|
||||
// 只有当有新数据时才添加
|
||||
if (newData.isNotEmpty()) {
|
||||
adapter.addData(newData)
|
||||
} else {
|
||||
page = 1
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private fun setHttp(page: Int) {
|
||||
|
||||
RetrofitClient.getInstance()
|
||||
.giftWallUserList(userId, giftId, page, object : BaseObserver<GiftWallUserBean>() {
|
||||
|
||||
|
||||
override fun onSubscribe(d: Disposable) {
|
||||
}
|
||||
|
||||
override fun onNext(t: GiftWallUserBean) {
|
||||
|
||||
mBinding.tvNum.text = t.count.toString()
|
||||
if (t.users.isNotEmpty()) {
|
||||
setAdapterDetails(t.users)
|
||||
}
|
||||
}
|
||||
})
|
||||
mBinding.smartRefreshLayout.finishRefresh()
|
||||
mBinding.smartRefreshLayout.finishLoadMore()
|
||||
}
|
||||
|
||||
fun show(
|
||||
userId: String,
|
||||
giftId: String,
|
||||
giftName: String,
|
||||
userSize: Int
|
||||
) {
|
||||
this.userSize = userSize
|
||||
this.userId = userId
|
||||
this.giftId = giftId
|
||||
this.giftName = giftName
|
||||
|
||||
super.show()
|
||||
|
||||
initView()
|
||||
initData()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -34,6 +34,7 @@ import com.xscm.modulemain.activity.WebViewActivity;
|
||||
import com.xscm.moduleutil.base.CommonAppContext;
|
||||
import com.xscm.moduleutil.base.WebUrlConstants;
|
||||
import com.xscm.moduleutil.bean.BlindBoxStatus;
|
||||
import com.xscm.moduleutil.bean.GiftLabelBean;
|
||||
import com.xscm.moduleutil.dialog.ConfirmDialog;
|
||||
import com.xscm.moduleutil.event.EffectEvent;
|
||||
import com.xscm.moduleutil.event.FloatingScreenEvent;
|
||||
@@ -899,6 +900,10 @@ public class RoomSettingFragment extends BaseMvpDialogFragment<RoomSettingPresen
|
||||
(giftBagId == 12 && filteredList.get(j).getChildren().get(k).getType() == RoomSettingBean.QXRoomSettingTypeRoomTimeSpace)) {
|
||||
if (status != 1) {
|
||||
filteredList.get(j).getChildren().remove(k);
|
||||
}else {
|
||||
if (SpUtil.getShelf() == 1) {
|
||||
filteredList.get(j).getChildren().remove(k);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user