開播設置,修改開播接口新增分辨率設置參數

This commit is contained in:
18401019693
2022-12-29 17:04:23 +08:00
parent 87e3dddac5
commit d81e6b9f04
27 changed files with 691 additions and 35 deletions

View File

@@ -0,0 +1,105 @@
package com.yunbao.common.bean;
import com.yunbao.common.Constants;
import com.yunbao.common.R;
import java.util.ArrayList;
import java.util.List;
/**
* Created by cxf on 2018/10/8.
* 直播房间类型
*/
public class LiveRoomTypeBean {
private int mId;
private String mName;
private int mCheckedIcon;
private int mUnCheckedIcon;
private boolean mChecked;
public LiveRoomTypeBean() {
}
public LiveRoomTypeBean(int id, String name) {
mId = id;
mName = name;
}
public LiveRoomTypeBean(int id, String name, int checkedIcon, int unCheckedIcon) {
mId = id;
mName = name;
mCheckedIcon = checkedIcon;
mUnCheckedIcon = unCheckedIcon;
}
public int getId() {
return mId;
}
public void setId(int id) {
mId = id;
}
public String getName() {
return mName;
}
public void setName(String name) {
mName = name;
}
public int getCheckedIcon() {
return mCheckedIcon;
}
public void setCheckedIcon(int checkedIcon) {
mCheckedIcon = checkedIcon;
}
public int getUnCheckedIcon() {
return mUnCheckedIcon;
}
public void setUnCheckedIcon(int unCheckedIcon) {
mUnCheckedIcon = unCheckedIcon;
}
public boolean isChecked() {
return mChecked;
}
public void setChecked(boolean checked) {
mChecked = checked;
}
public static List<LiveRoomTypeBean> getLiveTypeList(String[][] liveTypes) {
List<LiveRoomTypeBean> list = new ArrayList<>();
if (liveTypes != null) {
for (String[] arr : liveTypes) {
LiveRoomTypeBean bean = new LiveRoomTypeBean(Integer.parseInt(arr[0]), arr[1]);
switch (bean.getId()) {
case Constants.LIVE_TYPE_NORMAL:
bean.setCheckedIcon(R.mipmap.icon_live_type_normal_1);
bean.setUnCheckedIcon(R.mipmap.icon_live_type_normal_2);
break;
case Constants.LIVE_TYPE_PWD:
bean.setCheckedIcon(R.mipmap.icon_live_type_pwd_1);
bean.setUnCheckedIcon(R.mipmap.icon_live_type_pwd_2);
break;
case Constants.LIVE_TYPE_PAY:
bean.setCheckedIcon(R.mipmap.icon_live_type_pay_1);
bean.setUnCheckedIcon(R.mipmap.icon_live_type_pay_2);
break;
case Constants.LIVE_TYPE_TIME:
bean.setCheckedIcon(R.mipmap.icon_live_type_time_1);
bean.setUnCheckedIcon(R.mipmap.icon_live_type_time_2);
break;
}
list.add(bean);
}
}
return list;
}
}

View File

@@ -17,6 +17,7 @@ import com.yunbao.common.bean.LinkMicUserBeanV2;
import com.yunbao.common.bean.LiveAiRobotBean;
import com.yunbao.common.bean.LiveInfoModel;
import com.yunbao.common.bean.LiveRoomActivityBanner;
import com.yunbao.common.bean.LiveStetUpStatusModel;
import com.yunbao.common.bean.NobleRankHideUserListModel;
import com.yunbao.common.bean.NobleTrumpetModel;
import com.yunbao.common.bean.PkRankBean;
@@ -1034,6 +1035,34 @@ public class LiveNetManager {
}).isDisposed();
}
/**
* 开播设置数据获取
*
* @param liveUid
* @param callback
*/
public void getLiveStetUpStatus(String liveUid, HttpCallback<LiveStetUpStatusModel> callback) {
API.get().pdLiveApi(mContext)
.getLiveStetUpStatus(liveUid)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<LiveStetUpStatusModel>>() {
@Override
public void accept(ResponseModel<LiveStetUpStatusModel> liveStetUpStatusModelResponseModel) throws Exception {
if (callback != null) {
callback.onSuccess(liveStetUpStatusModelResponseModel.getData().getInfo());
}
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
if (callback != null) {
callback.onError(throwable.getMessage());
}
}
}).isDisposed();
}
/**
* 直播间取消网络请求
*/

View File

