From 5356d91fefb9dbae6e76d07edf5efc966238ca54 Mon Sep 17 00:00:00 2001 From: zlzw <583819556@qq.com> Date: Mon, 12 Dec 2022 17:45:15 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E5=A4=9A=E4=BA=BAPK=E4=B9=9F=E7=94=A8?= =?UTF-8?q?=E6=96=B0UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/yunbao/common/Constants.java | 2 +- .../com/yunbao/common/utils/WordUtil.java | 12 +++++++++ .../live/activity/LiveRyAnchorActivity.java | 8 ++++-- .../live/adapter/FreePkRecyclerAdapter.java | 26 ++++++++++++++----- .../adapter/LivePrankRecyclerAdapter.java | 5 ++++ .../live/dialog/FreePkDialogFragment.java | 16 +++++++++++- .../com/yunbao/live/dialog/GiftPopDialog.java | 26 +++++++++++++++++-- .../live/dialog/LivePrankDialogFragment.java | 9 ++++++- 8 files changed, 91 insertions(+), 13 deletions(-) diff --git a/common/src/main/java/com/yunbao/common/Constants.java b/common/src/main/java/com/yunbao/common/Constants.java index c95aead77..02b0020ea 100644 --- a/common/src/main/java/com/yunbao/common/Constants.java +++ b/common/src/main/java/com/yunbao/common/Constants.java @@ -146,7 +146,7 @@ public class Constants { public static final String SOCKET_ALL_SERVER_NOTIFY = "AllServerNotify";//全服通知 public static final String SOCKET_SEND_BARRAGE = "SendBarrage";//发弹幕 public static final String SOCKET_LIVE_DRPK = "LiveDRPK";//多人PK - public static final String SOCKET_LIVE_DRPK_RANDOM = "LiveRandomPK";//多人PK + public static final String SOCKET_LIVE_DRPK_RANDOM = "LiveRandomPK";//随机PK public static final String SOCKET_LEAVE_ROOM = "disconnect";//用户离开房间 public static final String SOCKET_LIVE_END = "StartEndLive";//主播关闭直播 public static final String SOCKET_SYSTEM = "SystemNot";//系统消息 diff --git a/common/src/main/java/com/yunbao/common/utils/WordUtil.java b/common/src/main/java/com/yunbao/common/utils/WordUtil.java index 5977b54ac..41c0c83ff 100644 --- a/common/src/main/java/com/yunbao/common/utils/WordUtil.java +++ b/common/src/main/java/com/yunbao/common/utils/WordUtil.java @@ -5,6 +5,8 @@ import android.content.res.Resources; import com.yunbao.common.CommonAppContext; import java.util.Locale; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * Created by cxf on 2017/10/10. @@ -28,4 +30,14 @@ public class WordUtil { String language = locale.getLanguage(); return language.endsWith("zh"); } + + /** + * 是否包含特殊字符 + */ + public static boolean isSpecialChar(String str) { + String regEx = "[ _`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]|\n|\r|\t"; + Pattern p = Pattern.compile(regEx); + Matcher m = p.matcher(str); + return m.find(); + } } diff --git a/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java b/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java index 633705f76..727e5abd8 100644 --- a/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java +++ b/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java @@ -603,11 +603,15 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl if (mLiveLinkMicAnchorPresenter != null && !mLiveLinkMicAnchorPresenter.canOpenLinkMicAnchor()) { return; } - LiveLinkMicListDialogFragment fragment = new LiveLinkMicListDialogFragment(); +/* LiveLinkMicListDialogFragment fragment = new LiveLinkMicListDialogFragment(); Bundle bundle = new Bundle(); bundle.putBoolean("isDRPK", isDRPK); fragment.setArguments(bundle); - fragment.show(getSupportFragmentManager(), "LiveLinkMicListDialogFragment"); + fragment.show(getSupportFragmentManager(), "LiveLinkMicListDialogFragment");*/ + FreePkDialogFragment fragment=new FreePkDialogFragment(); + fragment.setDrPkNum(pk_nub); + fragment.show(getSupportFragmentManager(),"LiveLinkMicListDialogFragment"); + } public void openFreePkWindow() { diff --git a/live/src/main/java/com/yunbao/live/adapter/FreePkRecyclerAdapter.java b/live/src/main/java/com/yunbao/live/adapter/FreePkRecyclerAdapter.java index bf2f9d378..a50387dcd 100644 --- a/live/src/main/java/com/yunbao/live/adapter/FreePkRecyclerAdapter.java +++ b/live/src/main/java/com/yunbao/live/adapter/FreePkRecyclerAdapter.java @@ -28,6 +28,7 @@ public class FreePkRecyclerAdapter extends RefreshAdapter { private static final int HEAD = 0; private static final int ITEM = 2; private int freePkNum;//PK次数 + private int mDrPkNum = -1; public void setFreePkNum(int freePkNum) { this.freePkNum = freePkNum; @@ -37,6 +38,9 @@ public class FreePkRecyclerAdapter extends RefreshAdapter { super(context); } + public void setDrPkNum(int mDrPkNum) { + this.mDrPkNum = mDrPkNum; + } @NonNull @Override @@ -106,21 +110,31 @@ public class FreePkRecyclerAdapter extends RefreshAdapter { ToastUtil.show(R.string.free_pk_user_pking); return; } - if (freePkNum == 0) { + if (freePkNum == 0 && mDrPkNum == -1) { ToastUtil.show(R.string.free_pk_num_null); return; } + LiveHttpUtil.getMicList(LiveRyAnchorActivity.mLiveUid, 0, new com.yunbao.common.http.HttpCallback() { @Override public void onSuccess(int code, String msg, String[] info) { System.out.println("code = " + code + ", msg = " + msg + ", info = " + Arrays.deepToString(info)); //非0认为未开通连麦权限 if (code != 0) { - ToastUtil.show("邀请 " + bean.getUserNiceName() + " 发送成功"); - mOnItemClickListener.onItemClick(bean, -1); - ((LiveRyAnchorActivity) mContext).linkMicAnchorApply(bean.getId(), bean.getId(), - ((LiveRyAnchorActivity) mContext).buildLinkMicJSON().toString() - ); + if (mDrPkNum == -1) { + ToastUtil.show("邀请 " + bean.getUserNiceName() + " 发送成功"); + mOnItemClickListener.onItemClick(bean, -1); + ((LiveRyAnchorActivity) mContext).linkMicAnchorApply(bean.getId(), bean.getId(), + ((LiveRyAnchorActivity) mContext).buildLinkMicJSON().toString() + ); + return; + } + if (mDrPkNum <= 0) { + ToastUtil.show("多人次數已用完"); + return; + } + ((LiveRyAnchorActivity) mContext).linkDrMicAnchorApply(bean.getId(), bean.getId()); + } else { ToastUtil.show("請先關閉語言連麥"); } diff --git a/live/src/main/java/com/yunbao/live/adapter/LivePrankRecyclerAdapter.java b/live/src/main/java/com/yunbao/live/adapter/LivePrankRecyclerAdapter.java index a84f4056c..a51c2577c 100644 --- a/live/src/main/java/com/yunbao/live/adapter/LivePrankRecyclerAdapter.java +++ b/live/src/main/java/com/yunbao/live/adapter/LivePrankRecyclerAdapter.java @@ -14,6 +14,7 @@ import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.interfaces.OnItemClickListener; import com.yunbao.common.utils.DialogUitl; import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.utils.WordUtil; import com.yunbao.live.R; import java.util.ArrayList; @@ -147,6 +148,10 @@ public class LivePrankRecyclerAdapter extends RecyclerView.Adapter= 2 && content.length() <= 10) { context.setText(content); onItemClickListener.onItemClick(content, ((PrankTurntableBean)list.get((Integer) itemView.getTag())).getId()); diff --git a/live/src/main/java/com/yunbao/live/dialog/FreePkDialogFragment.java b/live/src/main/java/com/yunbao/live/dialog/FreePkDialogFragment.java index bcf1f15d2..4ff6a8c91 100644 --- a/live/src/main/java/com/yunbao/live/dialog/FreePkDialogFragment.java +++ b/live/src/main/java/com/yunbao/live/dialog/FreePkDialogFragment.java @@ -50,10 +50,12 @@ public class FreePkDialogFragment extends AbsDialogFragment implements View.OnCl private View mSearchLayout; private EditText mSearch; private TextView freePkNum; + private TextView mPkNumText; private ImageView mClear; private FreePkRecyclerAdapter adapter; private DataHelper helper; private int tabStatus; + private int mDrPkNum = -1; @Override @@ -94,6 +96,10 @@ public class FreePkDialogFragment extends AbsDialogFragment implements View.OnCl initData(); } + public void setDrPkNum(int mDrPkNum) { + this.mDrPkNum = mDrPkNum; + } + private void initView() { tabLayout = (TabLayout) findViewById(R.id.menu_tab); reset = findViewById(R.id.menu_reset); @@ -102,6 +108,7 @@ public class FreePkDialogFragment extends AbsDialogFragment implements View.OnCl mSearch = (EditText) findViewById(R.id.search_edit); mClear = (ImageView) findViewById(R.id.search_clear); freePkNum = (TextView) findViewById(R.id.free_pk_num); + mPkNumText = (TextView) findViewById(R.id.tmp_text1); mClear.setOnClickListener(this); reset.setOnClickListener(this); mSearch.addTextChangedListener(new TextWatcher() { @@ -120,7 +127,9 @@ public class FreePkDialogFragment extends AbsDialogFragment implements View.OnCl } }); - + if (mDrPkNum != -1) { + mPkNumText.setText("多人PK剩余次數"); + } initRecycler(); } @@ -133,6 +142,7 @@ public class FreePkDialogFragment extends AbsDialogFragment implements View.OnCl mRecyclerView.initData(); mRecyclerView.setRefreshEnable(false); mRecyclerView.setEmptyLayoutId(R.layout.view_live_search_list_empty); + adapter.setDrPkNum(mDrPkNum); adapter.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(RandomPkUserBean bean, int position) { @@ -147,6 +157,10 @@ public class FreePkDialogFragment extends AbsDialogFragment implements View.OnCl private void initData() { + if (mDrPkNum != -1) { + freePkNum.setText("" + mDrPkNum); + return; + } LiveNetManager.get(mContext).getFreePkNumber(new com.yunbao.common.http.base.HttpCallback() { @Override public void onSuccess(Integer data) { diff --git a/live/src/main/java/com/yunbao/live/dialog/GiftPopDialog.java b/live/src/main/java/com/yunbao/live/dialog/GiftPopDialog.java index 9821e70e2..adb6bf7db 100644 --- a/live/src/main/java/com/yunbao/live/dialog/GiftPopDialog.java +++ b/live/src/main/java/com/yunbao/live/dialog/GiftPopDialog.java @@ -23,6 +23,7 @@ import com.yunbao.common.http.HttpCallback; import com.yunbao.common.utils.DialogUitl; import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.utils.WordUtil; import com.yunbao.live.R; import com.yunbao.live.adapter.GiftTopAdapter; import com.yunbao.live.adapter.LiveGiftPagerAdapter; @@ -58,6 +59,7 @@ public class GiftPopDialog extends PopupWindow implements ActionListener, View.O private String prangContext; private int prangNum; private InputMethodManager imm; + private List giftBeans; private void initView(View mRootView) { mLoading = mRootView.findViewById(R.id.loading); @@ -132,7 +134,7 @@ public class GiftPopDialog extends PopupWindow implements ActionListener, View.O @Override public void onDismiss() { if (mActionListener != null) { - if (bean == null || StringUtil.isEmpty(prangContext) || prangNum==0) { + if (bean == null || StringUtil.isEmpty(prangContext) || prangNum == 0) { mActionListener.onDismiss(); return; } @@ -259,16 +261,36 @@ public class GiftPopDialog extends PopupWindow implements ActionListener, View.O } }); } else if (id == R.id.gift_btn) { - if (bean == null || StringUtil.isEmpty(prangContext) || prangNum==0) { + if (bean == null || StringUtil.isEmpty(prangContext) || prangNum == 0) { ToastUtil.show("整蠱內容或數量不能為空"); return; } + if(WordUtil.isSpecialChar(prangContext)){ + ToastUtil.show("整蠱內容不能包含特殊字符"); + return; + } + if(prangContext.length()>6){ + ToastUtil.show("整蠱內容過長"); + return; + } + if(giftBeans!=null){ + for (PrankGiftBean giftBean : giftBeans) { + if(giftBean.getGiftId().equals(bean.getId()+"")){ + ToastUtil.show("整蠱禮物已存在"); + return; + } + } + } dismiss(); } else if (id == R.id.gift_back) { dismiss(); } } + public void setList(List giftBeans) { + this.giftBeans = giftBeans; + } + public interface ActionListener { void onSelectGift(PrankGiftBean bean); diff --git a/live/src/main/java/com/yunbao/live/dialog/LivePrankDialogFragment.java b/live/src/main/java/com/yunbao/live/dialog/LivePrankDialogFragment.java index df2d0d5dd..e95a4898b 100644 --- a/live/src/main/java/com/yunbao/live/dialog/LivePrankDialogFragment.java +++ b/live/src/main/java/com/yunbao/live/dialog/LivePrankDialogFragment.java @@ -43,6 +43,7 @@ public class LivePrankDialogFragment extends AbsDialogFragment implements View.O private LivePrankRecyclerAdapter recyclerAdapter; private String mLiveUid; private PrankHttpTurntableBean bean = new PrankHttpTurntableBean(); + private List giftBeans; public void setmLiveUid(String mLiveUid) { this.mLiveUid = mLiveUid; @@ -135,6 +136,10 @@ public class LivePrankDialogFragment extends AbsDialogFragment implements View.O }); mPrankBtn.setOnClickListener(view -> { if ((int) view.getTag() == 1) { + if(giftBeans!=null&&giftBeans.size()>=20){ + ToastUtil.show("可添加禮物數量達到上限"); + return; + } GiftPopDialog dialog = new GiftPopDialog(mContext, mRootView, new GiftPopDialog.ActionListener() { @Override @@ -149,6 +154,7 @@ public class LivePrankDialogFragment extends AbsDialogFragment implements View.O } }); + dialog.setList(giftBeans); dialog.show(); } else { setPrankConfig(); @@ -241,9 +247,10 @@ public class LivePrankDialogFragment extends AbsDialogFragment implements View.O mGiftNotDate.setVisibility(View.GONE); mPrankRecyclerView.setVisibility(View.VISIBLE); recyclerAdapter.setViewType(LivePrankRecyclerAdapter.TYPE_GIFT); + giftBeans = data; recyclerAdapter.setList(data); recyclerAdapter.notifyDataSetChanged(); - }else{ + } else { mPrankRecyclerView.setVisibility(View.GONE); mGiftNotDate.setVisibility(View.VISIBLE); }