diff --git a/common/src/main/java/com/yunbao/common/bean/AnchorRecommendModel.java b/common/src/main/java/com/yunbao/common/bean/AnchorRecommendModel.java index e64e48793..21125ed50 100644 --- a/common/src/main/java/com/yunbao/common/bean/AnchorRecommendModel.java +++ b/common/src/main/java/com/yunbao/common/bean/AnchorRecommendModel.java @@ -22,6 +22,17 @@ public class AnchorRecommendModel extends BaseModel { private int upShow = 0; @SerializedName("list") private List list = new ArrayList<>(); + @SerializedName("slide") + private List slide = new ArrayList<>(); + + public List getSlide() { + return slide; + } + + public AnchorRecommendModel setSlide(List slide) { + this.slide = slide; + return this; + } public int getListShow() { return listShow; diff --git a/common/src/main/res/layout/item_sidebar_lives.xml b/common/src/main/res/layout/item_sidebar_lives.xml index 582388b5e..2d6a3bc40 100644 --- a/common/src/main/res/layout/item_sidebar_lives.xml +++ b/common/src/main/res/layout/item_sidebar_lives.xml @@ -21,9 +21,10 @@ list = new ArrayList<>(); private void getDrawer() { - //侧边栏轮播 - MainNetManager.get(mContext) - .getHot(1, new com.yunbao.common.http.base.HttpCallback>() { - @Override - public void onSuccess(List data) { - slideInfoModels = data; - } - @Override - public void onError(String error) { - - } - }); //推荐位 MainNetManager.get(mContext) - .anchorRecommend("10", new com.yunbao.common.http.base.HttpCallback() { + .anchorRecommend("12", new com.yunbao.common.http.base.HttpCallback() { @Override public void onSuccess(AnchorRecommendModel anchorRecommendModel) { - list = anchorRecommendModel.getList(); - + list.clear(); + slideInfoModels.clear(); + List models = anchorRecommendModel.getList(); + int userIndex = -1; + for (int i = 0; i < list.size(); i++) { + if (TextUtils.equals(list.get(i).getUid(), PortraitLiveManager.liveID)) { + userIndex = i; + } + } + if (userIndex != -1) { + models.remove(userIndex); + } + models.add(0, new AnchorRecommendItemModel()); + list.addAll(models); + slideInfoModels = anchorRecommendModel.getSlide(); } @Override diff --git a/live/src/main/java/com/yunbao/live/dialog/SidebarLiveAudience.java b/live/src/main/java/com/yunbao/live/dialog/SidebarLiveAudience.java index 8a89393b0..e738164af 100644 --- a/live/src/main/java/com/yunbao/live/dialog/SidebarLiveAudience.java +++ b/live/src/main/java/com/yunbao/live/dialog/SidebarLiveAudience.java @@ -1,6 +1,8 @@ package com.yunbao.live.dialog; +import android.content.DialogInterface; import android.os.Bundle; +import android.text.TextUtils; import android.view.Display; import android.view.Gravity; import android.view.View; @@ -22,14 +24,19 @@ import com.yunbao.common.dialog.AbsDialogFragment; import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.http.HttpCallback; import com.yunbao.common.http.main.MainNetManager; +import com.yunbao.common.utils.Bus; import com.yunbao.common.utils.DeviceUtils; import com.yunbao.common.utils.RouteUtil; import com.yunbao.live.R; -import com.yunbao.live.activity.LiveAudienceActivity; import com.yunbao.live.adapter.SidebarAdapter; import com.yunbao.live.bean.LiveBean; +import com.yunbao.live.event.LiveAudienceEvent; +import com.yunbao.live.event.LiveRoomChangeEvent; import com.yunbao.live.http.LiveHttpUtil; import com.yunbao.live.presenter.LiveRoomCheckLivePresenter; +import com.yunbao.live.views.PortraitLiveManager; + +import org.greenrobot.eventbus.EventBus; import java.util.ArrayList; import java.util.List; @@ -40,6 +47,7 @@ import java.util.List; public class SidebarLiveAudience extends AbsDialogFragment { //侧边栏背景 private ImageView sidebarBack; + private View mask; //侧边栏刷新列表 public CommonRefreshView sidebarList; @@ -48,6 +56,8 @@ public class SidebarLiveAudience extends AbsDialogFragment { private List slideInfoModels = new ArrayList<>(); private List list = new ArrayList<>(); + private int index = 0; + @Override protected int getLayoutId() { return R.layout.view_sidebar_live_audience; @@ -63,6 +73,7 @@ public class SidebarLiveAudience extends AbsDialogFragment { super.onActivityCreated(savedInstanceState); Bundle bundle = getArguments(); sidebarBack = (ImageView) findViewById(R.id.sidebar_back); + mask = findViewById(R.id.mask); if (bundle != null) { String avatar = bundle.getString("Avatar"); int liveBg = bundle.getInt("LiveBg"); @@ -73,8 +84,10 @@ public class SidebarLiveAudience extends AbsDialogFragment { //侧边栏背景 if (liveBg == 1) { ImgLoader.displayBlurLive(mContext, avatar, sidebarBack); + mask.setVisibility(View.VISIBLE); } else { ImgLoader.display(mContext, R.mipmap.live_bg, sidebarBack); + mask.setVisibility(View.GONE); } @@ -112,39 +125,46 @@ public class SidebarLiveAudience extends AbsDialogFragment { @Override public void refresh() { - //推荐位 - MainNetManager.get(getActivity()) - .anchorRecommend("10", new com.yunbao.common.http.base.HttpCallback() { - @Override - public void onSuccess(AnchorRecommendModel anchorRecommendModel) { - //侧边栏 - MainNetManager.get(getActivity()) - .getHot(1, new com.yunbao.common.http.base.HttpCallback>() { - @Override - public void onSuccess(List data) { - List list = anchorRecommendModel.getList(); - list.add(0, new AnchorRecommendItemModel()); - sidebarAdapter.addData(list); - sidebarList.onFinish(); - sidebarAdapter.setData(data); - } + if (index > 0) { + //推荐位 + MainNetManager.get(getActivity()) + .anchorRecommend("12", new com.yunbao.common.http.base.HttpCallback() { + @Override + public void onSuccess(AnchorRecommendModel anchorRecommendModel) { + List list = anchorRecommendModel.getList(); + int userIndex = -1; + for (int i = 0; i < list.size(); i++) { + if (TextUtils.equals(list.get(i).getUid(), PortraitLiveManager.liveID)) { + userIndex = i; + } + } + if (userIndex != -1) { + list.remove(userIndex); + } - @Override - public void onError(String error) { + list.add(0, new AnchorRecommendItemModel()); - } - }); + sidebarAdapter.addData(list); + sidebarAdapter.setData(anchorRecommendModel.getSlide()); + sidebarList.onFinish(); + } - } + @Override + public void onError(String error) { + } + }); + } else { + index = index + 1; + } - @Override - public void onError(String error) { - } - }); } }); sidebarList.initData(); - sidebarAdapter.setOnItemClickListener((bean, position) -> gotoLive(bean.getUid())); + sidebarAdapter.setOnItemClickListener((bean, position) -> { + + gotoLive(bean.getUid()); + dismiss(); + }); } @Override @@ -182,8 +202,7 @@ public class SidebarLiveAudience extends AbsDialogFragment { if (liveBean1 == null) { return; } - LiveAudienceActivity.forward(getActivity(), liveBean1, liveType, liveTypeVal, "", 0, liveSdk); - (getActivity()).finish(); + EventBus.getDefault().post(new LiveRoomChangeEvent(liveBean, liveType, liveTypeVal)); }); mCheckLivePresenter.checkLive(liveBean); @@ -194,4 +213,12 @@ public class SidebarLiveAudience extends AbsDialogFragment { } }); } + + @Override + public void onDismiss(DialogInterface dialog) { + super.onDismiss(dialog); + Bus.get().post(new LiveAudienceEvent() + .setType(LiveAudienceEvent.LiveAudienceType.REFRESH_THE_LIVEl_PAGE) + ); + } } diff --git a/live/src/main/java/com/yunbao/live/event/LiveAudienceEvent.java b/live/src/main/java/com/yunbao/live/event/LiveAudienceEvent.java index 758192c40..1471ca115 100644 --- a/live/src/main/java/com/yunbao/live/event/LiveAudienceEvent.java +++ b/live/src/main/java/com/yunbao/live/event/LiveAudienceEvent.java @@ -1,6 +1,7 @@ package com.yunbao.live.event; import com.yunbao.common.bean.ActiveModel; +import com.yunbao.common.bean.AnchorRecommendItemModel; import com.yunbao.common.bean.BaseModel; import com.yunbao.live.bean.OpenParametersModel; @@ -9,6 +10,16 @@ public class LiveAudienceEvent extends BaseModel { private ActiveModel model = new ActiveModel(); private String avatar = ""; private OpenParametersModel parametersModel = new OpenParametersModel(); + private AnchorRecommendItemModel anchorRecommendItemModel = new AnchorRecommendItemModel(); + + public AnchorRecommendItemModel getAnchorRecommendItemModel() { + return anchorRecommendItemModel; + } + + public LiveAudienceEvent setAnchorRecommendItemModel(AnchorRecommendItemModel anchorRecommendItemModel) { + this.anchorRecommendItemModel = anchorRecommendItemModel; + return this; + } public OpenParametersModel getParametersModel() { return parametersModel; @@ -60,7 +71,8 @@ public class LiveAudienceEvent extends BaseModel { WISH_LIST(11, "心愿单"), OPEN_PARAMETERS(12, "开放参数"), ACTIVITY_CENTER(13, "活動中心"), - LIVE_ROOM_EXCEPTION(14, "直播间异常"); + LIVE_ROOM_EXCEPTION(14, "直播间异常"), + REFRESH_THE_LIVEl_PAGE(15, "刷新直播页面"); private int type; private String name; diff --git a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java index 5a4b13f4a..b7e7567ef 100644 --- a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java +++ b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java @@ -105,7 +105,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe //直播间背景 private ImageView liveBack; - + private View mask; //侧滑布局 // private DrawerLayout drawerLayout; //直播间拆分布局 @@ -184,6 +184,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe //直播页面背景 liveBack = mRootContainer.findViewById(R.id.live_back); + mask = mRootContainer.findViewById(R.id.mask); } @@ -219,8 +220,8 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe //直播间背景 - ImgLoader.displayBlurLive(mContext, mLiveBean.getAvatar(), liveBack); - + ImgLoader.display(mContext, R.mipmap.live_bg, liveBack); + mask.setVisibility(View.GONE); mLivePlayViewHolder.setCover(data.getThumb()); mLivePlayViewHolder.play(data.getPull()); mLiveRoomViewHolder.setAvatar(data.getAvatar()); @@ -811,6 +812,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe if (liveBg == 1) { //直播间背景 ImgLoader.displayBlurLive(mContext, mLiveBean.getAvatar(), liveBack); + mask.setVisibility(View.VISIBLE); } //回传参数 Bus.get().post(new LiveAudienceEvent() diff --git a/live/src/main/res/layout/activity_live_audience.xml b/live/src/main/res/layout/activity_live_audience.xml index d3fa3a24a..3c77a5a7f 100644 --- a/live/src/main/res/layout/activity_live_audience.xml +++ b/live/src/main/res/layout/activity_live_audience.xml @@ -18,6 +18,7 @@ android:src="@mipmap/live_bg" /> diff --git a/live/src/main/res/layout/activity_live_detail.xml b/live/src/main/res/layout/activity_live_detail.xml index bf7edf6a4..b709ef276 100644 --- a/live/src/main/res/layout/activity_live_detail.xml +++ b/live/src/main/res/layout/activity_live_detail.xml @@ -9,10 +9,6 @@ android:layout_height="match_parent" android:overScrollMode="never" /> - + \ No newline at end of file diff --git a/live/src/main/res/layout/view_sidebar_live_audience.xml b/live/src/main/res/layout/view_sidebar_live_audience.xml index 633315de9..87d7479a4 100644 --- a/live/src/main/res/layout/view_sidebar_live_audience.xml +++ b/live/src/main/res/layout/view_sidebar_live_audience.xml @@ -10,6 +10,7 @@ android:scaleType="centerCrop" />