diff --git a/common/src/main/java/com/yunbao/common/http/PDLiveApi.java b/common/src/main/java/com/yunbao/common/http/PDLiveApi.java index 3961dbefa..5d269d74e 100644 --- a/common/src/main/java/com/yunbao/common/http/PDLiveApi.java +++ b/common/src/main/java/com/yunbao/common/http/PDLiveApi.java @@ -559,6 +559,7 @@ public interface PDLiveApi { @Query("type") int type, @Query("liveuid") String liveUid ); + /** * 获取直播数据 */ @@ -566,4 +567,12 @@ public interface PDLiveApi { Observable> getLiveDataInfo( @Query("liveuid") String liveUid ); + + /** + * 获取直播数据 + */ + @GET("/api/public/?service=Message.getAnchorMsg") + Observable>> getAnchorMsg( + @Query("liveuid") String liveUid, @Query("page") int page, @Query("limit") int limit + ); } diff --git a/common/src/main/java/com/yunbao/common/http/live/LiveNetManager.java b/common/src/main/java/com/yunbao/common/http/live/LiveNetManager.java index e3a23e104..89ac477d5 100644 --- a/common/src/main/java/com/yunbao/common/http/live/LiveNetManager.java +++ b/common/src/main/java/com/yunbao/common/http/live/LiveNetManager.java @@ -1092,6 +1092,7 @@ public class LiveNetManager { /** * 获取直播任务 + * * @param type 1 直播任务 2粉丝任务 */ public void getLiveTask(int type, String liveUid, HttpCallback callback) { @@ -1105,6 +1106,7 @@ public class LiveNetManager { callback.onError(throwable.getMessage()); }).isDisposed(); } + /** * 获取直播数据 */ @@ -1120,6 +1122,29 @@ public class LiveNetManager { }).isDisposed(); } + /** + * 获取主播消息 + * + * @param liveUid 直播间id + * @param page 页码 + * @param callback 回调 + */ + public void getAnchorMsg(String liveUid, int page, HttpCallback> callback) { + API.get().pdLiveApi(mContext) + .getAnchorMsg(liveUid, page, 10) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(listResponseModel -> { + if (callback != null) { + callback.onSuccess(listResponseModel.getData().getInfo()); + } + }, throwable -> { + if (callback != null) { + callback.onError(throwable.getMessage()); + } + }).isDisposed(); + } + /** * 直播间取消网络请求 */ diff --git a/common/src/main/java/com/yunbao/common/views/LiveAnchorMessageCustomPopup.java b/common/src/main/java/com/yunbao/common/views/LiveAnchorMessageCustomPopup.java index ff91ff65a..4f574524e 100644 --- a/common/src/main/java/com/yunbao/common/views/LiveAnchorMessageCustomPopup.java +++ b/common/src/main/java/com/yunbao/common/views/LiveAnchorMessageCustomPopup.java @@ -13,6 +13,7 @@ import com.yunbao.common.bean.ListInfoMessageModel; import com.yunbao.common.http.base.HttpCallback; import com.yunbao.common.http.live.LiveNetManager; import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.views.weight.OnRecyclerViewScrollListener; import java.util.List; @@ -22,6 +23,13 @@ import java.util.List; public class LiveAnchorMessageCustomPopup extends BottomPopupView { private LiveSystemMessageAdapter adapter; private RecyclerView liveMessage; + private String liveUid; + private int page = 1, size = 0; + + public LiveAnchorMessageCustomPopup(@NonNull Context context, String liveUid) { + super(context); + this.liveUid = liveUid; + } public LiveAnchorMessageCustomPopup(@NonNull Context context) { super(context); @@ -43,9 +51,10 @@ public class LiveAnchorMessageCustomPopup extends BottomPopupView { private void initDate() { LiveNetManager.get(getContext()) - .getListInfo("1", 1, new HttpCallback>() { + .getAnchorMsg(liveUid, page, new HttpCallback>() { @Override public void onSuccess(List data) { + size = data.size(); adapter.addData(data); } @@ -63,6 +72,16 @@ public class LiveAnchorMessageCustomPopup extends BottomPopupView { liveMessage.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false)); adapter = new LiveSystemMessageAdapter(getContext()); liveMessage.setAdapter(adapter); + liveMessage.addOnScrollListener(new OnRecyclerViewScrollListener() { + @Override + public void onBottom() { + if (size > 0) { + page = page + 1; + initDate(); + } + + } + }); } @Override diff --git a/common/src/main/java/com/yunbao/common/views/LiveSystemMessageViewHolder.java b/common/src/main/java/com/yunbao/common/views/LiveSystemMessageViewHolder.java index e1ffea244..76a478112 100644 --- a/common/src/main/java/com/yunbao/common/views/LiveSystemMessageViewHolder.java +++ b/common/src/main/java/com/yunbao/common/views/LiveSystemMessageViewHolder.java @@ -12,6 +12,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.yunbao.common.R; import com.yunbao.common.bean.ListInfoMessageModel; import com.yunbao.common.glide.ImgLoader; +import com.yunbao.common.utils.RouteUtil; public class LiveSystemMessageViewHolder extends RecyclerView.ViewHolder { private TextView titleText, timeText, contextLayout, toView; @@ -42,6 +43,12 @@ public class LiveSystemMessageViewHolder extends RecyclerView.ViewHolder { toView.setVisibility(View.GONE); } else { toView.setVisibility(View.VISIBLE); + toView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + RouteUtil.forwardLiveZhuangBanActivity(model.getLink(), false); + } + }); } } } diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveNewFunctionDialogFragment.java b/live/src/main/java/com/yunbao/live/dialog/LiveNewFunctionDialogFragment.java index 7e2468f40..3fc60e1a5 100644 --- a/live/src/main/java/com/yunbao/live/dialog/LiveNewFunctionDialogFragment.java +++ b/live/src/main/java/com/yunbao/live/dialog/LiveNewFunctionDialogFragment.java @@ -176,7 +176,7 @@ public class LiveNewFunctionDialogFragment extends AbsDialogFragment implements dismiss(); } else if (id == R.id.message_linear) { new XPopup.Builder(getContext()) - .asCustom(new LiveAnchorMessageCustomPopup(getContext())) + .asCustom(new LiveAnchorMessageCustomPopup(getContext(), liveUid)) .show(); dismiss(); } else if (id == R.id.broadcast_data) { diff --git a/live/src/main/java/com/yunbao/live/views/LiveNewReadyRyViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveNewReadyRyViewHolder.java index 71f803ca0..01f665785 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveNewReadyRyViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveNewReadyRyViewHolder.java @@ -26,6 +26,7 @@ import com.lxj.xpopup.core.BasePopupView; import com.lxj.xpopup.interfaces.XPopupCallback; import com.yunbao.common.CommonAppConfig; import com.yunbao.common.Constants; +import com.yunbao.common.bean.IMLoginModel; import com.yunbao.common.bean.LiveClassBean; import com.yunbao.common.bean.LiveRoomTypeBean; import com.yunbao.common.bean.UserBean; @@ -39,6 +40,7 @@ import com.yunbao.common.utils.Bus; import com.yunbao.common.utils.DialogUitl; import com.yunbao.common.utils.L; import com.yunbao.common.utils.ProcessImageUtil; +import com.yunbao.common.utils.RouteUtil; import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.WordUtil; @@ -64,6 +66,7 @@ import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; import java.io.File; +import java.util.Locale; import cn.rongcloud.rtc.api.RCRTCEngine; import cn.rongcloud.rtc.api.stream.RCRTCCameraOutputStream; @@ -92,7 +95,7 @@ public class LiveNewReadyRyViewHolder extends AbsViewHolder implements View.OnCl private ImageView imgClarity, selectorProtocol; private int selectClarity = 1; private LiveOpenCustomPopup liveOpenCustomPopup; - private boolean selector = false; + private boolean selector = true; public LiveNewReadyRyViewHolder(Context context, ViewGroup parentView, int liveSdk) { super(context, parentView, liveSdk); @@ -191,6 +194,7 @@ public class LiveNewReadyRyViewHolder extends AbsViewHolder implements View.OnCl findViewById(R.id.btn_start_live).setOnClickListener(this); findViewById(R.id.btn_wishlist).setOnClickListener(this); findViewById(R.id.btn_horizontally).setOnClickListener(this); + findViewById(R.id.anchor_agreement_layout).setOnClickListener(this); if (manager != null) { manager.setFaceStatusChanged(new FaceManager.FaceStatusChanged() { @@ -375,6 +379,10 @@ public class LiveNewReadyRyViewHolder extends AbsViewHolder implements View.OnCl } else if (i == R.id.btn_room_type) { chooseLiveType(); } else if (i == R.id.btn_start_live) { + if (!selector) { + ToastUtil.show(R.string.anchor_agreement_hint); + return; + } if (mLiveClassID == 0) { ToastUtil.show(R.string.live_choose_live_class); return; @@ -542,6 +550,21 @@ public class LiveNewReadyRyViewHolder extends AbsViewHolder implements View.OnCl new XPopup.Builder(mContext) .asCustom(new LiveRobotSettingCustomPopup(mContext)) .show(); + } else if (i == R.id.anchor_agreement_layout) { + String ct = Locale.getDefault().getLanguage(); + IMLoginModel model = IMLoginManager.get(mContext).getUserInfo(); + StringBuffer url = new StringBuffer(); + url.append(CommonAppConfig.HOST); + if (TextUtils.equals(ct, "zh")) { + url.append("/index.php?g=portal&m=page&a=index&id=66"); + } else { + url.append("/index.php?g=portal&m=page&a=index&id=67"); + } + url.append("&uid=") + .append(model.getId()) + .append("&token=") + .append(model.getToken()); + RouteUtil.forwardLiveZhuangBanActivity(url.toString(), false); } }