@@ -0,0 +1,178 @@
package com.yunbao.common.views;
import android.content.Context;
import android.widget.TextView;
import androidx.annotation.NonNull;
import com.lxj.xpopup.core.CenterPopupView;
import com.yunbao.common.R;
import com.yunbao.common.bean.LiveClassBean;
import com.yunbao.common.bean.LiveRoomTypeBean;
import com.yunbao.common.bean.LiveStetUpStatusModel;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
public class LiveOpenCustomPopup extends CenterPopupView {
//清晰度
private int selectClarity;
//直播类型
private LiveClassBean classBean;
//房间类型
private LiveRoomTypeBean liveRoomTypeBean;
private TextView textClarity, textLiveRoomType, textLiveClass, textLiveWishlist, textRobot;
public LiveOpenCustomPopup setClassBean(LiveClassBean classBean) {
this.classBean = classBean;
textLiveClass.setText(classBean.getName());
return this;
}
public LiveOpenCustomPopup setLiveRoomTypeBean(LiveRoomTypeBean liveRoomTypeBean) {
this.liveRoomTypeBean = liveRoomTypeBean;
textLiveRoomType.setText(liveRoomTypeBean.getName());
return this;
}
public LiveOpenCustomPopup(@NonNull Context context, int selectClarity, LiveClassBean classBean, LiveRoomTypeBean liveRoomTypeBean) {
super(context);
this.selectClarity = selectClarity;
this.classBean = classBean;
this.liveRoomTypeBean = liveRoomTypeBean;
}
// 返回自定义弹窗的布局
@Override
protected int getImplLayoutId() {
return R.layout.view_live_open;
}
// 执行初始化操作比如findView设置点击或者任何你弹窗内的业务逻辑
@Override
protected void onCreate() {
super.onCreate();
initView();
initDate();
}
private void initView() {
textClarity = findViewById(R.id.text_clarity);
textLiveRoomType = findViewById(R.id.text_live_room_type);
textLiveClass = findViewById(R.id.text_live_class);
textLiveWishlist = findViewById(R.id.text_live_wishlist);
textRobot = findViewById(R.id.text_robot);
if (classBean != null) {
textLiveClass.setText(classBean.getName());
}
if (liveRoomTypeBean != null) {
textLiveRoomType.setText(liveRoomTypeBean.getName());
}
setSelectClarity(selectClarity);
//關閉彈窗
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.live_open_cancel), () -> dismiss());
//開播
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.live_open_ok), () -> {
if (callBack != null) {
callBack.startLive(liveRoomTypeBean, classBean);
}
dismiss();
});
//設置直播類型
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.line_live_class), () -> {
if (callBack != null) {
callBack.openLiveClass(classBean);
}
});
//設置清晰度
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.line_clarity), () -> {
if (callBack != null) {
callBack.selectClarity(selectClarity);
}
});
//設置房間類型
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.line_live_room_type), () -> {
if (callBack != null) {
callBack.openLiveRoomType(liveRoomTypeBean);
}
});
//打開心願單
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.line_live_wishlist), () -> {
if (callBack != null) {
callBack.openWishlist();
}
});
//設置機器人
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.line_robot), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
if (callBack != null) {
callBack.openRobot();
}
}
});
}
public void setSelectClarity(int selectClarity) {
switch (selectClarity) {
case 0:
textClarity.setText(R.string.standard_clear);
break;
case 1:
textClarity.setText(R.string.high_definition);
break;
case 2:
textClarity.setText(R.string.ultra_hd);
break;
}
}
public void initDate() {
LiveNetManager.get(getContext())
.getLiveStetUpStatus(String.valueOf(IMLoginManager.get(getContext()).getUserInfo().getId()),
new HttpCallback<LiveStetUpStatusModel>() {
@Override
public void onSuccess(LiveStetUpStatusModel data) {
textLiveWishlist.setText(data.getWishListState() ? R.string.do_set : R.string.not_set);
textRobot.setText(data.getAiStateState() ? R.string.robot_yes : R.string.robot_no);
}
@Override
public void onError(String error) {
ToastUtil.show(error);
}
});
}
private LiveOpenCallBack callBack;
public LiveOpenCustomPopup setCallBack(LiveOpenCallBack callBack) {
this.callBack = callBack;
return this;
}
public interface LiveOpenCallBack {
//開播
void startLive(LiveRoomTypeBean liveRoomTypeBean, LiveClassBean classBean);
//選擇清晰度
void selectClarity(int selectClarity);
//打開機器人
void openRobot();
//打開直播間類型
void openLiveRoomType(LiveRoomTypeBean liveRoomTypeBean);
//打開直播類型
void openLiveClass(LiveClassBean classBean);
//打開心願單
void openWishlist();
}
}

View File

