update 自由PK

This commit is contained in:
zlzw 2022-12-07 16:10:22 +08:00
parent 28b4a36800
commit f62a093092
6 changed files with 49 additions and 22 deletions

View File

@ -68,6 +68,7 @@ import com.yunbao.live.bean.LiveKsyConfigBean;
import com.yunbao.live.bean.LiveReceiveGiftBean;
import com.yunbao.common.bean.LiveUserGiftBean;
import com.yunbao.common.bean.MicUserBean;
import com.yunbao.live.dialog.FreePkDialogFragment;
import com.yunbao.live.dialog.LiveLinkMicListDialogFragment;
import com.yunbao.live.dialog.LiveNewFunctionDialogFragment;
import com.yunbao.live.dialog.LiveNewWishListDialogFragment;
@ -161,11 +162,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
@Override
public void onStartPK(String pkUid) {
ToastUtil.show("发起随机PK:" + pkUid);
JSONObject msg1 = new JSONObject();
msg1.put("uid", CommonAppConfig.getInstance().getUid());
msg1.put("pkuid", CommonAppConfig.getInstance().getUid());
msg1.put("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
msg1.put("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar());
JSONObject msg1 = buildLinkMicJSON();
msg1.put("randomPk", true);
linkMicAnchorApply(pkUid, pkUid, msg1.toString());
}
@ -402,7 +399,8 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
break;
case Constants.LIVE_FUNC_LINK_MIC://连麦
if (isDRPK != 1) {
openLinkMicAnchorWindow(false);
//openLinkMicAnchorWindow(false);
openFreePkWindow();
} else {
ToastUtil.show("您已在PK中");
}
@ -603,6 +601,12 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
fragment.setArguments(bundle);
fragment.show(getSupportFragmentManager(), "LiveLinkMicListDialogFragment");
}
public void openFreePkWindow(){
FreePkDialogFragment fragment = new FreePkDialogFragment();
Bundle bundle = new Bundle();
fragment.setArguments(bundle);
fragment.show(getSupportFragmentManager(), "FreePkDialogFragment");
}
/**
* 随机PK
@ -1065,12 +1069,16 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
* @param stream 对方主播的stream
*/
public void linkMicAnchorApply(String pkUid, String stream) {
JSONObject msg1 = buildLinkMicJSON();
linkMicAnchorApply(pkUid, stream, msg1.toString());
}
public JSONObject buildLinkMicJSON(){
JSONObject msg1 = new JSONObject();
msg1.put("uid", CommonAppConfig.getInstance().getUid());
msg1.put("pkuid", CommonAppConfig.getInstance().getUid());
msg1.put("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
msg1.put("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar());
linkMicAnchorApply(pkUid, stream, msg1.toString());
return msg1;
}
public void linkMicAnchorApply(final String pkUid, String stream, String extra) {

View File

@ -14,7 +14,13 @@ import com.makeramen.roundedimageview.RoundedImageView;
import com.yunbao.common.adapter.RefreshAdapter;
import com.yunbao.common.bean.RandomPkUserBean;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.manager.IMRTCManager;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveRyAnchorActivity;
import cn.rongcloud.rtc.api.callback.IRCRTCResultCallback;
import cn.rongcloud.rtc.base.RTCErrorCode;
public class RandomPkRecyclerAdapter extends RefreshAdapter<RandomPkUserBean> {
private static final int HEAD = 0;
@ -85,6 +91,16 @@ public class RandomPkRecyclerAdapter extends RefreshAdapter<RandomPkUserBean> {
mAvatar = itemView.findViewById(R.id.item_avatar);
mPkStatus = itemView.findViewById(R.id.item_pk);
mFollow = itemView.findViewById(R.id.item_follow);
mPkStatus.setOnClickListener(v -> {
RandomPkUserBean bean = (RandomPkUserBean) itemView.getTag();
if (bean.isPk()) {
ToastUtil.show(R.string.free_pk_user_pking);
return;
}
((LiveRyAnchorActivity) mContext).linkMicAnchorApply(bean.getId(), bean.getId(),
((LiveRyAnchorActivity) mContext).buildLinkMicJSON().toString()
);
});
}
@Override
@ -94,7 +110,7 @@ public class RandomPkRecyclerAdapter extends RefreshAdapter<RandomPkUserBean> {
if (bean == null) {
return;
}
System.out.println("bean = " + bean);
itemView.setTag(bean);
mNum.setText((position) + "");
if (position % 2 == 0) {
itemView.setBackgroundResource(R.drawable.bg_item_random_pk_type_1);

View File

@ -30,6 +30,7 @@ import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.manager.RandomPkManager;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.utils.WordsTypeUtil;
@ -48,18 +49,20 @@ import java.util.TimerTask;
* 自由PK
*/
public class FreePkDialogFragment extends AbsDialogFragment implements View.OnClickListener {
private static final int TAB_STATUS_SEARCH = 1;
private static final int TAB_STATUS_FOLLOW = 2;
private static final String TAG = "自由PK";
private int mLiveUid;
private TabLayout tabLayout;
private View reset;
private CommonRefreshView mRecyclerView;
private View mPkInfoLayout;
private View mSearchLayout;
private EditText mSearch;
private ImageView mClear;
private RandomPkRecyclerAdapter adapter;
private DataHelper helper;
private int tabStatus;
@Override
@ -82,7 +85,7 @@ public class FreePkDialogFragment extends AbsDialogFragment implements View.OnCl
WindowManager.LayoutParams params = window.getAttributes();
window.setWindowAnimations(R.style.bottomToTopAnim);
params.width = WindowManager.LayoutParams.MATCH_PARENT;
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
params.height = DpUtil.dp2px(330);
params.gravity = Gravity.BOTTOM;
window.setAttributes(params);
}
@ -108,7 +111,6 @@ public class FreePkDialogFragment extends AbsDialogFragment implements View.OnCl
tabLayout = (TabLayout) findViewById(R.id.menu_tab);
reset = findViewById(R.id.menu_reset);
mRecyclerView = (CommonRefreshView) findViewById(R.id.random_container_view);
mPkInfoLayout = findViewById(R.id.layout_random_pk_info);
mSearchLayout = findViewById(R.id.random_pk_search_layout);
mSearch = (EditText) findViewById(R.id.search_edit);
mClear = (ImageView) findViewById(R.id.search_clear);
@ -148,26 +150,27 @@ public class FreePkDialogFragment extends AbsDialogFragment implements View.OnCl
private void initTab() {
TabLayout.Tab searchTag = tabLayout.newTab();
TabLayout.Tab listTag = tabLayout.newTab();
searchTag.setTag(1);
searchTag.setTag(TAB_STATUS_SEARCH);
searchTag.setText("主播搜索");
listTag.setTag(2);
listTag.setTag(TAB_STATUS_FOLLOW);
listTag.setText("關注列表");
tabLayout.addTab(searchTag);
tabLayout.addTab(listTag);
tabStatus = TAB_STATUS_SEARCH;
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
if (tab.getTag() != null) {
mPkInfoLayout.setVisibility(View.GONE);
tabStatus = (int) tab.getTag();
mRecyclerView.setVisibility(View.GONE);
mSearchLayout.setVisibility(View.INVISIBLE);
switch ((int) tab.getTag()) {
case 1:
mSearchLayout.setVisibility(View.GONE);
switch (tabStatus) {
case TAB_STATUS_SEARCH:
mSearchLayout.setVisibility(View.VISIBLE);
mRecyclerView.setVisibility(View.VISIBLE);
mRecyclerView.initData();
break;
case 2:
case TAB_STATUS_FOLLOW:
mRecyclerView.setVisibility(View.VISIBLE);
mRecyclerView.initData();
break;
@ -188,8 +191,6 @@ public class FreePkDialogFragment extends AbsDialogFragment implements View.OnCl
}
@Override
public void onClick(View v) {
int id = v.getId();

View File

@ -99,7 +99,7 @@
<com.yunbao.common.custom.CommonRefreshView
android:id="@+id/random_container_view"
android:layout_width="match_parent"
android:layout_height="238dp"
android:layout_height="match_parent"
android:layout_marginTop="10dp"
android:visibility="visible">

View File

@ -37,6 +37,7 @@
app:riv_oval="true" />
<TextView
android:layout_marginStart="5dp"
android:id="@+id/item_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@ -45,6 +45,7 @@
<string name="random_pk_info_btn_end" translatable="false">正在退出匹配 %s</string>
<string name="random_pk_info_btn_end_desc" translatable="false">退出過程中也有可能匹配到對手</string>
<string name="random_pk_search_hint" translatable="false">請輸入您要pk的主播昵稱或id</string>
<string name="free_pk_user_pking" translatable="false">對方正在PK中</string>
</resources>