diff --git a/common/src/main/java/com/yunbao/common/Constants.java b/common/src/main/java/com/yunbao/common/Constants.java index 1fc271e19..ab1f75031 100644 --- a/common/src/main/java/com/yunbao/common/Constants.java +++ b/common/src/main/java/com/yunbao/common/Constants.java @@ -24,6 +24,9 @@ public class Constants { public static final String STREAM = "stream"; public static final String LIMIT = "limit"; public static final String UID = "uid"; + public static final String USER_NAME = "userName";//用户名 + public static final String USER_ICON = "userIcon";//用户头像 + public static final String TIP = "tip"; public static final String SHOW_INVITE = "showInvite"; public static final String USER_BEAN = "userBean"; @@ -47,6 +50,7 @@ public class Constants { public static final String LIVE_CLASS_PREFIX = "liveClass_"; public static final String LIVE_ADMIN_ROOM = "liveAdminRoom"; public static final String LIVE_ANCHER_NAME = "ancherName";//主播名 + public static final String LIVE_ANCHER_ICON = "ancherIcon";//主播头像 public static final String HAS_GAME = "hasGame"; public static final String OPEN_FLASH = "openFlash"; public static final String SHARE_QR_CODE_FILE = "shareQrCodeFile.png"; diff --git a/live/src/main/java/com/yunbao/live/activity/LiveActivity.java b/live/src/main/java/com/yunbao/live/activity/LiveActivity.java index 4d5515766..25d86311b 100644 --- a/live/src/main/java/com/yunbao/live/activity/LiveActivity.java +++ b/live/src/main/java/com/yunbao/live/activity/LiveActivity.java @@ -56,6 +56,7 @@ import com.yunbao.live.dialog.LiveGuardDialogFragment; import com.yunbao.live.dialog.LiveInputDialogFragment; import com.yunbao.live.dialog.LiveMoreDialogFragment; import com.yunbao.live.dialog.LiveNewGuardBuyDialogFragment; +import com.yunbao.live.dialog.LiveNewGuardListDialogFragment; import com.yunbao.live.dialog.LiveRedPackListDialogFragment; import com.yunbao.live.dialog.LiveRedPackSendDialogFragment; import com.yunbao.live.dialog.LiveShareDialogFragment; @@ -118,6 +119,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL protected int mSocketUserType;//socket用户类型 30 普通用户 40 管理员 50 主播 60超管 public static String mStream; protected String mAncherName; + protected String mAncherIcon; public static String mLiveUid; protected String mDanmuPrice;//弹幕价格 protected String mCoinName;//钻石名称 @@ -1251,6 +1253,18 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL fragment.setArguments(bundle); fragment.show(getSupportFragmentManager(), "LiveGuardDialogFragment"); } + /** + * 守护列表弹窗 + */ + public void openNewGuardListWindow() { + LiveNewGuardListDialogFragment fragment = new LiveNewGuardListDialogFragment(); + fragment.setLiveGuardInfo(mLiveGuardInfo); + Bundle bundle = new Bundle(); + bundle.putString(Constants.LIVE_UID, mLiveUid); + bundle.putBoolean(Constants.ANCHOR, mIsAnchor); + fragment.setArguments(bundle); + fragment.show(getSupportFragmentManager(), "LiveGuardDialogFragment"); + } /** * 打開粉絲團 @@ -1315,6 +1329,8 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL bundle.putString(Constants.LIVE_UID, mLiveUid); bundle.putString(Constants.LIVE_ANCHER_NAME, mAncherName); bundle.putString(Constants.STREAM, mStream); + bundle.putString(Constants.LIVE_ANCHER_ICON,mAncherIcon); + bundle.putString(Constants.USER_ICON,CommonAppConfig.getInstance().getUserBean().getAvatar()); fragment.setArguments(bundle); fragment.show(getSupportFragmentManager(), "LiveGuardBuyDialogFragment"); } diff --git a/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java b/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java index be020fe84..fdcda64ed 100644 --- a/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java +++ b/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java @@ -275,6 +275,7 @@ public class LiveAudienceActivity extends LiveActivity { mLiveUid = mLiveBean.getUid(); mStream = mLiveBean.getStream(); mAncherName = liveBean.getUserNiceName(); + mAncherIcon = liveBean.getAvatar(); Log.e("收到socket--->", "mLiveUid--------------------------->" + mLiveUid); //加载当前页面数据 @@ -555,6 +556,7 @@ public class LiveAudienceActivity extends LiveActivity { mLiveUid = liveBean.getUid(); mStream = liveBean.getStream(); mAncherName = liveBean.getUserNiceName(); + mAncherIcon = liveBean.getAvatar(); manager.onAdd(liveBean, mLiveType, mLiveTypeVal, mLiveSDK); } diff --git a/live/src/main/java/com/yunbao/live/adapter/GuardAdapter.java b/live/src/main/java/com/yunbao/live/adapter/GuardAdapter.java index c9c4a57f8..119bb244c 100644 --- a/live/src/main/java/com/yunbao/live/adapter/GuardAdapter.java +++ b/live/src/main/java/com/yunbao/live/adapter/GuardAdapter.java @@ -2,9 +2,11 @@ package com.yunbao.live.adapter; import android.content.Context; import android.graphics.drawable.Drawable; + import androidx.annotation.NonNull; import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.RecyclerView; + import android.text.Html; import android.view.View; import android.view.ViewGroup; @@ -35,9 +37,11 @@ public class GuardAdapter extends RefreshAdapter { private Drawable mGuardDrawable0; private Drawable mGuardDrawable1; private Drawable mGuardDrawable2; + private boolean isShowTitle; - public GuardAdapter(Context context, boolean dialog) { + public GuardAdapter(Context context, boolean dialog, boolean isShowTitle) { super(context); + this.isShowTitle = isShowTitle; mDialog = dialog; mVotesName = CommonAppConfig.getInstance().getVotesName(); mWeekContributeString = WordUtil.getString(R.string.guard_week_con); @@ -46,9 +50,15 @@ public class GuardAdapter extends RefreshAdapter { mGuardDrawable2 = ContextCompat.getDrawable(context, R.mipmap.icon_guard_type_2); } + public GuardAdapter(Context context, boolean dialog) { + this(context, dialog, true); + } @Override public int getItemViewType(int position) { + if(!isShowTitle){ + return NORMAL; + } if (position == 0) { return HEAD; } @@ -105,7 +115,7 @@ public class GuardAdapter extends RefreshAdapter { if (levelBean != null) { ImgLoader.display(mContext, levelBean.getThumb(), mLevel); } - mVotes.setText(Html.fromHtml( " " + bean.getContribute() + " " + mVotesName)); + mVotes.setText(Html.fromHtml(" " + bean.getContribute() + " " + mVotesName)); } } @@ -142,7 +152,7 @@ public class GuardAdapter extends RefreshAdapter { mIcon.setImageDrawable(mGuardDrawable0); } else if (bean.getType() == Constants.GUARD_TYPE_MONTH) { mIcon.setImageDrawable(mGuardDrawable1); - } else if (bean.getType() == Constants.GUARD_TYPE_YEAR){ + } else if (bean.getType() == Constants.GUARD_TYPE_YEAR) { mIcon.setImageDrawable(mGuardDrawable2); } } diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveNewGuardBuyDialogFragment.java b/live/src/main/java/com/yunbao/live/dialog/LiveNewGuardBuyDialogFragment.java index 0cbce77cf..39161f02e 100644 --- a/live/src/main/java/com/yunbao/live/dialog/LiveNewGuardBuyDialogFragment.java +++ b/live/src/main/java/com/yunbao/live/dialog/LiveNewGuardBuyDialogFragment.java @@ -8,6 +8,9 @@ import android.view.Gravity; import android.view.View; import android.view.Window; import android.view.WindowManager; +import android.widget.Button; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; import android.widget.TextView; import androidx.annotation.Nullable; @@ -16,10 +19,13 @@ import androidx.recyclerview.widget.RecyclerView; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.makeramen.roundedimageview.RoundedImageView; +import com.opensource.svgaplayer.SVGAImageView; import com.yunbao.common.CommonAppConfig; import com.yunbao.common.Constants; import com.yunbao.common.bean.UserBean; import com.yunbao.common.dialog.AbsDialogFragment; +import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.http.HttpCallback; import com.yunbao.common.utils.DialogUitl; import com.yunbao.common.utils.RouteUtil; @@ -48,17 +54,27 @@ public class LiveNewGuardBuyDialogFragment extends AbsDialogFragment implements private RecyclerView mRights;//权益列表 private RecyclerView mBuys;//购买列表 + private RoundedImageView userIcon, userIconOne, userIconTwo; + private SVGAImageView iconCover; private TextView anchorName; + private TextView guardCoin2; + private TextView guardBuy; + private TextView guard_tips; + private Button submit; + private LinearLayout buy2; + private RelativeLayout buy1; private TextView mCoin; private String mCoinName; private TextView mCoinNameTextView; private View mBtnBuy; - private List mRightList=new ArrayList<>();//权限列表 + private List mRightList = new ArrayList<>();//权限列表 private List mBuyList;//商品列表 private long mCoinVal;//余额 private String mLiveUid; private String mStream; private String mAncherName; + private String mAncherIcon; + private String mUserIcon; private LiveGuardInfo mLiveGuardInfo; private GuardBuyBean mTargetBuyBean; @@ -105,11 +121,26 @@ public class LiveNewGuardBuyDialogFragment extends AbsDialogFragment implements mRights = mRootView.findViewById(R.id.guard_rights); mBuys = mRootView.findViewById(R.id.guard_buys); anchorName = mRootView.findViewById(R.id.guard_anchor_name); + userIcon = mRootView.findViewById(R.id.guard_imageView); + userIconOne = mRootView.findViewById(R.id.guard_imageView_one); + userIconTwo = mRootView.findViewById(R.id.guard_imageView_two); + iconCover = mRootView.findViewById(R.id.gift_svga); + guardCoin2 = mRootView.findViewById(R.id.guard_coin2); + guardBuy = mRootView.findViewById(R.id.guard_buy); + submit = mRootView.findViewById(R.id.guard_submit); + buy1 = mRootView.findViewById(R.id.buy1); + buy2 = mRootView.findViewById(R.id.buy2); + guard_tips = mRootView.findViewById(R.id.guard_textView2); + + iconCover.setImageResource(R.drawable.guardian_img_wings); + mBtnBuy.setOnClickListener(this); + submit.setOnClickListener(this); + guardBuy.setOnClickListener(this); mRights.setHasFixedSize(true); mRights.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false)); mBuys.setHasFixedSize(true); - mBuys.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false){ + mBuys.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false) { @Override public boolean canScrollHorizontally() {//购买列表禁止滑动 return false; @@ -127,10 +158,13 @@ public class LiveNewGuardBuyDialogFragment extends AbsDialogFragment implements if (bundle != null) { mLiveUid = bundle.getString(Constants.LIVE_UID); mStream = bundle.getString(Constants.STREAM); - mAncherName=bundle.getString(Constants.LIVE_ANCHER_NAME); + mAncherName = bundle.getString(Constants.LIVE_ANCHER_NAME); + mAncherIcon = bundle.getString(Constants.LIVE_ANCHER_ICON); + mUserIcon = bundle.getString(Constants.USER_ICON); String coinName = WordUtil.getString(R.string.diamond); mCoinName = coinName; - mCoinNameTextView.setText(WordUtil.getString(R.string.guard_my) + coinName + ":"); + // mCoinNameTextView.setText(WordUtil.getString(R.string.guard_my) + coinName + ":"); + mCoinNameTextView.setText("快为您喜欢的主播开通守护吧"); anchorName.setText(String.format("成爲%s的守護", mAncherName)); } LiveHttpUtil.getGuardBuyList(new HttpCallback() { @@ -146,6 +180,7 @@ public class LiveNewGuardBuyDialogFragment extends AbsDialogFragment implements e.printStackTrace(); } mCoin.setText(String.valueOf(mCoinVal)); + guardCoin2.setText(WordUtil.getString(R.string.guard_my) + mCoinName + ":" + mCoinVal); buyItemsAdapter.setItems(mBuyList); mGuardRightAdapter.setList(mRightList); buyItemsAdapter.notifyDataSetChanged(); @@ -157,13 +192,49 @@ public class LiveNewGuardBuyDialogFragment extends AbsDialogFragment implements } } }); + initView(); + } + + /** + * 根据守护类型初始化不同的底部布局 + */ + private void initView() { + int guardType = mLiveGuardInfo.getMyGuardType(); + if (guardType == Constants.GUARD_TYPE_NONE) { + iconCover.setBackgroundResource(R.drawable.guardian_img_wings); + buy1.setVisibility(View.VISIBLE); + buy2.setVisibility(View.GONE); + } else { + buy2.setVisibility(View.VISIBLE); + buy1.setVisibility(View.GONE); + userIconOne.setVisibility(View.VISIBLE); + userIconTwo.setVisibility(View.VISIBLE); + iconCover.setImageResource(R.drawable.guardian_img_two); + ImgLoader.display(mContext, mAncherIcon, userIconOne); + ImgLoader.display(mContext, mUserIcon, userIconTwo); + String title = ""; + switch (guardType) { + case Constants.GUARD_TYPE_DAY: + title = "您是當前主播的周守護"; + break; + case Constants.GUARD_TYPE_MONTH: + title = "您是當前主播的月守護"; + break; + case Constants.GUARD_TYPE_YEAR: + title = "您是當前主播的年守護"; + break; + } + anchorName.setText(title); + guard_tips.setText("守護日期截止到:"+ mLiveGuardInfo.getMyGuardEndTime()); + } + } private void refreshList(int index) { if (!mRightList.isEmpty()) { GuardBuyBean guardBuyBean = mBuyList.get(index - 1); - mTargetBuyBean=guardBuyBean; + mTargetBuyBean = guardBuyBean; for (GuardRightBean bean : mRightList) { bean.setChecked(false); } @@ -177,18 +248,15 @@ public class LiveNewGuardBuyDialogFragment extends AbsDialogFragment implements } - @Override public void onClick(View view) { int i = view.getId(); - if (i == R.id.guard_btn_buy) { + if (i == R.id.guard_btn_buy || i == R.id.guard_submit) { clickBuyGuard(); + } else if (i == R.id.guard_buy) { + forwardMyCoin(); } -// else if (i == R.id.coin) { -// forwardMyCoin(); -// -// } } /** diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveNewGuardListDialogFragment.java b/live/src/main/java/com/yunbao/live/dialog/LiveNewGuardListDialogFragment.java new file mode 100644 index 000000000..e8dc83c1b --- /dev/null +++ b/live/src/main/java/com/yunbao/live/dialog/LiveNewGuardListDialogFragment.java @@ -0,0 +1,201 @@ +package com.yunbao.live.dialog; + +import android.os.Bundle; +import android.view.Gravity; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.constraintlayout.widget.ConstraintLayout; +import androidx.fragment.app.FragmentTransaction; +import androidx.recyclerview.widget.LinearLayoutManager; + +import com.alibaba.fastjson.JSON; +import com.opensource.svgaplayer.SVGAImageView; +import com.yunbao.common.CommonAppConfig; +import com.yunbao.common.Constants; +import com.yunbao.common.adapter.RefreshAdapter; +import com.yunbao.common.bean.LevelBean; +import com.yunbao.common.custom.CommonRefreshView; +import com.yunbao.common.dialog.AbsDialogFragment; +import com.yunbao.common.glide.ImgLoader; +import com.yunbao.common.http.HttpCallback; +import com.yunbao.common.utils.CommonIconUtil; +import com.yunbao.common.utils.WordUtil; +import com.yunbao.live.R; +import com.yunbao.live.activity.LiveActivity; +import com.yunbao.live.adapter.GuardAdapter; +import com.yunbao.live.bean.GuardUserBean; +import com.yunbao.live.bean.LiveGuardInfo; +import com.yunbao.live.http.LiveHttpUtil; + +import java.util.Arrays; +import java.util.List; + +/** + * 新版守护列表 + */ +public class LiveNewGuardListDialogFragment extends AbsDialogFragment implements View.OnClickListener { + private ImageView guardIcon, userSex, userLevel; + private ConstraintLayout mRootLayout; + private CommonRefreshView mRefreshView; + private TextView mBtnBuy, userName, userGuard,tip1, tip2; + private SVGAImageView giftSvga; + private LinearLayout userLayout; + + private GuardAdapter mGuardAdapter; + private LiveGuardInfo mLiveGuardInfo; + private String mLiveUid; + private boolean mIsAnchor;//是否是主播 + + @Override + protected int getLayoutId() { + return R.layout.dialog_new_guard_list; + } + + @Override + protected int getDialogStyle() { + return R.style.dialog2; + } + + @Override + protected boolean canCancel() { + return true; + } + + public void setLiveGuardInfo(LiveGuardInfo info) { + mLiveGuardInfo = info; + } + + @Override + protected void setWindowAttributes(Window window) { + window.setWindowAnimations(R.style.bottomToTopAnim); + WindowManager.LayoutParams params = window.getAttributes(); + params.width = WindowManager.LayoutParams.MATCH_PARENT; + params.height = WindowManager.LayoutParams.WRAP_CONTENT; + params.gravity = Gravity.BOTTOM; + window.setAttributes(params); + } + + @Override + public void onActivityCreated(@Nullable Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + Bundle bundle = getArguments(); + if (bundle == null) { + return; + } + mIsAnchor = bundle.getBoolean(Constants.ANCHOR, false); + mLiveUid = bundle.getString(Constants.LIVE_UID); + guardIcon = mRootView.findViewById(R.id.guard_imageView); + mRootLayout = mRootView.findViewById(R.id.guard_constraintLayout); + mBtnBuy = mRootView.findViewById(R.id.guard_btn_buy); + giftSvga = mRootView.findViewById(R.id.gift_svga); + mRefreshView = mRootView.findViewById(R.id.refreshView); + userName = mRootView.findViewById(R.id.list_guard_list_user_name); + userGuard = mRootView.findViewById(R.id.list_guard_list_user_guard); + userLevel = mRootView.findViewById(R.id.list_guard_list_user_level); + userSex = mRootView.findViewById(R.id.list_guard_list_user_sex); + userLayout = mRootView.findViewById(R.id.guard_linearLayout); + tip1 = mRootView.findViewById(R.id.guard_tip1); + tip2 = mRootView.findViewById(R.id.guard_tip2); + mBtnBuy.setOnClickListener(this); + mBtnBuy.setEnabled(true); + mBtnBuy.setText(R.string.guard_buy_2); + initView(); + } + + private void initView() { + mRefreshView.setEmptyLayoutId(mIsAnchor ? R.layout.view_no_data_guard_anc : R.layout.view_no_data_guard_aud); + mRefreshView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false)); + mRefreshView.setDataHelper(new CommonRefreshView.DataHelper() { + @Override + public RefreshAdapter getAdapter() { + if (mGuardAdapter == null) { + mGuardAdapter = new GuardAdapter(mContext, true, false); + } + return mGuardAdapter; + } + + @Override + public void loadData(int p, HttpCallback callback) { + LiveHttpUtil.getGuardList(mLiveUid, p, callback); + } + + @Override + public List processData(String[] info) { + List list = JSON.parseArray(Arrays.toString(info), GuardUserBean.class); + if (list.isEmpty()) { + userLayout.setVisibility(View.INVISIBLE); + }else { + GuardUserBean bean = list.get(0); + giftSvga.setImageResource(R.drawable.guardian_img_wings_p); + ImgLoader.display(mContext, bean.getAvatar(), guardIcon); + guardIcon.setVisibility(View.VISIBLE); + userName.setText(bean.getUserNiceName()); + String guardString = WordUtil.getString(R.string.guard_week_con); + userGuard.setText(guardString + " " + bean.getContribute()); + userSex.setImageResource(CommonIconUtil.getSexIcon(bean.getSex())); + LevelBean levelBean = CommonAppConfig.getInstance().getLevel(bean.getLevel()); + if (levelBean != null) { + ImgLoader.display(mContext, levelBean.getThumb(), userLevel); + } + } + if (mLiveGuardInfo != null) { + int guardType = mLiveGuardInfo.getMyGuardType(); + if (guardType == Constants.GUARD_TYPE_NONE) { + tip1.setText(R.string.guard_tip_0); + } else if (guardType == Constants.GUARD_TYPE_DAY) { + tip1.setText(WordUtil.getString(R.string.guard_tip_day) + mLiveGuardInfo.getMyGuardEndTime()); + mBtnBuy.setText(R.string.guard_buy_3); + } else if (guardType == Constants.GUARD_TYPE_MONTH) { + tip1.setText(WordUtil.getString(R.string.guard_tip_1) + mLiveGuardInfo.getMyGuardEndTime()); + mBtnBuy.setText(R.string.guard_buy_3); + } else if (guardType == Constants.GUARD_TYPE_YEAR) { + tip1.setText(WordUtil.getString(R.string.guard_tip_2) + mLiveGuardInfo.getMyGuardEndTime()); + mBtnBuy.setText(R.string.guard_buy_3); + } + } + return list; + } + + @Override + public void onRefreshSuccess(List list, int listCount) { + + } + + @Override + public void onRefreshFailure() { + + } + + @Override + public void onLoadMoreSuccess(List loadItemList, int loadItemCount) { + + } + + @Override + public void onLoadMoreFailure() { + + } + }); + mRefreshView.initData(); + } + + @Override + public void onClick(View view) { + dismiss(); + ((LiveActivity) mContext).openNewBuyGuardWindow(); + } + + @Override + public int show(@NonNull FragmentTransaction transaction, @Nullable String tag) { + int show = super.show(transaction, tag); + initView(); + return show; + } +} diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveUserMoreDialogFragment.java b/live/src/main/java/com/yunbao/live/dialog/LiveUserMoreDialogFragment.java index 70a5a88c0..cd3755697 100644 --- a/live/src/main/java/com/yunbao/live/dialog/LiveUserMoreDialogFragment.java +++ b/live/src/main/java/com/yunbao/live/dialog/LiveUserMoreDialogFragment.java @@ -143,7 +143,7 @@ public class LiveUserMoreDialogFragment extends AbsDialogFragment implements Vie ((LiveActivity) mContext).openLuckGiftTip(); } else if (Tips.equals("2")) { dismiss(); - ((LiveActivity) mContext).openGuardListWindow(); + ((LiveActivity) mContext).openNewGuardListWindow(); } else if (Tips.equals("3")) { dismiss(); ((LiveActivity) mContext).openFansWindow(); diff --git a/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java index f30e929ab..c95f388e4 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java @@ -3,6 +3,7 @@ package com.yunbao.live.views; import android.app.Activity; import android.app.Dialog; import android.content.Context; +import android.content.Intent; import android.graphics.Outline; import android.os.Bundle; import android.os.Handler; @@ -111,6 +112,7 @@ import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.List; +import java.util.Random; import pl.droidsonroids.gif.GifImageView; @@ -851,6 +853,8 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis } }); loadWishlistData(); + //打开活动窗口 + ViewClicksAntiShake.clicksAntiShake(wishListLayout, () -> mContext.startActivity(new Intent(mContext, ZhuangBanActivity.class).putExtra("url", ""))); //打招呼消息 fastMsgRecyclerView = (RecyclerView) findViewById(R.id.room_fast_msg); fastMsgRecyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false)); @@ -859,8 +863,9 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis fastMessageRecyclerViewAdapter.setMessageListener(msg -> { //点击的消息发送出去 ((LiveActivity) mContext).sendChatMessage(msg); + fastMsgRecyclerView.setVisibility(View.GONE); }); - fastMsgRecyclerView.setItemAnimator(new DefaultItemAnimator()); + // fastMsgRecyclerView.setItemAnimator(new DefaultItemAnimator()); } private void showBanner2() { @@ -1058,8 +1063,31 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis } wishListFlipper.startFlipping(); }); - - + } + /** + * 初始化小时榜。 + * 等待接口 + * TextView得独立出来用来替换数字 + */ + protected void initHourRankList(){ + ((Activity)mContext).runOnUiThread(()->{ + ViewFlipper flipper= (ViewFlipper) findViewById(R.id.hour_rank_list); + for (int i = 0; i < 2; i++) { + LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(DpUtil.dp2px(44),DpUtil.dp2px(16)); + View wish = LayoutInflater.from(mContext).inflate(R.layout.view_wish_list, null); + ImageView wishPic = wish.findViewById(R.id.wish_pic); + TextView wishIndex = wish.findViewById(R.id.wish_index); + if(i==0) { + wishPic.setImageResource(R.drawable.live_tags_hot); + }else{ + wishPic.setImageResource(R.drawable.live_tags_hour_list); + } + wishPic.setLayoutParams(params); + wishIndex.setText(new Random().nextInt(5000)+""); + flipper.addView(wish); + } + flipper.startFlipping(); + }); } /** @@ -1492,7 +1520,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis //直播间 粉丝排行榜 openMedalRankWindow(); } else if (i == R.id.btn_guard) { - ((LiveActivity) mContext).openGuardListWindow(); + ((LiveActivity) mContext).openNewGuardListWindow(); } else if (i == R.id.btn_red_pack) { ((LiveActivity) mContext).openRedPackListWindow(); @@ -1511,8 +1539,8 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis } else if (i == R.id.ft_hot_add) { ((LiveActivity) mContext).openHotListWindow(1); } else if (i == R.id.user_guard) { - // ((LiveActivity) mContext).openUserMoreListWindow(2, true); - ((LiveActivity) mContext).openGuardListWindow(); + // ((LiveActivity) mContext).openUserMoreListWindow(2, true); + ((LiveActivity) mContext).openNewGuardListWindow(); } } 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 0509e24c7..49fc3f1a3 100644 --- a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java +++ b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java @@ -267,6 +267,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe enterRoom(); } }); + mLiveRoomViewHolder.initHourRankList(); } @Override diff --git a/live/src/main/res/drawable/bg_hour_rank_list.xml b/live/src/main/res/drawable/bg_hour_rank_list.xml new file mode 100644 index 000000000..1306ca2af --- /dev/null +++ b/live/src/main/res/drawable/bg_hour_rank_list.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/live/src/main/res/drawable/bg_new_guard_but.xml b/live/src/main/res/drawable/bg_new_guard_but.xml new file mode 100644 index 000000000..6b46ce82e --- /dev/null +++ b/live/src/main/res/drawable/bg_new_guard_but.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/live/src/main/res/drawable/guardian_img_two.png b/live/src/main/res/drawable/guardian_img_two.png new file mode 100644 index 000000000..e596bc84c Binary files /dev/null and b/live/src/main/res/drawable/guardian_img_two.png differ diff --git a/live/src/main/res/drawable/guardian_img_wings_p.png b/live/src/main/res/drawable/guardian_img_wings_p.png new file mode 100644 index 000000000..ba82895f1 Binary files /dev/null and b/live/src/main/res/drawable/guardian_img_wings_p.png differ diff --git a/live/src/main/res/drawable/icon_top_up.png b/live/src/main/res/drawable/icon_top_up.png new file mode 100644 index 000000000..32d63b8b0 Binary files /dev/null and b/live/src/main/res/drawable/icon_top_up.png differ diff --git a/live/src/main/res/drawable/live_icon_right_more.png b/live/src/main/res/drawable/live_icon_right_more.png new file mode 100644 index 000000000..b1f82a27c Binary files /dev/null and b/live/src/main/res/drawable/live_icon_right_more.png differ diff --git a/live/src/main/res/drawable/live_tags_hot.png b/live/src/main/res/drawable/live_tags_hot.png new file mode 100644 index 000000000..572dd2a2c Binary files /dev/null and b/live/src/main/res/drawable/live_tags_hot.png differ diff --git a/live/src/main/res/drawable/live_tags_hour_list.png b/live/src/main/res/drawable/live_tags_hour_list.png new file mode 100644 index 000000000..4bc867303 Binary files /dev/null and b/live/src/main/res/drawable/live_tags_hour_list.png differ diff --git a/live/src/main/res/layout/dialog_guard_list.xml b/live/src/main/res/layout/dialog_guard_list.xml index 6b97a3ee6..cdce9303d 100644 --- a/live/src/main/res/layout/dialog_guard_list.xml +++ b/live/src/main/res/layout/dialog_guard_list.xml @@ -56,11 +56,10 @@ android:layout_height="match_parent" android:layout_marginLeft="10dp" android:layout_toLeftOf="@id/btn_buy" + android:background="#161616" android:gravity="center_vertical" android:textColor="@color/gray1" - android:textSize="12sp" - android:background="#161616" - /> + android:textSize="12sp" /> diff --git a/live/src/main/res/layout/dialog_new_guard_buy.xml b/live/src/main/res/layout/dialog_new_guard_buy.xml index 702310ae3..9e881af6b 100644 --- a/live/src/main/res/layout/dialog_new_guard_buy.xml +++ b/live/src/main/res/layout/dialog_new_guard_buy.xml @@ -118,19 +118,21 @@ + app:layout_constraintStart_toStartOf="parent" + tools:visibility="gone"> + android:textSize="14sp" + android:visibility="gone" /> + + + + + + + + + + + + +