@@ -1,7 +1,6 @@
package com.yunbao.common.views;
import android.content.Context;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.inputmethod.EditorInfo;
@@ -24,8 +23,6 @@ import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.utils.ToastUtil;
import java.util.List;
public class LiveRobotSettingCustomPopup extends BottomPopupView implements View.OnClickListener {
private static String TAG = "AI机器人";
private EditText robotNameSetting;
@@ -36,6 +33,10 @@ public class LiveRobotSettingCustomPopup extends BottomPopupView implements View
private int robotStateInt = 1;
public int getRobotStateInt() {
return robotStateInt;
}
public LiveRobotSettingCustomPopup(@NonNull Context context) {
super(context);
}

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white" />
<stroke
android:width="1.2dp"
android:color="#FFAE05" />
<corners android:radius="21dp" />
</shape>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFC621" />
<corners android:radius="21dp" />
</shape>

View File

@@ -0,0 +1,245 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="280dp"
android:layout_height="340dp"
android:orientation="vertical"
app:cardCornerRadius="12dp"
app:cardElevation="16dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:gravity="center"
android:text="@string/confirmation_of_broadcast"
android:textColor="#161616"
android:textSize="16sp" />
<LinearLayout
android:id="@+id/line_clarity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="29dp"
android:layout_marginTop="14dp"
android:layout_marginEnd="29dp"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/clarity"
android:textColor="#999999"
android:textSize="14sp" />
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="1" />
<TextView
android:id="@+id/text_clarity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/clarity"
android:textColor="#FFC621"
android:textSize="14sp" />
<ImageView
android:layout_width="5dp"
android:layout_height="10dp"
android:layout_marginStart="6dp"
android:src="@mipmap/icon_more_open" />
</LinearLayout>
<LinearLayout
android:id="@+id/line_live_room_type"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="29dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="29dp"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/live_room_type"
android:textColor="#999999"
android:textSize="14sp" />
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="1" />
<TextView
android:id="@+id/text_live_room_type"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/clarity"
android:textColor="#FFC621"
android:textSize="14sp" />
<ImageView
android:layout_width="5dp"
android:layout_height="10dp"
android:layout_marginStart="6dp"
android:src="@mipmap/icon_more_open" />
</LinearLayout>
<LinearLayout
android:id="@+id/line_live_class"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="29dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="29dp"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/live_class1"
android:textColor="#999999"
android:textSize="14sp" />
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="1" />
<TextView
android:id="@+id/text_live_class"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/live_class1"
android:textColor="#FFC621"
android:textSize="14sp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="10dp"
android:layout_marginStart="6dp"
android:src="@mipmap/icon_more_open" />
</LinearLayout>
<LinearLayout
android:id="@+id/line_live_wishlist"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="29dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="29dp"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/live_wishlist"
android:textColor="#999999"
android:textSize="14sp" />
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="1" />
<TextView
android:id="@+id/text_live_wishlist"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/clarity"
android:textColor="#FFC621"
android:textSize="14sp" />
<ImageView
android:layout_width="5dp"
android:layout_height="10dp"
android:layout_marginStart="6dp"
android:src="@mipmap/icon_more_open" />
</LinearLayout>
<LinearLayout
android:id="@+id/line_robot"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="29dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="29dp"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/robot"
android:textColor="#999999"
android:textSize="14sp" />
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="1" />
<TextView
android:id="@+id/text_robot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/clarity"
android:textColor="#FFC621"
android:textSize="14sp" />
<ImageView
android:layout_width="5dp"
android:layout_height="10dp"
android:layout_marginStart="6dp"
android:src="@mipmap/icon_more_open" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/live_open_cancel"
android:layout_width="100dp"
android:layout_height="36dp"
android:layout_marginStart="16dp"
android:layout_marginTop="24dp"
android:background="@drawable/backgroud_live_open_lfet"
android:gravity="center"
android:text="@string/back"
android:textColor="#FFC621"
android:textSize="14sp" />
<View
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />
<TextView
android:id="@+id/live_open_ok"
android:layout_width="100dp"
android:layout_height="36dp"
android:layout_marginTop="24dp"
android:layout_marginEnd="16dp"
android:background="@drawable/backgroud_live_open_right"
android:gravity="center"
android:text="@string/broadcast"
android:textColor="@color/white"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 883 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 955 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 632 B

View File

@@ -1000,4 +1000,13 @@
<string name="standard_clear" translatable="false">流暢</string>
<string name="ultra_hd" translatable="false">超高清</string>
<string name="clarity_hint" translatable="false">確定清晰度開播後,需要重新開播才能更改</string>
<string name="confirmation_of_broadcast" translatable="false">開播設置確認</string>
<string name="clarity" translatable="false">清晰度</string>
<string name="live_class1" translatable="false">直播頻道</string>
<string name="broadcast" translatable="false">開播</string>
<string name="robot" translatable="false">機器人</string>
<string name="do_set" translatable="false">已設置</string>
<string name="not_set" translatable="false">未設置</string>
<string name="robot_no" translatable="false"></string>
<string name="robot_yes" translatable="false"></string>
</resources>