From 3376a57f9dd9cccace32d3ff948c84cdfbcd94d4 Mon Sep 17 00:00:00 2001 From: 18401019693 Date: Tue, 18 Jul 2023 13:48:37 +0800 Subject: [PATCH 01/19] =?UTF-8?q?6.5.4=E7=89=88=E6=9C=AC=E6=9B=B4=E6=96=B0?= =?UTF-8?q?-=E2=80=9C@=E2=80=9D=E5=8A=9F=E8=83=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../live/activity/LiveAudienceActivity.java | 19 ++++++- .../yunbao/live/adapter/LiveChatAdapter.java | 15 ++++++ .../live/dialog/LiveInputDialogFragment.java | 29 ++++++---- .../live/dialog/LiveUserDialogFragment.java | 32 +++++++---- .../yunbao/live/event/LiveAudienceEvent.java | 14 ++++- .../yunbao/live/views/LiveRoomViewHolder.java | 4 +- .../main/res/drawable/background_fc6945.xml | 9 ++++ .../main/res/layout/dialog_new_live_user.xml | 54 +++++++++++++------ 8 files changed, 138 insertions(+), 38 deletions(-) create mode 100644 live/src/main/res/drawable/background_fc6945.xml 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 3efff68d3..c52a984e8 100644 --- a/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java +++ b/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java @@ -92,6 +92,7 @@ import com.yunbao.live.dialog.LiveFansFragment; import com.yunbao.live.dialog.LiveGameDialogFragment; import com.yunbao.live.dialog.LiveGiftDialogFragment; import com.yunbao.live.dialog.LiveHDDialogFragment; +import com.yunbao.live.dialog.LiveInputDialogFragment; import com.yunbao.live.dialog.LiveMicUserDialogFragment; import com.yunbao.live.dialog.LiveTotalDialog; import com.yunbao.live.dialog.LiveWishListDialogFragment4Audience; @@ -1408,11 +1409,27 @@ public class LiveAudienceActivity extends LiveActivity { manager.redPacketManage(event.getRedPacketModel()); } break; - case RED_PACKET_SUPER_JACKPOT: + case RED_PACKET_SUPER_JACKPOT: if (manager != null) { manager.setRedPacketInfoModel(event.getRedPacketInfoModel()); } break; + case INPUT_DIALOG: + LiveInputDialogFragment liveInputDialogFragment = new LiveInputDialogFragment(); + Bundle liveInputBundle = new Bundle(); + liveInputBundle.putString(Constants.LIVE_DANMU_PRICE, mDanmuPrice); + liveInputBundle.putString(Constants.COIN_NAME, mCoinName); + liveInputBundle.putString(Constants.LIVE_UID, mLiveUid); + liveInputBundle.putString(Constants.LIVE_STREAM, mStream); + liveInputBundle.putString(Constants.LIVE_UID, mLiveUid); + if (event.getOlineUserlistModel() == null) { + liveInputBundle.putString("TagUser", ""); + } else { + liveInputBundle.putString("TagUser", GsonUtils.toJson(event.getOlineUserlistModel())); + } + liveInputDialogFragment.setArguments(liveInputBundle); + liveInputDialogFragment.show(getSupportFragmentManager(), "LiveInputDialogFragment"); + break; } diff --git a/live/src/main/java/com/yunbao/live/adapter/LiveChatAdapter.java b/live/src/main/java/com/yunbao/live/adapter/LiveChatAdapter.java index 60177c90e..2ebb8c568 100644 --- a/live/src/main/java/com/yunbao/live/adapter/LiveChatAdapter.java +++ b/live/src/main/java/com/yunbao/live/adapter/LiveChatAdapter.java @@ -41,6 +41,7 @@ import com.makeramen.roundedimageview.RoundedImageView; import com.yunbao.common.CommonAppConfig; import com.yunbao.common.Constants; import com.yunbao.common.bean.IMLoginModel; +import com.yunbao.common.bean.OlineUserlistModel; import com.yunbao.common.custom.VerticalImageSpan; import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.interfaces.OnItemClickListener; @@ -236,6 +237,20 @@ public class LiveChatAdapter extends RecyclerView.Adapter { } void setData(final LiveChatBean bean, int position) { + itemView.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + if (!TextUtils.isEmpty(bean.getId())&&!TextUtils.isEmpty(bean.getUserNiceName())){ + Bus.get().post(new LiveAudienceEvent() + .setType(LiveAudienceEvent.LiveAudienceType.INPUT_DIALOG) + .setOlineUserlistModel(new OlineUserlistModel().setId(bean.getId()).setUserNicename(bean.getUserNiceName()))); + + } + + Log.e("eqwewqeweq", bean.toString()); + return true; + } + }); mTextView.setTextSize(fountSize); automatic_chat.setTextSize(fountSize); itemView.setTag(bean); diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveInputDialogFragment.java b/live/src/main/java/com/yunbao/live/dialog/LiveInputDialogFragment.java index 3df086e38..265dfb616 100644 --- a/live/src/main/java/com/yunbao/live/dialog/LiveInputDialogFragment.java +++ b/live/src/main/java/com/yunbao/live/dialog/LiveInputDialogFragment.java @@ -26,9 +26,11 @@ import android.widget.RadioGroup; import androidx.fragment.app.FragmentActivity; +import com.blankj.utilcode.util.GsonUtils; import com.yunbao.common.Constants; import com.yunbao.common.bean.BaseModel; import com.yunbao.common.bean.NobleTrumpetModel; +import com.yunbao.common.bean.OlineUserlistModel; import com.yunbao.common.custom.MyRadioButton; import com.yunbao.common.dialog.AbsDialogFragment; import com.yunbao.common.event.LiveInputEvent; @@ -37,7 +39,6 @@ import com.yunbao.common.http.live.LiveNetManager; import com.yunbao.common.utils.Bus; import com.yunbao.common.utils.DpUtil; import com.yunbao.common.utils.ToastUtil; -import com.yunbao.common.utils.WordUtil; import com.yunbao.common.views.weight.AtTextWatcher; import com.yunbao.common.views.weight.ViewClicksAntiShake; import com.yunbao.live.R; @@ -168,9 +169,10 @@ public class LiveInputDialogFragment extends AbsDialogFragment implements View.O } String danmuPrice = bundle.getString(Constants.LIVE_DANMU_PRICE); String coinName = bundle.getString(Constants.COIN_NAME); + mLiveUid = bundle.getString(Constants.LIVE_UID); - mHint1 =mContext.getString(R.string.live_open_alba) + danmuPrice + coinName + "/" +mContext.getString(R.string.live_tiao); - mHint2 =mContext.getString(R.string.live_say_something); + mHint1 = mContext.getString(R.string.live_open_alba) + danmuPrice + coinName + "/" + mContext.getString(R.string.live_tiao); + mHint2 = mContext.getString(R.string.live_say_something); mCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton button, boolean isChecked) { @@ -195,7 +197,16 @@ public class LiveInputDialogFragment extends AbsDialogFragment implements View.O } }); atTextWatcher = new AtTextWatcher(); + if (!TextUtils.isEmpty(bundle.getString("TagUser"))) { + OlineUserlistModel olineUserlistModel = GsonUtils.fromJson(bundle.getString("TagUser"), OlineUserlistModel.class); + atTextWatcher.insertTextForAt(olineUserlistModel, mInput); + new Handler().postDelayed(() -> { + mInput.requestFocus(); + //软键盘弹出 + imm.showSoftInput(mInput, InputMethodManager.SHOW_FORCED); + }, 600); + } } @Override @@ -218,19 +229,19 @@ public class LiveInputDialogFragment extends AbsDialogFragment implements View.O .nobleUseTrumpet(trumpetMsg, mLiveUid, new HttpCallback>() { @Override public void onSuccess(List data) { - // dismiss(); + // dismiss(); ToastUtil.show(getResources().getString(R.string.use_successfully)); } @Override public void onError(String error) { - // dismiss(); + // dismiss(); ToastUtil.show(error); } }); } else { ToastUtil.show(R.string.enough_speakers); - // dismiss(); + // dismiss(); } break; @@ -243,7 +254,7 @@ public class LiveInputDialogFragment extends AbsDialogFragment implements View.O /* if (imm != null) {//收软键盘 imm.hideSoftInputFromWindow(mInput.getWindowToken(), 0); }*/ - // dismiss(); + // dismiss(); break; } mInput.setText(""); @@ -312,7 +323,7 @@ public class LiveInputDialogFragment extends AbsDialogFragment implements View.O messageType = SendMessageType.POPUPSCREEN; } else { radioButton.setCompoundDrawablesRelativeWithIntrinsicBounds(worldHornP, null, null, null); - mInput.setHint(String.format(mContext.getString(R.string.whole_station_horn_hint), trumpetNum)); + mInput.setHint(String.format(mContext.getString(R.string.whole_station_horn_hint), trumpetNum + "")); messageType = SendMessageType.WORLDHORN; } } else { @@ -367,7 +378,7 @@ public class LiveInputDialogFragment extends AbsDialogFragment implements View.O @Override public void onError(String error) { - ToastUtil.show( R.string.net_error); + ToastUtil.show(R.string.net_error); } }); } diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveUserDialogFragment.java b/live/src/main/java/com/yunbao/live/dialog/LiveUserDialogFragment.java index dc3c779cc..3d3eb8bbb 100644 --- a/live/src/main/java/com/yunbao/live/dialog/LiveUserDialogFragment.java +++ b/live/src/main/java/com/yunbao/live/dialog/LiveUserDialogFragment.java @@ -4,7 +4,6 @@ import android.app.Dialog; import android.graphics.Color; import android.graphics.drawable.Drawable; import android.os.Bundle; - import android.text.TextUtils; import android.util.Log; import android.view.Gravity; @@ -29,13 +28,14 @@ import com.yunbao.common.CommonAppConfig; import com.yunbao.common.Constants; import com.yunbao.common.bean.FansMedalBean; import com.yunbao.common.bean.LevelBean; +import com.yunbao.common.bean.LiveBean; +import com.yunbao.common.bean.OlineUserlistModel; import com.yunbao.common.bean.UserBean; import com.yunbao.common.dialog.AbsDialogFragment; import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.http.CommonHttpUtil; import com.yunbao.common.http.HttpCallback; import com.yunbao.common.interfaces.CommonCallback; -import com.yunbao.common.interfaces.OnItemClickListener; import com.yunbao.common.utils.Bus; import com.yunbao.common.utils.CommonIconUtil; import com.yunbao.common.utils.DialogUitl; @@ -45,11 +45,11 @@ import com.yunbao.common.utils.RouteUtil; import com.yunbao.common.utils.SVGAViewUtils; import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.views.weight.ViewClicksAntiShake; import com.yunbao.live.R; import com.yunbao.live.activity.LiveActivity; import com.yunbao.live.activity.LiveReportActivity; import com.yunbao.live.activity.LiveRyAnchorActivity; -import com.yunbao.common.bean.LiveBean; import com.yunbao.live.event.LiveAudienceEvent; import com.yunbao.live.event.LiveRoomChangeEvent; import com.yunbao.live.http.LiveHttpUtil; @@ -265,6 +265,7 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On } });*/ + } private void initListener() { @@ -498,7 +499,17 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On } } - + ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.ai_te), new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + if (!TextUtils.isEmpty(mUserBean.getId()) && !TextUtils.isEmpty(mUserBean.getUserNiceName())) { + Bus.get().post(new LiveAudienceEvent() + .setType(LiveAudienceEvent.LiveAudienceType.INPUT_DIALOG) + .setOlineUserlistModel(new OlineUserlistModel().setId(mUserBean.getId()).setUserNicename(mUserBean.getUserNiceName()))); + dismiss(); + } + } + }); } private void updateFollow() { @@ -557,7 +568,7 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On updateFollow(); if (isAttention == 1 && mLiveUid.equals(mToUid)) {//关注了主播 ((LiveActivity) mContext).sendSystemMessage( - CommonAppConfig.getInstance().getUserBean().getUserNiceName() +mContext.getString(R.string.live_follow_anchor)); + CommonAppConfig.getInstance().getUserBean().getUserNiceName() + mContext.getString(R.string.live_follow_anchor)); } } }); @@ -674,7 +685,7 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On if (isAnchor) { dismiss(); ((LiveActivity) mContext).openFansWindow(mToUid); - }else{ + } else { Bus.get().post(new LiveAudienceEvent() .setType(LiveAudienceEvent.LiveAudienceType.NOBLE)); } @@ -758,7 +769,7 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On } else if (tag == R.string.live_setting_close_live_2) {//禁用直播 closeLive2(); - } else if (tag==R.string.live_setting_gap_3){ + } else if (tag == R.string.live_setting_gap_3) { setShutUp3(); } } @@ -857,14 +868,15 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On dismiss(); LiveHttpUtil.superCloseRoom(mLiveUid, 1, mSuperCloseRoomCallback); } - private void setShutUp3(){ + + private void setShutUp3() { new LiveSettingSilenceDialog(mContext) .setItemClickListener((bean, position) -> { - LiveHttpUtil.setShutUp(mLiveUid, mStream, 1, mToUid, bean+"",new HttpCallback() { + LiveHttpUtil.setShutUp(mLiveUid, mStream, 1, mToUid, bean + "", new HttpCallback() { @Override public void onSuccess(int code, String msg, String[] info) { if (code == 0) { - ((LiveActivity) mContext).setShutUp(mToUid, mToName, 2,bean); + ((LiveActivity) mContext).setShutUp(mToUid, mToName, 2, bean); dismiss(); } else { ToastUtil.show(msg); 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 39bf9fb48..712463b10 100644 --- a/live/src/main/java/com/yunbao/live/event/LiveAudienceEvent.java +++ b/live/src/main/java/com/yunbao/live/event/LiveAudienceEvent.java @@ -7,6 +7,7 @@ import com.yunbao.common.bean.AnchorRecommendItemModel; import com.yunbao.common.bean.BaseModel; import com.yunbao.common.bean.LiveBean; import com.yunbao.common.bean.MsgModel; +import com.yunbao.common.bean.OlineUserlistModel; import com.yunbao.common.bean.RedPacketInfoModel; import com.yunbao.common.bean.RedPacketModel; import com.yunbao.common.bean.WishModel; @@ -47,6 +48,16 @@ public class LiveAudienceEvent extends BaseModel { private AllServerNotifyEvent allServerNotifyEvent; private RedPacketModel redPacketModel; private RedPacketInfoModel redPacketInfoModel; + private OlineUserlistModel olineUserlistModel; + + public OlineUserlistModel getOlineUserlistModel() { + return olineUserlistModel; + } + + public LiveAudienceEvent setOlineUserlistModel(OlineUserlistModel olineUserlistModel) { + this.olineUserlistModel = olineUserlistModel; + return this; + } public RedPacketInfoModel getRedPacketInfoModel() { return redPacketInfoModel; @@ -380,7 +391,8 @@ public class LiveAudienceEvent extends BaseModel { VOTE_END(67, "投票结束"), BLIND_BOX(68, "盲盒全服通知"), RED_PACKET(69, "RedPacket"), - RED_PACKET_SUPER_JACKPOT(70, "超级红包"); + RED_PACKET_SUPER_JACKPOT(70, "超级红包"), + INPUT_DIALOG(71, "输入框"); private int type; private String name; 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 ebca71e8f..d191a0f3b 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java @@ -1386,11 +1386,12 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis private Runnable timeRunnable = new Runnable() { @Override public void run() { - if (redTimeCountdown > 0) { + if (redTimeCountdown > 1) { redTimeCountdown = redTimeCountdown - 1; timeHandler.postDelayed(timeRunnable, 1000); redPacketCountdown.setText(String.format(mContext.getString(R.string.red_packet_countdown), TimeUtils.getTime(redTimeCountdown))); } else { + redTimeCountdown = 0; timeHandler.removeCallbacks(timeRunnable); StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append(mRedPacketModel.getRedPacketRemain()) @@ -1492,6 +1493,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis @Override public void onSuccess(RedPacketInfoModel data) { if (TextUtils.equals(data.getReceiveStatus(), "0")) { + redTimeCountdown = redTimeCountdown - 1; new XPopup.Builder(mContext) .asCustom(new ReceiveRendPacketPopup(mContext, redTimeCountdown, mLiveUid, mStream, redPacketModel.getRedPacketId(), data, false)) .show(); diff --git a/live/src/main/res/drawable/background_fc6945.xml b/live/src/main/res/drawable/background_fc6945.xml new file mode 100644 index 000000000..e1d116ea5 --- /dev/null +++ b/live/src/main/res/drawable/background_fc6945.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/live/src/main/res/layout/dialog_new_live_user.xml b/live/src/main/res/layout/dialog_new_live_user.xml index 5e99717cd..b10ddfbd1 100644 --- a/live/src/main/res/layout/dialog_new_live_user.xml +++ b/live/src/main/res/layout/dialog_new_live_user.xml @@ -1,7 +1,6 @@ @@ -20,18 +19,37 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> - + app:layout_constraintTop_toTopOf="parent"> + + + + + + + android:layout_marginStart="6dp" + android:orientation="horizontal"> + + + android:src="@mipmap/icon_user_card_t1" /> + + + android:src="@mipmap/icon_user_card_t2" /> Date: Fri, 21 Jul 2023 09:45:11 +0800 Subject: [PATCH 02/19] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=9A=8F=E6=9C=BAPK?= =?UTF-8?q?=E6=96=87=E6=A1=88=E5=9C=A8=E8=8B=B1=E6=96=87=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=E4=B8=8B=E8=BF=87=E9=95=BF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/manager/RandomPkManager.java | 2 +- .../main/res/layout/item_random_pk_info.xml | 127 +++++++++--------- 2 files changed, 68 insertions(+), 61 deletions(-) diff --git a/common/src/main/java/com/yunbao/common/manager/RandomPkManager.java b/common/src/main/java/com/yunbao/common/manager/RandomPkManager.java index da756f4c8..a5a85961a 100644 --- a/common/src/main/java/com/yunbao/common/manager/RandomPkManager.java +++ b/common/src/main/java/com/yunbao/common/manager/RandomPkManager.java @@ -401,7 +401,7 @@ public class RandomPkManager { * 清空状态,下播时调用 */ public void release() { - status = PK_STATUS_REQUEST; + status = PK_STATUS_DEFAULT; if (task != null) { task.cancel(); } diff --git a/live/src/main/res/layout/item_random_pk_info.xml b/live/src/main/res/layout/item_random_pk_info.xml index 86f6ccea9..a823df8a3 100644 --- a/live/src/main/res/layout/item_random_pk_info.xml +++ b/live/src/main/res/layout/item_random_pk_info.xml @@ -6,79 +6,86 @@ android:layout_height="wrap_content" android:visibility="visible"> - - - - - android:text="@string/random_pk_info_desc_1" - android:textColor="#F6F7FB" - android:textSize="14sp" /> + - + - - - + android:text="@string/random_pk_info_desc_1" + android:textColor="#F6F7FB" + android:textSize="14sp" /> + + + + + + + + + Date: Fri, 21 Jul 2023 13:34:31 +0800 Subject: [PATCH 03/19] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=8B=B1=E6=96=87?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=E4=B8=8B=EF=BC=8C=E8=B4=AD=E4=B9=B0=E6=98=AF?= =?UTF-8?q?=E5=AE=88=E6=8A=A4=E6=96=87=E6=A1=88=E8=B6=85=E9=95=BF=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/res/layout/dialog_new_guard_buy.xml | 16 +++++++++++----- .../main/res/layout/dialog_new_guard_list.xml | 18 +++++++++++++++--- live/src/main/res/layout/view_live_room.xml | 3 ++- 3 files changed, 28 insertions(+), 9 deletions(-) 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 b2bdcef04..75e04fce3 100644 --- a/live/src/main/res/layout/dialog_new_guard_buy.xml +++ b/live/src/main/res/layout/dialog_new_guard_buy.xml @@ -145,14 +145,20 @@ android:layout_marginTop="25dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - tools:visibility="gone"> + tools:visibility="visible"> - @@ -173,13 +179,13 @@ android:id="@+id/guard_btn_buy" android:layout_width="110dp" android:layout_height="30dp" - android:maxLines="1" - android:ellipsize="end" android:layout_alignParentEnd="true" android:layout_centerVertical="true" android:layout_marginEnd="15dp" android:background="@drawable/bg_guard_btn_buy" + android:ellipsize="end" android:gravity="center" + android:maxLines="1" android:text="@string/guard_buy" android:textColor="@color/white" android:textSize="14sp" /> @@ -194,7 +200,7 @@ android:orientation="vertical" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - tools:visibility="visible"> + tools:visibility="invisible"> - - diff --git a/live/src/main/res/layout/view_live_room.xml b/live/src/main/res/layout/view_live_room.xml index 7e621c3d3..7ecea37ba 100644 --- a/live/src/main/res/layout/view_live_room.xml +++ b/live/src/main/res/layout/view_live_room.xml @@ -515,7 +515,8 @@ android:clickable="true" android:focusable="true" android:gravity="center" - android:visibility="invisible"> + android:visibility="invisible" + tools:visibility="visible"> Date: Fri, 21 Jul 2023 14:19:20 +0800 Subject: [PATCH 04/19] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=9A=8F=E6=9C=BAPK?= =?UTF-8?q?=E5=BC=B9=E6=A1=86UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yunbao/live/dialog/RandomPkDialogFragment.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/live/src/main/java/com/yunbao/live/dialog/RandomPkDialogFragment.java b/live/src/main/java/com/yunbao/live/dialog/RandomPkDialogFragment.java index 2059c2917..5f4bbb70d 100644 --- a/live/src/main/java/com/yunbao/live/dialog/RandomPkDialogFragment.java +++ b/live/src/main/java/com/yunbao/live/dialog/RandomPkDialogFragment.java @@ -50,6 +50,8 @@ public class RandomPkDialogFragment extends AbsDialogFragment implements View.On mPkBtnDesc.setText(R.string.random_pk_info_btn_end_desc); mPkBtnDesc.setVisibility(View.VISIBLE); mPkBtn.setBackgroundResource(R.drawable.bg_live_room_random_pk_timer); + mPkBtn.setTag(true); + mRandomPkSwitch.setEnabled(false); } @Override @@ -67,6 +69,7 @@ public class RandomPkDialogFragment extends AbsDialogFragment implements View.On public void onPkEndStart() { super.onPkEndStart(); mPkBtn.setEnabled(false); + mRandomPkSwitch.setEnabled(false); } @Override @@ -75,6 +78,7 @@ public class RandomPkDialogFragment extends AbsDialogFragment implements View.On mPkBtnTitle.setText(String.format(mContext.getString(R.string.random_pk_info_btn_end), time)); mPkBtnDesc.setText(R.string.random_pk_info_btn_end_desc); mPkBtn.setEnabled(false); + mRandomPkSwitch.setEnabled(false); } @Override @@ -194,7 +198,7 @@ public class RandomPkDialogFragment extends AbsDialogFragment implements View.On @Override public void onError(String error) { - ToastUtil.show( R.string.net_error); + ToastUtil.show(R.string.net_error); } }); } @@ -276,7 +280,9 @@ public class RandomPkDialogFragment extends AbsDialogFragment implements View.On * 恢复按钮状态 */ private void resetPkBtn() { + mRandomPkSwitch.setEnabled(true); mPkBtnDesc.setVisibility(View.GONE); + mPkBtn.setEnabled(true); mPkBtnTitle.setText(R.string.random_pk_info_btn_start); mPkBtn.setBackgroundResource(R.drawable.bg_live_random_pk_info_btn); } From 0646f245b64b326f70e01459e72c542dd437d7e5 Mon Sep 17 00:00:00 2001 From: 18401019693 Date: Tue, 25 Jul 2023 14:08:52 +0800 Subject: [PATCH 05/19] =?UTF-8?q?6.5.4=E7=A4=BC=E7=89=A9=E6=A0=8F=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/build.gradle | 3 +- .../common/adapter/GiftNumberAdapter.java | 40 + .../yunbao/common/bean/GiftQuantityModel.java | 43 + .../com/yunbao/common/bean/LiveGiftBean.java | 26 +- .../yunbao/common/event/GiftNumberEvent.java | 16 + .../com/yunbao/common/glide/ImgLoader.java | 12 + .../yunbao/common/http/CommonHttpUtil.java | 6 +- .../com/yunbao/common/http/PDLiveApi.java | 1 + .../common/manager/GiftQuantityManager.java | 53 + .../yunbao/common/utils/BlurBitmapUtil.java | 56 + .../common/views/CustomDrawerPopupView.java | 2 +- .../com/yunbao/common/views/GiftNumber.java | 34 + .../yunbao/common/views/GiftNumberPopup.java | 59 + .../res/drawable/backgroud_custom_gift.xml | 10 + .../res/drawable/backgroud_custom_gift2.png | Bin 0 -> 73119 bytes .../drawable/background_gift_description.xml | 8 + .../res/drawable/background_gift_money.xml | 5 + .../res/drawable/background_gift_money2.xml | 7 + .../res/drawable/background_gift_select2.xml | 11 + .../res/drawable/bg_live_gift_send_new.xml | 15 + .../src/main/res/drawable/bg_parcel_point.xml | 5 + .../res/drawable/bg_selection_quantity.png | Bin 0 -> 10377 bytes .../main/res/drawable/icon_covering_layer.png | Bin 0 -> 2110 bytes .../main/res/drawable/progress_bg_user.xml | 21 + .../res/layout/dialog_live_gift_popup.xml | 357 ++++++ .../src/main/res/layout/view_blind_box.xml | 0 .../src/main/res/layout/view_gift_number.xml | 17 + .../main/res/layout/view_live_gift_number.xml | 45 + common/src/main/res/layout/view_nobility.xml | 65 + .../res/mipmap-mdpi/icon_live_gift_lian.png | Bin .../res/mipmap-xxhdpi}/bg_blind_bottom.png | Bin .../res/mipmap-xxhdpi/icon_aristocrat_tip.png | Bin 0 -> 2576 bytes .../res/mipmap-xxhdpi/icon_arrow_down.png | Bin 0 -> 168 bytes .../res/mipmap-xxhdpi/icon_arrow_right.png | Bin 0 -> 165 bytes .../res/mipmap-xxhdpi/icon_empty_parcel.png | Bin 0 -> 18818 bytes .../icon_established_nobility.png | Bin 0 -> 855 bytes .../mipmap-xxhdpi/icon_grade_angle_mark.png | Bin 0 -> 1074 bytes .../res/mipmap-xxhdpi}/icon_live_gift_2.png | Bin .../src/main/res/mipmap-xxhdpi/icon_right.png | Bin 0 -> 357 bytes .../src/main/res/mipmap-xxhdpi}/icon_what.png | Bin common/src/main/res/values/strings.xml | 4 + config.gradle | 4 +- .../live/activity/LiveAudienceActivity.java | 91 +- .../yunbao/live/adapter/FrameGiftAdapter.java | 69 ++ .../yunbao/live/adapter/GiftTitleAdapter.java | 60 + .../adapter/LiveGiftFragmentPagerAdapter.java | 33 + .../live/adapter/LiveParcelItemAdapter.java | 85 ++ .../java/com/yunbao/live/bean/CoinModel.java | 115 ++ .../com/yunbao/live/dialog/LiveGiftPopup.java | 1100 +++++++++++++++++ .../com/yunbao/live/event/GiftTitleEvent.java | 26 + .../yunbao/live/event/LiveAudienceEvent.java | 70 ++ .../yunbao/live/event/LiveGiftItemEvent.java | 20 + .../event/LiveParcelItemRefreshEvent.java | 17 + .../live/presenter/LiveGiftAnimPresenter.java | 19 +- .../live/views/FrameGiftViewHolder.java | 158 +++ .../live/views/GiftTitleViewHolder.java | 50 + .../live/views/LiveAudienceViewHolder.java | 12 +- .../yunbao/live/views/LiveGiftFragment.java | 149 +++ .../live/views/LiveGiftItemFragment.java | 82 ++ .../yunbao/live/views/LiveParcelFragment.java | 162 +++ .../live/views/LiveParcelItemFragment.java | 82 ++ .../live/views/LiveParcelItemViewHolder.java | 138 +++ .../yunbao/live/views/LiveRoomViewHolder.java | 51 +- .../res/drawable/background_gift_select.xml | 13 + .../main/res/layout/fragment_live_gift.xml | 23 + .../res/layout/fragment_live_gift_item.xml | 13 + .../main/res/layout/fragment_live_parcel.xml | 52 + live/src/main/res/layout/item_frame_gift.xml | 79 ++ .../src/main/res/layout/item_gift_top_new.xml | 18 + live/src/main/res/layout/item_live_parcel.xml | 97 ++ .../live_icon_leftt_sliding.png | Bin 331 -> 357 bytes 71 files changed, 3705 insertions(+), 104 deletions(-) create mode 100644 common/src/main/java/com/yunbao/common/adapter/GiftNumberAdapter.java create mode 100644 common/src/main/java/com/yunbao/common/bean/GiftQuantityModel.java create mode 100644 common/src/main/java/com/yunbao/common/event/GiftNumberEvent.java create mode 100644 common/src/main/java/com/yunbao/common/manager/GiftQuantityManager.java create mode 100644 common/src/main/java/com/yunbao/common/utils/BlurBitmapUtil.java create mode 100644 common/src/main/java/com/yunbao/common/views/GiftNumber.java create mode 100644 common/src/main/java/com/yunbao/common/views/GiftNumberPopup.java create mode 100644 common/src/main/res/drawable/backgroud_custom_gift.xml create mode 100644 common/src/main/res/drawable/backgroud_custom_gift2.png create mode 100644 common/src/main/res/drawable/background_gift_description.xml create mode 100644 common/src/main/res/drawable/background_gift_money.xml create mode 100644 common/src/main/res/drawable/background_gift_money2.xml create mode 100644 common/src/main/res/drawable/background_gift_select2.xml create mode 100644 common/src/main/res/drawable/bg_live_gift_send_new.xml create mode 100644 common/src/main/res/drawable/bg_parcel_point.xml create mode 100644 common/src/main/res/drawable/bg_selection_quantity.png create mode 100644 common/src/main/res/drawable/icon_covering_layer.png create mode 100644 common/src/main/res/drawable/progress_bg_user.xml create mode 100644 common/src/main/res/layout/dialog_live_gift_popup.xml rename {live => common}/src/main/res/layout/view_blind_box.xml (100%) create mode 100644 common/src/main/res/layout/view_gift_number.xml create mode 100644 common/src/main/res/layout/view_live_gift_number.xml create mode 100644 common/src/main/res/layout/view_nobility.xml rename {live => common}/src/main/res/mipmap-mdpi/icon_live_gift_lian.png (100%) rename {live/src/main/res/mipmap-xxxhdpi => common/src/main/res/mipmap-xxhdpi}/bg_blind_bottom.png (100%) create mode 100644 common/src/main/res/mipmap-xxhdpi/icon_aristocrat_tip.png create mode 100644 common/src/main/res/mipmap-xxhdpi/icon_arrow_down.png create mode 100644 common/src/main/res/mipmap-xxhdpi/icon_arrow_right.png create mode 100644 common/src/main/res/mipmap-xxhdpi/icon_empty_parcel.png create mode 100644 common/src/main/res/mipmap-xxhdpi/icon_established_nobility.png create mode 100644 common/src/main/res/mipmap-xxhdpi/icon_grade_angle_mark.png rename {live/src/main/res/mipmap-mdpi => common/src/main/res/mipmap-xxhdpi}/icon_live_gift_2.png (100%) create mode 100644 common/src/main/res/mipmap-xxhdpi/icon_right.png rename {live/src/main/res/mipmap-xxxhdpi => common/src/main/res/mipmap-xxhdpi}/icon_what.png (100%) create mode 100644 live/src/main/java/com/yunbao/live/adapter/FrameGiftAdapter.java create mode 100644 live/src/main/java/com/yunbao/live/adapter/GiftTitleAdapter.java create mode 100644 live/src/main/java/com/yunbao/live/adapter/LiveGiftFragmentPagerAdapter.java create mode 100644 live/src/main/java/com/yunbao/live/adapter/LiveParcelItemAdapter.java create mode 100644 live/src/main/java/com/yunbao/live/bean/CoinModel.java create mode 100644 live/src/main/java/com/yunbao/live/dialog/LiveGiftPopup.java create mode 100644 live/src/main/java/com/yunbao/live/event/GiftTitleEvent.java create mode 100644 live/src/main/java/com/yunbao/live/event/LiveGiftItemEvent.java create mode 100644 live/src/main/java/com/yunbao/live/event/LiveParcelItemRefreshEvent.java create mode 100644 live/src/main/java/com/yunbao/live/views/FrameGiftViewHolder.java create mode 100644 live/src/main/java/com/yunbao/live/views/GiftTitleViewHolder.java create mode 100644 live/src/main/java/com/yunbao/live/views/LiveGiftFragment.java create mode 100644 live/src/main/java/com/yunbao/live/views/LiveGiftItemFragment.java create mode 100644 live/src/main/java/com/yunbao/live/views/LiveParcelFragment.java create mode 100644 live/src/main/java/com/yunbao/live/views/LiveParcelItemFragment.java create mode 100644 live/src/main/java/com/yunbao/live/views/LiveParcelItemViewHolder.java create mode 100644 live/src/main/res/drawable/background_gift_select.xml create mode 100644 live/src/main/res/layout/fragment_live_gift.xml create mode 100644 live/src/main/res/layout/fragment_live_gift_item.xml create mode 100644 live/src/main/res/layout/fragment_live_parcel.xml create mode 100644 live/src/main/res/layout/item_frame_gift.xml create mode 100644 live/src/main/res/layout/item_gift_top_new.xml create mode 100644 live/src/main/res/layout/item_live_parcel.xml diff --git a/common/build.gradle b/common/build.gradle index 09d7dd30a..19700ba89 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -194,5 +194,6 @@ dependencies { //选择器 api 'com.github.gzu-liyujiang.AndroidPicker:Common:4.1.11' api 'com.github.gzu-liyujiang.AndroidPicker:WheelView:4.1.11' - + //自定义圆角图片 + api 'com.makeramen:roundedimageview:2.3.0' } diff --git a/common/src/main/java/com/yunbao/common/adapter/GiftNumberAdapter.java b/common/src/main/java/com/yunbao/common/adapter/GiftNumberAdapter.java new file mode 100644 index 000000000..6dcea6851 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/adapter/GiftNumberAdapter.java @@ -0,0 +1,40 @@ +package com.yunbao.common.adapter; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.R; +import com.yunbao.common.bean.GiftQuantityModel; +import com.yunbao.common.views.GiftNumber; + +import java.util.List; + +public class GiftNumberAdapter extends RecyclerView.Adapter { + private List giftQuantityModels; + + public GiftNumberAdapter(List giftQuantityModels) { + this.giftQuantityModels = giftQuantityModels; + } + + @NonNull + @Override + public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View robotSayHelloView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_gift_number, parent, false); + return new GiftNumber(robotSayHelloView); + } + + @Override + public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { + GiftNumber giftNumber = (GiftNumber) holder; + giftNumber.showData(giftQuantityModels.get(position)); + } + + @Override + public int getItemCount() { + return giftQuantityModels.size(); + } +} diff --git a/common/src/main/java/com/yunbao/common/bean/GiftQuantityModel.java b/common/src/main/java/com/yunbao/common/bean/GiftQuantityModel.java new file mode 100644 index 000000000..09fda25b7 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/bean/GiftQuantityModel.java @@ -0,0 +1,43 @@ +package com.yunbao.common.bean; + +import com.google.gson.annotations.SerializedName; + +/** + * 礼物选择数量 + */ +public class GiftQuantityModel extends BaseModel { + + @SerializedName("id") + private String id; + @SerializedName("gift_quantity") + private String giftQuantity; + @SerializedName("font_colour") + private String fontColour; + + public String getId() { + return id; + } + + public GiftQuantityModel setId(String id) { + this.id = id; + return this; + } + + public String getGiftQuantity() { + return giftQuantity; + } + + public GiftQuantityModel setGiftQuantity(String giftQuantity) { + this.giftQuantity = giftQuantity; + return this; + } + + public String getFontColour() { + return fontColour; + } + + public GiftQuantityModel setFontColour(String fontColour) { + this.fontColour = fontColour; + return this; + } +} diff --git a/common/src/main/java/com/yunbao/common/bean/LiveGiftBean.java b/common/src/main/java/com/yunbao/common/bean/LiveGiftBean.java index c0777d57e..78583150b 100644 --- a/common/src/main/java/com/yunbao/common/bean/LiveGiftBean.java +++ b/common/src/main/java/com/yunbao/common/bean/LiveGiftBean.java @@ -23,7 +23,7 @@ public class LiveGiftBean { private String name; private String price; private String icon; - private boolean checked; + private boolean checked = false; private int page; private View mView; private String sendType;//支付是金币还是钻石 @@ -36,6 +36,30 @@ public class LiveGiftBean { private String tag; @JSONField(name = "blind_box_type") private int blind_box_type = 0; + //礼物角标 + + @JSONField(name = "corner_mark") + private String cornerMark; + @JSONField(name = "gift_description") + private String giftDescription; + + public String getGiftDescription() { + return giftDescription; + } + + public LiveGiftBean setGiftDescription(String giftDescription) { + this.giftDescription = giftDescription; + return this; + } + + public String getCornerMark() { + return cornerMark; + } + + public LiveGiftBean setCornerMark(String cornerMark) { + this.cornerMark = cornerMark; + return this; + } public int getBlind_box_type() { return blind_box_type; diff --git a/common/src/main/java/com/yunbao/common/event/GiftNumberEvent.java b/common/src/main/java/com/yunbao/common/event/GiftNumberEvent.java new file mode 100644 index 000000000..b4684d0b8 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/event/GiftNumberEvent.java @@ -0,0 +1,16 @@ +package com.yunbao.common.event; + +import com.yunbao.common.bean.BaseModel; + +public class GiftNumberEvent extends BaseModel { + private String mCount; + + public String getmCount() { + return mCount; + } + + public GiftNumberEvent setmCount(String mCount) { + this.mCount = mCount; + return this; + } +} diff --git a/common/src/main/java/com/yunbao/common/glide/ImgLoader.java b/common/src/main/java/com/yunbao/common/glide/ImgLoader.java index 4d7882868..f13262a34 100644 --- a/common/src/main/java/com/yunbao/common/glide/ImgLoader.java +++ b/common/src/main/java/com/yunbao/common/glide/ImgLoader.java @@ -336,6 +336,18 @@ public class ImgLoader { builder.into(imageView); } + public static void displayBlurLive(Context context, int url, ImageView imageView) { + if (!contextIsExist(context)) { + return; + } + RequestBuilder builder = Glide.with(context) + .load(url) + .thumbnail(thumbnail) + .apply(RequestOptions.bitmapTransform(new BlurTransformation(20))) + .placeholder(R.mipmap.live_bg); + builder.into(imageView); + } + private static boolean contextIsExist(Context context) { if (context == null) { return false; diff --git a/common/src/main/java/com/yunbao/common/http/CommonHttpUtil.java b/common/src/main/java/com/yunbao/common/http/CommonHttpUtil.java index 439bc94da..3f038fab2 100644 --- a/common/src/main/java/com/yunbao/common/http/CommonHttpUtil.java +++ b/common/src/main/java/com/yunbao/common/http/CommonHttpUtil.java @@ -19,13 +19,13 @@ import com.yunbao.common.bean.ConfigBean; import com.yunbao.common.event.FollowEvent; import com.yunbao.common.interfaces.CommonCallback; import com.yunbao.common.manager.APKManager; +import com.yunbao.common.manager.GiftQuantityManager; import com.yunbao.common.manager.IMLoginManager; import com.yunbao.common.manager.LiveClassManager; import com.yunbao.common.manager.NewLevelManager; import com.yunbao.common.utils.AppManager; import com.yunbao.common.utils.DialogUitl; import com.yunbao.common.utils.L; -import com.yunbao.common.utils.MD5Util; import com.yunbao.common.utils.SpUtil; import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.VersionUtil; @@ -231,6 +231,10 @@ public class CommonHttpUtil { if (obj.containsKey("defaultBubbleUrl")) { IMLoginManager.get(context).setDefaultBubbleUrl(obj.getString("defaultBubbleUrl")); } + if (obj.containsKey("gift_quantity")) { + JSONArray giftQuantity = obj.getJSONArray("gift_quantity"); + new GiftQuantityManager(context).UpGiftQuantity(giftQuantity.toJSONString()); + } } catch (Exception e) { e.printStackTrace(); String error = "info[0]:" + info[0] + "\n\n\n" + "Exception:" + e.getClass() + "---message--->" + e.getMessage(); 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 60938e8fb..ab99cf322 100644 --- a/common/src/main/java/com/yunbao/common/http/PDLiveApi.java +++ b/common/src/main/java/com/yunbao/common/http/PDLiveApi.java @@ -829,4 +829,5 @@ public interface PDLiveApi { @Query("stream") String stream, @Query("red_packet_id") String redPacketId ); + } diff --git a/common/src/main/java/com/yunbao/common/manager/GiftQuantityManager.java b/common/src/main/java/com/yunbao/common/manager/GiftQuantityManager.java new file mode 100644 index 000000000..cdb98a0be --- /dev/null +++ b/common/src/main/java/com/yunbao/common/manager/GiftQuantityManager.java @@ -0,0 +1,53 @@ +package com.yunbao.common.manager; + +import android.content.Context; + +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.yunbao.common.bean.GiftQuantityModel; +import com.yunbao.common.bean.LiveClassBean; +import com.yunbao.common.manager.base.BaseCacheManager; + +import java.util.List; + +public class GiftQuantityManager extends BaseCacheManager { + private final static String KEY_GIFT_QUANTITY = "GiftQuantity"; + private static GiftQuantityManager manager; + private Context context; + private List giftQuantityModels; + + public GiftQuantityManager(Context context) { + super(context); + } + + /** + * 获取指导员备注信息 + * + * @return + */ + public List getGiftQuantity() { + List giftQuantityModels = getList(KEY_GIFT_QUANTITY, new TypeToken>() { + }.getType()); + if (giftQuantityModels == null || giftQuantityModels.size() == 0) { + giftQuantityModels.add(new GiftQuantityModel().setGiftQuantity("1").setFontColour("#ffffff")); + giftQuantityModels.add(new GiftQuantityModel().setGiftQuantity("10").setFontColour("#ffffff")); + giftQuantityModels.add(new GiftQuantityModel().setGiftQuantity("66").setFontColour("#ffffff")); + giftQuantityModels.add(new GiftQuantityModel().setGiftQuantity("88").setFontColour("#FA62A1")); + giftQuantityModels.add(new GiftQuantityModel().setGiftQuantity("100").setFontColour("#9B62FF")); + giftQuantityModels.add(new GiftQuantityModel().setGiftQuantity("520").setFontColour("#65BFFB")); + giftQuantityModels.add(new GiftQuantityModel().setGiftQuantity("1314").setFontColour("#05F3EC")); + } + return giftQuantityModels; + } + + /** + * 缓存等级图标 + * + * @param json + */ + public void UpGiftQuantity(String json) { + giftQuantityModels = new Gson().fromJson(json, new TypeToken>() { + }.getType()); + put(KEY_GIFT_QUANTITY, giftQuantityModels); + } +} diff --git a/common/src/main/java/com/yunbao/common/utils/BlurBitmapUtil.java b/common/src/main/java/com/yunbao/common/utils/BlurBitmapUtil.java new file mode 100644 index 000000000..b674089a2 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/utils/BlurBitmapUtil.java @@ -0,0 +1,56 @@ +package com.yunbao.common.utils; + +import android.content.Context; +import android.graphics.Bitmap; +import android.renderscript.Allocation; +import android.renderscript.Element; +import android.renderscript.RenderScript; +import android.renderscript.ScriptIntrinsicBlur; + +/** + * Created by L on 2017/10/12. + */ + +public class BlurBitmapUtil { + /** + * 图片缩放比例 + */ + private static final float BITMAP_SCALE = 0.4f; + /** + * 最大模糊度(在0.0到25.0之间) + */ + private static final float BLUR_RADIUS = 25f; + /** + * 模糊图片的具体方法 + * + * @param context 上下文对象 + * @param image 需要模糊的图片 + * @return 模糊处理后的图片 + */ + public static Bitmap blur(Context context, Bitmap image) { + // 计算图片缩小后的长宽 + int width = Math.round(image.getWidth() * BITMAP_SCALE); + int height = Math.round(image.getHeight() * BITMAP_SCALE); + // 将缩小后的图片做为预渲染的图片。 + Bitmap inputBitmap = Bitmap.createScaledBitmap(image, width, height, false); + // 创建一张渲染后的输出图片。 + Bitmap outputBitmap = Bitmap.createBitmap(inputBitmap); + // 创建RenderScript内核对象 + RenderScript rs = RenderScript.create(context); + // 创建一个模糊效果的RenderScript的工具对象 + ScriptIntrinsicBlur blurScript = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs)); + // 由于RenderScript并没有使用VM来分配内存,所以需要使用Allocation类来创建和分配内存空间。 + // 创建Allocation对象的时候其实内存是空的,需要使用copyTo()将数据填充进去。 + Allocation tmpIn = Allocation.createFromBitmap(rs, inputBitmap); + Allocation tmpOut = Allocation.createFromBitmap(rs, outputBitmap); + // 设置渲染的模糊程度, 25f是最大模糊度 + blurScript.setRadius(BLUR_RADIUS); + // 设置blurScript对象的输入内存 + blurScript.setInput(tmpIn); + // 将输出数据保存到输出内存中 + blurScript.forEach(tmpOut); + // 将数据填充到Allocation中 + tmpOut.copyTo(outputBitmap); + return outputBitmap; + } +} diff --git a/common/src/main/java/com/yunbao/common/views/CustomDrawerPopupView.java b/common/src/main/java/com/yunbao/common/views/CustomDrawerPopupView.java index 232ea3a6c..7705efb0b 100644 --- a/common/src/main/java/com/yunbao/common/views/CustomDrawerPopupView.java +++ b/common/src/main/java/com/yunbao/common/views/CustomDrawerPopupView.java @@ -139,7 +139,7 @@ public class CustomDrawerPopupView extends DrawerPopupView { ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.online), new ViewClicksAntiShake.ViewClicksCallBack() { @Override public void onViewClicks() { - XPopup.Builder builder = new XPopup.Builder(getContext()).atView(findViewById(R.id.more_menu)); + XPopup.Builder builder = new XPopup.Builder(getContext()).atView(findViewById(R.id.diamond_linear)); builder.hasShadowBg(false) .isDestroyOnDismiss(true) .isLightStatusBar(false) diff --git a/common/src/main/java/com/yunbao/common/views/GiftNumber.java b/common/src/main/java/com/yunbao/common/views/GiftNumber.java new file mode 100644 index 000000000..c6d021823 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/views/GiftNumber.java @@ -0,0 +1,34 @@ +package com.yunbao.common.views; + +import android.graphics.Color; +import android.view.View; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.R; +import com.yunbao.common.bean.GiftQuantityModel; +import com.yunbao.common.event.GiftNumberEvent; +import com.yunbao.common.utils.Bus; +import com.yunbao.common.views.weight.ViewClicksAntiShake; + +public class GiftNumber extends RecyclerView.ViewHolder { + private TextView customQuantity; + + public GiftNumber(@NonNull View itemView) { + super(itemView); + customQuantity = itemView.findViewById(R.id.custom_quantity); + } + + public void showData(GiftQuantityModel quantityModel) { + customQuantity.setText(quantityModel.getGiftQuantity()); + customQuantity.setTextColor(Color.parseColor(quantityModel.getFontColour())); + ViewClicksAntiShake.clicksAntiShake(customQuantity, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + Bus.get().post(new GiftNumberEvent().setmCount(quantityModel.getGiftQuantity())); + } + }); + } +} diff --git a/common/src/main/java/com/yunbao/common/views/GiftNumberPopup.java b/common/src/main/java/com/yunbao/common/views/GiftNumberPopup.java new file mode 100644 index 000000000..54ddcdfea --- /dev/null +++ b/common/src/main/java/com/yunbao/common/views/GiftNumberPopup.java @@ -0,0 +1,59 @@ +package com.yunbao.common.views; + +import android.content.Context; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.lxj.xpopup.core.BottomPopupView; +import com.yunbao.common.R; +import com.yunbao.common.adapter.GiftNumberAdapter; +import com.yunbao.common.event.GiftNumberEvent; +import com.yunbao.common.manager.GiftQuantityManager; +import com.yunbao.common.utils.Bus; +import com.yunbao.common.views.weight.ViewClicksAntiShake; + +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; + +public class GiftNumberPopup extends BottomPopupView { + public GiftNumberPopup(@NonNull Context context) { + super(context); + } + + // 返回自定义弹窗的布局 + @Override + protected int getImplLayoutId() { + return R.layout.view_live_gift_number; + } + + // 执行初始化操作,比如:findView,设置点击,或者任何你弹窗内的业务逻辑 + @Override + protected void onCreate() { + Bus.getOn(this); + super.onCreate(); + RecyclerView giftList = findViewById(R.id.gift_list); + giftList.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false)); + GiftNumberAdapter giftNumberAdapter = new GiftNumberAdapter(new GiftQuantityManager(getContext()).getGiftQuantity()); + giftList.setAdapter(giftNumberAdapter); + ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.to_can), new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + dismiss(); + } + }); + } + + @Override + protected void onDismiss() { + super.onDismiss(); + Bus.getOff(this); + } + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onGiftNumberEvent(GiftNumberEvent event) { + dismiss(); + } + +} diff --git a/common/src/main/res/drawable/backgroud_custom_gift.xml b/common/src/main/res/drawable/backgroud_custom_gift.xml new file mode 100644 index 000000000..d61532880 --- /dev/null +++ b/common/src/main/res/drawable/backgroud_custom_gift.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/common/src/main/res/drawable/backgroud_custom_gift2.png b/common/src/main/res/drawable/backgroud_custom_gift2.png new file mode 100644 index 0000000000000000000000000000000000000000..ec7301771a40445a127cdfc482a8b30148d19225 GIT binary patch literal 73119 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 IF4TmQi|rXvQZ`qG$O! zd2M_KpC}GAwS)W|#)pF-j0eTPPp%vKYWrcvZAI)^;Q1)(6a^671$v|S0{|K<=|)%Lh9llSCzI-i1w8FZLcCN~>2E~t#GOty^M%W1N_;0`)NzoJ zYP-nF<%ytD>&WOXqpwSFX&u>XGCr3-#HA^DplH94a_x+4=k4XC7N0D9McYMH|Jyg~ zZs%@Jk6BGiE#iDpRUaG-VT&?T&YVDv373rJ@EpFdFDgApPoJ>6Qh&)v%D`~YIcBL5 zybeD8BqRL&yi^t!boF>+KQXNkm7)8!CY|mm>D$LDq=W#1H0Wq(_9t~RJZb~WN;*{F zMxoJhu7gx!qP29MX)e+hmCgZkUI4BPn{+B5k`(jGMIo zD^S&X^<44yCne{QQ}UTI)JyauET&43RTpN-oq4Z! zNuER3ZhGuL017C^AI2r^ZCl60u66X_ep*uEH!RXDZw21p=bAb$%ux)gzg~~<#E~qR zt%BVas${&H8pyhRejwp^p$2Uc*SJfakP4HQ;J@!0e|kaKH&^?dZ45RpY0JbqPFj;s z4PZ7_Cv2=(vtKgMKg#eL-C?|YGT(j%B!oVVEVLb3$>?tS*3$L^z+7Nq10$vHv%*+g zIfq&BC69mz`9U%M5TCF}c(`8|bD9XyAa^ZQ4mf)n{BV7NMrbPrrxRv*Yq`a)=1T%l z@^YhH3ec=&u~C}=S+%#;s_!`vYCDkz^S%orDe;^S;k7QxiadxWrbE;u_tSbFB1&p$ zDsw;K_%O4DG#P61L7Lz1%6uBTlP;oH7Vi}zYHx7dICKB}(fX5h)HpKoqt{_-pZt%s zH<*5NJ6Q_mTK9i=ShSwjBx-RST%Bq38KP)=z9PGUE!Pxou0-NMu@Pkl)l)4@8&L*r+$}rE2}V{7IsszNG$)hJcwW^T5vYACsgZ( zTNnx>$4#;-e+X?WN%&K3keRlj-ZlqTCf^VRO)d?*X4I8Au+J;bF7?RVN`ys4_>(;M z7w{+PGq#fTyRcVVUa60{;41l(gy8euiSG=uefUoDc_ajsv*TCg->G)XB0QT&rliCi zHID?E+{)rQ1#pWV1&WtxoGUw@o1(T%qr#Q{~H3oXW zbOQ$)+#x^nt#d~=U^T-A!w0J^*)7Q1!&eLxGPyQPJ|14rc_y)maxZk)Sb&p$?Z!2% zJ(eDDa#JVxC<46&i9M;f4zl>B7AU2uB0x6PV}nB_U7K69NZyDYdZrstwRBRE=Nbr? z;__2S+mLv-Mx}g*1t;H13A$eYA|v4B?7ATEp(gmfkU=vsA^rK8>EpC(qcOUQ%JDH( zCna!@4j;9KC{v_k)L{iOzTh+%E_~?%>t$mEf6a2pjoy*>bM7y_p~p|L7y$IQ3$+K_ z-=PfL(XZ1I1y5QSmD7To9XSc^nyfZbSkAx)qugkW+=m*ns9Yt#@E<1w4VJyQvNCMh{hTdiy@zl1HQ+wV9Ww{t`*d-I)CuH=Y` zw@Ph$-1m%Ih0J^zB1V@P&?9_8OY#R_nP{S>tv%VR^A-h2gmyb}42W4FL_DPq%hQlF zl>EYAo6za#8&^aLvGZ)=4Yfnh&IN&u|1?Sjdbb?FAMpaOE{Au+O*@K^x}jlrJP;ra zV2Ccv9EnOOy4T~MA2srMVgIgnhj5guAA1d-|*-3`mK^ZC=Yd|f#&lkQif<* z^<6wJ{cADa47wh2u5Z_U+%? z)0aHce)8eecIz2ut;EXvsjAk3#T$YY^0z$u=x7|a@3rt&S{8ci{^iMj7v(X+znf9Z zXCY21w@O%Zo$zyW;Z&qUZwD#YPco?V<6gmpPcBQ1G#L&-PhTR^>VlOisp@5Iu9cGA z(P`;?GHetNFC5kdmlPSr2;YELiCtFrr3aA)6FNUrhfLKmvY;{&-rt>MFX<|tB^K>R zCKLRYOv-yWNzQ4;%?!5C?BaG+TUziU&7@#CvQXWK6@XV~Di*0B2K}n}oXTCnGS9O& zBm~UuF5${FeIise8r0PlMD(N{jALT0NLPP&%p%lB(_QFU>)w@&+n}y})!E<#(7z?T zjm=Dk*II{nq3xKwb@N%b;%5B+%zD=&lZP^bJA%3gBrT6pt_VASCZtO@6^wL1#=T6m zbH4MRjoQ*x8ksW@-GX1SqJ)DX-~Ax%HodW5Z1z)CLigVV6unE_fsMs3w`La)rN?*< zIc=$h!jP#)m3Lm7A7+xMjtw6|+L78??!8KQ9ehWz*6omajur?mweHtm+h6yMBQD?9 zg#DtPSyu_z!A2s+?@^LFWy{EWIOJgyWBzV`5W$yWP)=gvKPIX7E4b2erh8H~wpU@* zMQe|v-Tz56Y34A_YX0k?%Zh-0!azUkrzcH2bzgE?7@hNu`39<41fx3HZT-b2{`T&b z+3^tLN-d*YUcZ0QqTr_|bSytaqLS)ZLfPeEn1#XC>O&3*%I zZAyeuJgT~G+1W$NgQ;*cySuWPsQ7j#$$_ll%VYWNmZcQytc;Ai3` zvd+|^`YEq;bC!y2&dWOzi8`HxXBo;g8OWtu=rX z3E`-w_>dzZlmwOF*=*|(=c2Q7dcVfF!Dt*~q>MY3s6Nxc>p&a&YNQQqYEtIEmX__r zRVGuC=r}Xxogkn2=?7yYLMCILKlG;waSwkh4}NzWfATguHh8oY)zyUa7wHn5BzVFj zQ}Ax^A+{P3&XJ}{6(!!<5C39(ttnxtLeFb_D~5t&$gJCoc>Gb}+0^Ye0s)a26*+ro zd!Q;}a18Ce>*|_%6@H(nOJCvPQP|2XB0zhE?zNO^LhV8{VD(!-dqJk1vVP~5pV{ux zmI&cyNv$U0U zcZ*}n3V||#&ie;x4c}(@jBZ`s@{m#RHoJ9^1iQ zt3Mo<3cry!8iB?qbS+13k7-(TY24dUqL-B|uDnGndh4xLq5O8&ZK9#dQ++0cpBnS} z{^Ow98@}v}3Mk;RT|KWG8IShgJ9yzjrYbE&B_H9opwF=S)P9hzds^;ppkBy?hTKA- zGRZ-0sXp82G2kVHEj#s5ELC07683nj(l%f0Lc45rk3JVy>wcqV1}B7#H?sa9HjuY{ zUX7kx%dIC_Rqy3YFPc>!#MN{Cp3)AbcLJa12ok#k)s6bey$AWS+L`9sk+D_zO8}A7 z&ueR^vbta;{Uli>U+^h?8()4`^WzjJsfsjpot5Qq6hObo!1?J^=XP{~RDV!_V>?sF zMP^WDu!Dwv1=h#ltCZ6&{7{FK5ccREI(!?x9;K3EY^fgLlE}M*#eFNUaF@=zLQj?Vs=HyIaDFx~iWR z1h`^Y``ug@p%<$@OrTlCe2lNlCC~lr^uKiw9KeMZ(@9tH$vD|}kfKgF4%$pN-r^On z;nRx6DQ?)k7iiM6xSw}gbz=X?BOAB*^tx)hs8Ch7$Oz=E4Q4+oR^^ie-fb@FQB~<( zKk;~NKLfhfJ=O1h#U^a?_UW23OB1uxZ7Z*)8~8Gsp^gDU;V-O8xoH$BbG35dLEUc1 zFlZMmmG_q)7z8_hKp<89OJiy~XQ*(Xird2nPZ&`kH2kuDFhOeIL>m4jg99>>o`cnW z*vl>M1e^GoTVAxE1gUG?L(5=5z4x6^dYTdVWIS?3@bj}a&U_B5?-I^>PC;(OVI>Dc zUugw2w{!F50KL@ff`6m$fBb|o&y}R#E9Idrr;7u5r#vSgdr|9JO@`6Z-Ovp^m20)H z1-aO{B-a){iJDkU!e@#7m*}4^Gxw9cyL^R}3qRc1PuDMF#ex39Pba9y9;Gb=5g7V) z_F6P(X|DS$b-G==dAJqVtiOJban3XaB(IZAZ8(Yd{zE9aZ@8%7Z2C;01f~i-B=odq z?3XX~2A7Kp=Snq7B^~=UDQ}g;m>qs4_ZrZjcAkD&QQ0I>s}S_-sC(z&`GOUgtdlmh z4GkVPy}1-CVdn1B-`p4?9lLq}J{{*Pa1%$1Ej&c#yGKidHD0;= zqT;2uCqEQYRU|Auwju=WPr{9I8t}g>?d`Sq6_wInZCVC<_%YJEiPCE#7asP+xb38d zNVe{E7Lq5Y08cQjM1II%6#BUSHU?V*xTOZj-(6qHaHqeo!mbX;k1tn#f|jv)Ew769 z)t8xy?;fk6jWFK{ju7L={-kqASE}dnry8q@n=BMh^d4w29e-^wx9Ngl!D8W;Yf1WP zZHNf`6oGxR#NWh`0@KExL*CbMJIyyP63*sMf6(Og=`&_an3^s1V~TDS6EnH;rFtZadVRPd1?f~NhGKH}IwuyQ+VPJ+Sgc-Q^3`QB35`%0Sd ztSoae3}3a`c4g?MrY$3{$Er%){q2giR<3{kz-J-R@;H9kEQ!CKLhA7ENXs+yM zWtRHx6>V_juv?*Xe_}?{qTQ&k8OfKVhq~K3GTLZkdSBgf7L;;>@c(lG_|MB9XYsYi zZm{32?Ltvm+vVCZ2(>FFfk0y)m%w%KTqs2^E)j4dwvEzu{^i{|!)lByr5?rmW zx3v#;z1h=@voXbcRy=uW{ZuzzR+pWzpuEKXKO84jdflatcH)(cZgG0%t`dW!8xpg! z%h;8DTYnC$M+e<3+3AQ_9&${fNmHy807~u2-|FUGZw@e99_;^B$tv&kd{Jq`m7jUcbuw=C2#? z1k&IJdY$RsEqi**y(fv=+ngguBQ$Qjlpr@8F!OJlk)IK99{@&EEv{0fr~0$}e|gXk z_XU0oAGSq~LLr+)|6``=iU<3hcm(lOx1}3h0MH*)doB-0E+xVja$fYPW;xsVNOq!J z)Qc(6aiUne{*R!+Cs<~4&aGWNh4wSE#JQRmGxN%WGv-wAs#v5q#!|A2R5cmc_epri zX_h|ZFZp?jPqMLf>*6W2P$7gE%mhSd+-II-TU6YbKMeo6$(X7ah_cEr1-=J{AQjzBpoU1rb8Gz$d4r> zpO|3G|MM=lNGwX#a4zb(Yuq#K(0=7W|8?FedwnWL##0Ie)M^mv7`ky#vr~Ne_g8#Z z)24pnTK)xbjkx$uw?`3EFza^HlT~nU2}DjDO|5& zl$zhG=0+^&>L+xkpVfj+@0 zXIp0W5fk_9H^fU?-w)}hd`C*r{@gD|MRLXBRy#L#Vrv8~Or*zr{ZcC&Ir9f8B~vJC z|N1X4|3okYWN+GyCvoC5KF0KtrO4%HT98(5#huZhS%8pDrS*$xm4-o7u>YSBGhl(9 zO9p?4XOfEOLpCPp#&-%M!_tjNcwyjPg&2B?Ty^;`OZsG zhXSOS+PL!|E&Zfj^>VgTIX)?0cHoor?x`-~;L$8Zt3;Lo>^I9EMS7@g8QLd#=^On; zs(NgXTzsC}pJ|HHPAaB>!YfkQ-@wOB$0mVp6MmWVfi1S>ivsyI?Gnk7f6Np|?D(2i zv{}P(!}mTDapJ%-tzBuYza>F`a1Z8ib~PPKSF~#go?R4UA%`NTAu_@@tdRbkQue2_ zQw4_$!{TJWX|E{WZ?DRgPU0u$}eKCI>e+5H% z&Mg(Ip#Xl9JR^xA(T76~l`GYpKXkFjHXE#aoCwbE{B~a{MtFvOIcCJn7!S7UL+0LQ zHj?>AvoMcQShG<%>7$&kbv#11fWEVnvhN&br6w=fZ753%9w#RC@_4Na8qd^>A4pcs za0e?Di-{g^B=TF9v|rlE6)T*lKMxfs%s+Yk4p$xa-gP^n;+!XJ1013>2maf(WQfxr z%XDZU+I4?K3W}vI5Nq;h9?St3t5u)J44%$C2+c~>t)>(r1P@o!Lk}qxc3Zp6)oF9d zdW-}tRzGM$;S9t?!uuM#BBk3=-jU0YgXXhx3xqPgH<3*MSJEFsZ`R~mhy5iB%^bDx zq~q76u%v%3K${59tYq z*g9HXJ_7k@*P;tK=Ejx=Y(#EjC7U>hE@nuj=fYHSqchG&Jn;FY|n1>i~_2#6Nkem(eg0X0d{{6W}d;d zI_3(@krWBfx=&quNY(z(GU6EhKgoU&)nulwVR=O~XX|9M6cBewkuNmCeGp}h(y~Wz z{r0NjAJeQGwTc&SP`2RB8?kVmn!dD1b8p?yFW9aJ0t~W#^dN<^)c_`wWnZ{YX8A(L zcg67ExX`<+HBOBHk~(+tTAt`hp;NZf?;E) z#YS|UOM#{qI}T>Riti;9J4*-Aw_+8E*=vzZkxyQz`~2??qDst4Ty^=l zhnEs^`NB;E%{3H|n$n#$hMo%|V2@b@{pD1>ZG$}ooNP>bOEEl>t5EN|m=rwrLtCpb zx}H*L@xY95EFr`?r0ez>YSmQHR64r0;PvLdCwW$a-rpS!T90pN&hbtB0=rk+G@*?S z{^Vy7qC{8S*)G`Uxz5*|1n-}2xVCG?SFE|xMj3>AD3gjJXme#(BnkSyYTMJe+ym>z z;T2+Zc3#A2E$czAE@;qs(GxrCkJF0LtLiSK$U2M;W+^kTVk3w)G6N_Z-$DtWfv$?E z-tx%mLB0P)rW3)MCOQvHR^}r~Tz{vjNpq*~Sfu$<8we~bNi5IvB~I=dps#c)*QSA5 z`$^xMz8`+rPo%k%S{Jde@~*wVHH^=RRyGODc;VeU7Hh0~t&NwiUgY=YyCqBJr|}Z+ z$GnA1ylrQo03I983}1@i^I#EigIv3Xt7idmR>0M1fB?i@?ZUE`v8`XQx#>9ag5~x| z9DKw(mXc?4rYlR$cp0K#y;{IDeAF~VLWg|f>0#FHgDf}zFfxsa9$llNFN&pSgNuzH zAG+Ytx-^+`2g?r-meN%G`EcJQ6gtvrF5AmKN6RF@Kli4*o6UO&yM!Lranakay*S)6 zSa(*rvP9P8{BP74TB@L1qZ(zZ>?C0mVXVt-KeCJY9e)>=(savI;VcDiRPJf`LHsN$pCYGP*V zCF!qK$Ek(*9RkL9CS?a_TsxE7MqMX!`BfJU^~ki_*dMip#uExjKX=JI#R6yW{;d0| z#6-cw40=4+e8_h~!1cZqjK3S&3s3EHzW1D>*R(Iu56!V#k+9a0iIaG15}ZlV|CT@p zW#sR5+(F_+AJNwZ04=2I9uv1-RlM5cRDU)u%GP=nx?C)@YrZmI<65GIdOGN+GU4~F!4Ck>vpU?d?q)rn5W)XjUBZeN;UI&r7 zdlhu+_rVo7W@o!%GU}1*sKlnre{}G^3P)vvf1UMfCQ*!MXaI#wAF@FGY&^nkX(`%k z=x_0+1I%E@%BdU!`sp&})g7N8xvJ6ERd?-4nsZjR(-6?l{1LSWop*RL;b9C>yP}G` z_X^9k9Ea3Z#kfix>&PMH`S(HtlC0vpIou`9mxtZSLO$I%0->+>WkJ{kM6DV1$@^tQ zvNig70(*PxS_7n2o%du|{m%a_wVvktdiP?+)1mpUQ#0wa+lGJ-z&ZWMk!~khL%jz3 zex*a-RDb>WyMs>brZcidmj?`B3XGZ#;p(s>Z-1lO?Z*fPhi9E$**{50)9zN$CR5)(UD6^3TH zrGL>i28h(s>7lB053virh21)N75!Y5hi2H{3OQuny{3Z3>4i2bh;wOKR=^DyQ^q5&7X))hzjIUjO(krEA03g`iGJtd+SHrBGfkD?|OVM#jL3jgw-VQ%2%#r?T z`F3N9kM5nvsb!bU@ZHn&x_ngCEUln9fe;iRQOK@*3xLEC-Eozg6&p-6K2zl~&#<4l zC4&27i8yf~W97E=5MxIk*#NqC*0uW4M$&?7HXX4sZO1sHQV5}Avcd5tWWS!!`pU=s z3&oP8+r`+94-fcGKy&Q^%X}ff5^FF-tupmMo=WD2UpM|;Nz>T*Ps(mY3@PGO&$9>T zpDtwe0Rgi>5sFifYS?|q;t4Bz6pSQ3Q+=}dg<@k#b%q#eGyK&VG+u&HSMD~+0Lz{> zvs@K%1c<~}C=EJ{@(O-(KHti&;$QrER`jF^Ed;{2_+Jedy?Op&AYxh_R?EDu>gO;g zrR)D^^zF?N4K1*+7j!x9^FT1fRy;E-hf>(0{SDmtidaKfaF!4*AwwB2x>J;(LF>IZ zo$w7ovA$p-ST~v^#c@fUTBa z3?vb_z}31)Kt`fQpS%-6hQhskc{>I zM9!ZNu1kEioYmpY5BXN%v=K=1H$^Lhm)HDM4+>}cFN`zBSinJ(Ab%7bn|bEcUbuOk zPL86xrs9abEljvMfS&9BG_ucI%9U{I>$q)7tU3=Fdb}C#pO-u*da@U9L>PuE+9TDJ zp6PA7@*KlOL_V4^<88ElBAYTIRQ*(f3*;l;`xFH6yn%F*X)HZdZrv#>vj5oY9{BmN z1tnQqOG>|RHdfKRRgAGGb+YVYFO`v#rU5v>fK;=uIzyR97`djFG(o$K@W2Hhw9`YN zDfqLw`M`Dm#gmV+hf{S#MgCXoO+zV%hfvp*G@z8*)XvI4;g79esybyG@XJA;WXelmU{`QAz@ZV%VQhY4F?qEu3C!ww6AK)J?eloQ7yV`ZRGH9r! z{q_!ZfxcA-`QrAaYSa5gPd%e#0p55lyzonVEOxW0U^@5HrBg3K7dtlQNYg0nI+}`7 zw09xWY`LrMOAD!bfT|y+24eLLUXadIYjbmCusmSXU6x>f-aBQAIh&pnJRVzrOOoox z%fxTCR&EV;tU$53iVdC` z2st+LE!+V@mX&~_<$jKzv@H%XW3ME?pLQ0gDu2b_h@X%UTw<&YESqEAE2QBaG>`7TC^Y-3BLgs*~Tb|Z;+DCU@>WG*lCk*2F`Q*rHZB1nyw9a% zd}1sSTuNDJRIkHqTNrXs?0*v4tlHscNs}(N1IYH}&oqedOsPU7r65NS(0W8&8M*f8 z<|+Lm-;Xo59}jN-c3xC8i5?ujZ2k`sjrx5N@y`H{#@$b1K2vu{%*NHd8~KD0k&*yh zEePM|bExej`}D;~RPjhNcfaTD!K~-VG0{a|F&4EbpXbsaTU>zc?%=5$N*B>ob85tD zHu7deIG@6k7&3ZeJ3-5Rsv1Pa+^UW)$e1^J3C$l8jX%qrkZ7{vWB+VZy84}6oz@n2 zM0o+^Q@)$;efDsk4N3m(ZJvDy%BVDPcw-0XZ8u74Ml(hmeiH>2_ zrdG{NtVb;y2q%I^pD%RI;^J(N|6r}yvZ1PTso#OwsxB@r1YS;Jh3vQ`_=^!6+O3d& zkqJ4-Nk!~CpJ3Mw0q%}@P>&5v8j^M@!W?WiSXr{_koL0ujKAEOt_W3Jp(&I?e5W0~;EImpN zr!O7bxw?-dK|V?B_kgF6?hl^|>Sy}(2K6jIxRcB$?}AnRwvGOWtb8w*?uX<3j=!zk zn1lMd_PjFfw+^WZFfbgL*kYVvJMHZ17(R%3FxNSdcupO+(Ko?n+K2T8jSL~FjaX*{J=T9S>Ap~Yd5p~4&N1ERTi#-HJ0mn`?uRk^1=~O z_1{f*f3Wxzy=BmgzZD?CpWa=QJ?+2U%efZca(^0=jAL&u{;)NE-8Z4_6TP490i>Rt z9?P+bYt-b#-HPH>%!#w2->bJB>4%wm76?-_Oc!s@YzwV@e;CEqfMOOA=&`QnxSKt4 zKPiayQ_!cps6W_mkD>&gbCYVYs9`=!V=o~4AL)d5u+Q(|S;Xf~UH(X@wF_cj)rI`C z0Er=weJQBiV&MKB5cJhgs{f6`#TmxjdBl5gCu=dh-jr8W?scRzL#Mb>+Gci*@r(TM zL5kbP12ca2Oa;PO#N}dFJOR8F*D!Ed3p0{F4df*0iTi*QI053NRA@eRU-ss>VJ!YK zNFnz~dU&e!#RnXgSelj*zSrM2V^kZEB0CAMq^t2BC)@DY%n?WUUCNg<>2?M%>^w^U zYk-i75gV*}^!bAH_L;%=xPJ1%A{0IyxM_v_}Qs3n%I*d9%S{TC44vFDFC}q?edq^<13*X0JtD_h{k9P zp>LHz+vjSfiJZzm`Omr9xZ`}I(JM;wz=OVnZufUb&tM&Z>%#Qzzn!}H8w=JWL4NLO8Os2a z5ZhF)mFhXom6BzCMCl9eCVBKo``xf@tEOB3Oxakn5npQ$nZ=7t?&D99J|m)e`br?5 zdRH;gQ?`)XN5BmH+4sEf)Ri!oL4z4L3>p~&j@U9zO&yfa2Pd~34!Rh@rG|akEU*eo zT62b4i5|NHBflc}uf(^dW`d`&v7OO=4%SDHlAf*eA4A3C*+arJhXNWX5*A-A2j*>@0*3hDpJp&T>%1)9q^t4 zDklrFp;kn0yC{5>6VUC*|Y`j2KYv-4)*R7x&)n_OI@P4fZY;KP9SIfzX# z(YgA86ng2NhxBQ#17ivNwrYLi53*Zz*eOr=CfS?u%7JmCRjzLS$_Md;;QxydfB$!i zwLQv{uQ&LX$HsOGbQy(-M97t@V}szRv@ikG#zTOBhbgwfDq|wmGgcf?aIA8(1xpla z=AoB^=#>;(We*k><3r^)^12To57&k5zFAGte3f`%Wz)YNIeob}8W-&UZA5w~+&E}K zdCRCG)a>1wYP8dP&C=WHHf27=221ZdcBT1&Ai;EqGn}Sr2!=b|=3n+o|HNxpiaG-O zAzQBhYwXbsWGId5?U_8G=%YS+S@K8Z;ykpoJ;rLbbB=z=$^ex2l;A1B0BG8({I-bJ zSKwss3jbY0Bc=>WO!xg z0n|Z5y|f!iIpQZ@^!IBk$p`=h%gxN4yD(ks^@jVWN}?T@%XGeh$%=}zwBZiy?0 zdfoe1u5N8OynMB~66AlA?t?_Vs>X0hbbHAr>>~H9kll}Csm70N?&${V>{Y|=@3WE} zmI7msQPkZN>NJ5s{7U@p!%6_(9FAmwpD0Vuc|G_TNsr&*glAsam3|V%Nuys>`yyhF z5lD3=xLSHPba)(jn&mmo@WAVsby;3TDx}G0eK+5a#1rrO49**uyWw?l+m*gb^tsX)5rOaEG-q>;AsbXO#bUhms4C@Nr+b6 z8RiZQVQ1UxjrX*??=Iy%A7OpAPW^fB%T7?j=ds4Tdu|&{-YvaYLYVx{$Y4r)@{Q*T zCin1!fA{Vt;?@VuoCc+~sVTHaILiJ`1r0Y?Xrt)F$3&-)2g42Hz=65 z>ndci-goswuKvwUO))@hcaQ7j_WUX*%fO%FN=A1#9m&MD(Z4;FFm@XzXVtbp>k~kG zwH6F!hUSsxnor|2A~#1BN+b@xuZ47eK(V&}B>)flNQX%Qo`>a{*Cq_?cSONUD;)F^u^!XJ9Xs`dlBzg z6D*ApQ+{_OM0v2h@+ah)7icUKVNjr!ek1*Zc}k(AOy?6`Gt;Jk&_K@TK{_MOqLis$ z9sP=%Brl$oy^EZGGm3O;GB#53->8u>zFyg9?WacaDfWD0) zCp9m%KaOIUIR7f?V{OON3z=3GWaq*$#pJDt(K4|9^=8{dV%Y=@M`sJv@w=7aOgG_T zT2;GvXSZhjE@-LsSf!-99^-l0Syz8D9}>u*xr&Wt$1;cD29o2uy#$&3GZ zF6{o*+Y?$dv{r3sn(gzl;GM=^&o{;)v$kc{5*aS$cXDk8D|`y#%oA?Z1k2o{w~$uE zFgI!E@#iV`5nlA3eXB2zHd_q~^BNt&D-i|xv{`N`boG#wi3KboY0bib=Uq}|5;d~& zE<&5MGr+iI)-nI0@9jjM2Xuio_41nJ+Xs#2!^n4ehL#u$c2Whl9nwC-*q{>X3i?B2%Y-m?XqJ|-d{SDaeJEz zwraABo0wz-;Dh_6Mn_K&Xl|D4MFsMxPk}SN;O$b2Q1>?nyR`-8YQxJ;okVW3cl@Pb zbqS%64;r_?AKD8!k7R3(ZIzsIz+l$1e4#!;@E0m~af@T==(Kb2o!}{5y~X3Iai!6~ zD^H`{njDQo%<-O2Zor_Iaq!9grrmF~&l~*4sdX7J0#S3yleCE3wK@Du~-m0&nh-SG|f}!`-d3FtU+b;r9cFo zIY@ED%X3xls<^M`?mZ{WNaGe!IFzc@`Aa%>1#bxCKd99jb+3w%$ywY7J{Ovb3f|uc zc^bU2mFwoJNMPsfz-j7nnLBCp<;<$3+u(CSA(M;4dDXG@OPQ6aqlDZ(con0*7_(Zi zQ;#A6>iYu#deR+3a~y%*iQOW*-&|O7B02?dS8k08?K`n#CaxnX^s*CJms1vGuHwn3 zQm53o_-e@XyRYVo#T=xL?^Q_p4Ze*L^+{VN6|1Bn2SYIL2<{T*&AMb!Yg*gcrBKV^ zr3&-CW_cAKg9vS^2NA)59#=2r3^0Y|F7LU`<;8B=K>MeT%uGG6Q=Q^(8H`+-1_x`p&n*yMMMg-;J?e5mBSJj0FD1aQ+)}k+ zj#s123Tu^uAgffmbFiB4PTRS~{Oq0MA1N98PCviBn~oX|nGn4$lQgaM_eqsz;>%P0 zIOnC>@ezeaHT7eO)GznwEmZ*ByL>MrS`tG^vdaDI~ z^M6fUdpy(a`=1m~B9%}%tazTB3Qs)FqmyIeA!kJ;P^=XKxj>wR7C>+|{C_jTj$oa0jjF!lF);3nSp z;Q8@n`^Cha@QYf{yYH&R^#i4d&6{3X%|6YskC!Gj zqH_c9L41Ly>vq~G0gXWOR99!;tVkJXdp&6zd+nGqslRurv96*?Ez^5ssGNa03}1)d z(|%Vt;8`ah^`}XIoyd}zZ9Q1|rG;Uh$v*Ee%k;VEcleX(R|=LV!aEj{!2xO8P2ZgY zRvQfDKyzO>dPWtFnV5$&%&yoYDs$7DLbGk_#n9F0s~oeHV&5Z&FN3s3;bmgGJ_r_o zd&z*Eo7{UhJo<-8`k%_Ar&`F{{JT>!*^HV6oojNn^a=_j!>8bUr zjF~4Wp8X@_H2x0x>kb621H|^X<-#A}IToFRHLP`RcCy$j<~5a8buS&47sW1lF!Ogb z;-l`?t!Kx%`1Mf31>tAO$%X(xF5KSCP(Nns?z6wper9TG0L9I^Q1T93mKV-!z|J&4 z=`r~a9)#sG^a(#}8(x6!s1;2NOPeMgdHBkX`J)PtP$~fGZ>ZK$MSsT9G<<+;YkGj)AbNj7k7x& zOcxup#uPQ?m5E5wH78YnT}#ZX@ZPvOfvuvyMH9wxY#XqmG7SLGe97OO%&pe>7|CX; zyiRtudmbP?<9uVR;?q~ffLL8VQDROzomF>z#0u@MZ~g-m-D9IVX=MpUMyixi;7!K{ z+kQ7PC{mk0?e?NK7`Xc6S1Lhz@j>GRB6GHApW9g6owbePbt7?ibOQ<>_qE+pWW6HRuqcP?B0WVUoQpciJ>^%S8{SbVrs|>j1#anA3?l52)st zklf9|Fs75c0d1ZZ~18$~`ALc3VMPol55 z(qU681Ij=gq>z@PtU8*|1#B19yr2-hVCE4ZH0HcfaLV~*s!T~xU!T(VKYgDp$BNBA z)tCQ7T9=M4K-tDPWm~1KuD=0NVxDTk;ZS=!~ZT% z64rxuDeJ?sst=FOgvd$*_!hs!a3W$L1l+X}43{Pw@>G_p5DW>l5E;LG(8226M$^Q~ zsS7U8>O#%rJbe*bJ#dbd7B;!G5VWY%UkSSHuh+gkC(#4Ph^qQ7J`vK;jw19?Ii$gi zz?&?pPxYmj$E&&~|M?QhBhjDiFlT&CIwMxBDMT)#9 zRbe_&c;=yG>D6sOG7m`WAoC~Upn^J_y+XP zjRFvSHUI!EVw)xWP6OJb9@VeHwMHB3Wym>IuW4PZon^`>*oc8-Z3x?XJpgZ<^uwck ziwdki@mmFPRH=jnRe6OITkxx(oPQtyAt<(xCH5%nNm6>p2rE~bBtpq7BgagkB4F(- zsW)5iWy(!lYuDaD%*_7melgChwhx+QDXv+YlN&gm2Oue^nt5^u)LE9nedR=)1TyBi zI3Oj9)s|9!%I#}d*p1BJenvnf6IJWw+StNqLR79;fNZUM));1-PzES1o! z|1y~72OJnSa>8gn|=VnwQy^%L?sRL)zNS`rHh9w;Hy60i1GQsqc`!1InTJ;tF<0n zdK!&A1A>Feiqk4}WN|-uLy4Iy)sWu+O(f`q#aIlfy=5W*5waC{)z9ddV_g2ANT^eB zxf3x-w5$iS;lqj5_cpF*5;wR!K6InOTy@U(GXKuv@g$+orliSMIP#Kes$xFWr@QN@ zGrMNy@Eb^B2z^fVDdi{lQ$ywU+*}GsaP8zh5LN0p|CNx>W|{adIRNL(`9_5#yE&}6 zg9_D){9P&H*qL*WXH64TrC9-nSALJ3P}cG*0&zb46>IbGi^r^FtAGa5r<<*kf3O=r z>IHLrw^8h?+E0Q#q7Cfd6(Im%N~j4$6ZXu$lTa-i==O@L_HsTulZ*MZlZ!fel8^EQwpn%=8q7rjt_34Yx-@;cpvVxWBC>a2*2 zg^&pxZqhDZpHsy)J;C&pEJ4$~!=@c&qa;}%AZTuZ!D7aDmZj??0IgZ*Wy|KERwcSc zeZqgd7+>gi=6S0e6I2_5*!X;1?GfF5uU$CVp#XGl_A2A<@>T*})t z{Ru|79!D;`em#yo;-bj&lc^vS$W}csF7<8||XtC&7T;i4J1*i)+=Zpn7jKTuZFMxQYS3CjddG7W)Q(2d3@~nKgh?#x3 zHVixfVY+_k-{Tv=hz0;!R2A_h(rG;t|FjgX>3021@c01Ts+Z=&MSWEv8R$cnI)a0* zjoHPFHUHh#&R(wt$Gwkj_BFj%_`TL`=GJo^iJ+bzCf6qz)6@)4=LOLES!f)kGLwYr zyKb}sUL0S%OXCYYaOBvP0)E4rlJvV3L z=`Z7SWm*(SNriTa8HtD)X>Z=SRAcU`qxWh=Nz?!QuMh-xoj`Sc3k%8-A+_cO=CZyr zg4a;=XS4lZIjk}Uy>F$G3O2dHq~Z*-t2qH>1O3L?yUN5jU4Hg#IiP3jN3Jk;D3m0w zV@0__1RYz<2Umk`Cry_yM33-gKYH<>)rQ?`%~9&Op6~8mjvC62cgFIE4BGF}HJk8c zsSQ(qSkS2=D1pWQrHW_J)&yGyD?^0=o8iWjL;LyH--fTF-Gv}{e(^UX6{IjQ#-yPt za%ETzkf2K&{TBkaL**mSxYVoBpzNlNIZHUig^W_8>2n4ec>EqdiMNe@jSSJk!@c|( zkem8Rj+~-4b;bn6htfiK#tjyX%kvNRCoB}|Gha^yC^>o<`#` z4@vSqPpOa}y=B(2=7`{5bCSM}?=)RKZR|oYf*HQ+Th)y55319yQG~1uwDZeD^kwya zOe!}$MQ&clua%VE^I<~@?pg1Y`4Uz#(KK$2hHMn>2fzr{ICYXDL8 z0zU@+E*3d;=ndPOu8G#YEHcYxS0W>CeEu#-{`8rWAdFVu^ZD)DvMjTE4dqf$g=_UY zR?)RYNNndJ11P`N86-IoNN`py>9D`(qX^G@wG+xEPL{eb3>gA5|mCGE=bK`e~O>sZP=LD1R3}LDBT)W~RwhsA=c?6P+?3u*dqTFk!s} z7k#qX?7#?0WZj-n!+Ro0v9kOYQG4BO$kDK})fWcpae>Munp4&rU3YD)CTsMZ}9z8ZtK}7Z~KAlFb{siCmwh>U9F{W_frYq&;lkrbu=A1YaCtn zbBgI8uyoYnK>EmU!jNAYQeYC~N6^}7Tkgbu_pyP>r0#WV|CB9rTXL!Sus&%&&NF5m zFnKN=LK+HwakR}OXAZrBHCN(_O5Wrjw&i{sg2SKc)Z?nk7^Pcbfz3!_2* z!>Lw}=Ign@Wp;ITj8Ih`q1=AZtHqt|N5#-g@$~kbv_^F`etOIy$J`G9%@yIn^-W?o z<)h+W|Ku{d=}7(UyR2LEtw&WrSvZi_)!8BveJrII=XgEbt-zRuhcU!8aa=^`reXk;+`HyyKEEt8xHqj`0t>iILgKVg5U;yo z&L2l{%(S$#6Zk2$J5HU6mHj*p%QY9fW8Od~aG3`~kGOi{=kgN=$R|H;>;OUy_ng3| zFOPW^R0FLwx6Me)L_Raazg>L5c=r&dP+|}m;{K(+hiQ|PvtcQYN#n{Z(`y`d%7bWh zBCc;4*XRYJa?jp(H|G75q779#%F76;wMH5*ud4H!&wUA$Wz-5ce{L}xjWPbRopaa- z#S7o~p4MPZ$FW-I$dxy&IJ@{Y;?rbXP+Kpbb0*ja-E zktg$>D;pvs;}QSU_VrW>NtVS3yjrkG`)~`3$!V_ll9VF5jnw1?Ry;frw73~T2?Al? z$LD(XWNsf>oFH%}GUcNlr7n?a{M(d<;(}Q^s`>Yr_2Lpo1O*tAyeYJ$#MUXUXseCc z5Rn-lAin)j3pQp`B^(E7A#Q&;>}HEui88dst-KWG@fL<_dlSw{I`2eVQ;@hI>fo5AiZ00jb$t6 ze+VOq#Z6wG`i8xqxW;amgw3LfSO?5F2~rbi?2YmwR#Ep6D8V$*681YzK9#PFfY|#X z&Mn^An5*di9nBF65p4NSlJ5Euuu7VsMCy3U4^Z?7Nw~AHa2e3@^&;V@?V^;)d%E^- z8Vb~$AGkKc+81k8%RY%G4t)SkP|%M%!EdL3Q)Yg1{?WAKcQ4zsh!z`qeD1e&@ zK7c`RY;k6a`!iTc1b4BXwG@W*#`tmX%qLIOvRO+v4CheOaXgXy9k-Z77-exq2s{BE zZ}(OBb;^2xyRIdg#tR$o*t}QhsONq28=Yo_`96|m*&HDQDDT|aDnakeQ&u-Cx+tq; mL>C39O#gQ}()_W89pUw=*dNE-VE?}ASen{gEx&v_@&5q#)+*8f literal 0 HcmV?d00001 diff --git a/common/src/main/res/drawable/background_gift_description.xml b/common/src/main/res/drawable/background_gift_description.xml new file mode 100644 index 000000000..0e79673a2 --- /dev/null +++ b/common/src/main/res/drawable/background_gift_description.xml @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/common/src/main/res/drawable/background_gift_money.xml b/common/src/main/res/drawable/background_gift_money.xml new file mode 100644 index 000000000..524773a5d --- /dev/null +++ b/common/src/main/res/drawable/background_gift_money.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/common/src/main/res/drawable/background_gift_money2.xml b/common/src/main/res/drawable/background_gift_money2.xml new file mode 100644 index 000000000..eb1babf8d --- /dev/null +++ b/common/src/main/res/drawable/background_gift_money2.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/common/src/main/res/drawable/background_gift_select2.xml b/common/src/main/res/drawable/background_gift_select2.xml new file mode 100644 index 000000000..b7f308b1a --- /dev/null +++ b/common/src/main/res/drawable/background_gift_select2.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/drawable/bg_live_gift_send_new.xml b/common/src/main/res/drawable/bg_live_gift_send_new.xml new file mode 100644 index 000000000..0e72f15d9 --- /dev/null +++ b/common/src/main/res/drawable/bg_live_gift_send_new.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/common/src/main/res/drawable/bg_parcel_point.xml b/common/src/main/res/drawable/bg_parcel_point.xml new file mode 100644 index 000000000..1cb330428 --- /dev/null +++ b/common/src/main/res/drawable/bg_parcel_point.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/common/src/main/res/drawable/bg_selection_quantity.png b/common/src/main/res/drawable/bg_selection_quantity.png new file mode 100644 index 0000000000000000000000000000000000000000..19fc075ce9d41dfcda30748f3dcd4670fcddca3a GIT binary patch literal 10377 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�{9;(Nzg4m8bikG`H1+9xL&7 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 E0K}6nY5)KL literal 0 HcmV?d00001 diff --git a/common/src/main/res/drawable/icon_covering_layer.png b/common/src/main/res/drawable/icon_covering_layer.png new file mode 100644 index 0000000000000000000000000000000000000000..f343669dc48bb6578e923e07a3cf5c800dea0277 GIT binary patch literal 2110 zcmV-E2*LM>P)Px+_(?=TRCr$PoC%YhHV}myiDS;q+W-F-<~|+UJE&7n(qkGKW|(BXm87&)6d*J# z`gnZ^kQ%9f4-;q}{zd(Pyau$_ILE)?R_NA?c(lPw^~^Z zuA2b2T%4`5w9T@$dbUwp0dKi3p7&neB`^eL!P&AB@a)Fi`-c_?wr}m@#J0{FtXpuG zZon<*TfnV>VR^`k;~M4IUIljxS_#NyC|nazxh@-WONr&NEvntBRtwvz2tX{TG4He7 zt{1`G^C>uPVPPAKPwQ_Q5pCqGPE?zdNTaG#!@2!|3jGj|88EE-aS7f%*jwBI8*Nnu zCE8ezvB) zs*?ZWd|Rpjm~r2^f}R zD-ychPCM1O#B#tB>3me3h*PEFps0(5vbbGefc>5qY-2$=>d;(irjv=TDJ}Z2_wV0#FE20MIF3-* zE`)AS4ZF4tdsW@3`X2DqxeoQ6D%J!CSP@EUw0a5AbTgD_${B7j^$hTk%FRuPO3M%% z2@!7T@2m{y%jn0TAOHav!1_%@el=^95u8;Uet#3%WR~yVy#usi9LE9BRNK93*n6*g zRkv4_K|GY_dN0~1#m&^_0V!DZ1sso!HHw5f)rS-muI0(pzW|r(#fZHT8XY`UW`X@I zB3J;A00FL48*{raI_&fr(ZN4IKLgrs9LHS;oL2S>I;;+DvI>5a`b5GoZnj z?L!!kZR?I9grjre1ZX1e0BGvmAgV)B8lox9G$eSFqGrlL;K;!S^#C{?ZzcIce}zY& zX`Sn>nWv4OOV9uWU;qdz`#ysMJSq-Qt%s(H3pScXt>z!bUGmj7-#?mXzr{Uj!ol^B6`rK*&&KH>JUw-v^M*+2qZQ>(3eFR z1k#F5N&~nSzAyU5WZIMR{sAUcu$i|d^UAGOw=Z}OVHrM2o2z{jRnxG(q0c*2zqvI25o@SR3(~dR#fij zN57Pn2AEnZjVVYn+mO_mecGhZJLb8jG^m8o;L`vEN-Lp3X^f;)8qMQG@GkcXhvxjTJEP-rB(B+KCK1<`{IIW0(t~CPpi>0zYl#RxvkJDw3x`& zl%u8`@ljFj5nTJ8wHpn+F`F9_W74e_0dp`p3}p``Vf-u2x|1K z(KEhBsE@nzd(ZlgpuSj%Z?E#V9Pt%i?R%P6aW#6@=$SuLsE@nTTlgA1YxLyD%k{H_ z8a?X=F!}qm`UqmVYkC~o=uH|X<^U;mwiBIC|hsqCrs9ZmZPv7fq zdK(23t%EP-gUW6WzTkkbI?U$^?d~ui4j-%o%C68>2bA%{J}RvaUEDBq(L#%9M;#

CmOLc7Ubd8b%G{45Q_@5)6|$*TIy6_OH*jsQO9-`g|)eU%6Wgv->*%g zWN*&WZ$Gtqm-HlS$|J&upUz#tsQuYV?|)EYEoh$kI8M>MxzM1o)=Y8{TW= zno1sN+@o-o6t#8^tFm(Yt4^d@UgSL$-2(PVgYSX3XO3&f-)zd(dl&e%8hG#jzV`92 oHaYNXU+91GeE%1fyea&@0M^5eF#p7HdjJ3c07*qoM6N<$f{QWoLI3~& literal 0 HcmV?d00001 diff --git a/common/src/main/res/drawable/progress_bg_user.xml b/common/src/main/res/drawable/progress_bg_user.xml new file mode 100644 index 000000000..6d3cc5386 --- /dev/null +++ b/common/src/main/res/drawable/progress_bg_user.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/dialog_live_gift_popup.xml b/common/src/main/res/layout/dialog_live_gift_popup.xml new file mode 100644 index 000000000..63afb262c --- /dev/null +++ b/common/src/main/res/layout/dialog_live_gift_popup.xml @@ -0,0 +1,357 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/live/src/main/res/layout/view_blind_box.xml b/common/src/main/res/layout/view_blind_box.xml similarity index 100% rename from live/src/main/res/layout/view_blind_box.xml rename to common/src/main/res/layout/view_blind_box.xml diff --git a/common/src/main/res/layout/view_gift_number.xml b/common/src/main/res/layout/view_gift_number.xml new file mode 100644 index 000000000..2a7f8828a --- /dev/null +++ b/common/src/main/res/layout/view_gift_number.xml @@ -0,0 +1,17 @@ + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/view_live_gift_number.xml b/common/src/main/res/layout/view_live_gift_number.xml new file mode 100644 index 000000000..241947d70 --- /dev/null +++ b/common/src/main/res/layout/view_live_gift_number.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/view_nobility.xml b/common/src/main/res/layout/view_nobility.xml new file mode 100644 index 000000000..a11e0b664 --- /dev/null +++ b/common/src/main/res/layout/view_nobility.xml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/live/src/main/res/mipmap-mdpi/icon_live_gift_lian.png b/common/src/main/res/mipmap-mdpi/icon_live_gift_lian.png similarity index 100% rename from live/src/main/res/mipmap-mdpi/icon_live_gift_lian.png rename to common/src/main/res/mipmap-mdpi/icon_live_gift_lian.png diff --git a/live/src/main/res/mipmap-xxxhdpi/bg_blind_bottom.png b/common/src/main/res/mipmap-xxhdpi/bg_blind_bottom.png similarity index 100% rename from live/src/main/res/mipmap-xxxhdpi/bg_blind_bottom.png rename to common/src/main/res/mipmap-xxhdpi/bg_blind_bottom.png diff --git a/common/src/main/res/mipmap-xxhdpi/icon_aristocrat_tip.png b/common/src/main/res/mipmap-xxhdpi/icon_aristocrat_tip.png new file mode 100644 index 0000000000000000000000000000000000000000..5bad5e44833802c4a046a36685ad69f8935ca456 GIT binary patch literal 2576 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 QfwnPty85}Sb4q9e0A7YTdH?_b literal 0 HcmV?d00001 diff --git a/common/src/main/res/mipmap-xxhdpi/icon_arrow_right.png b/common/src/main/res/mipmap-xxhdpi/icon_arrow_right.png new file mode 100644 index 0000000000000000000000000000000000000000..3175b9743e00ce0311087df4627efd7fa0eb010e GIT binary patch literal 165 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 literal 0 HcmV?d00001 diff --git a/common/src/main/res/mipmap-xxhdpi/icon_grade_angle_mark.png b/common/src/main/res/mipmap-xxhdpi/icon_grade_angle_mark.png new file mode 100644 index 0000000000000000000000000000000000000000..5d71cbd2a03bbed8a029890923cb378fe50b6075 GIT binary patch literal 1074 zcmV-21kL-2P)Px&>`6pHRA@u(noo#ZRTRd*?(Ux3WEybPN`K? zTnLqR@-pR4lNYtP5Okpf>dJ+SN~sQFvCc~E!-(&aJb|05$8DYznH zW{koW3Vs&`e|bCFf8NUt=|=R1KGD+?w6+Ngn+W#0(XO>vF>;QSQ!~qQ`~&^)Ory`& z5HPJLyYj*Cb|JPAxT(?Ptq>=`k|Mqf=H`xRy>+qPGuH(+nmoD1pztgN;d;qh`gg$` zAcvjU(2uoz)C6WH($9c+vZX<|eR#n!CpLI^HQ9>5w4Mwug~Gd)px^EN+9BQ;oV<93 zpN@}5^4I%W5m?ljdWlej?O@)k2NJ17bnuh9z@koiCxKzFH)6!}L z_s-OVfr5IKK;4%?JAtX;#i&5wqxk;*pUW{7Fk1i7l@DHUz&3vyx?O3(oVDCNqV@f` zqO<~RB$?f%#60CTpC94{=4jI1JW&Dmnw|{bX5Eq?c(We>xb{fQTRGZVN9Icv7E5M# zNvFDMauo1r(vD1&fZ54R3?g^CChsQ!dB%xG5*!(s+Q3_tL+QL3YpuT!BD2P3ES`N# zlzGli#p2Z~jrxL7C;I|nws=kAC!Ik3#Hf>glfZp`GVax@0Kd{sWX3?*=rxI-bYje( zj5(S21=8ui8d-T_z5}cgQ2)jdTwv7693-Tr_vc-BZYos3bF>qwy&&&xDwAKtBEK<~ zOzjb2#4nzk@hLFrVjs4hFi$s=$S>MbH!1vrwl z2frysR2_m$hjP|@g2gGE&h;Mw!DVZ?d-R4wkW!WD^aHf;IsnySRw7_jK|YKh7@98g zxZ(V<)0b5jSDl00a%e1`-Yp74ey*~HM+J(IUj8^^-Fd;h2ynok&?I~Q4)xjiD-8~# zlp*bpr*HKPx-%5}4rcnS0G=1fhIXztf*13J;OFlic&PFR zzmng&z^*p7lfj%7eu5%9K(4K!-)2`)WRU?i5nP)6UhA#P_0ly2teiya>F`o$;c;cK zspZcBglDO6DtCGD_@P6O&ej99YFp8$FzTG>H73v(pz0OMdJ?ybnDuLIK0_c2q`D-6 szbU*VES$~d^QYg_kNnlB*Xp=`0JGy|3#@oF$N&HU07*qoM6N<$f>Uf0MgRZ+ literal 0 HcmV?d00001 diff --git a/live/src/main/res/mipmap-mdpi/icon_live_gift_2.png b/common/src/main/res/mipmap-xxhdpi/icon_live_gift_2.png similarity index 100% rename from live/src/main/res/mipmap-mdpi/icon_live_gift_2.png rename to common/src/main/res/mipmap-xxhdpi/icon_live_gift_2.png diff --git a/common/src/main/res/mipmap-xxhdpi/icon_right.png b/common/src/main/res/mipmap-xxhdpi/icon_right.png new file mode 100644 index 0000000000000000000000000000000000000000..b9d1d45b0ddd70d29417d12f3e219b2fc4472167 GIT binary patch literal 357 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?I3?vN&YJLDImUKs7M+SzC{oH>NS%G}U;vjb? zhIQv;UIIDN0X`wF?gc*oaR9NuvV1^g93?@1!3+ux^Y`DcPhe{OX#f=CEbxddW?6|hVNy&naZps)ur0^H?!-=g zrX}`2`{uoQVUk!k>FBJx`9|eW>gJu-adb2ni*azAKjFhJ_Lej)h8AJfH<}B*Ju)T> zRdEWbcuY`mY+?a2LInDz7_g|^X%bpxe`t+J2=}SzSALAlEKeAjidY%L8JU2VDmXMS zFf#oUy%6NU&N%;hq^^R-f`tu6A)(Co>Nm<6yqn5lz&njWps;On<`J>JZO=}-*f88q WeVJ*qqpBU~6$VdNKbLh*2~7ZQxP#9C literal 0 HcmV?d00001 diff --git a/live/src/main/res/mipmap-xxxhdpi/icon_what.png b/common/src/main/res/mipmap-xxhdpi/icon_what.png similarity index 100% rename from live/src/main/res/mipmap-xxxhdpi/icon_what.png rename to common/src/main/res/mipmap-xxhdpi/icon_what.png diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml index 6715ce5e3..898591650 100644 --- a/common/src/main/res/values/strings.xml +++ b/common/src/main/res/values/strings.xml @@ -1250,4 +1250,8 @@ Limited ride And limited avatar frame %s drew %s in the lucky red envelope number >Red successfully + 升級還需%s經驗值,升至%s即可領取獎勵 + 包裹中暫無物品哦 + 恭喜,你已達到最高等級 + 自定義數量 diff --git a/config.gradle b/config.gradle index 5bba46103..e31787a93 100644 --- a/config.gradle +++ b/config.gradle @@ -9,9 +9,9 @@ ext { ] manifestPlaceholders = [ //正式、 - serverHost : "https://napi.yaoulive.com", +// serverHost : "https://napi.yaoulive.com", // 测试 -// serverHost : "https://ceshi.yaoulive.com", + serverHost : "https://ceshi.yaoulive.com", 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 c52a984e8..b786ce6f4 100644 --- a/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java +++ b/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java @@ -91,6 +91,7 @@ import com.yunbao.live.bean.LiveChatBean; import com.yunbao.live.dialog.LiveFansFragment; import com.yunbao.live.dialog.LiveGameDialogFragment; import com.yunbao.live.dialog.LiveGiftDialogFragment; +import com.yunbao.live.dialog.LiveGiftPopup; import com.yunbao.live.dialog.LiveHDDialogFragment; import com.yunbao.live.dialog.LiveInputDialogFragment; import com.yunbao.live.dialog.LiveMicUserDialogFragment; @@ -443,18 +444,16 @@ public class LiveAudienceActivity extends LiveActivity { */ public void openGiftWindow() { new Handler(Looper.getMainLooper()).post(() -> { + if (TextUtils.isEmpty(mLiveUid) || TextUtils.isEmpty(mStream)) { return; } - LiveGiftDialogFragment fragment = new LiveGiftDialogFragment(); - fragment.setPkStatus(isPk); - fragment.setLiveGuardInfo(mLiveGuardInfo); - Bundle bundle = new Bundle(); - bundle.putString(Constants.LIVE_UID, mLiveUid); - bundle.putString(Constants.LIVE_STREAM, mStream); - fragment.setArguments(bundle); - fragment.setOnDismissListener(dialog -> checkMsgRed()); - fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveGiftDialogFragment"); + Bus.get().post(new LiveAudienceEvent() + .setType(LiveAudienceEvent.LiveAudienceType.GIFT_POPUP) + .setmLiveUid(mLiveUid) + .setmStream(mStream) + .setPk(isPk) + .setLiveGuardInfo(mLiveGuardInfo)); }); } @@ -462,16 +461,13 @@ public class LiveAudienceActivity extends LiveActivity { if (TextUtils.isEmpty(mLiveUid) || TextUtils.isEmpty(mStream)) { return; } - LiveGiftDialogFragment fragment = new LiveGiftDialogFragment(); - fragment.setPkStatus(isPk); - fragment.setLiveGuardInfo(mLiveGuardInfo); - Bundle bundle = new Bundle(); - bundle.putString(Constants.LIVE_UID, mLiveUid); - bundle.putString(Constants.LIVE_STREAM, mStream); - bundle.putString(Constants.LIVE_WISH_GIFTID, giftId); - fragment.setArguments(bundle); - fragment.setOnDismissListener(dialog -> checkMsgRed()); - fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveGiftDialogFragment"); + Bus.get().post(new LiveAudienceEvent() + .setType(LiveAudienceEvent.LiveAudienceType.GIFT_POPUP) + .setmLiveUid(mLiveUid) + .setmStream(mStream) + .setPk(isPk) + .setLiveGuardInfo(mLiveGuardInfo) + .setmWishGiftId(giftId)); } public void openGiftWindow(String giftId, String for_by) { @@ -479,19 +475,15 @@ public class LiveAudienceActivity extends LiveActivity { return; } new Handler(Looper.getMainLooper()).post(() -> { - LiveGiftDialogFragment fragment = new LiveGiftDialogFragment(); - fragment.setPkStatus(isPk); - fragment.setLiveGuardInfo(mLiveGuardInfo); - Bundle bundle = new Bundle(); - bundle.putString(Constants.LIVE_UID, mLiveUid); - bundle.putString(Constants.LIVE_STREAM, mStream); - bundle.putString(Constants.LIVE_WISH_GIFTID, giftId); - if (for_by.equals("1")) { - bundle.putString("by", "1"); - } - fragment.setArguments(bundle); - fragment.setOnDismissListener(dialog -> checkMsgRed()); - fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveGiftDialogFragment"); + + Bus.get().post(new LiveAudienceEvent() + .setType(LiveAudienceEvent.LiveAudienceType.GIFT_POPUP) + .setmLiveUid(mLiveUid) + .setmStream(mStream) + .setPk(isPk) + .setLiveGuardInfo(mLiveGuardInfo) + .setmWishGiftId(giftId) + .setUname("1"));//setUname==by }); } @@ -1023,18 +1015,29 @@ public class LiveAudienceActivity extends LiveActivity { break; case GIFT_POPUP: - - if (TextUtils.isEmpty(mLiveUid) || TextUtils.isEmpty(mStream)) { - return; - } - LiveGiftDialogFragment liveGiftDialogFragment = new LiveGiftDialogFragment(); - liveGiftDialogFragment.setPkStatus(isPk); - liveGiftDialogFragment.setLiveGuardInfo(mLiveGuardInfo); - bundle.putString(Constants.LIVE_UID, mLiveUid); - bundle.putString(Constants.LIVE_STREAM, mStream); - liveGiftDialogFragment.setArguments(bundle); - liveGiftDialogFragment.setOnDismissListener(dialog -> checkMsgRed()); - liveGiftDialogFragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveGiftDialogFragment"); + LiveGiftPopup liveGiftPopup = new LiveGiftPopup(); + bundle.putString("mLiveUid", mLiveUid); + bundle.putString("mStream", mStream); + bundle.putString("WishGiftId", event.getmWishGiftId()); + bundle.putBoolean("ContactGift", event.getIsContactGift()); + bundle.putParcelable("GuardInfo", event.getLiveGuardInfo()); + bundle.putBoolean("pk", event.isPk()); + liveGiftPopup.setArguments(bundle); + liveGiftPopup.show(getSupportFragmentManager(), "LiveGiftPopup"); +// new XPopup.Builder(mContext) +// .asCustom(new LiveGiftPopup(mContext, this)) +// .show(); +// if (TextUtils.isEmpty(mLiveUid) || TextUtils.isEmpty(mStream)) { +// return; +// } +// LiveGiftDialogFragment liveGiftDialogFragment = new LiveGiftDialogFragment(); +// liveGiftDialogFragment.setPkStatus(isPk); +// liveGiftDialogFragment.setLiveGuardInfo(mLiveGuardInfo); +// bundle.putString(Constants.LIVE_UID, mLiveUid); +// bundle.putString(Constants.LIVE_STREAM, mStream); +// liveGiftDialogFragment.setArguments(bundle); +// liveGiftDialogFragment.setOnDismissListener(dialog -> checkMsgRed()); +// liveGiftDialogFragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveGiftDialogFragment"); break; case CURRENT_ACTIVITY: String type = event.getModel().getActiveId(); diff --git a/live/src/main/java/com/yunbao/live/adapter/FrameGiftAdapter.java b/live/src/main/java/com/yunbao/live/adapter/FrameGiftAdapter.java new file mode 100644 index 000000000..05e78fd3b --- /dev/null +++ b/live/src/main/java/com/yunbao/live/adapter/FrameGiftAdapter.java @@ -0,0 +1,69 @@ +package com.yunbao.live.adapter; + +import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.bean.LiveGiftBean; +import com.yunbao.common.utils.Bus; +import com.yunbao.live.R; +import com.yunbao.live.event.LiveGiftItemEvent; +import com.yunbao.live.views.FrameGiftViewHolder; + +import java.util.ArrayList; +import java.util.List; + +public class FrameGiftAdapter extends RecyclerView.Adapter { + private List giftJson = new ArrayList<>(); + private int contextLayoutGiftHeight = 0; + private String mStream, mLiveUid, wishGiftId; + + public FrameGiftAdapter(int contextLayoutGiftHeight, List giftJson, String mStream, String mLiveUid, String wishGiftId) { + this.contextLayoutGiftHeight = contextLayoutGiftHeight; + this.giftJson = giftJson; + this.mStream = mStream; + this.mLiveUid = mLiveUid; + this.wishGiftId = wishGiftId; + } + + @NonNull + @Override + public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View herdView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_frame_gift, parent, false); + return new FrameGiftViewHolder(herdView); + } + + @Override + public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { + + if (!TextUtils.isEmpty(wishGiftId) && TextUtils.equals(giftJson.get(position).getId() + "", wishGiftId)) { + Bus.get().post(new LiveGiftItemEvent().setLiveGiftModel(giftJson.get(position))); + } + + FrameGiftViewHolder frameGiftViewHolder = (FrameGiftViewHolder) holder; + frameGiftViewHolder.showData(contextLayoutGiftHeight, giftJson.get(position)); + frameGiftViewHolder.giftSelect(giftJson.get(position), position, mStream, mLiveUid, new FrameGiftViewHolder.FrameGiftClickListener() { + @Override + public void onCallBack(int position, LiveGiftBean model) { + Bus.get().post(new LiveGiftItemEvent().setLiveGiftModel(model)); + wishGiftId = null; + } + }); + } + + public void giftSelect(LiveGiftBean model) { + for (int i = 0; i < giftJson.size(); i++) { + giftJson.get(i).setChecked(giftJson.get(i).getId() == model.getId()); + } + notifyDataSetChanged(); + } + + @Override + public int getItemCount() { + return giftJson.size(); + } +} diff --git a/live/src/main/java/com/yunbao/live/adapter/GiftTitleAdapter.java b/live/src/main/java/com/yunbao/live/adapter/GiftTitleAdapter.java new file mode 100644 index 000000000..898b9da7c --- /dev/null +++ b/live/src/main/java/com/yunbao/live/adapter/GiftTitleAdapter.java @@ -0,0 +1,60 @@ +package com.yunbao.live.adapter; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.live.R; +import com.yunbao.live.bean.GiftTopBean; +import com.yunbao.live.views.GiftTitleViewHolder; + +import java.util.ArrayList; +import java.util.List; + +/** + * + */ +public class GiftTitleAdapter extends RecyclerView.Adapter { + + List name = new ArrayList<>(); + private int index = 0; + + @NonNull + @Override + public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View herdView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_gift_top_new, parent, false); + return new GiftTitleViewHolder(herdView); + } + + @Override + public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { + GiftTitleViewHolder itemViewHolder = (GiftTitleViewHolder) holder; + itemViewHolder.showData(name.get(position), position, new GiftTitleViewHolder.ClicksCallBack() { + @Override + public void onViewClicks(int mPosition) { + index = mPosition; + notifyDataSetChanged(); + } + }); + itemViewHolder.selectData(index == position); + } + + @Override + public int getItemCount() { + return name.size(); + } + + public void addAllData(List giftTopBeans) { + name.clear(); + name.addAll(giftTopBeans); + notifyDataSetChanged(); + } + + public void uncheck() { + index = -1; + notifyDataSetChanged(); + } +} diff --git a/live/src/main/java/com/yunbao/live/adapter/LiveGiftFragmentPagerAdapter.java b/live/src/main/java/com/yunbao/live/adapter/LiveGiftFragmentPagerAdapter.java new file mode 100644 index 000000000..934be7fc4 --- /dev/null +++ b/live/src/main/java/com/yunbao/live/adapter/LiveGiftFragmentPagerAdapter.java @@ -0,0 +1,33 @@ +package com.yunbao.live.adapter; + +import android.content.Context; + +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentPagerAdapter; + +import java.util.List; + +public class LiveGiftFragmentPagerAdapter extends FragmentPagerAdapter { + + private List fragmentList; + + + public LiveGiftFragmentPagerAdapter(FragmentManager fm, Context mContext, List fragmentList) { + super(fm); + + this.fragmentList = fragmentList; + + } + + @Override + public Fragment getItem(int i) { + return fragmentList.get(i); + } + + @Override + public int getCount() { + return fragmentList.size(); + } + +} diff --git a/live/src/main/java/com/yunbao/live/adapter/LiveParcelItemAdapter.java b/live/src/main/java/com/yunbao/live/adapter/LiveParcelItemAdapter.java new file mode 100644 index 000000000..9f06c5816 --- /dev/null +++ b/live/src/main/java/com/yunbao/live/adapter/LiveParcelItemAdapter.java @@ -0,0 +1,85 @@ +package com.yunbao.live.adapter; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.bean.LiveGiftBean; +import com.yunbao.common.utils.Bus; +import com.yunbao.live.R; +import com.yunbao.live.event.LiveGiftItemEvent; +import com.yunbao.live.views.LiveParcelItemViewHolder; + +import java.util.ArrayList; +import java.util.List; + +public class LiveParcelItemAdapter extends RecyclerView.Adapter { + private List giftJson = new ArrayList<>(); + private int contextLayoutGiftHeight = 0; + private String mStream, mLiveUid; + + public LiveParcelItemAdapter(int contextLayoutGiftHeight, List giftJson, String mStream, String mLiveUid) { + this.contextLayoutGiftHeight = contextLayoutGiftHeight; + this.giftJson = giftJson; + this.mStream = mStream; + this.mLiveUid = mLiveUid; + } + + @NonNull + @Override + public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View herdView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_live_parcel, parent, false); + return new LiveParcelItemViewHolder(herdView); + } + + @Override + public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { + LiveParcelItemViewHolder frameGiftViewHolder = (LiveParcelItemViewHolder) holder; + frameGiftViewHolder.showData(contextLayoutGiftHeight, giftJson.get(position)); + frameGiftViewHolder.giftSelect(giftJson.get(position), position, mStream, mLiveUid, new LiveParcelItemViewHolder.FrameGiftClickListener() { + @Override + public void onCallBack(int position, LiveGiftBean model) { + Bus.get().post(new LiveGiftItemEvent().setLiveGiftModel(model)); + } + }); + } + + public void giftSelect(LiveGiftBean model) { + for (int i = 0; i < giftJson.size(); i++) { + giftJson.get(i).setChecked(giftJson.get(i).getId() == model.getId()); + } + notifyDataSetChanged(); + } + + public void refreshWrapListAfterSend(LiveGiftBean model) { + for (int i = 0; i < giftJson.size(); i++) { + if (giftJson.get(i).getId() == model.getId()) { + + + String giftNum = giftJson.get(i).getGiftNum(); + int number = 0; + try { + number = Integer.parseInt(giftNum); + } catch (NumberFormatException e) { + e.printStackTrace(); + number = 0; + } + if (number == 1) { + + giftJson.remove(i); + } else { + giftJson.get(i).setGiftNum(String.valueOf(number - 1)); + } + } + } + notifyDataSetChanged(); + } + + @Override + public int getItemCount() { + return giftJson.size(); + } +} diff --git a/live/src/main/java/com/yunbao/live/bean/CoinModel.java b/live/src/main/java/com/yunbao/live/bean/CoinModel.java new file mode 100644 index 000000000..f80a61da8 --- /dev/null +++ b/live/src/main/java/com/yunbao/live/bean/CoinModel.java @@ -0,0 +1,115 @@ +package com.yunbao.live.bean; + +import com.google.gson.annotations.SerializedName; +import com.yunbao.common.bean.BaseModel; + +public class CoinModel extends BaseModel { + //钻石余额 + @SerializedName("coin") + private String coin; + //金豆余额 + @SerializedName("gold") + private String gold; + + @SerializedName("uid") + private String uid; + //平台最大等级 + @SerializedName("user_level_max") + private String userLevelMax; + //当前用户等级 + @SerializedName("user_level") + private String userLevel; + //升级下一级需要的经验 + @SerializedName("user_next_level_rewards") + private String userNextLevelRewards; + //当前已经获取到的经验值 + @SerializedName("user_level_current_consumption") + private String userLevelCurrentConsumption; + //升级需要的经验值(总的) + @SerializedName("user_level_upgrades") + private String userLevelUpgrades; + //包裹红点 + @SerializedName("users_pack_red_dot") + private String usersPackRedDot; + + public String getCoin() { + return coin; + } + + public CoinModel setCoin(String coin) { + this.coin = coin; + return this; + } + + public String getGold() { + return gold; + } + + public CoinModel setGold(String gold) { + this.gold = gold; + return this; + } + + public String getUid() { + return uid; + } + + public CoinModel setUid(String uid) { + this.uid = uid; + return this; + } + + public String getUserLevelMax() { + return userLevelMax; + } + + public CoinModel setUserLevelMax(String userLevelMax) { + this.userLevelMax = userLevelMax; + return this; + } + + public String getUserLevel() { + return userLevel; + } + + public CoinModel setUserLevel(String userLevel) { + this.userLevel = userLevel; + return this; + } + + public String getUserNextLevelRewards() { + return userNextLevelRewards; + } + + public CoinModel setUserNextLevelRewards(String userNextLevelRewards) { + this.userNextLevelRewards = userNextLevelRewards; + return this; + } + + public String getUserLevelCurrentConsumption() { + return userLevelCurrentConsumption; + } + + public CoinModel setUserLevelCurrentConsumption(String userLevelCurrentConsumption) { + this.userLevelCurrentConsumption = userLevelCurrentConsumption; + return this; + } + + public String getUserLevelUpgrades() { + return userLevelUpgrades; + } + + public CoinModel setUserLevelUpgrades(String userLevelUpgrades) { + this.userLevelUpgrades = userLevelUpgrades; + return this; + } + + public String getUsersPackRedDot() { + return usersPackRedDot; + } + + public CoinModel setUsersPackRedDot(String usersPackRedDot) { + this.usersPackRedDot = usersPackRedDot; + return this; + } +} diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveGiftPopup.java b/live/src/main/java/com/yunbao/live/dialog/LiveGiftPopup.java new file mode 100644 index 000000000..aa1a30b53 --- /dev/null +++ b/live/src/main/java/com/yunbao/live/dialog/LiveGiftPopup.java @@ -0,0 +1,1100 @@ +package com.yunbao.live.dialog; + +import static com.yunbao.common.CommonAppConfig.isGetNewWrap; +import static com.yunbao.common.utils.RouteUtil.PATH_COIN; + +import android.app.Dialog; +import android.content.DialogInterface; +import android.graphics.Color; +import android.graphics.Typeface; +import android.os.Bundle; +import android.os.Handler; +import android.text.Spannable; +import android.text.SpannableStringBuilder; +import android.text.TextUtils; +import android.text.style.ForegroundColorSpan; +import android.util.Log; +import android.view.Gravity; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.ProgressBar; +import android.widget.TextView; + +import androidx.fragment.app.FragmentTransaction; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.alibaba.android.arouter.launcher.ARouter; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.blankj.utilcode.util.GsonUtils; +import com.lxj.xpopup.XPopup; +import com.opensource.svgaplayer.SVGACallback; +import com.opensource.svgaplayer.SVGADrawable; +import com.opensource.svgaplayer.SVGAImageView; +import com.opensource.svgaplayer.SVGAParser; +import com.opensource.svgaplayer.SVGAVideoEntity; +import com.yunbao.common.CommonAppConfig; +import com.yunbao.common.Constants; +import com.yunbao.common.R; +import com.yunbao.common.bean.BlindBoxInfoModel; +import com.yunbao.common.bean.IMLoginModel; +import com.yunbao.common.bean.LiveGiftBean; +import com.yunbao.common.bean.LiveGiftBean2; +import com.yunbao.common.bean.UserBean; +import com.yunbao.common.dialog.AbsDialogFragment; +import com.yunbao.common.event.GiftNumberEvent; +import com.yunbao.common.event.SendBlindGiftEvent; +import com.yunbao.common.glide.ImgLoader; +import com.yunbao.common.http.HttpCallback; +import com.yunbao.common.http.HttpClient; +import com.yunbao.common.http.live.LiveNetManager; +import com.yunbao.common.manager.IMLoginManager; +import com.yunbao.common.utils.AppManager; +import com.yunbao.common.utils.Bus; +import com.yunbao.common.utils.DialogUitl; +import com.yunbao.common.utils.NobleUtil; +import com.yunbao.common.utils.SVGAViewUtils; +import com.yunbao.common.utils.StringUtil; +import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.views.GiftNumberPopup; +import com.yunbao.common.views.weight.MarqueeTextView; +import com.yunbao.common.views.weight.ViewClicksAntiShake; +import com.yunbao.live.activity.LiveActivity; +import com.yunbao.live.activity.LiveAudienceActivity; +import com.yunbao.live.adapter.GiftTitleAdapter; +import com.yunbao.live.bean.CoinModel; +import com.yunbao.live.bean.GiftTopBean; +import com.yunbao.live.bean.LiveGuardInfo; +import com.yunbao.live.event.GiftTitleEvent; +import com.yunbao.live.event.LiveAudienceEvent; +import com.yunbao.live.event.LiveGiftDialogEvent; +import com.yunbao.live.event.LiveGiftItemEvent; +import com.yunbao.live.event.LiveParcelItemRefreshEvent; +import com.yunbao.live.http.LiveHttpUtil; +import com.yunbao.live.views.LiveGiftFragment; +import com.yunbao.live.views.LiveParcelFragment; + +import org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; + +import java.net.MalformedURLException; +import java.net.URL; +import java.util.ArrayList; +import java.util.List; + +/** + * 直播间新送礼弹窗 + */ +public class LiveGiftPopup extends AbsDialogFragment { + private ImageView gitBackground, nobilityIcon, description, iconArrow; + private JSONArray liveGiftList; + private TextView diamondText, goldText, liveWrap, vipGoldDesc, vipGoldTitle, giftNumber; + private RecyclerView giftTitle; + private GiftTitleAdapter giftTitleAdapter; + private FrameLayout contextLayoutGift; + private String mStream, mLiveUid; + private FrameLayout blindBox, frameBlindTop, noNobility, giftNumberLayout, giftSendLayout; + private ProgressBar progressBlind, progressBlind1, progressBlind2; + private SVGAImageView blindSvga, blindBoxOpen; + private View iconMasking; + private TextView blindNumber, textBlindProgress, textBlindGiftName, liveGiftSend, mLianText, lvStr, leaveHint; + private LinearLayout establishedNobility, levelingLayout; + private View mBtnSendGroup; + private LiveGuardInfo mLiveGuardInfo; + private static final String DEFAULT_COUNT = "1"; + private String mCount = DEFAULT_COUNT; + private String mWishGiftId; + private int isContactGift = 0; + private String by; + private boolean isWrap; + private ProgressBar progressBar; + private MarqueeTextView giftDescription; + private boolean isPk; + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + Bus.getOn(this); + initView(); + initDate(); + } + + + @Override + public void onDismiss(DialogInterface dialog) { + super.onDismiss(dialog); + Bus.getOff(this); + + } + + private void initView() { + gitBackground = mRootView.findViewById(R.id.git_background2); + contextLayoutGift = mRootView.findViewById(R.id.context_layout_gift); + diamondText = mRootView.findViewById(R.id.diamond_text); + goldText = mRootView.findViewById(R.id.gold_text); + giftTitle = mRootView.findViewById(R.id.gift_title); + liveWrap = mRootView.findViewById(R.id.live_wrap); + giftDescription = mRootView.findViewById(R.id.gift_description); + blindBox = mRootView.findViewById(R.id.blind_box); + frameBlindTop = mRootView.findViewById(R.id.frame_blind_top); + progressBlind = mRootView.findViewById(R.id.progress_blind1); + progressBlind1 = mRootView.findViewById(R.id.progress_blind2); + progressBlind2 = mRootView.findViewById(R.id.progress_blind3); + iconMasking = mRootView.findViewById(R.id.icon_masking); + blindSvga = mRootView.findViewById(R.id.blind_svga); + blindBoxOpen = mRootView.findViewById(R.id.blind_box_open); + blindNumber = mRootView.findViewById(R.id.blind_number); + textBlindProgress = mRootView.findViewById(R.id.text_blind_progress); + textBlindGiftName = mRootView.findViewById(R.id.text_blind_gift_name); + noNobility = mRootView.findViewById(R.id.no_nobility); + establishedNobility = mRootView.findViewById(R.id.established_nobility); + nobilityIcon = mRootView.findViewById(R.id.nobility_icon); + vipGoldDesc = mRootView.findViewById(R.id.vipGoldDesc); + vipGoldTitle = mRootView.findViewById(R.id.vipGoldTitle); + giftNumber = mRootView.findViewById(R.id.gift_number); + liveGiftSend = mRootView.findViewById(R.id.live_gift_send); + giftNumberLayout = mRootView.findViewById(R.id.gift_number_layout); + mLianText = mRootView.findViewById(R.id.lian_text); + mBtnSendGroup = mRootView.findViewById(R.id.btn_send_lian); + giftSendLayout = mRootView.findViewById(R.id.gift_send_layout); + description = mRootView.findViewById(R.id.description); + lvStr = mRootView.findViewById(R.id.lv_str); + iconArrow = mRootView.findViewById(R.id.icon_arrow); + leaveHint = mRootView.findViewById(R.id.leave_hint); + progressBar = mRootView.findViewById(R.id.progressBar); + levelingLayout = mRootView.findViewById(R.id.leveling_layout); + //设置礼物弹窗背景 + ImgLoader.displayBlurLive(getContext(), R.drawable.backgroud_custom_gift2, gitBackground); + gitBackground.setAlpha(0.97f); + ImgLoader.display(getContext(), R.mipmap.icon_arrow_right, iconArrow); + //礼物分类tab + LinearLayoutManager manager = new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false); + giftTitle.setLayoutManager(manager); + giftTitleAdapter = new GiftTitleAdapter(); + giftTitle.setAdapter(giftTitleAdapter); + liveWrap.setAlpha(0.5f); + liveWrap.setTypeface(Typeface.SANS_SERIF, Typeface.NORMAL); + liveGiftSend.setEnabled(false); + giftNumberLayout.setVisibility(View.INVISIBLE); + giftDescription.setVisibility(View.GONE); + levelingLayout.setVisibility(View.VISIBLE); + //点击包裹 + ViewClicksAntiShake.clicksAntiShake(liveWrap, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + giftTitleAdapter.uncheck(); + liveWrap.setAlpha(1.0f); + liveWrap.setTypeface(Typeface.SANS_SERIF, Typeface.BOLD); + FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); + transaction.replace(R.id.context_layout_gift, LiveParcelFragment.newInstance(mStream, mLiveUid)); + transaction.commit(); + isWrap = true; + } + }); + //;连送 + ViewClicksAntiShake.clicksAntiShake(mBtnSendGroup, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + sendGift(); + } + }); + //送礼 + ViewClicksAntiShake.clicksAntiShake(liveGiftSend, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + sendGift(); + } + }); + // 跳转充值 + ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.diamond_linear), new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + forwardMyCoin(0); + } + }); + // 跳转充值 + ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.gold_layout), new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + forwardMyCoin(2); + } + }); + // 盲盒说明 + ViewClicksAntiShake.clicksAntiShake(description, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo(); + StringBuffer htmlUrl = new StringBuffer(); + htmlUrl.append(CommonAppConfig.HOST) + .append("/h5/info/index.html?uid=") + .append(userInfo.getId()) + .append("&token=") + .append(userInfo.getToken()); + Bundle bundle = new Bundle(); + bundle.putString("url", htmlUrl.toString()); + LiveHDDialogFragment fragment = new LiveHDDialogFragment(); + fragment.setArguments(bundle); + fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment"); + } + }); + // 跳转贵族 + ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.btn_luck_gift_tip), new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + dismiss(); + ((LiveActivity) mContext).openLuckGiftTip(); + } + }); + //用户等级 + ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.leveling_layout), new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo(); + StringBuffer htmlUrl = new StringBuffer(); + htmlUrl.append(CommonAppConfig.HOST) + .append("/h5/Grade/index.html?uid=") + .append(userInfo.getId()) + .append("&token=") + .append(userInfo.getToken()) + .append("&for"); + Bundle bundle = new Bundle(); + bundle.putString("url", htmlUrl.toString()); + LiveHDDialogFragment fragment = new LiveHDDialogFragment(); + fragment.setArguments(bundle); + fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment"); + } + }); + //选择礼物数量 + ViewClicksAntiShake.clicksAntiShake(giftNumberLayout, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + if (liveGiftModel.getType() == 7) return; + new XPopup.Builder(getContext()) + .asCustom(new GiftNumberPopup(getContext())) + .show(); + ImgLoader.display(getContext(), R.mipmap.icon_arrow_down, iconArrow); + } + }); + } + + private void initDate() { + Bundle bundle = getArguments(); + if (bundle != null) { + mLiveUid = bundle.getString("mLiveUid"); + mStream = bundle.getString("mStream"); + mLiveGuardInfo = bundle.getParcelable("GuardInfo"); + mWishGiftId = bundle.getString("WishGiftId"); + isContactGift = bundle.getBoolean("ContactGift", false) ? 1 : 0; + by = bundle.getString("by"); + isPk = bundle.getBoolean("pk"); + } + + //判断是否缓存礼物列表 + String giftListJson = CommonAppConfig.getInstance().getGiftListJson(); + if (!TextUtils.isEmpty(giftListJson)) { + try { + liveGiftList = JSON.parseArray(giftListJson); + Bus.getOn(this); + } catch (Exception e) { + e.printStackTrace(); + } + } + if (liveGiftList == null) { + LiveHttpUtil.getNewGiftList(new HttpCallback() { + @Override + public void onSuccess(int code, String msg, String[] info) { + if (code == 0 && info.length > 0) { + JSONObject obj = JSON.parseObject(info[0]); + liveGiftList = obj.getJSONArray("listarray"); + CommonAppConfig.getInstance().setGiftListJson(obj.getString("listarray")); + getCoin(); + goldText.setText(obj.getString("gold")); + diamondText.setText(obj.getString("coin")); + setTitleData(); + + } + } + + @Override + public void onFinish() { +// if (mLoading != null) { +// mLoading.setVisibility(View.INVISIBLE); +// } + } + }); + } else { + getCoin(); + setTitleData(); + } + getBlindBoxInfo(); + loadUserVip(); + } + + //设置礼物类别数据 + private void setTitleData() { + List name = new ArrayList<>(); + for (int i = 0; i < liveGiftList.size(); i++) { + JSONObject data = liveGiftList.getJSONObject(i); + GiftTopBean giftTopBean = new GiftTopBean(); + giftTopBean.setName(data.getString("name")); + name.add(giftTopBean); + } + giftTitleAdapter.addAllData(name); + if (!TextUtils.isEmpty(mWishGiftId) && liveGiftList.size() > 0) { + for (int i = 0; i < liveGiftList.size(); i++) { + JSONObject data = liveGiftList.getJSONObject(i); + String giftJson = data.getString("giftlist"); + List liveGiftBeans = JSONArray.parseArray(giftJson, LiveGiftBean.class); + for (LiveGiftBean model : liveGiftBeans) { + if (TextUtils.equals(model.getId() + "", mWishGiftId)) { + FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); + transaction.replace(R.id.context_layout_gift, LiveGiftFragment.newInstance(giftJson, + liveGiftList.getJSONObject(i).getString("name"), + mStream, mLiveUid, mWishGiftId)); + transaction.commit(); + } + } + } + } else { + + JSONObject obj2 = liveGiftList.getJSONObject(0); + String giftJson = obj2.getString("giftlist"); + FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); + transaction.replace(R.id.context_layout_gift, LiveGiftFragment.newInstance(giftJson, + liveGiftList.getJSONObject(0).getString("name"), + mStream, mLiveUid, mWishGiftId)); + transaction.commit(); + } + + + } + + /** + * 设置贵族状态 + */ + private void loadUserVip() { + HttpClient.getInstance().get("User.getBaseInfos", "getBaseInfo") + .params("uid", IMLoginManager.get(mContext).getUserInfo().getId()) + .params("token", IMLoginManager.get(mContext).getUserInfo().getToken()) + .execute(new HttpCallback() { + @Override + public void onSuccess(int code, String msg, String[] info) { + if (code == 0 && info.length > 0) { + JSONObject user = JSONObject.parseObject(info[0]); + int nobleId = user.getIntValue("noble_id"); + int resId = NobleUtil.nobleIdToImageResId(nobleId); + if (resId != -1) { + nobilityIcon.setImageResource(resId); + vipGoldTitle.setText(user.getString("noble_name")); + vipGoldDesc.setText(com.yunbao.live.R.string.live_gift_buy_gold_desc_to); + noNobility.setVisibility(View.GONE); + establishedNobility.setVisibility(View.VISIBLE); + } else { + noNobility.setVisibility(View.VISIBLE); + establishedNobility.setVisibility(View.GONE); + + } + } + } + }); + } + + /** + * 获取砖石和金豆余额 + */ + private void getCoin() { + LiveHttpUtil.getCoin(new HttpCallback() { + @Override + public void onSuccess(int code, String msg, String[] info) { + if (code == 0 && info.length > 0) { + if (!TextUtils.isEmpty(info[0])) { + CoinModel coinModel = GsonUtils.fromJson(info[0], CoinModel.class); + goldText.setText(coinModel.getGold()); + diamondText.setText(coinModel.getCoin()); + lvStr.setText("Lv." + coinModel.getUserLevel()); + int nextLeve = Integer.parseInt(coinModel.getUserLevel()); + int maxLeve = Integer.parseInt(coinModel.getUserLevelMax()); + if (maxLeve > nextLeve) { + String leveNext = String.valueOf(nextLeve + 1); + String userNextLevel = coinModel.getUserNextLevelRewards(); + String hint = String.format(getString(R.string.leveling_points), + userNextLevel, leveNext); + int leveNextIndexOf = hint.indexOf(leveNext); + int leveNextSize = leveNext.length(); + int userNextLevelIndexOf = msg.indexOf(userNextLevel); + int userNextLevelSize = userNextLevel.length(); + SpannableStringBuilder builder = new SpannableStringBuilder(); + builder.append(msg); + builder.setSpan(new + ForegroundColorSpan(Color.parseColor("#FFC722")), + leveNextIndexOf, leveNextIndexOf + leveNextSize, + Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + builder.setSpan(new + ForegroundColorSpan(Color.parseColor("#FFC722")), + userNextLevelIndexOf, userNextLevelIndexOf + userNextLevelSize, + Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + leaveHint.setText(builder); + } else { + String hint = getString(R.string.reach_the_top); + leaveHint.setText(hint); + progressBar.setMax(10); + progressBar.setProgress(10); + } + + } + + + } + } + }); + } + + /** + * 赠送礼物 + */ + public void sendGift() { + if (liveGiftModel == null) return; + if (liveGiftModel.getTag() != null) { + if (mCount.equals("1")) { + LiveHttpUtil.setFrontTask("sendgift", mLiveUid, new HttpCallback() { + @Override + public void onSuccess(int code, String msg, String[] info) { + EventBus.getDefault().post("stop_svga_new_user_gif"); + EventBus.getDefault().post("stop_new_user_gif"); + if (code == 0) { + EventBus.getDefault().post("stop_new_user_gif1"); + } + dismiss(); + } + }); + } else { + ToastUtil.show(com.yunbao.live.R.string.only_one); + } + } else { + if (TextUtils.isEmpty(mLiveUid) || TextUtils.isEmpty(mStream) || liveGiftModel == null) { + return; + } + if (mLiveGuardInfo != null) { + if (liveGiftModel.getMark() == LiveGiftBean2.MARK_GUARD && mLiveGuardInfo.getMyGuardType() != Constants.GUARD_TYPE_YEAR) { + ToastUtil.show(com.yunbao.live.R.string.guard_gift_tip); + return; + } + } + SendGiftCallback callback = new SendGiftCallback(liveGiftModel); + try { + if (!StringUtil.isEmpty(mWishGiftId) && liveGiftModel.getId() != Integer.parseInt(mWishGiftId)) { + isContactGift = 0; + } + } catch (NumberFormatException e) { + isContactGift = 0; + } + if (by != null) { + LiveHttpUtil.sendGift("1", mLiveUid, mStream, liveGiftModel.getId(), mCount, isContactGift, callback); + } else { + LiveHttpUtil.sendGift("0", mLiveUid, mStream, liveGiftModel.getId(), mCount, isContactGift, callback); + } + } + } + + /** + * 跳转到我的钻石 + */ + private void forwardMyCoin(int page) { + dismiss(); + //我们的 + ARouter.getInstance().build(PATH_COIN).withInt("p", page).navigation(); + } + + //连送逻辑 + private int mLianCountDownCount;//连送倒计时的数字 + + private Handler lianSongHandler = new Handler(); + private Runnable lianSongRunnable = new Runnable() { + @Override + public void run() { + if (removeRunnable) { + lianSongHandler.removeCallbacks(lianSongRunnable); + if (mLianText != null) { + mLianText.setText("5s"); + } + mLianCountDownCount = 5; + lianSongHandler.postDelayed(lianSongRunnable, 1000); + removeRunnable = false; + } else { + mLianCountDownCount--; + if (mLianCountDownCount == 0) { + hideLianBtn(); + } else { + if (mLianText != null) { + mLianText.setText(mLianCountDownCount + "s"); + lianSongHandler.postDelayed(lianSongRunnable, 1000); + } + } + } + + } + }; + + /** + * 显示连送按钮 + */ + private boolean mShowLianBtn = false; + private boolean removeRunnable = false; + + private void showLianBtn() { + + + if (mShowLianBtn) { + removeRunnable = true; + } else { + if (mLianText != null) { + mLianText.setText("5s"); + } + mLianCountDownCount = 5; + lianSongHandler.postDelayed(lianSongRunnable, 1000); + mBtnSendGroup.setVisibility(View.VISIBLE); + giftSendLayout.setVisibility(View.INVISIBLE); + mShowLianBtn = true; + } + + + } + + /** + * 隐藏连送按钮 包裹 + */ + private void hideLianBtn() { + mBtnSendGroup.setVisibility(View.INVISIBLE); + giftSendLayout.setVisibility(View.VISIBLE); + lianSongHandler.removeCallbacks(lianSongRunnable); + mShowLianBtn = false; + } + + /** + * 关于点击礼物分类的通知 + */ + @Subscribe(threadMode = ThreadMode.MAIN) + public void onGiftTitleEvent(GiftTitleEvent event) { + liveWrap.setAlpha(0.5f); + liveWrap.setTypeface(Typeface.SANS_SERIF, Typeface.NORMAL); + liveGiftSend.setEnabled(false); + giftNumberLayout.setVisibility(View.INVISIBLE); + JSONObject obj2 = liveGiftList.getJSONObject(event.getmPosition()); + String giftJson = obj2.getString("giftlist"); + + FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); + transaction.replace(R.id.context_layout_gift, LiveGiftFragment.newInstance(giftJson, event.getGiftTitle(), mStream, mLiveUid, mWishGiftId)); + transaction.commit(); + isWrap = false; + if (giftSendLayout.getVisibility() == View.INVISIBLE) { + hideLianBtn(); + } + mCount = DEFAULT_COUNT; + giftNumber.setText(mCount); + giftDescription.setVisibility(View.GONE); + levelingLayout.setVisibility(View.VISIBLE); + } + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onGiftNumberEvent(GiftNumberEvent event) { + if (TextUtils.equals(event.getmCount(), "-1")) { + + } else { + mCount = event.getmCount(); + giftNumber.setText(mCount); + } + + } + + /** + * 选中的礼物数据 + * + * @param event + */ + private LiveGiftBean liveGiftModel = null; + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onLiveGiftItemEvent(LiveGiftItemEvent event) { + + liveGiftModel = event.getLiveGiftModel(); + if (liveGiftModel.getType() == 7) { + showBlindProgress(liveGiftModel.getBlind_box_type()); + } else { + blindBox.setVisibility(View.INVISIBLE); + mCount = DEFAULT_COUNT; + giftNumber.setText(mCount); + } + liveGiftSend.setEnabled(true); + giftNumberLayout.setVisibility(View.VISIBLE); + mCount = DEFAULT_COUNT; + giftNumber.setText(mCount); + if (giftSendLayout.getVisibility() == View.INVISIBLE) { + hideLianBtn(); + } + if (TextUtils.isEmpty(liveGiftModel.getGiftDescription())) { + giftDescription.setVisibility(View.GONE); + levelingLayout.setVisibility(View.VISIBLE); + } else { + giftDescription.setText(liveGiftModel.getGiftDescription()); + giftDescription.setVisibility(View.VISIBLE); + levelingLayout.setVisibility(View.GONE); + } + } + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onLiveGiftDialogEvent(LiveGiftDialogEvent event) { + dismiss(); + } + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onSendBlindGiftEvent(SendBlindGiftEvent event) { + if (!TextUtils.equals(String.valueOf(IMLoginManager.get(mContext).getUserInfo().getId()), event.getUid())) + return; + BlindBoxInfoModel model = null; + for (int i = 0; i < blindBoxInfoModels.size(); i++) { + if (TextUtils.equals(blindBoxInfoModels.get(i).getBlindBoxType(), event.getBoxType())) { + blindBoxInfoModels.get(i).setDressThresholdValue(event.getDressThresholdValue()); + blindBoxInfoModels.get(i).setThresholdValue(event.getThresholdValue()); + model = blindBoxInfoModels.get(i); + } + } + + long userID = IMLoginManager.get(mContext).getUserInfo().getId(); + String boxBlindName; + try { + if (!blindBoxOpen.isAnimating()) { + new SVGAParser(mContext).parse(new URL(model.getBlindBoxSwf()), new SVGAParser.ParseCompletion() { + @Override + public void onComplete(SVGAVideoEntity videoItem) { + blindBoxOpen.setVisibility(View.VISIBLE); + SVGADrawable drawable = new SVGADrawable(videoItem); + blindBoxOpen.setImageDrawable(drawable); + blindBoxOpen.setLoops(1); + blindBoxOpen.startAnimation(); + + } + + @Override + public void onError() { + } + }); + + blindBoxOpen.setCallback(new SVGACallback() { + @Override + public void onPause() { + } + + @Override + public void onFinished() { + blindBoxOpen.clear(); + blindBoxOpen.setVisibility(View.GONE); + Log.e("礼物盲盒", "结束播放"); + } + + @Override + public void onRepeat() { + } + + @Override + public void onStep(int i, double v) { + Log.e("礼物盲盒", "onStep: frame " + i + " percentage " + v); + } + }); + } + + } catch (MalformedURLException e) { + e.printStackTrace(); + } + //判断送礼用户更新送礼用户进度 + if (TextUtils.equals(String.valueOf(userID), event.getUid()) && blindBoxType == Integer.parseInt(event.getBoxType())) { + switch (blindBoxType) { + case 1: + boxBlindName = mContext.getString(R.string.mini_blind_box); + + progressBlind.setMax(Integer.parseInt(model.getThresholdValue())); + progressBlind.setProgress(Integer.parseInt(model.getDressThresholdValue())); + break; + case 2: + boxBlindName = mContext.getString(R.string.collection_blind_box); + + progressBlind1.setMax(Integer.parseInt(model.getThresholdValue())); + progressBlind1.setProgress(Integer.parseInt(model.getDressThresholdValue())); + + break; + default: + boxBlindName = mContext.getString(R.string.pd_blind_box); + progressBlind2.setMax(Integer.parseInt(model.getThresholdValue())); + progressBlind2.setProgress(Integer.parseInt(model.getDressThresholdValue())); + break; + } + //进度下方提示语 + if (TextUtils.equals(model.getThresholdValue(), model.getDressThresholdValue())) { + String individualDressing = mContext.getString(R.string.individual_dressing); + String msg = mContext.getString(R.string.have_already_win); + msg = String.format(msg, model.getThresholdDressName()); + int dressNameIndexOf = msg.indexOf(model.getThresholdDressName()); + int individualDressingIndexOf = msg.indexOf(String.valueOf(individualDressing)); + int dressNameSize = model.getThresholdDressName().length(); + int individualDressingSize = String.valueOf(individualDressing).length(); + SpannableStringBuilder builder = new SpannableStringBuilder(); + builder.append(msg); + builder.setSpan(new ForegroundColorSpan(Color.parseColor("#FFF682")), dressNameIndexOf, dressNameIndexOf + dressNameSize, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + builder.setSpan(new ForegroundColorSpan(Color.parseColor("#FFF682")), individualDressingIndexOf, individualDressingIndexOf + individualDressingSize, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + blindNumber.setText(builder); + textBlindProgress.setText(R.string.get_it_done); + } else { + int progress = Integer.parseInt(model.getThresholdValue()) - Integer.parseInt(model.getDressThresholdValue()); + String msg = mContext.getString(R.string.resend_win); + msg = String.format(msg, String.valueOf(progress), model.getThresholdDressName()); + int dressNameIndexOf = msg.indexOf(model.getThresholdDressName()); + int progressIndexOf = msg.indexOf(String.valueOf(progress)); + int dressNameSize = model.getThresholdDressName().length(); + int progressSize = String.valueOf(progress).length(); + SpannableStringBuilder builder = new SpannableStringBuilder(); + builder.append(msg); + builder.setSpan(new ForegroundColorSpan(Color.parseColor("#FFF682")), dressNameIndexOf, dressNameIndexOf + dressNameSize, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + builder.setSpan(new ForegroundColorSpan(Color.parseColor("#FFF682")), progressIndexOf, progressIndexOf + progressSize, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + blindNumber.setText(builder); + StringBuffer stringBuffer = new StringBuffer(); + stringBuffer.append(model.getDressThresholdValue()) + .append("/") + .append(model.getThresholdValue()); + textBlindProgress.setText(stringBuffer.toString()); + float maskingAlpha = (float) progress / Float.parseFloat(model.getThresholdValue()); + iconMasking.setAlpha(maskingAlpha); + } + if (stringBuilders.size() == 0) { + boxBlindHandler.postDelayed(boxBlindRunnable, 1500); + } + if (!TextUtils.isEmpty(event.getDressName()) && !TextUtils.isEmpty(event.getDressMsg())) { + SpannableStringBuilder stringBuilder = new SpannableStringBuilder(); + String boxBlindMsg = String.format(mContext.getString(R.string.random_availability2), event.getGiftname(), event.getDressName()); + stringBuilder.append(boxBlindMsg); + int dressNameIndex = boxBlindMsg.indexOf(event.getDressName()); + int dressNameSize = event.getDressName().length(); + int giftNameIndex = boxBlindMsg.indexOf(event.getGiftname()); + int giftNameSize = event.getGiftname().length(); + stringBuilder.setSpan(new ForegroundColorSpan(Color.parseColor(event.getDressColour())), + dressNameIndex, + dressNameIndex + dressNameSize, + Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + stringBuilder.setSpan(new ForegroundColorSpan(Color.parseColor(event.getGiftColour())), + giftNameIndex, + giftNameIndex + giftNameSize, + Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + stringBuilders.add(stringBuilder); + } else { + SpannableStringBuilder stringBuilder = new SpannableStringBuilder(); + String boxBlindMsg = String.format(mContext.getString(R.string.random_availability3), event.getGiftname()); + stringBuilder.append(boxBlindMsg); + int giftNameIndex = boxBlindMsg.indexOf(event.getGiftname()); + int giftNameSize = event.getGiftname().length(); + stringBuilder.setSpan(new ForegroundColorSpan(Color.parseColor(event.getGiftColour())), + giftNameIndex, + giftNameIndex + giftNameSize, + Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + stringBuilders.add(stringBuilder); + + } + + + } + } + + private List stringBuilders = new ArrayList<>(); + private Handler boxBlindHandler = new Handler(); + private Runnable boxBlindRunnable = new Runnable() { + @Override + public void run() { + if (stringBuilders != null && stringBuilders.size() > 0) { + SpannableStringBuilder stringBuilder = stringBuilders.get(0); + textBlindGiftName.setText(stringBuilder); + boxBlindHandler.postDelayed(boxBlindRunnable, 1500); + stringBuilders.remove(0); + } else { + textBlindGiftName.setText(String.format(mContext.getString(R.string.random_availability), blindGiftNamesBuffer.toString())); + } + } + }; + public List blindBoxInfoModels = new ArrayList<>(); + + private void getBlindBoxInfo() { + LiveNetManager.get(mContext) + .getBlindBoxInfo(new com.yunbao.common.http.base.HttpCallback>() { + @Override + public void onSuccess(List data) { + blindBoxInfoModels = data; + } + + @Override + public void onError(String error) { + ToastUtil.show(error); + } + }); + } + + /** + * 展示当前盲盒礼物进度 + * + * @param blindBoxType + */ + private StringBuffer blindGiftNamesBuffer = null; + private int blindBoxType; + + private void showBlindProgress(int blindBoxType) { + this.blindBoxType = blindBoxType; + blindGiftNamesBuffer = new StringBuffer(); + BlindBoxInfoModel model = null; + for (BlindBoxInfoModel boxInfoModel : blindBoxInfoModels) { + if (TextUtils.equals(String.valueOf(blindBoxType), boxInfoModel.getBlindBoxType())) { + model = boxInfoModel; + } + } + if (model == null) return; + blindBoxOpen.clear(); + blindBoxOpen.setVisibility(View.GONE); + try { + blindSvga.clear(); + new SVGAParser(mContext).parse(new URL(model.getThresholdEffectSrc()), new SVGAParser.ParseCompletion() { + @Override + public void onComplete(SVGAVideoEntity videoItem) { + SVGADrawable drawable = new SVGADrawable(videoItem); + blindSvga.setImageDrawable(drawable); + SVGAViewUtils.playEndClear(blindSvga, false); + + } + + @Override + public void onError() { + Log.e("errqs", "errl"); + } + }); + } catch (MalformedURLException e) { + e.printStackTrace(); + } + blindBox.setVisibility(View.VISIBLE); + String boxBlindName = ""; + switch (blindBoxType) { + case 1: + boxBlindName = mContext.getString(R.string.mini_blind_box); + progressBlind.setVisibility(View.VISIBLE); + progressBlind1.setVisibility(View.GONE); + progressBlind2.setVisibility(View.GONE); + frameBlindTop.setBackgroundResource(com.yunbao.live.R.mipmap.bg_kirin); + iconMasking.setBackgroundResource(com.yunbao.live.R.mipmap.icon_masking_kirin); + progressBlind.setMax(Integer.parseInt(model.getThresholdValue())); + progressBlind.setProgress(Integer.parseInt(model.getDressThresholdValue())); + textBlindProgress.setTextColor(Color.parseColor("#047771")); + break; + case 2: + boxBlindName = mContext.getString(com.yunbao.live.R.string.collection_blind_box); + progressBlind.setVisibility(View.GONE); + progressBlind1.setVisibility(View.VISIBLE); + progressBlind2.setVisibility(View.GONE); + frameBlindTop.setBackgroundResource(com.yunbao.live.R.mipmap.bg_phoenix); + iconMasking.setBackgroundResource(com.yunbao.live.R.mipmap.icon_masking_phoenix); + progressBlind1.setMax(Integer.parseInt(model.getThresholdValue())); + progressBlind1.setProgress(Integer.parseInt(model.getDressThresholdValue())); + textBlindProgress.setTextColor(Color.parseColor("#6D2E0F")); + + break; + default: + boxBlindName = mContext.getString(com.yunbao.live.R.string.pd_blind_box); + progressBlind.setVisibility(View.GONE); + progressBlind1.setVisibility(View.GONE); + progressBlind2.setVisibility(View.VISIBLE); + frameBlindTop.setBackgroundResource(com.yunbao.live.R.mipmap.bg_dragon); + iconMasking.setBackgroundResource(com.yunbao.live.R.mipmap.icon_masking_dragon); + progressBlind2.setMax(Integer.parseInt(model.getThresholdValue())); + progressBlind2.setProgress(Integer.parseInt(model.getDressThresholdValue())); + textBlindProgress.setTextColor(Color.parseColor("#905E01")); + break; + } + + //进度下方提示语 + if (TextUtils.equals(model.getThresholdValue(), model.getDressThresholdValue())) { + String individualDressing = mContext.getString(com.yunbao.live.R.string.individual_dressing); + String msg = mContext.getString(com.yunbao.live.R.string.have_already_win); + msg = String.format(msg, model.getThresholdDressName()); + int dressNameIndexOf = msg.indexOf(model.getThresholdDressName()); + int individualDressingIndexOf = msg.indexOf(String.valueOf(individualDressing)); + int dressNameSize = model.getThresholdDressName().length(); + int individualDressingSize = String.valueOf(individualDressing).length(); + SpannableStringBuilder builder = new SpannableStringBuilder(); + builder.append(msg); + builder.setSpan(new ForegroundColorSpan(Color.parseColor("#FFF682")), dressNameIndexOf, dressNameIndexOf + dressNameSize, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + builder.setSpan(new ForegroundColorSpan(Color.parseColor("#FFF682")), individualDressingIndexOf, individualDressingIndexOf + individualDressingSize, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + blindNumber.setText(builder); + iconMasking.setAlpha(0.f); + } else { + int progress = Integer.parseInt(model.getThresholdValue()) - Integer.parseInt(model.getDressThresholdValue()); + String msg = mContext.getString(com.yunbao.live.R.string.resend_win); + msg = String.format(msg, String.valueOf(progress), model.getThresholdDressName()); + int dressNameIndexOf = msg.indexOf(model.getThresholdDressName()); + int progressIndexOf = msg.indexOf(String.valueOf(progress)); + int dressNameSize = model.getThresholdDressName().length(); + int progressSize = String.valueOf(progress).length(); + SpannableStringBuilder builder = new SpannableStringBuilder(); + builder.append(msg); + builder.setSpan(new ForegroundColorSpan(Color.parseColor("#FFF682")), dressNameIndexOf, dressNameIndexOf + dressNameSize, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + builder.setSpan(new ForegroundColorSpan(Color.parseColor("#FFF682")), progressIndexOf, progressIndexOf + progressSize, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + blindNumber.setText(builder); + StringBuffer stringBuffer = new StringBuffer(); + stringBuffer.append(model.getDressThresholdValue()) + .append("/") + .append(model.getThresholdValue()); + textBlindProgress.setText(stringBuffer.toString()); + float maskingAlpha = (float) progress / Float.parseFloat(model.getThresholdValue()); + iconMasking.setAlpha(maskingAlpha); + } + //盲盒礼物文字跑马灯 + for (int i = 0; i < model.getItemName().size(); i++) { + blindGiftNamesBuffer + .append(model.getItemName().get(i)); + + if (i != model.getItemName().size() - 1) { + blindGiftNamesBuffer.append(","); + } + } + textBlindGiftName.setText(String.format(mContext.getString(com.yunbao.live.R.string.random_availability), blindGiftNamesBuffer.toString())); + + } + + // 返回自定义弹窗的布局 + @Override + protected int getLayoutId() { + return R.layout.dialog_live_gift_popup; + } + + @Override + protected int getDialogStyle() { + return R.style.dialog2; + } + + @Override + protected boolean canCancel() { + return true; + } + + @Override + protected void setWindowAttributes(Window window) { + window.setWindowAnimations(R.style.bottomToTopAnim); + window.setDimAmount(0f);//去掉遮罩层(全透明) + WindowManager.LayoutParams params = window.getAttributes(); + params.width = WindowManager.LayoutParams.MATCH_PARENT; + params.height = WindowManager.LayoutParams.WRAP_CONTENT; + params.gravity = Gravity.BOTTOM; + window.setAttributes(params); + } + + private class SendGiftCallback extends HttpCallback { + + private LiveGiftBean mGiftBean; + + public SendGiftCallback(LiveGiftBean giftBean) { + mGiftBean = giftBean; + } + + @Override + public void onSuccess(int code, String msg, String[] info) { + if (code == 0) { + if (mGiftBean.getSwf().contains("svga")) { + dismiss(); + } + if (info.length > 0) { + JSONObject obj = JSON.parseObject(info[0]); + String coin = obj.getString("coin"); + String goldCoin = obj.getString("gold"); + UserBean u = CommonAppConfig.getInstance().getUserBean(); + if (u != null) { + u.setLevel(obj.getIntValue("level")); + //送礼物后更新粉丝徽章等级 + u.setMedalLevel(obj.getIntValue("medal_level")); + u.setMedalName(obj.getString("medal_name")); + u.setCoin(coin); + } + if (diamondText != null) { + diamondText.setText(coin); + } + if (goldText != null) { + goldText.setText(goldCoin); + } + if (mGiftBean.getType() == LiveGiftBean2.TYPE_NORMAL && !mGiftBean.getSwf().contains("svga")) { + showLianBtn(); + } + if (mGiftBean.getType() == 7) { + showLianBtn(); + } +// //刷新包裹列表wrap_gift_num -1:表示数量没有变化 +// mObjGiftSendback = obj; + isGetNewWrap = true; + if (isWrap) { + Bus.get().post(new LiveParcelItemRefreshEvent().setLiveGiftModel(liveGiftModel)); + } + } + } else if (code == 1007 && mGiftBean.getType() != 0) { + hideLianBtn(); + dismiss(); + LiveAudienceEvent.LiveAudienceType type = null; + String confirmString = mContext.getString(com.yunbao.live.R.string.dialog_fount_submit); + String tips = msg; + switch (mGiftBean.getType()) { + case 1: + type = LiveAudienceEvent.LiveAudienceType.NOBLE; + tips = mContext.getString(com.yunbao.live.R.string.dialog_live_gift_noble); + confirmString = mContext.getString(com.yunbao.live.R.string.dialog_live_gift_open_noble); + break; + case 2: + type = LiveAudienceEvent.LiveAudienceType.GUARD; + tips = mContext.getString(com.yunbao.live.R.string.dialog_live_gift_guard); + confirmString = mContext.getString(com.yunbao.live.R.string.dialog_live_gift_open_guard); + break; + case 3: + type = LiveAudienceEvent.LiveAudienceType.FAN_CLUB; + tips = mContext.getString(com.yunbao.live.R.string.dialog_live_gift_fans); + confirmString = mContext.getString(com.yunbao.live.R.string.dialog_live_gift_open_fans); + } + LiveAudienceEvent.LiveAudienceType finalType = type; + new DialogUitl.Builder(mContext) + .setView(com.yunbao.live.R.layout.dialog_live_unfollow) + .setConfirmString(confirmString) + .setContent(tips) + .setClickCallback((dialog, content) -> { + LiveAudienceEvent event = new LiveAudienceEvent() + .setType(finalType); + if (finalType == LiveAudienceEvent.LiveAudienceType.GUARD) { + event = event.setObject(""); + } + Bus.get().post(event); + }).build().show(); + + AppManager.runDebugCode(() -> { + Log.i("gifBean", mGiftBean.toString()); + }); + } else if (code == 1001) { + hideLianBtn(); + new DialogUitl.Builder(mContext) + .setView(com.yunbao.live.R.layout.dialog_live_unfollow) + .setConfirmString(getString(com.yunbao.live.R.string.charge)) + .setContent(getString(com.yunbao.live.R.string.insufficient_balance)) + .setClickCallback(new DialogUitl.SimpleCallback() { + @Override + public void onConfirmClick(Dialog dialog, String content) { + forwardMyCoin(0); + } + }).build().show(); + } else { + hideLianBtn(); + ToastUtil.show(msg); + } + } + } + +} diff --git a/live/src/main/java/com/yunbao/live/event/GiftTitleEvent.java b/live/src/main/java/com/yunbao/live/event/GiftTitleEvent.java new file mode 100644 index 000000000..2330d2e8e --- /dev/null +++ b/live/src/main/java/com/yunbao/live/event/GiftTitleEvent.java @@ -0,0 +1,26 @@ +package com.yunbao.live.event; + +import com.yunbao.common.bean.BaseModel; + +public class GiftTitleEvent extends BaseModel { + private String giftTitle; + private int mPosition; + + public int getmPosition() { + return mPosition; + } + + public GiftTitleEvent setmPosition(int mPosition) { + this.mPosition = mPosition; + return this; + } + + public String getGiftTitle() { + return giftTitle; + } + + public GiftTitleEvent setGiftTitle(String giftTitle) { + this.giftTitle = giftTitle; + return this; + } +} 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 712463b10..7c62ecdf4 100644 --- a/live/src/main/java/com/yunbao/live/event/LiveAudienceEvent.java +++ b/live/src/main/java/com/yunbao/live/event/LiveAudienceEvent.java @@ -14,6 +14,7 @@ import com.yunbao.common.bean.WishModel; import com.yunbao.common.bean.XydCompleteModel; import com.yunbao.common.event.AllServerNotifyEvent; import com.yunbao.common.event.CustomFullServiceNotifyEvent; +import com.yunbao.live.bean.LiveGuardInfo; import com.yunbao.live.bean.LivePKUserListBean; import com.yunbao.live.bean.LiveReceiveGiftBean; import com.yunbao.live.bean.OpenParametersModel; @@ -49,6 +50,75 @@ public class LiveAudienceEvent extends BaseModel { private RedPacketModel redPacketModel; private RedPacketInfoModel redPacketInfoModel; private OlineUserlistModel olineUserlistModel; + private LiveGuardInfo liveGuardInfo; + private String mWishGiftId; + private boolean isContactGift; + private boolean isPk; + public String mStream; + public String mLiveUid,giftId; + + public String getGiftId() { + return giftId; + } + + public LiveAudienceEvent setGiftId(String giftId) { + this.giftId = giftId; + return this; + } + + public String getmStream() { + return mStream; + } + + public LiveAudienceEvent setmStream(String mStream) { + this.mStream = mStream; + return this; + } + + public String getmLiveUid() { + return mLiveUid; + } + + public LiveAudienceEvent setmLiveUid(String mLiveUid) { + this.mLiveUid = mLiveUid; + return this; + } + + public boolean isPk() { + return isPk; + } + + public LiveAudienceEvent setPk(boolean pk) { + isPk = pk; + return this; + } + + public boolean getIsContactGift() { + return isContactGift; + } + + public LiveAudienceEvent setIsContactGift(boolean isContactGift) { + this.isContactGift = isContactGift; + return this; + } + + public String getmWishGiftId() { + return mWishGiftId; + } + + public LiveAudienceEvent setmWishGiftId(String mWishGiftId) { + this.mWishGiftId = mWishGiftId; + return this; + } + + public LiveGuardInfo getLiveGuardInfo() { + return liveGuardInfo; + } + + public LiveAudienceEvent setLiveGuardInfo(LiveGuardInfo liveGuardInfo) { + this.liveGuardInfo = liveGuardInfo; + return this; + } public OlineUserlistModel getOlineUserlistModel() { return olineUserlistModel; diff --git a/live/src/main/java/com/yunbao/live/event/LiveGiftItemEvent.java b/live/src/main/java/com/yunbao/live/event/LiveGiftItemEvent.java new file mode 100644 index 000000000..92aeb97b6 --- /dev/null +++ b/live/src/main/java/com/yunbao/live/event/LiveGiftItemEvent.java @@ -0,0 +1,20 @@ +package com.yunbao.live.event; + +import com.yunbao.common.bean.BaseModel; +import com.yunbao.common.bean.LiveGiftBean; + +/** + * 选中的礼物 + */ +public class LiveGiftItemEvent extends BaseModel { + private LiveGiftBean liveGiftModel; + + public LiveGiftBean getLiveGiftModel() { + return liveGiftModel; + } + + public LiveGiftItemEvent setLiveGiftModel(LiveGiftBean liveGiftModel) { + this.liveGiftModel = liveGiftModel; + return this; + } +} diff --git a/live/src/main/java/com/yunbao/live/event/LiveParcelItemRefreshEvent.java b/live/src/main/java/com/yunbao/live/event/LiveParcelItemRefreshEvent.java new file mode 100644 index 000000000..db6797e23 --- /dev/null +++ b/live/src/main/java/com/yunbao/live/event/LiveParcelItemRefreshEvent.java @@ -0,0 +1,17 @@ +package com.yunbao.live.event; + +import com.yunbao.common.bean.BaseModel; +import com.yunbao.common.bean.LiveGiftBean; + +public class LiveParcelItemRefreshEvent extends BaseModel { + private LiveGiftBean liveGiftModel; + + public LiveGiftBean getLiveGiftModel() { + return liveGiftModel; + } + + public LiveParcelItemRefreshEvent setLiveGiftModel(LiveGiftBean liveGiftModel) { + this.liveGiftModel = liveGiftModel; + return this; + } +} diff --git a/live/src/main/java/com/yunbao/live/presenter/LiveGiftAnimPresenter.java b/live/src/main/java/com/yunbao/live/presenter/LiveGiftAnimPresenter.java index 214e22522..9f1937601 100644 --- a/live/src/main/java/com/yunbao/live/presenter/LiveGiftAnimPresenter.java +++ b/live/src/main/java/com/yunbao/live/presenter/LiveGiftAnimPresenter.java @@ -6,7 +6,6 @@ import android.animation.ObjectAnimator; import android.animation.ValueAnimator; import android.content.Context; import android.graphics.drawable.Drawable; -import android.os.Bundle; import android.os.CountDownTimer; import android.os.Handler; import android.os.Message; @@ -46,6 +45,7 @@ import com.yunbao.common.http.CommonHttpUtil; import com.yunbao.common.http.HttpCallback; import com.yunbao.common.interfaces.CommonCallback; import com.yunbao.common.manager.IMLoginManager; +import com.yunbao.common.utils.Bus; import com.yunbao.common.utils.DpUtil; import com.yunbao.common.utils.GiftCacheUtil; import com.yunbao.common.utils.HtmlTagHandler; @@ -53,12 +53,11 @@ import com.yunbao.common.utils.L; import com.yunbao.common.utils.MicStatusManager; import com.yunbao.common.utils.ToastUtil; import com.yunbao.live.R; -import com.yunbao.live.activity.LiveAudienceActivity; import com.yunbao.live.bean.LiveGiftPrizePoolWinBean; import com.yunbao.live.bean.LiveLuckGiftWinBean; import com.yunbao.live.bean.LiveReceiveGiftBean; import com.yunbao.live.custom.FrameImageView; -import com.yunbao.live.dialog.LiveGiftDialogFragment; +import com.yunbao.live.event.LiveAudienceEvent; import com.yunbao.live.event.LiveRoomChangeEvent; import com.yunbao.live.http.LiveHttpUtil; import com.yunbao.live.utils.AllMsgTextRender; @@ -339,14 +338,12 @@ public class LiveGiftAnimPresenter { new Handler().postDelayed(new Runnable() { @Override public void run() { - LiveGiftDialogFragment fragment = new LiveGiftDialogFragment(); - Bundle bundle = new Bundle(); - bundle.putString(Constants.LIVE_UID, mLiveUid); - bundle.putString(Constants.LIVE_STREAM, mStream); - bundle.putString(Constants.LIVE_WISH_GIFTID, blindBox.getEvent().getBlindBoxId() + ""); - bundle.putBoolean("isContactGift", true); - fragment.setArguments(bundle); - fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveGiftDialogFragment"); + Bus.get().post(new LiveAudienceEvent() + .setType(LiveAudienceEvent.LiveAudienceType.GIFT_POPUP) + .setmLiveUid(mLiveUid) + .setmStream(mStream) + .setmWishGiftId(blindBox.getEvent().getBlindBoxId() + "") + .setIsContactGift(true)); } }, 1000); } else { diff --git a/live/src/main/java/com/yunbao/live/views/FrameGiftViewHolder.java b/live/src/main/java/com/yunbao/live/views/FrameGiftViewHolder.java new file mode 100644 index 000000000..709767b88 --- /dev/null +++ b/live/src/main/java/com/yunbao/live/views/FrameGiftViewHolder.java @@ -0,0 +1,158 @@ +package com.yunbao.live.views; + +import android.content.Context; +import android.graphics.Color; +import android.util.TypedValue; +import android.view.View; +import android.view.animation.AccelerateDecelerateInterpolator; +import android.view.animation.Animation; +import android.view.animation.AnimationUtils; +import android.view.animation.LinearInterpolator; +import android.view.animation.ScaleAnimation; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.lxj.xpopup.XPopup; +import com.yunbao.common.bean.LiveGiftBean; +import com.yunbao.common.glide.ImgLoader; +import com.yunbao.common.interfaces.CommonCallback; +import com.yunbao.common.utils.Bus; +import com.yunbao.common.utils.GiftCacheUtil; +import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.views.weight.ViewClicksAntiShake; +import com.yunbao.live.R; +import com.yunbao.live.dialog.SendRendPacketPopup; +import com.yunbao.live.event.LiveGiftDialogEvent; + +import java.io.File; + +public class FrameGiftViewHolder extends RecyclerView.ViewHolder { + private ImageView giftIcon, mPayIco, cornerMark; + private Context mContext; + private TextView giftName, mPrice; + private RelativeLayout giftLayout; + private ScaleAnimation mAnimation; + private LinearLayout mLoadingLayout; + private ImageView mLoading; + + public FrameGiftViewHolder(@NonNull View itemView) { + super(itemView); + mContext = itemView.getContext(); + giftIcon = itemView.findViewById(R.id.gift_icon); + giftName = itemView.findViewById(R.id.gift_name); + mPayIco = itemView.findViewById(R.id.pay_ico); + mPrice = itemView.findViewById(R.id.price); + cornerMark = itemView.findViewById(R.id.corner_mark); + giftLayout = itemView.findViewById(R.id.gift_layout); + mLoadingLayout = itemView.findViewById(R.id.gift_loading_layout); + mLoading = itemView.findViewById(R.id.gift_loading); + + mAnimation = new ScaleAnimation(0.9f, 1.1f, 0.9f, 1.1f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); + mAnimation.setInterpolator(new AccelerateDecelerateInterpolator()); + mAnimation.setDuration(400); + mAnimation.setRepeatMode(Animation.REVERSE); + mAnimation.setRepeatCount(-1); + } + + public void showData(int contextLayoutGiftHeight, LiveGiftBean model) { + //设置高度 + itemView.post(new Runnable() { + @Override + public void run() { + GridLayoutManager.LayoutParams linearParams = (GridLayoutManager.LayoutParams) itemView.getLayoutParams(); + linearParams.height = contextLayoutGiftHeight / 2; + itemView.setLayoutParams(linearParams); + } + }); + giftLayout.setSelected(model.isChecked()); + if (model.isChecked()) { + giftIcon.startAnimation(mAnimation); + } + ImgLoader.display(mContext, model.getIcon(), giftIcon); + ImgLoader.display(mContext, model.getCornerMark(), cornerMark); + giftName.setText(model.getName()); + //特殊礼物红包 + if (model.getType() == 9999999) { + mPayIco.setVisibility(View.GONE); + mPrice.setText(mContext.getString(R.string.build_up_popularity)); + mPrice.setTextColor(Color.parseColor("#db8c4a")); + mPrice.setTextSize(TypedValue.COMPLEX_UNIT_SP, 8); + + } else { + mPrice.setTextSize(TypedValue.COMPLEX_UNIT_SP, 11); + mPrice.setTextColor(Color.parseColor("#c8c8c8")); + mPayIco.setVisibility(View.VISIBLE); + //普通礼物 + if (model.getSendType() != null && model.getSendType().equals("1")) { + mPayIco.setImageResource(R.mipmap.gold_coin); + } else { + mPayIco.setImageResource(R.mipmap.diamond); + } + mPrice.setText(model.getPrice()); + } + if (model.getSwf() != null && model.getSwf().isEmpty()) { + mLoadingLayout.setVisibility(View.GONE); + } else { + mLoadingLayout.setVisibility(GiftCacheUtil.checkGiftIsDownload(model.getId()) ? View.GONE : View.VISIBLE); + } + + + } + + public void giftSelect(LiveGiftBean model, int position, String mStream, String mLiveUid, FrameGiftClickListener frameGiftClickListener) { + ViewClicksAntiShake.clicksAntiShake(mLoadingLayout, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + mLoading.setImageResource(R.mipmap.icon_loading_gift); + Animation animation = AnimationUtils.loadAnimation(mContext, R.anim.anim_loading_gift); + animation.setRepeatMode(Animation.RESTART); + animation.setRepeatCount(Animation.INFINITE); + animation.setInterpolator(new LinearInterpolator()); + mLoading.startAnimation(animation); + GiftCacheUtil.getInstance().pause(); + GiftCacheUtil.getInstance().downloadGiftForId(mContext, model, new CommonCallback() { + @Override + public void callback(File bean) { + if (bean == null) { + ToastUtil.show(mContext.getString(R.string.load_failure_2)); + mLoading.setImageResource(R.mipmap.icon_download_gift); + animation.setRepeatCount(0); + animation.setDuration(0); + animation.cancel(); + mLoading.setAnimation(animation); + } else { + mLoadingLayout.setVisibility(View.GONE); + } + GiftCacheUtil.getInstance().restart(); + } + }); + } + }); + ViewClicksAntiShake.clicksAntiShake(giftLayout, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + if (model.getType() == 9999999) { + Bus.get().post(new LiveGiftDialogEvent()); + new XPopup.Builder(mContext) + .asCustom(new SendRendPacketPopup(mContext, mLiveUid)) + .show(); + } else { + if (frameGiftClickListener != null) { + frameGiftClickListener.onCallBack(position, model); + } + } + + } + }); + } + + public interface FrameGiftClickListener { + void onCallBack(int position, LiveGiftBean model); + } +} diff --git a/live/src/main/java/com/yunbao/live/views/GiftTitleViewHolder.java b/live/src/main/java/com/yunbao/live/views/GiftTitleViewHolder.java new file mode 100644 index 000000000..d0732f450 --- /dev/null +++ b/live/src/main/java/com/yunbao/live/views/GiftTitleViewHolder.java @@ -0,0 +1,50 @@ +package com.yunbao.live.views; + +import android.graphics.Typeface; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.custom.DrawableTextView; +import com.yunbao.common.utils.Bus; +import com.yunbao.common.views.weight.ViewClicksAntiShake; +import com.yunbao.live.R; +import com.yunbao.live.bean.GiftTopBean; +import com.yunbao.live.event.GiftTitleEvent; + +public class GiftTitleViewHolder extends RecyclerView.ViewHolder { + private DrawableTextView name; + + public GiftTitleViewHolder(@NonNull View itemView) { + super(itemView); + name = itemView.findViewById(R.id.name); + } + + public void showData(GiftTopBean giftTopBean, int mPosition, ClicksCallBack callBack) { + name.setText(giftTopBean.getName()); + ViewClicksAntiShake.clicksAntiShake(itemView, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + if (callBack != null) { + callBack.onViewClicks(mPosition); + Bus.get().post(new GiftTitleEvent().setmPosition(mPosition).setGiftTitle(giftTopBean.getName())); + } + } + }); + } + + public void selectData(boolean isSelect) { + if (isSelect) { + name.setAlpha(1.0f); + name.setTypeface(Typeface.SANS_SERIF, Typeface.BOLD); + } else { + name.setAlpha(0.5f); + name.setTypeface(Typeface.SANS_SERIF, Typeface.NORMAL); + } + } + + public interface ClicksCallBack { + void onViewClicks(int mPosition); + } +} diff --git a/live/src/main/java/com/yunbao/live/views/LiveAudienceViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveAudienceViewHolder.java index 8d8267731..f613222ae 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveAudienceViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveAudienceViewHolder.java @@ -10,7 +10,6 @@ import android.graphics.Color; import android.os.Bundle; import android.os.Handler; import android.os.Vibrator; -import android.text.TextUtils; import android.util.DisplayMetrics; import android.util.Log; import android.view.LayoutInflater; @@ -20,16 +19,12 @@ import android.view.ViewGroup; import android.view.WindowManager; import android.widget.ImageView; import android.widget.LinearLayout; -import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.ViewFlipper; import androidx.fragment.app.FragmentActivity; -import com.opensource.svgaplayer.SVGADrawable; -import com.opensource.svgaplayer.SVGAImageView; -import com.opensource.svgaplayer.SVGAParser; -import com.opensource.svgaplayer.SVGAVideoEntity; +import com.lxj.xpopup.XPopup; import com.yunbao.common.CommonAppConfig; import com.yunbao.common.Constants; import com.yunbao.common.bean.NewPeopleInfo; @@ -39,11 +34,10 @@ import com.yunbao.common.http.API; import com.yunbao.common.http.HttpCallback; import com.yunbao.common.http.HttpClient; import com.yunbao.common.utils.Bus; -import com.yunbao.common.utils.DpUtil; import com.yunbao.common.utils.ProcessResultUtil; -import com.yunbao.common.utils.SVGAViewUtils; import com.yunbao.common.utils.SpUtil; import com.yunbao.common.utils.ToastUtil; +import com.yunbao.live.dialog.LiveGiftPopup; import com.yunbao.common.views.weight.ViewClicksAntiShake; import com.yunbao.live.R; import com.yunbao.live.activity.LiveActivity; @@ -200,6 +194,7 @@ public class LiveAudienceViewHolder extends AbsLiveViewHolder { ViewClicksAntiShake.clicksAntiShake(giftImage, new ViewClicksAntiShake.ViewClicksCallBack() { @Override public void onViewClicks() { + Bus.get().post(new LiveAudienceEvent() .setType(LiveAudienceEvent.LiveAudienceType.GIFT_POPUP)); } @@ -382,6 +377,7 @@ public class LiveAudienceViewHolder extends AbsLiveViewHolder { } else if (i == R.id.btn_gift) { openGiftWindow(); + //全屏 } else if (i == R.id.btn_more) { ((LiveActivity) mContext).openMoreWindow(); diff --git a/live/src/main/java/com/yunbao/live/views/LiveGiftFragment.java b/live/src/main/java/com/yunbao/live/views/LiveGiftFragment.java new file mode 100644 index 000000000..6c6103bee --- /dev/null +++ b/live/src/main/java/com/yunbao/live/views/LiveGiftFragment.java @@ -0,0 +1,149 @@ +package com.yunbao.live.views; + +import android.os.Bundle; +import android.text.TextUtils; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewTreeObserver; +import android.widget.RadioButton; +import android.widget.RadioGroup; + +import androidx.fragment.app.Fragment; +import androidx.viewpager.widget.ViewPager; + +import com.alibaba.fastjson.JSON; +import com.yunbao.common.bean.LiveGiftBean; +import com.yunbao.common.fragment.BaseFragment; +import com.yunbao.live.R; +import com.yunbao.live.adapter.LiveGiftFragmentPagerAdapter; + +import java.util.ArrayList; +import java.util.List; + +/** + * 礼物列表 + */ +public class LiveGiftFragment extends BaseFragment { + private ViewPager fragmentViewpager; + private int pageCount; + private static final int GIFT_COUNT = 8;//每页8个礼物 + private RadioGroup mRadioGroup; + private LiveGiftFragmentPagerAdapter giftFragmentPagerAdapter; + private ArrayList ViewList = new ArrayList<>(); //页卡视图集合 + private List giftJson = new ArrayList<>(); + private int contextLayoutGiftHeight = 0; + private String mStream, mLiveUid, wishGiftId, type; + private int currentPage = 0; + + @Override + public View createView(LayoutInflater layoutInflater, ViewGroup viewGroup) { + return layoutInflater.inflate(R.layout.fragment_live_gift, viewGroup, false); + } + + @Override + protected void initVariables(Bundle bundle) { + giftJson = JSON.parseArray(bundle.getString("giftJson"), LiveGiftBean.class); + contextLayoutGiftHeight = bundle.getInt("contextLayoutGiftHeight"); + mStream = bundle.getString("mStream"); + wishGiftId = bundle.getString("wishGiftId"); + mLiveUid = bundle.getString("mLiveUid"); + type = bundle.getString("type"); + pageCount = giftJson.size() / GIFT_COUNT; + if (giftJson.size() % GIFT_COUNT > 0) { + pageCount++; + } + + + } + + @Override + protected void initViews(Bundle savedInstanceState, View contentView) { + + fragmentViewpager = contentView.findViewById(R.id.context_layout); + mRadioGroup = contentView.findViewById(R.id.radio_group); + + + fragmentViewpager.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { + @Override + public void onGlobalLayout() { + contextLayoutGiftHeight = fragmentViewpager.getHeight(); + Log.e("giftJson", "height=" + contextLayoutGiftHeight); + int fromIndex = 0; + int size = giftJson.size(); + for (int i = 0; i < pageCount; i++) { + int endIndex = fromIndex + GIFT_COUNT; + if (endIndex > size) { + endIndex = size; + } + List liveGiftBeans = new ArrayList<>(); + for (int j = fromIndex; j < endIndex; j++) { + LiveGiftBean bean = giftJson.get(j); + bean.setPage(i); + liveGiftBeans.add(bean); + if (!TextUtils.isEmpty(wishGiftId) && TextUtils.equals(bean.getId() + "", wishGiftId)) { + currentPage = i; + Log.e("LiveGiftItemFragment", type); + } + } + fromIndex = endIndex; + ViewList.add(LiveGiftItemFragment.newInstance(JSON.toJSONString(liveGiftBeans), contextLayoutGiftHeight, mStream, mLiveUid, wishGiftId)); + } + giftFragmentPagerAdapter = new LiveGiftFragmentPagerAdapter(getChildFragmentManager(), getActivity(), ViewList); + fragmentViewpager.setAdapter(giftFragmentPagerAdapter); + + LayoutInflater inflater = LayoutInflater.from(getContext()); + for (int i = 0, size2 = ViewList.size(); i < size2; i++) { + RadioButton radioButton = (RadioButton) inflater.inflate(R.layout.view_gift_indicator, mRadioGroup, false); + radioButton.setId(i + 10000); + if (i == 0) { + radioButton.setChecked(true); + } + mRadioGroup.addView(radioButton); + + } + fragmentViewpager.setCurrentItem(currentPage); + //移除监听 + fragmentViewpager.getViewTreeObserver().removeOnGlobalLayoutListener(this); + } + }); + + fragmentViewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + + } + + @Override + public void onPageSelected(int position) { + if (mRadioGroup != null && mRadioGroup.getChildAt(position) != null) { + ((RadioButton) mRadioGroup.getChildAt(position)).setChecked(true); + } + } + + @Override + public void onPageScrollStateChanged(int state) { + + } + }); + } + + @Override + protected void loadData() { + + } + + public static LiveGiftFragment newInstance(String giftJson, String type, + String mStream, String mLiveUid, String wishGiftId) { + LiveGiftFragment liveGiftFragment = new LiveGiftFragment(); + Bundle bundle = new Bundle(); + bundle.putString("giftJson", giftJson); + bundle.putString("type", type); + bundle.putString("mStream", mStream); + bundle.putString("mLiveUid", mLiveUid); + bundle.putString("wishGiftId", wishGiftId); + liveGiftFragment.setArguments(bundle); + return liveGiftFragment; + } +} diff --git a/live/src/main/java/com/yunbao/live/views/LiveGiftItemFragment.java b/live/src/main/java/com/yunbao/live/views/LiveGiftItemFragment.java new file mode 100644 index 000000000..f2de5474c --- /dev/null +++ b/live/src/main/java/com/yunbao/live/views/LiveGiftItemFragment.java @@ -0,0 +1,82 @@ +package com.yunbao.live.views; + +import android.os.Bundle; +import android.text.TextUtils; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.alibaba.fastjson.JSON; +import com.yunbao.common.bean.LiveGiftBean; +import com.yunbao.common.fragment.BaseFragment; +import com.yunbao.common.utils.Bus; +import com.yunbao.live.R; +import com.yunbao.live.adapter.FrameGiftAdapter; +import com.yunbao.live.event.LiveGiftItemEvent; + +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; + +import java.util.ArrayList; +import java.util.List; + +public class LiveGiftItemFragment extends BaseFragment { + private List giftJson = new ArrayList<>(); + private RecyclerView frameGiftList; + private int contextLayoutGiftHeight = 0; + private FrameGiftAdapter frameGiftAdapter; + private String mStream, mLiveUid, wishGiftId; + + @Override + public View createView(LayoutInflater layoutInflater, ViewGroup viewGroup) { + return layoutInflater.inflate(R.layout.fragment_live_gift_item, viewGroup, false); + } + + @Override + protected void initVariables(Bundle bundle) { + giftJson = JSON.parseArray(bundle.getString("giftJson"), LiveGiftBean.class); + contextLayoutGiftHeight = bundle.getInt("contextLayoutGiftHeight"); + mStream = bundle.getString("mStream"); + mLiveUid = bundle.getString("mLiveUid"); + wishGiftId = bundle.getString("wishGiftId"); + Log.e("giftJson", giftJson.toString()); + } + + @Override + protected void initViews(Bundle savedInstanceState, View contentView) { + + + frameGiftList = contentView.findViewById(R.id.frame_gift_list); + frameGiftList.setHasFixedSize(true); + frameGiftList.setLayoutManager(new GridLayoutManager(getActivity(), 4, GridLayoutManager.VERTICAL, false)); + frameGiftAdapter = new FrameGiftAdapter(contextLayoutGiftHeight, giftJson, mStream, mLiveUid, wishGiftId); + frameGiftList.setAdapter(frameGiftAdapter); + } + + @Override + protected void loadData() { + + } + + public static LiveGiftItemFragment newInstance(String giftJson, int contextLayoutGiftHeight, + String mStream, String mLiveUid, String wishGiftId) { + LiveGiftItemFragment liveGiftFragment = new LiveGiftItemFragment(); + Bundle bundle = new Bundle(); + bundle.putString("giftJson", giftJson); + bundle.putInt("contextLayoutGiftHeight", contextLayoutGiftHeight); + bundle.putString("mStream", mStream); + bundle.putString("mLiveUid", mLiveUid); + bundle.putString("wishGiftId", wishGiftId); + liveGiftFragment.setArguments(bundle); + return liveGiftFragment; + } + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onLiveGiftItemEvent(LiveGiftItemEvent event) { + frameGiftAdapter.giftSelect(event.getLiveGiftModel()); + } +} diff --git a/live/src/main/java/com/yunbao/live/views/LiveParcelFragment.java b/live/src/main/java/com/yunbao/live/views/LiveParcelFragment.java new file mode 100644 index 000000000..3fbbbf257 --- /dev/null +++ b/live/src/main/java/com/yunbao/live/views/LiveParcelFragment.java @@ -0,0 +1,162 @@ +package com.yunbao.live.views; + +import android.os.Bundle; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewTreeObserver; +import android.widget.LinearLayout; +import android.widget.RadioButton; +import android.widget.RadioGroup; + +import androidx.fragment.app.Fragment; +import androidx.viewpager.widget.ViewPager; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yunbao.common.bean.LiveGiftBean; +import com.yunbao.common.fragment.BaseFragment; +import com.yunbao.common.http.HttpCallback; +import com.yunbao.common.utils.GiftCacheUtil; +import com.yunbao.live.R; +import com.yunbao.live.adapter.LiveGiftFragmentPagerAdapter; +import com.yunbao.live.http.LiveHttpUtil; + +import java.util.ArrayList; +import java.util.List; + +public class LiveParcelFragment extends BaseFragment { + private ViewPager fragmentViewpager; + private int pageCount; + private static final int GIFT_COUNT = 8;//每页8个礼物 + private RadioGroup mRadioGroup; + private LiveGiftFragmentPagerAdapter giftFragmentPagerAdapter; + private ArrayList ViewList = new ArrayList<>(); //页卡视图集合 + private List giftJson = new ArrayList<>(); + private int contextLayoutGiftHeight = 0; + private String mStream, mLiveUid; + private LinearLayout parcelDataList, parcelDataNo; + + @Override + public View createView(LayoutInflater layoutInflater, ViewGroup viewGroup) { + return layoutInflater.inflate(R.layout.fragment_live_parcel, viewGroup, false); + } + + @Override + protected void initVariables(Bundle bundle) { + mStream = bundle.getString("mStream"); + mLiveUid = bundle.getString("mLiveUid"); + } + + @Override + protected void initViews(Bundle savedInstanceState, View contentView) { + fragmentViewpager = contentView.findViewById(R.id.context_layout); + mRadioGroup = contentView.findViewById(R.id.radio_group); + parcelDataList = contentView.findViewById(R.id.parcel_data_list); + parcelDataNo = contentView.findViewById(R.id.parcel_data_no); + + fragmentViewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + + } + + @Override + public void onPageSelected(int position) { + if (mRadioGroup != null && mRadioGroup.getChildAt(position) != null) { + ((RadioButton) mRadioGroup.getChildAt(position)).setChecked(true); + } + } + + @Override + public void onPageScrollStateChanged(int state) { + + } + }); + } + + @Override + protected void loadData() { + LiveHttpUtil.getWrapList(new HttpCallback() { + @Override + public void onSuccess(int code, String msg, String[] info) { + if (code == 0 && info.length > 0) { + JSONObject obj = JSON.parseObject(info[0]); + String giftJson = obj.getString("giftlist"); + List list = JSON.parseArray(giftJson, LiveGiftBean.class); + GiftCacheUtil.getInstance().addDownloadList(list); + if (!GiftCacheUtil.getInstance().isDownloading()) { + GiftCacheUtil.getInstance().downloadAllGift(); + } + if (list.size() == 0) { + parcelDataNo.setVisibility(View.VISIBLE); + parcelDataList.setVisibility(View.GONE); + } else { + parcelDataList.setVisibility(View.VISIBLE); + parcelDataNo.setVisibility(View.GONE); + pageCount = list.size() / GIFT_COUNT; + if (list.size() % GIFT_COUNT > 0) { + pageCount++; + } + + fragmentViewpager.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { + @Override + public void onGlobalLayout() { + contextLayoutGiftHeight = fragmentViewpager.getHeight(); + Log.e("giftJson", "height=" + contextLayoutGiftHeight); + int fromIndex = 0; + int size = list.size(); + for (int i = 0; i < pageCount; i++) { + int endIndex = fromIndex + GIFT_COUNT; + if (endIndex > size) { + endIndex = size; + } + List liveGiftBeans = new ArrayList<>(); + for (int j = fromIndex; j < endIndex; j++) { + LiveGiftBean bean = list.get(j); + bean.setPage(i); + liveGiftBeans.add(bean); + } + fromIndex = endIndex; + ViewList.add(LiveParcelItemFragment.newInstance(JSON.toJSONString(liveGiftBeans), contextLayoutGiftHeight, mStream, mLiveUid)); + } + giftFragmentPagerAdapter = new LiveGiftFragmentPagerAdapter(getChildFragmentManager(), getActivity(), ViewList); + fragmentViewpager.setAdapter(giftFragmentPagerAdapter); + + LayoutInflater inflater = LayoutInflater.from(getContext()); + for (int i = 0, size2 = ViewList.size(); i < size2; i++) { + RadioButton radioButton = (RadioButton) inflater.inflate(R.layout.view_gift_indicator, mRadioGroup, false); + radioButton.setId(i + 10000); + if (i == 0) { + radioButton.setChecked(true); + } + mRadioGroup.addView(radioButton); + + } + //移除监听 + fragmentViewpager.getViewTreeObserver().removeOnGlobalLayoutListener(this); + } + }); + } + } + } + + @Override + public void onFinish() { +// if (mLoading != null) { +// mLoading.setVisibility(View.INVISIBLE); +// } + } + }); + } + + public static LiveParcelFragment newInstance(String mStream, String mLiveUid) { + LiveParcelFragment liveParcelFragment = new LiveParcelFragment(); + Bundle bundle = new Bundle(); + bundle.putString("mStream", mStream); + bundle.putString("mLiveUid", mLiveUid); + liveParcelFragment.setArguments(bundle); + return liveParcelFragment; + } +} diff --git a/live/src/main/java/com/yunbao/live/views/LiveParcelItemFragment.java b/live/src/main/java/com/yunbao/live/views/LiveParcelItemFragment.java new file mode 100644 index 000000000..7127f6753 --- /dev/null +++ b/live/src/main/java/com/yunbao/live/views/LiveParcelItemFragment.java @@ -0,0 +1,82 @@ +package com.yunbao.live.views; + +import android.os.Bundle; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.alibaba.fastjson.JSON; +import com.yunbao.common.bean.LiveGiftBean; +import com.yunbao.common.fragment.BaseFragment; +import com.yunbao.live.R; +import com.yunbao.live.adapter.LiveParcelItemAdapter; +import com.yunbao.live.event.LiveGiftItemEvent; +import com.yunbao.live.event.LiveParcelItemRefreshEvent; + +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; + +import java.util.ArrayList; +import java.util.List; + +public class LiveParcelItemFragment extends BaseFragment { + private List giftJson = new ArrayList<>(); + private RecyclerView frameGiftList; + private int contextLayoutGiftHeight = 0; + private LiveParcelItemAdapter frameGiftAdapter; + private String mStream, mLiveUid; + + @Override + public View createView(LayoutInflater layoutInflater, ViewGroup viewGroup) { + return layoutInflater.inflate(R.layout.fragment_live_gift_item, viewGroup, false); + } + + @Override + protected void initVariables(Bundle bundle) { + giftJson = JSON.parseArray(bundle.getString("giftJson"), LiveGiftBean.class); + contextLayoutGiftHeight = bundle.getInt("contextLayoutGiftHeight"); + mStream = bundle.getString("mStream"); + mLiveUid = bundle.getString("mLiveUid"); + Log.e("giftJson", giftJson.toString()); + } + + @Override + protected void initViews(Bundle savedInstanceState, View contentView) { + + frameGiftList = contentView.findViewById(R.id.frame_gift_list); + frameGiftList.setHasFixedSize(true); + frameGiftList.setLayoutManager(new GridLayoutManager(getActivity(), 4, GridLayoutManager.VERTICAL, false)); + frameGiftAdapter = new LiveParcelItemAdapter(contextLayoutGiftHeight, giftJson, mStream, mLiveUid); + frameGiftList.setAdapter(frameGiftAdapter); + } + + @Override + protected void loadData() { + + } + + public static LiveParcelItemFragment newInstance(String giftJson, int contextLayoutGiftHeight, String mStream, String mLiveUid) { + LiveParcelItemFragment liveGiftFragment = new LiveParcelItemFragment(); + Bundle bundle = new Bundle(); + bundle.putString("giftJson", giftJson); + bundle.putInt("contextLayoutGiftHeight", contextLayoutGiftHeight); + bundle.putString("mStream", mStream); + bundle.putString("mLiveUid", mLiveUid); + liveGiftFragment.setArguments(bundle); + return liveGiftFragment; + } + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onLiveGiftItemEvent(LiveGiftItemEvent event) { + frameGiftAdapter.giftSelect(event.getLiveGiftModel()); + } + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onLiveParcelItemRefreshEvent(LiveParcelItemRefreshEvent event) { + frameGiftAdapter.refreshWrapListAfterSend(event.getLiveGiftModel()); + } +} diff --git a/live/src/main/java/com/yunbao/live/views/LiveParcelItemViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveParcelItemViewHolder.java new file mode 100644 index 000000000..a94d35354 --- /dev/null +++ b/live/src/main/java/com/yunbao/live/views/LiveParcelItemViewHolder.java @@ -0,0 +1,138 @@ +package com.yunbao.live.views; + +import android.content.Context; +import android.view.View; +import android.view.animation.AccelerateDecelerateInterpolator; +import android.view.animation.Animation; +import android.view.animation.AnimationUtils; +import android.view.animation.LinearInterpolator; +import android.view.animation.ScaleAnimation; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.lxj.xpopup.XPopup; +import com.yunbao.common.bean.LiveGiftBean; +import com.yunbao.common.glide.ImgLoader; +import com.yunbao.common.interfaces.CommonCallback; +import com.yunbao.common.utils.Bus; +import com.yunbao.common.utils.GiftCacheUtil; +import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.views.weight.ViewClicksAntiShake; +import com.yunbao.live.R; +import com.yunbao.live.dialog.SendRendPacketPopup; +import com.yunbao.live.event.LiveGiftDialogEvent; + +import java.io.File; + +public class LiveParcelItemViewHolder extends RecyclerView.ViewHolder { + private ImageView giftIcon, cornerMark; + private Context mContext; + private TextView giftName, mPrice, giftNumber; + private RelativeLayout giftLayout; + private ScaleAnimation mAnimation; + private LinearLayout mLoadingLayout; + private ImageView mLoading; + + public LiveParcelItemViewHolder(@NonNull View itemView) { + super(itemView); + mContext = itemView.getContext(); + giftIcon = itemView.findViewById(R.id.gift_icon); + giftName = itemView.findViewById(R.id.gift_name); + mPrice = itemView.findViewById(R.id.price); + giftLayout = itemView.findViewById(R.id.gift_layout); + giftNumber = itemView.findViewById(R.id.gift_number); + cornerMark = itemView.findViewById(R.id.corner_mark); + mLoadingLayout = itemView.findViewById(R.id.gift_loading_layout); + mLoading = itemView.findViewById(R.id.gift_loading); + + mAnimation = new ScaleAnimation(0.9f, 1.1f, 0.9f, 1.1f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); + mAnimation.setInterpolator(new AccelerateDecelerateInterpolator()); + mAnimation.setDuration(400); + mAnimation.setRepeatMode(Animation.REVERSE); + mAnimation.setRepeatCount(-1); + } + + public void showData(int contextLayoutGiftHeight, LiveGiftBean model) { + //设置高度 + itemView.post(new Runnable() { + @Override + public void run() { + GridLayoutManager.LayoutParams linearParams = (GridLayoutManager.LayoutParams) itemView.getLayoutParams(); + linearParams.height = contextLayoutGiftHeight / 2; + itemView.setLayoutParams(linearParams); + } + }); + giftLayout.setSelected(model.isChecked()); + if (model.isChecked()) { + giftIcon.startAnimation(mAnimation); + } + ImgLoader.display(mContext, model.getIcon(), giftIcon); + ImgLoader.display(mContext, model.getCornerMark(), cornerMark); + giftName.setText(model.getName()); + mPrice.setText(model.getEnd_time()); + giftNumber.setText(model.getGiftNum()); + + if (model.getSwf() != null && model.getSwf().isEmpty()) { + mLoadingLayout.setVisibility(View.GONE); + } else { + mLoadingLayout.setVisibility(GiftCacheUtil.checkGiftIsDownload(model.getId()) ? View.GONE : View.VISIBLE); + } + } + + public void giftSelect(LiveGiftBean model, int position, String mStream, String mLiveUid, FrameGiftClickListener frameGiftClickListener) { + ViewClicksAntiShake.clicksAntiShake(mLoadingLayout, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + mLoading.setImageResource(R.mipmap.icon_loading_gift); + Animation animation = AnimationUtils.loadAnimation(mContext, R.anim.anim_loading_gift); + animation.setRepeatMode(Animation.RESTART); + animation.setRepeatCount(Animation.INFINITE); + animation.setInterpolator(new LinearInterpolator()); + mLoading.startAnimation(animation); + GiftCacheUtil.getInstance().pause(); + GiftCacheUtil.getInstance().downloadGiftForId(mContext, model, new CommonCallback() { + @Override + public void callback(File bean) { + if (bean == null) { + ToastUtil.show(mContext.getString(R.string.load_failure_2)); + mLoading.setImageResource(R.mipmap.icon_download_gift); + animation.setRepeatCount(0); + animation.setDuration(0); + animation.cancel(); + mLoading.setAnimation(animation); + } else { + mLoadingLayout.setVisibility(View.GONE); + } + GiftCacheUtil.getInstance().restart(); + } + }); + } + }); + ViewClicksAntiShake.clicksAntiShake(giftLayout, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + if (model.getType() == 9999999) { + Bus.get().post(new LiveGiftDialogEvent()); + new XPopup.Builder(mContext) + .asCustom(new SendRendPacketPopup(mContext, mLiveUid)) + .show(); + } else { + if (frameGiftClickListener != null) { + frameGiftClickListener.onCallBack(position, model); + } + } + + } + }); + } + + public interface FrameGiftClickListener { + void onCallBack(int position, LiveGiftBean model); + } +} 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 d191a0f3b..00f2fd4df 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java @@ -150,7 +150,6 @@ import com.yunbao.live.custom.TopGradual; import com.yunbao.live.dialog.LiveFaceUnityDialogFragment; import com.yunbao.live.dialog.LiveFansMedalDialogFragment; import com.yunbao.live.dialog.LiveGameDialogFragment; -import com.yunbao.live.dialog.LiveGiftDialogFragment; import com.yunbao.live.dialog.LiveHDDialogFragment; import com.yunbao.live.dialog.LiveUserAnchorMailBoxWebInfoPopDialog; import com.yunbao.live.dialog.LiveUserDialogFragment; @@ -5069,23 +5068,13 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis @Override public void onSuccess(LiveAnchorCallMeModel data) { - if (data.getIsGet() == 1) { - new LiveUserAnchorMailBoxWebInfoPopDialog(mContext, mAnchorName, data.getLink()) - .setOnDismissListener(dialog -> loading.dismiss()) - .showDialog(); - return; - } - LiveGiftDialogFragment fragment = new LiveGiftDialogFragment(); - fragment.setOnDismissListener(dialog -> checkNewLetter() - ); - fragment.setOnShowListener(dialog -> mHandler.postDelayed(loading::dismiss, 500)); - Bundle bundle = new Bundle(); - bundle.putString(Constants.LIVE_UID, mLiveUid); - bundle.putString(Constants.LIVE_STREAM, mStream); - bundle.putString(Constants.LIVE_WISH_GIFTID, data.getGiftId() + ""); - bundle.putBoolean("isContactGift", true); - fragment.setArguments(bundle); - fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveGiftDialogFragment"); + loading.dismiss(); + Bus.get().post(new LiveAudienceEvent() + .setType(LiveAudienceEvent.LiveAudienceType.GIFT_POPUP) + .setmLiveUid(mLiveUid) + .setmStream(mStream) + .setmWishGiftId(data.getGiftId() + "") + .setIsContactGift(true)); } @Override @@ -5147,23 +5136,15 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis @Override public void onSuccess(LiveAnchorCallMeModel data) { - if (data.getIsGet() == 1) { - new LiveUserAnchorMailBoxWebInfoPopDialog(mContext, mAnchorName, data.getLink()) - .setOnDismissListener(dialog -> loading.dismiss()) - .showDialog(); - return; - } - LiveGiftDialogFragment fragment = new LiveGiftDialogFragment(); - fragment.setOnDismissListener(dialog -> checkNewLetter() - ); - fragment.setOnShowListener(dialog -> mHandler.postDelayed(loading::dismiss, 500)); - Bundle bundle = new Bundle(); - bundle.putString(Constants.LIVE_UID, mLiveUid); - bundle.putString(Constants.LIVE_STREAM, mStream); - bundle.putString(Constants.LIVE_WISH_GIFTID, data.getGiftId() + ""); - bundle.putBoolean("isContactGift", true); - fragment.setArguments(bundle); - fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveGiftDialogFragment"); + loading.dismiss(); + + Bus.get().post(new LiveAudienceEvent() + .setType(LiveAudienceEvent.LiveAudienceType.GIFT_POPUP) + .setmLiveUid(mLiveUid) + .setmStream(mStream) + .setmWishGiftId(data.getGiftId() + "") + .setIsContactGift(true)); + } @Override diff --git a/live/src/main/res/drawable/background_gift_select.xml b/live/src/main/res/drawable/background_gift_select.xml new file mode 100644 index 000000000..8e8881c7c --- /dev/null +++ b/live/src/main/res/drawable/background_gift_select.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/live/src/main/res/layout/fragment_live_gift.xml b/live/src/main/res/layout/fragment_live_gift.xml new file mode 100644 index 000000000..4cbba9e43 --- /dev/null +++ b/live/src/main/res/layout/fragment_live_gift.xml @@ -0,0 +1,23 @@ + + + + + + + \ No newline at end of file diff --git a/live/src/main/res/layout/fragment_live_gift_item.xml b/live/src/main/res/layout/fragment_live_gift_item.xml new file mode 100644 index 000000000..d2fae8429 --- /dev/null +++ b/live/src/main/res/layout/fragment_live_gift_item.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/live/src/main/res/layout/fragment_live_parcel.xml b/live/src/main/res/layout/fragment_live_parcel.xml new file mode 100644 index 000000000..915d8ecfa --- /dev/null +++ b/live/src/main/res/layout/fragment_live_parcel.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/live/src/main/res/layout/item_frame_gift.xml b/live/src/main/res/layout/item_frame_gift.xml new file mode 100644 index 000000000..b43e18e44 --- /dev/null +++ b/live/src/main/res/layout/item_frame_gift.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/live/src/main/res/layout/item_gift_top_new.xml b/live/src/main/res/layout/item_gift_top_new.xml new file mode 100644 index 000000000..68309d5a7 --- /dev/null +++ b/live/src/main/res/layout/item_gift_top_new.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/live/src/main/res/layout/item_live_parcel.xml b/live/src/main/res/layout/item_live_parcel.xml new file mode 100644 index 000000000..c0ff90185 --- /dev/null +++ b/live/src/main/res/layout/item_live_parcel.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/live/src/main/res/mipmap-xxxhdpi/live_icon_leftt_sliding.png b/live/src/main/res/mipmap-xxxhdpi/live_icon_leftt_sliding.png index 1789eab28a14be7eed62d6e58740e2ea1e426841..ca957ec23b294a0edcb8d6aef0f28be08a556769 100644 GIT binary patch delta 241 zcmX@j^pt5rO+9CUM`SSr1K(i~W;~w1B87p0VZWz~V@Srmw>J&B4h0CbJPh5yFL+Qn z;u*)ZYnm!cmoBYnNpG>-<`!>r;GYtQ@n1gq+q%-{`Y*@b{1at0>F3gUmW@q!LoPTs zxN%&NWm?k4sKT`)(4mo`RKOtUz&!?L9)kl=;$N2NhNcD!X9peu0g(+WSYx9KD#VxM zFFr4HxusVjG0th;2GfHq!afEtLa4=w^Jnxbp-=s*W?l$za&Y=5vATtcD~{#UhB=sYg~8L+&t;ucLK6TiZD7g( delta 215 zcmV;|04V?E0?PuBe1E!0L_t(&-tE~j3Ib6KMbUi0UPc6$VCfPpt)~#nDJ{h%d`HN# zbzpP>|Dqt=*C!m(JrZGlo9@Qu*O@0WzsOexuwXYW=pi6S2*?KnWUd$>lLGD(P$3}q z5HM1}L4W`O0t5&UAV7eCe+4WdATAIPX9x%iD6m*W9AP*598j^Du%Y#=(0UbH2@)ho zkRU;V1PKx(G!QB!w0EhQ(Eg|@^ilOD1SGVVv6)Z<5(cnfdYSft(p|%RBTvYf>S!AE Rv5Wu!002ovPDHLkV1g@FR5t(s From a353e51ba81c511d7ac076c0efbe0bdff0bfe357 Mon Sep 17 00:00:00 2001 From: 18401019693 Date: Tue, 25 Jul 2023 15:25:01 +0800 Subject: [PATCH 06/19] =?UTF-8?q?6.5.4=E7=A4=BC=E7=89=A9=E6=A0=8F=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yunbao/common/bean/LiveGiftBean.java | 24 ++++++++++++++ .../res/layout/dialog_live_gift_popup.xml | 18 ++++++++++- common/src/main/res/values-en-rUS/string.xml | 4 +++ common/src/main/res/values-zh-rHK/strings.xml | 4 +++ common/src/main/res/values-zh-rTW/strings.xml | 4 +++ common/src/main/res/values-zh/strings.xml | 4 +++ common/src/main/res/values/strings.xml | 8 ++--- .../java/com/yunbao/live/bean/CoinModel.java | 18 +++++++++++ .../com/yunbao/live/dialog/LiveGiftPopup.java | 32 ++++++++++++++++++- 9 files changed, 110 insertions(+), 6 deletions(-) diff --git a/common/src/main/java/com/yunbao/common/bean/LiveGiftBean.java b/common/src/main/java/com/yunbao/common/bean/LiveGiftBean.java index 78583150b..16f974b1d 100644 --- a/common/src/main/java/com/yunbao/common/bean/LiveGiftBean.java +++ b/common/src/main/java/com/yunbao/common/bean/LiveGiftBean.java @@ -43,6 +43,30 @@ public class LiveGiftBean { @JSONField(name = "gift_description") private String giftDescription; + @JSONField(name = "operate_image") + private String operateImage; + + @JSONField(name = "operate_url") + private String operateUrl; + + public String getOperateImage() { + return operateImage; + } + + public LiveGiftBean setOperateImage(String operateImage) { + this.operateImage = operateImage; + return this; + } + + public String getOperateUrl() { + return operateUrl; + } + + public LiveGiftBean setOperateUrl(String operateUrl) { + this.operateUrl = operateUrl; + return this; + } + public String getGiftDescription() { return giftDescription; } diff --git a/common/src/main/res/layout/dialog_live_gift_popup.xml b/common/src/main/res/layout/dialog_live_gift_popup.xml index 63afb262c..81361b32b 100644 --- a/common/src/main/res/layout/dialog_live_gift_popup.xml +++ b/common/src/main/res/layout/dialog_live_gift_popup.xml @@ -6,6 +6,11 @@ android:layout_gravity="bottom" android:orientation="vertical"> + + + + + + + diff --git a/common/src/main/res/values-en-rUS/string.xml b/common/src/main/res/values-en-rUS/string.xml index 73e2c8718..26fdf25f2 100644 --- a/common/src/main/res/values-en-rUS/string.xml +++ b/common/src/main/res/values-en-rUS/string.xml @@ -1249,6 +1249,10 @@ Limited ride And limited avatar frame %s drew %s in the lucky red envelope number Red successfully + %s experience upgrade,%s receive rewards + You have reached the highest level! + There\\\'s nothing in the package yet + Custom quantity diff --git a/common/src/main/res/values-zh-rHK/strings.xml b/common/src/main/res/values-zh-rHK/strings.xml index 1c2e77cb7..08a2d1069 100644 --- a/common/src/main/res/values-zh-rHK/strings.xml +++ b/common/src/main/res/values-zh-rHK/strings.xml @@ -1244,4 +1244,8 @@ " %s 在 好運紅包 中抽到了 %s" 数量 红包发布成功 + 升級還需%s經驗值,升至%s即可領取獎勵 + 恭喜,你已達到最高等級 + 包裹中暫無物品哦 + 自定義數量 diff --git a/common/src/main/res/values-zh-rTW/strings.xml b/common/src/main/res/values-zh-rTW/strings.xml index 6d306b272..b19b12c49 100644 --- a/common/src/main/res/values-zh-rTW/strings.xml +++ b/common/src/main/res/values-zh-rTW/strings.xml @@ -1243,4 +1243,8 @@ " %s 在 好運紅包 中抽到了 %s" 数量 红包发布成功 + 升級還需%s經驗值,升至%s即可領取獎勵 + 恭喜,你已達到最高等級 + 包裹中暫無物品哦 + 自定義數量 diff --git a/common/src/main/res/values-zh/strings.xml b/common/src/main/res/values-zh/strings.xml index 94d89a69d..535ce85c2 100644 --- a/common/src/main/res/values-zh/strings.xml +++ b/common/src/main/res/values-zh/strings.xml @@ -1244,6 +1244,10 @@ " %s 在 好運紅包 中抽到了 %s" 数量 红包发布成功 + 升級還需%s經驗值,升至%s即可領取獎勵 + 恭喜,你已達到最高等級 + 包裹中暫無物品哦 + 自定義數量 diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml index 898591650..cff72ab76 100644 --- a/common/src/main/res/values/strings.xml +++ b/common/src/main/res/values/strings.xml @@ -1250,8 +1250,8 @@ Limited ride And limited avatar frame %s drew %s in the lucky red envelope number >Red successfully - 升級還需%s經驗值,升至%s即可領取獎勵 - 包裹中暫無物品哦 - 恭喜,你已達到最高等級 - 自定義數量 + %s experience upgrade,%s receive rewards + There\\\'s nothing in the package yet + You have reached the highest level! + Custom quantity diff --git a/live/src/main/java/com/yunbao/live/bean/CoinModel.java b/live/src/main/java/com/yunbao/live/bean/CoinModel.java index f80a61da8..738f09161 100644 --- a/live/src/main/java/com/yunbao/live/bean/CoinModel.java +++ b/live/src/main/java/com/yunbao/live/bean/CoinModel.java @@ -33,6 +33,15 @@ public class CoinModel extends BaseModel { private String usersPackRedDot; public String getCoin() { + long coinMoney = Long.parseLong(coin); + if (999999999 < coinMoney && coinMoney <= 999999999999L) { + coin = coin.substring(0, coin.length() - 2); + coin = coin + "k"; + } + if (999999999999L < coinMoney && coinMoney <= 999999999999999L) { + coin = coin.substring(0, coin.length() - 2); + coin = coin + "M"; + } return coin; } @@ -42,6 +51,15 @@ public class CoinModel extends BaseModel { } public String getGold() { + long goldMoney = Long.parseLong(gold); + if (999999999 < goldMoney && goldMoney <= 999999999999L) { + gold = gold.substring(0, gold.length() - 2); + gold = gold + "k"; + } + if (999999999999L < goldMoney && goldMoney <= 999999999999999L) { + gold = gold.substring(0, gold.length() - 2); + gold = gold + "M"; + } return gold; } diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveGiftPopup.java b/live/src/main/java/com/yunbao/live/dialog/LiveGiftPopup.java index aa1a30b53..4e09bb882 100644 --- a/live/src/main/java/com/yunbao/live/dialog/LiveGiftPopup.java +++ b/live/src/main/java/com/yunbao/live/dialog/LiveGiftPopup.java @@ -93,7 +93,7 @@ import java.util.List; * 直播间新送礼弹窗 */ public class LiveGiftPopup extends AbsDialogFragment { - private ImageView gitBackground, nobilityIcon, description, iconArrow; + private ImageView gitBackground, nobilityIcon, description, iconArrow, operateImage; private JSONArray liveGiftList; private TextView diamondText, goldText, liveWrap, vipGoldDesc, vipGoldTitle, giftNumber; private RecyclerView giftTitle; @@ -118,6 +118,7 @@ public class LiveGiftPopup extends AbsDialogFragment { private MarqueeTextView giftDescription; private boolean isPk; + @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); @@ -167,6 +168,7 @@ public class LiveGiftPopup extends AbsDialogFragment { description = mRootView.findViewById(R.id.description); lvStr = mRootView.findViewById(R.id.lv_str); iconArrow = mRootView.findViewById(R.id.icon_arrow); + operateImage = mRootView.findViewById(R.id.operate_image); leaveHint = mRootView.findViewById(R.id.leave_hint); progressBar = mRootView.findViewById(R.id.progressBar); levelingLayout = mRootView.findViewById(R.id.leveling_layout); @@ -184,6 +186,7 @@ public class LiveGiftPopup extends AbsDialogFragment { liveGiftSend.setEnabled(false); giftNumberLayout.setVisibility(View.INVISIBLE); giftDescription.setVisibility(View.GONE); + operateImage.setVisibility(View.GONE); levelingLayout.setVisibility(View.VISIBLE); //点击包裹 ViewClicksAntiShake.clicksAntiShake(liveWrap, new ViewClicksAntiShake.ViewClicksCallBack() { @@ -282,6 +285,27 @@ public class LiveGiftPopup extends AbsDialogFragment { ImgLoader.display(getContext(), R.mipmap.icon_arrow_down, iconArrow); } }); + /** + * 礼物图片运营位跳转 + */ + ViewClicksAntiShake.clicksAntiShake(operateImage, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo(); + StringBuffer htmlUrl = new StringBuffer(); + htmlUrl.append(CommonAppConfig.HOST) + .append(liveGiftModel.getOperateUrl()) + .append(userInfo.getId()) + .append("&token=") + .append(userInfo.getToken()) + .append("&for"); + Bundle bundle = new Bundle(); + bundle.putString("url", htmlUrl.toString()); + LiveHDDialogFragment fragment = new LiveHDDialogFragment(); + fragment.setArguments(bundle); + fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment"); + } + }); } private void initDate() { @@ -421,6 +445,8 @@ public class LiveGiftPopup extends AbsDialogFragment { lvStr.setText("Lv." + coinModel.getUserLevel()); int nextLeve = Integer.parseInt(coinModel.getUserLevel()); int maxLeve = Integer.parseInt(coinModel.getUserLevelMax()); + findViewById(R.id.red_point).setVisibility((!TextUtils.isEmpty(coinModel.getUsersPackRedDot())) && + TextUtils.equals(coinModel.getUsersPackRedDot(), "1") ? View.VISIBLE : View.GONE); if (maxLeve > nextLeve) { String leveNext = String.valueOf(nextLeve + 1); String userNextLevel = coinModel.getUserNextLevelRewards(); @@ -646,6 +672,10 @@ public class LiveGiftPopup extends AbsDialogFragment { giftDescription.setVisibility(View.VISIBLE); levelingLayout.setVisibility(View.GONE); } + if (!TextUtils.isEmpty(liveGiftModel.getOperateImage())) { + operateImage.setVisibility(View.VISIBLE); + ImgLoader.display(getContext(), liveGiftModel.getOperateUrl(), operateImage); + } } @Subscribe(threadMode = ThreadMode.MAIN) From 54458bd0c0f16dc40d488edfc0590705f9ca7c5e Mon Sep 17 00:00:00 2001 From: 18401019693 Date: Mon, 31 Jul 2023 18:25:32 +0800 Subject: [PATCH 07/19] =?UTF-8?q?6.5.4=E7=A4=BC=E7=89=A9=E5=86=A0=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/GiftAlreadyWallAdapter.java | 43 +++ .../adapter/GiftWithoutWallAdapter.java | 43 +++ .../common/bean/EnterRoomInfoModel.java | 23 ++ .../common/bean/GiftAlreadyWallModel.java | 44 +++ .../com/yunbao/common/bean/GiftWallModel.java | 336 ++++++++++++++++++ .../common/dialog/GiftWallItemPopup.java | 25 ++ .../fragment/GiftAlreadyWallFragment.java | 85 +++++ .../fragment/GiftWithoutWallFragment.java | 79 ++++ .../com/yunbao/common/http/PDLiveApi.java | 17 + .../common/http/live/LiveNetManager.java | 44 +++ .../views/GiftAlreadyWallViewHolder.java | 28 ++ .../views/GiftWithoutWallViewHolder.java | 39 ++ .../res/drawable/background_skip_button.png | Bin 0 -> 12767 bytes .../main/res/drawable/bg_gift_wall_list.xml | 10 + .../res/drawable/icon_gift_wall_no_data.png | Bin 0 -> 31496 bytes .../main/res/drawable/tablayout_gift_wall.xml | 14 + .../res/layout/fragment_gift_already_wall.xml | 88 +++++ .../res/layout/fragment_gift_without_wall.xml | 40 +++ .../res/layout/item_gift_already_wall.xml | 25 ++ .../res/layout/item_gift_without_wall.xml | 25 ++ .../main/res/layout/popup_gift_wall_item.xml | 10 + .../background_gift_already_wall.png | Bin 0 -> 21236 bytes .../mipmap-xxhdpi/background_gift_wall.png | Bin 0 -> 162206 bytes .../background_gift_without_wall.png | Bin 0 -> 20986 bytes ...arrow_right.png => icon_arrow_right_2.png} | Bin .../main/res/mipmap-xxhdpi/icon_gift_wall.png | Bin 0 -> 563 bytes .../img_aristocrat_chaohuang.png | Bin 14799 -> 19583 bytes .../mipmap-xxhdpi/img_aristocrat_guowang.png | Bin 12168 -> 16503 bytes .../mipmap-xxhdpi/img_aristocrat_houjue.png | Bin 11171 -> 17738 bytes .../mipmap-xxhdpi/img_aristocrat_huangdi.png | Bin 12836 -> 20112 bytes .../mipmap-xxhdpi/img_aristocrat_nanjue.png | Bin 11162 -> 16905 bytes .../mipmap-xxhdpi/img_aristocrat_notopen.png | Bin 13352 -> 13678 bytes .../mipmap-xxhdpi/img_aristocrat_zijue.png | Bin 10469 -> 16848 bytes common/src/main/res/values-en-rUS/string.xml | 31 +- common/src/main/res/values-zh-rHK/strings.xml | 29 ++ common/src/main/res/values-zh-rTW/strings.xml | 29 ++ common/src/main/res/values-zh/strings.xml | 29 ++ common/src/main/res/values/strings.xml | 32 +- gradle.properties | 8 +- .../live/activity/LiveAudienceActivity.java | 12 +- .../yunbao/live/dialog/GiftWallDialog.java | 202 +++++++++++ .../com/yunbao/live/dialog/LiveGiftPopup.java | 9 +- .../live/dialog/LiveUserDialogFragment.java | 58 ++- .../live/dialog/RegularIntroducePopup.java | 36 ++ .../yunbao/live/event/LiveAudienceEvent.java | 4 +- .../yunbao/live/views/LiveRoomViewHolder.java | 85 ++++- .../live/views/PortraitLiveManager.java | 16 + .../main/res/drawable/background_regular.xml | 8 + .../drawable/background_regular_center.xml | 9 + .../src/main/res/drawable/bg_gift_wall_lv.xml | 9 + .../main/res/drawable/bg_user_card_fans.xml | 2 +- .../main/res/drawable/bg_user_card_honor.xml | 2 +- .../src/main/res/drawable/bg_user_card_lv.xml | 2 +- live/src/main/res/drawable/icon_gift_wall.png | Bin 0 -> 8250 bytes .../main/res/layout/dialog_live_gift_wall.xml | 206 +++++++++++ .../main/res/layout/dialog_new_live_user.xml | 104 ++++-- .../res/layout/rogular_introduce_popup.xml | 190 ++++++++++ live/src/main/res/layout/view_live_room.xml | 52 ++- .../mipmap-hdpi/background_gift_wall_item.png | Bin 0 -> 18172 bytes .../background_gift_wall_title.png | Bin 0 -> 3318 bytes .../background_giftwall_tab.png | Bin 0 -> 27389 bytes .../background_regular_title.png | Bin 0 -> 32810 bytes .../mipmap-xxxhdpi/icon_following_anchor.png | Bin 0 -> 933 bytes .../res/mipmap-xxxhdpi/icon_regular_black.png | Bin 0 -> 472 bytes .../mipmap-xxxhdpi/icon_regular_bubble.png | Bin 0 -> 12778 bytes .../yunbao/main/activity/MainActivity.java | 3 - 66 files changed, 2098 insertions(+), 87 deletions(-) create mode 100644 common/src/main/java/com/yunbao/common/adapter/GiftAlreadyWallAdapter.java create mode 100644 common/src/main/java/com/yunbao/common/adapter/GiftWithoutWallAdapter.java create mode 100644 common/src/main/java/com/yunbao/common/bean/GiftAlreadyWallModel.java create mode 100644 common/src/main/java/com/yunbao/common/bean/GiftWallModel.java create mode 100644 common/src/main/java/com/yunbao/common/dialog/GiftWallItemPopup.java create mode 100644 common/src/main/java/com/yunbao/common/fragment/GiftAlreadyWallFragment.java create mode 100644 common/src/main/java/com/yunbao/common/fragment/GiftWithoutWallFragment.java create mode 100644 common/src/main/java/com/yunbao/common/views/GiftAlreadyWallViewHolder.java create mode 100644 common/src/main/java/com/yunbao/common/views/GiftWithoutWallViewHolder.java create mode 100644 common/src/main/res/drawable/background_skip_button.png create mode 100644 common/src/main/res/drawable/bg_gift_wall_list.xml create mode 100644 common/src/main/res/drawable/icon_gift_wall_no_data.png create mode 100644 common/src/main/res/drawable/tablayout_gift_wall.xml create mode 100644 common/src/main/res/layout/fragment_gift_already_wall.xml create mode 100644 common/src/main/res/layout/fragment_gift_without_wall.xml create mode 100644 common/src/main/res/layout/item_gift_already_wall.xml create mode 100644 common/src/main/res/layout/item_gift_without_wall.xml create mode 100644 common/src/main/res/layout/popup_gift_wall_item.xml create mode 100644 common/src/main/res/mipmap-xxhdpi/background_gift_already_wall.png create mode 100644 common/src/main/res/mipmap-xxhdpi/background_gift_wall.png create mode 100644 common/src/main/res/mipmap-xxhdpi/background_gift_without_wall.png rename common/src/main/res/mipmap-xxhdpi/{icon_arrow_right.png => icon_arrow_right_2.png} (100%) create mode 100644 common/src/main/res/mipmap-xxhdpi/icon_gift_wall.png create mode 100644 live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java create mode 100644 live/src/main/java/com/yunbao/live/dialog/RegularIntroducePopup.java create mode 100644 live/src/main/res/drawable/background_regular.xml create mode 100644 live/src/main/res/drawable/background_regular_center.xml create mode 100644 live/src/main/res/drawable/bg_gift_wall_lv.xml create mode 100644 live/src/main/res/drawable/icon_gift_wall.png create mode 100644 live/src/main/res/layout/dialog_live_gift_wall.xml create mode 100644 live/src/main/res/layout/rogular_introduce_popup.xml create mode 100644 live/src/main/res/mipmap-hdpi/background_gift_wall_item.png create mode 100644 live/src/main/res/mipmap-xxxhdpi/background_gift_wall_title.png create mode 100644 live/src/main/res/mipmap-xxxhdpi/background_giftwall_tab.png create mode 100644 live/src/main/res/mipmap-xxxhdpi/background_regular_title.png create mode 100644 live/src/main/res/mipmap-xxxhdpi/icon_following_anchor.png create mode 100644 live/src/main/res/mipmap-xxxhdpi/icon_regular_black.png create mode 100644 live/src/main/res/mipmap-xxxhdpi/icon_regular_bubble.png diff --git a/common/src/main/java/com/yunbao/common/adapter/GiftAlreadyWallAdapter.java b/common/src/main/java/com/yunbao/common/adapter/GiftAlreadyWallAdapter.java new file mode 100644 index 000000000..815c8f949 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/adapter/GiftAlreadyWallAdapter.java @@ -0,0 +1,43 @@ +package com.yunbao.common.adapter; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.R; +import com.yunbao.common.bean.GiftWallModel; +import com.yunbao.common.views.GiftAlreadyWallViewHolder; + +import java.util.ArrayList; +import java.util.List; + +public class GiftAlreadyWallAdapter extends RecyclerView.Adapter { + private List giftWall = new ArrayList<>(); + + @NonNull + @Override + public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View herdView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_gift_already_wall, parent, false); + return new GiftAlreadyWallViewHolder(herdView); + } + + @Override + public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { + GiftAlreadyWallViewHolder withoutWallViewHolder = (GiftAlreadyWallViewHolder) holder; + withoutWallViewHolder.showData(giftWall.get(position)); + } + + @Override + public int getItemCount() { + return giftWall.size(); + } + + public void addAllData(List mGiftWall) { + giftWall.clear(); + giftWall.addAll(mGiftWall); + notifyDataSetChanged(); + } +} diff --git a/common/src/main/java/com/yunbao/common/adapter/GiftWithoutWallAdapter.java b/common/src/main/java/com/yunbao/common/adapter/GiftWithoutWallAdapter.java new file mode 100644 index 000000000..0f78a3e64 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/adapter/GiftWithoutWallAdapter.java @@ -0,0 +1,43 @@ +package com.yunbao.common.adapter; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.R; +import com.yunbao.common.bean.GiftWallModel; +import com.yunbao.common.views.GiftWithoutWallViewHolder; + +import java.util.ArrayList; +import java.util.List; + +public class GiftWithoutWallAdapter extends RecyclerView.Adapter { + private List giftWall = new ArrayList<>(); + + @NonNull + @Override + public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View herdView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_gift_without_wall, parent, false); + return new GiftWithoutWallViewHolder(herdView); + } + + @Override + public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { + GiftWithoutWallViewHolder withoutWallViewHolder = (GiftWithoutWallViewHolder) holder; + withoutWallViewHolder.showData(giftWall.get(position)); + } + + @Override + public int getItemCount() { + return giftWall.size(); + } + + public void addAllData(List mGiftWall) { + giftWall.clear(); + giftWall.addAll(mGiftWall); + notifyDataSetChanged(); + } +} diff --git a/common/src/main/java/com/yunbao/common/bean/EnterRoomInfoModel.java b/common/src/main/java/com/yunbao/common/bean/EnterRoomInfoModel.java index b69499034..ec265a735 100644 --- a/common/src/main/java/com/yunbao/common/bean/EnterRoomInfoModel.java +++ b/common/src/main/java/com/yunbao/common/bean/EnterRoomInfoModel.java @@ -109,6 +109,29 @@ public class EnterRoomInfoModel extends BaseModel { @SerializedName("red_packet") private RedPacketModel redPacketModel; + @SerializedName("gift_wall_lighten_number") + private String giftWallLightenNumber; + @SerializedName("gift_wall_lighten_total") + private String giftWallLightenTotal; + + public String getGiftWallLightenNumber() { + return giftWallLightenNumber; + } + + public EnterRoomInfoModel setGiftWallLightenNumber(String giftWallLightenNumber) { + this.giftWallLightenNumber = giftWallLightenNumber; + return this; + } + + public String getGiftWallLightenTotal() { + return giftWallLightenTotal; + } + + public EnterRoomInfoModel setGiftWallLightenTotal(String giftWallLightenTotal) { + this.giftWallLightenTotal = giftWallLightenTotal; + return this; + } + public RedPacketModel getRedPacketModel() { return redPacketModel; } diff --git a/common/src/main/java/com/yunbao/common/bean/GiftAlreadyWallModel.java b/common/src/main/java/com/yunbao/common/bean/GiftAlreadyWallModel.java new file mode 100644 index 000000000..1384cb511 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/bean/GiftAlreadyWallModel.java @@ -0,0 +1,44 @@ +package com.yunbao.common.bean; + +import com.google.gson.annotations.SerializedName; + +import java.util.List; + +/** + * 礼物墙已点亮 + */ +public class GiftAlreadyWallModel extends BaseModel { + @SerializedName("gift_wall") + private List giftWall; + @SerializedName("gift_wall_lighten_number") + private String giftWallLightenNumber; + @SerializedName("gift_wall_lighten_total") + private String giftWallLightenTotal; + + public List getGiftWall() { + return giftWall; + } + + public GiftAlreadyWallModel setGiftWall(List giftWall) { + this.giftWall = giftWall; + return this; + } + + public String getGiftWallLightenNumber() { + return giftWallLightenNumber; + } + + public GiftAlreadyWallModel setGiftWallLightenNumber(String giftWallLightenNumber) { + this.giftWallLightenNumber = giftWallLightenNumber; + return this; + } + + public String getGiftWallLightenTotal() { + return giftWallLightenTotal; + } + + public GiftAlreadyWallModel setGiftWallLightenTotal(String giftWallLightenTotal) { + this.giftWallLightenTotal = giftWallLightenTotal; + return this; + } +} diff --git a/common/src/main/java/com/yunbao/common/bean/GiftWallModel.java b/common/src/main/java/com/yunbao/common/bean/GiftWallModel.java new file mode 100644 index 000000000..83cbb6359 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/bean/GiftWallModel.java @@ -0,0 +1,336 @@ +package com.yunbao.common.bean; + +import com.google.gson.annotations.SerializedName; + +public class GiftWallModel extends BaseModel { + @SerializedName("id") + private String id; + @SerializedName("sendtype") + private String sendtype; + @SerializedName("type") + private String type; + @SerializedName("name") + private String name; + @SerializedName("release_status") + private String releaseStatus; + @SerializedName("type_sort") + private String typeSort; + @SerializedName("operate_image") + private String operateImage; + @SerializedName("operate_url") + private String operateUrl; + @SerializedName("mark") + private String mark; + @SerializedName("giftname") + private String giftname; + @SerializedName("needcoin") + private String needcoin; + @SerializedName("gifticon") + private String gifticon; + @SerializedName("gift_description") + private String giftDescription; + @SerializedName("corner_mark") + private String cornerMark; + @SerializedName("swf") + private String swf; + @SerializedName("gift_uid") + private String giftUid; + @SerializedName("type_start_time") + private String typeStartTime; + @SerializedName("type_end_time") + private String typeEndTime; + @SerializedName("gift_start_time") + private String giftStartTime; + @SerializedName("gift_end_time") + private String giftEndTime; + @SerializedName("naming_liveuid") + private String namingLiveuid; + @SerializedName("naming_uid") + private String namingUid; + @SerializedName("naming_live_name") + private String namingLiveName; + @SerializedName("naming_user_name") + private String namingUserName; + @SerializedName("naming_live_avatar") + private String namingLiveAvatar; + @SerializedName("naming_user_avatar") + private String namingUserAvatar; + @SerializedName("naming_status") + private String namingStatus; + @SerializedName("naming_coin") + private String namingCoin; + @SerializedName("gifticon_total") + private String gifticonTotal; + @SerializedName("gift_count_number") + private String giftCountNumber; + + public String getId() { + return id; + } + + public GiftWallModel setId(String id) { + this.id = id; + return this; + } + + public String getSendtype() { + return sendtype; + } + + public GiftWallModel setSendtype(String sendtype) { + this.sendtype = sendtype; + return this; + } + + public String getType() { + return type; + } + + public GiftWallModel setType(String type) { + this.type = type; + return this; + } + + public String getName() { + return name; + } + + public GiftWallModel setName(String name) { + this.name = name; + return this; + } + + public String getReleaseStatus() { + return releaseStatus; + } + + public GiftWallModel setReleaseStatus(String releaseStatus) { + this.releaseStatus = releaseStatus; + return this; + } + + public String getTypeSort() { + return typeSort; + } + + public GiftWallModel setTypeSort(String typeSort) { + this.typeSort = typeSort; + return this; + } + + public String getOperateImage() { + return operateImage; + } + + public GiftWallModel setOperateImage(String operateImage) { + this.operateImage = operateImage; + return this; + } + + public String getOperateUrl() { + return operateUrl; + } + + public GiftWallModel setOperateUrl(String operateUrl) { + this.operateUrl = operateUrl; + return this; + } + + public String getMark() { + return mark; + } + + public GiftWallModel setMark(String mark) { + this.mark = mark; + return this; + } + + public String getGiftname() { + return giftname; + } + + public GiftWallModel setGiftname(String giftname) { + this.giftname = giftname; + return this; + } + + public String getNeedcoin() { + return needcoin; + } + + public GiftWallModel setNeedcoin(String needcoin) { + this.needcoin = needcoin; + return this; + } + + public String getGifticon() { + return gifticon; + } + + public GiftWallModel setGifticon(String gifticon) { + this.gifticon = gifticon; + return this; + } + + public String getGiftDescription() { + return giftDescription; + } + + public GiftWallModel setGiftDescription(String giftDescription) { + this.giftDescription = giftDescription; + return this; + } + + public String getCornerMark() { + return cornerMark; + } + + public GiftWallModel setCornerMark(String cornerMark) { + this.cornerMark = cornerMark; + return this; + } + + public String getSwf() { + return swf; + } + + public GiftWallModel setSwf(String swf) { + this.swf = swf; + return this; + } + + public String getGiftUid() { + return giftUid; + } + + public GiftWallModel setGiftUid(String giftUid) { + this.giftUid = giftUid; + return this; + } + + public String getTypeStartTime() { + return typeStartTime; + } + + public GiftWallModel setTypeStartTime(String typeStartTime) { + this.typeStartTime = typeStartTime; + return this; + } + + public String getTypeEndTime() { + return typeEndTime; + } + + public GiftWallModel setTypeEndTime(String typeEndTime) { + this.typeEndTime = typeEndTime; + return this; + } + + public String getGiftStartTime() { + return giftStartTime; + } + + public GiftWallModel setGiftStartTime(String giftStartTime) { + this.giftStartTime = giftStartTime; + return this; + } + + public String getGiftEndTime() { + return giftEndTime; + } + + public GiftWallModel setGiftEndTime(String giftEndTime) { + this.giftEndTime = giftEndTime; + return this; + } + + public String getNamingLiveuid() { + return namingLiveuid; + } + + public GiftWallModel setNamingLiveuid(String namingLiveuid) { + this.namingLiveuid = namingLiveuid; + return this; + } + + public String getNamingUid() { + return namingUid; + } + + public GiftWallModel setNamingUid(String namingUid) { + this.namingUid = namingUid; + return this; + } + + public String getNamingLiveName() { + return namingLiveName; + } + + public GiftWallModel setNamingLiveName(String namingLiveName) { + this.namingLiveName = namingLiveName; + return this; + } + + public String getNamingUserName() { + return namingUserName; + } + + public GiftWallModel setNamingUserName(String namingUserName) { + this.namingUserName = namingUserName; + return this; + } + + public String getNamingLiveAvatar() { + return namingLiveAvatar; + } + + public GiftWallModel setNamingLiveAvatar(String namingLiveAvatar) { + this.namingLiveAvatar = namingLiveAvatar; + return this; + } + + public String getNamingUserAvatar() { + return namingUserAvatar; + } + + public GiftWallModel setNamingUserAvatar(String namingUserAvatar) { + this.namingUserAvatar = namingUserAvatar; + return this; + } + + public String getNamingStatus() { + return namingStatus; + } + + public GiftWallModel setNamingStatus(String namingStatus) { + this.namingStatus = namingStatus; + return this; + } + + public String getNamingCoin() { + return namingCoin; + } + + public GiftWallModel setNamingCoin(String namingCoin) { + this.namingCoin = namingCoin; + return this; + } + + public String getGifticonTotal() { + return gifticonTotal; + } + + public GiftWallModel setGifticonTotal(String gifticonTotal) { + this.gifticonTotal = gifticonTotal; + return this; + } + + public String getGiftCountNumber() { + return giftCountNumber; + } + + public GiftWallModel setGiftCountNumber(String giftCountNumber) { + this.giftCountNumber = giftCountNumber; + return this; + } +} diff --git a/common/src/main/java/com/yunbao/common/dialog/GiftWallItemPopup.java b/common/src/main/java/com/yunbao/common/dialog/GiftWallItemPopup.java new file mode 100644 index 000000000..c3a09ee04 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/dialog/GiftWallItemPopup.java @@ -0,0 +1,25 @@ +package com.yunbao.common.dialog; + + +import android.content.Context; + +import androidx.annotation.NonNull; + +import com.lxj.xpopup.core.CenterPopupView; +import com.yunbao.common.R; + +public class GiftWallItemPopup extends CenterPopupView { + public GiftWallItemPopup(@NonNull Context context) { + super(context); + } + + @Override + protected int getImplLayoutId() { + return R.layout.popup_gift_wall_item; + } + + @Override + protected void onCreate() { + super.onCreate(); + } +} diff --git a/common/src/main/java/com/yunbao/common/fragment/GiftAlreadyWallFragment.java b/common/src/main/java/com/yunbao/common/fragment/GiftAlreadyWallFragment.java new file mode 100644 index 000000000..ae1d4f378 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/fragment/GiftAlreadyWallFragment.java @@ -0,0 +1,85 @@ +package com.yunbao.common.fragment; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.R; +import com.yunbao.common.adapter.GiftAlreadyWallAdapter; +import com.yunbao.common.bean.GiftAlreadyWallModel; +import com.yunbao.common.http.base.HttpCallback; +import com.yunbao.common.http.live.LiveNetManager; + +/** + * 已点亮礼物墙 + */ +public class GiftAlreadyWallFragment extends BaseFragment { + private String mStream, mLiveUid; + private LinearLayout giftWallNoData, giftWallData; + private RecyclerView alreadyList; + private GiftAlreadyWallAdapter alreadyWallAdapter; + private TextView litIcon,giftAll; + @Override + public View createView(LayoutInflater layoutInflater, ViewGroup viewGroup) { + return layoutInflater.inflate(R.layout.fragment_gift_already_wall, viewGroup, false); + } + + + @Override + protected void initVariables(Bundle bundle) { + mStream = bundle.getString("mStream"); + mLiveUid = bundle.getString("mLiveUid"); + } + + @Override + protected void initViews(Bundle savedInstanceState, View contentView) { + giftWallNoData = contentView.findViewById(R.id.gift_wall_no_data); + giftWallData = contentView.findViewById(R.id.gift_wall_data); + alreadyList = contentView.findViewById(R.id.already_list); + litIcon = contentView.findViewById(R.id.lit_icon); + giftAll = contentView.findViewById(R.id.gift_all); + alreadyWallAdapter = new GiftAlreadyWallAdapter(); + alreadyList.setLayoutManager(new GridLayoutManager(getContext(), 3, GridLayoutManager.VERTICAL, false)); + alreadyList.setAdapter(alreadyWallAdapter); + } + + @Override + protected void loadData() { + LiveNetManager.get(getActivity()). + giftAlreadyWall(mLiveUid, new HttpCallback() { + @Override + public void onSuccess(GiftAlreadyWallModel data) { + if (data.getGiftWall().size() > 0) { + giftWallNoData.setVisibility(View.GONE); + giftWallData.setVisibility(View.VISIBLE); + alreadyWallAdapter.addAllData(data.getGiftWall()); + litIcon.setText(data.getGiftWallLightenNumber()); + giftAll.setText("/"+data.getGiftWallLightenTotal()); + } else { + giftWallNoData.setVisibility(View.VISIBLE); + giftWallData.setVisibility(View.GONE); + } + } + + @Override + public void onError(String error) { + + } + }); + } + + public static GiftAlreadyWallFragment newInstance(String mStream, String mLiveUid) { + GiftAlreadyWallFragment liveGiftFragment = new GiftAlreadyWallFragment(); + Bundle bundle = new Bundle(); + bundle.putString("mStream", mStream); + bundle.putString("mLiveUid", mLiveUid); + liveGiftFragment.setArguments(bundle); + return liveGiftFragment; + } +} diff --git a/common/src/main/java/com/yunbao/common/fragment/GiftWithoutWallFragment.java b/common/src/main/java/com/yunbao/common/fragment/GiftWithoutWallFragment.java new file mode 100644 index 000000000..25bb35261 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/fragment/GiftWithoutWallFragment.java @@ -0,0 +1,79 @@ +package com.yunbao.common.fragment; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.R; +import com.yunbao.common.adapter.GiftWithoutWallAdapter; +import com.yunbao.common.bean.GiftAlreadyWallModel; +import com.yunbao.common.http.base.HttpCallback; +import com.yunbao.common.http.live.LiveNetManager; + +/** + * wei点亮礼物墙 + */ +public class GiftWithoutWallFragment extends BaseFragment { + private String mStream, mLiveUid; + private RecyclerView withoutList; + private LinearLayout giftWallNoData; + private GiftWithoutWallAdapter withoutWallAdapter; + + @Override + public View createView(LayoutInflater layoutInflater, ViewGroup viewGroup) { + return layoutInflater.inflate(R.layout.fragment_gift_without_wall, viewGroup, false); + } + + + @Override + protected void initVariables(Bundle bundle) { + mStream = bundle.getString("mStream"); + mLiveUid = bundle.getString("mLiveUid"); + } + + @Override + protected void initViews(Bundle savedInstanceState, View contentView) { + withoutList = contentView.findViewById(R.id.without_list); + giftWallNoData = contentView.findViewById(R.id.gift_wall_no_data); + withoutWallAdapter = new GiftWithoutWallAdapter(); + withoutList.setLayoutManager(new GridLayoutManager(getContext(), 3, GridLayoutManager.VERTICAL, false)); + withoutList.setAdapter(withoutWallAdapter); + } + + @Override + protected void loadData() { + LiveNetManager.get(getActivity()). + giftWithoutWall(mLiveUid, new HttpCallback() { + @Override + public void onSuccess(GiftAlreadyWallModel data) { + if (data.getGiftWall().size() > 0) { + giftWallNoData.setVisibility(View.GONE); + withoutList.setVisibility(View.VISIBLE); + withoutWallAdapter.addAllData(data.getGiftWall()); + } else { + giftWallNoData.setVisibility(View.VISIBLE); + withoutList.setVisibility(View.GONE); + } + } + + @Override + public void onError(String error) { + + } + }); + } + + public static GiftWithoutWallFragment newInstance(String mStream, String mLiveUid) { + GiftWithoutWallFragment liveGiftFragment = new GiftWithoutWallFragment(); + Bundle bundle = new Bundle(); + bundle.putString("mStream", mStream); + bundle.putString("mLiveUid", mLiveUid); + liveGiftFragment.setArguments(bundle); + return liveGiftFragment; + } +} 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 ab99cf322..248c73191 100644 --- a/common/src/main/java/com/yunbao/common/http/PDLiveApi.java +++ b/common/src/main/java/com/yunbao/common/http/PDLiveApi.java @@ -12,6 +12,7 @@ import com.yunbao.common.bean.CustomSidebarInfoModel; import com.yunbao.common.bean.DiscountsModel; import com.yunbao.common.bean.EnterRoomNewModel; import com.yunbao.common.bean.FaceBookUpModel; +import com.yunbao.common.bean.GiftAlreadyWallModel; import com.yunbao.common.bean.HourRank; import com.yunbao.common.bean.HttpCallbackModel; import com.yunbao.common.bean.IMLoginModel; @@ -830,4 +831,20 @@ public interface PDLiveApi { @Query("red_packet_id") String redPacketId ); + /** + * 礼物墙已点亮 + */ + @GET("/api/public/?service=Gift.giftAlreadyWall") + Observable> giftAlreadyWall( + @Query("liveuid") String liveUid + ); + + /** + * 礼物墙未点亮 + */ + @GET("/api/public/?service=Gift.giftWithoutWall") + Observable> giftWithoutWall( + @Query("liveuid") String liveUid + ); + } 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 6e1313e02..39959de77 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 @@ -13,6 +13,7 @@ import com.yunbao.common.bean.CheckLiveModel; import com.yunbao.common.bean.CustomSidebarInfoModel; import com.yunbao.common.bean.DiscountsModel; import com.yunbao.common.bean.EnterRoomNewModel; +import com.yunbao.common.bean.GiftAlreadyWallModel; import com.yunbao.common.bean.HttpCallbackModel; import com.yunbao.common.bean.LinkMicUserBean; import com.yunbao.common.bean.LinkMicUserBeanV2; @@ -1796,6 +1797,49 @@ public class LiveNetManager { }).isDisposed(); } + public void giftAlreadyWall(String liveUid, HttpCallback callback) { + API.get().pdLiveApi(mContext) + .giftAlreadyWall(liveUid) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Consumer>() { + @Override + public void accept(ResponseModel giftAlreadyWallModelResponseModel) throws Exception { + if (callback != null) { + callback.onSuccess(giftAlreadyWallModelResponseModel.getData().getInfo()); + } + } + }, new Consumer() { + @Override + public void accept(Throwable throwable) throws Exception { + if (callback != null) { + callback.onError(mContext.getString(R.string.net_error)); + } + } + }).isDisposed(); + } + public void giftWithoutWall(String liveUid, HttpCallback callback) { + API.get().pdLiveApi(mContext) + .giftWithoutWall(liveUid) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Consumer>() { + @Override + public void accept(ResponseModel giftAlreadyWallModelResponseModel) throws Exception { + if (callback != null) { + callback.onSuccess(giftAlreadyWallModelResponseModel.getData().getInfo()); + } + } + }, new Consumer() { + @Override + public void accept(Throwable throwable) throws Exception { + if (callback != null) { + callback.onError(mContext.getString(R.string.net_error)); + } + } + }).isDisposed(); + } + /** * 直播间取消网络请求 */ diff --git a/common/src/main/java/com/yunbao/common/views/GiftAlreadyWallViewHolder.java b/common/src/main/java/com/yunbao/common/views/GiftAlreadyWallViewHolder.java new file mode 100644 index 000000000..b7244cd9b --- /dev/null +++ b/common/src/main/java/com/yunbao/common/views/GiftAlreadyWallViewHolder.java @@ -0,0 +1,28 @@ +package com.yunbao.common.views; + +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.R; +import com.yunbao.common.bean.GiftWallModel; +import com.yunbao.common.glide.ImgLoader; + +public class GiftAlreadyWallViewHolder extends RecyclerView.ViewHolder { + private ImageView giftImg; + private TextView giftTitle; + + public GiftAlreadyWallViewHolder(@NonNull View itemView) { + super(itemView); + giftImg = itemView.findViewById(R.id.gift_img); + giftTitle = itemView.findViewById(R.id.gift_title); + } + + public void showData(GiftWallModel giftWallModel) { + giftTitle.setText(giftWallModel.getGiftname()); + ImgLoader.display(itemView.getContext(), giftWallModel.getGifticon(), giftImg); + } +} diff --git a/common/src/main/java/com/yunbao/common/views/GiftWithoutWallViewHolder.java b/common/src/main/java/com/yunbao/common/views/GiftWithoutWallViewHolder.java new file mode 100644 index 000000000..4685e441d --- /dev/null +++ b/common/src/main/java/com/yunbao/common/views/GiftWithoutWallViewHolder.java @@ -0,0 +1,39 @@ +package com.yunbao.common.views; + +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.lxj.xpopup.XPopup; +import com.yunbao.common.R; +import com.yunbao.common.bean.GiftWallModel; +import com.yunbao.common.dialog.GiftWallItemPopup; +import com.yunbao.common.glide.ImgLoader; +import com.yunbao.common.views.weight.ViewClicksAntiShake; + +public class GiftWithoutWallViewHolder extends RecyclerView.ViewHolder { + private ImageView giftImg; + private TextView giftTitle; + + public GiftWithoutWallViewHolder(@NonNull View itemView) { + super(itemView); + giftImg = itemView.findViewById(R.id.gift_img); + giftTitle = itemView.findViewById(R.id.gift_title); + } + + public void showData(GiftWallModel giftWallModel) { + giftTitle.setText(giftWallModel.getGiftname()); + ImgLoader.display(itemView.getContext(), giftWallModel.getGifticon(), giftImg); + ViewClicksAntiShake.clicksAntiShake(itemView, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + new XPopup.Builder(itemView.getContext()) + .asCustom(new GiftWallItemPopup(itemView.getContext())) + .show(); + } + }); + } +} diff --git a/common/src/main/res/drawable/background_skip_button.png b/common/src/main/res/drawable/background_skip_button.png new file mode 100644 index 0000000000000000000000000000000000000000..47ea4cb9e4716a5c4a54b19c25f3d3d25c53443f GIT binary patch literal 12767 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

^g8}2!V-x&J1DV=BkSmM>Tw-A05I~{ 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

T~s+>L}$;6JI4`=CqQ7x!1<^X>F(& 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%0DfoysvYp$4WU>zDM6{-*QlWaa4)2 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 B^H2Z) literal 0 HcmV?d00001 diff --git a/common/src/main/res/mipmap-xxhdpi/img_aristocrat_chaohuang.png b/common/src/main/res/mipmap-xxhdpi/img_aristocrat_chaohuang.png index c5a3448ad027ef9c7089ddbe5ad14ebfa9900669..e018cc6c16ff72ff7af199f94306058e13c55dca 100644 GIT binary patch literal 19583 zcmV(!K;^%QP)j4ahmkNtUdfHHtHu(P(maz0XYFsycPl+yT4; zm_Js$8jASx$U-p7i9M@c{Qkjf*oRX#_YBR9GIF)n*!+kbmXzItmZ>1Tt zC|;e*`Hkw_UD#0_9MeT#n;g+)J_G!nZek=|SE5(kY_UWN6t_qzW0F?(o>kvvdFZNT z4G5Jms;e-MdaxN$S#9o9jZt>|Gy_B`m>v!RWAtT`y2VInA{m-=cNy!|zFa*Mp{cdf zuo%fYQbuS@jhx&vEn3FlNt7?b4msG8HburYGU(>-fX~PrrRl#JJF29*NF_jxs1oU- z+6YdVQcmJ`J=!?MRYgQdSivOAn_9`OiA0!gBdQ+ixvozni!6nX^C&Bcjmk6Lgo-L6 z5j6R$QP`VYr;j#PTuGG(itD<;y≫O}A6G*;Pb~KKW!s|2wp_36=4gC=q4$$e8~6 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 diff --git a/common/src/main/res/mipmap-xxhdpi/img_aristocrat_guowang.png b/common/src/main/res/mipmap-xxhdpi/img_aristocrat_guowang.png index 9a423031fa4b8e6833f856878cf1e70c5376bc62..d947bd9d1679dbd2c96cef78095ff5ef41fa11e8 100644 GIT binary patch literal 16503 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 z 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 literal 12168 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 VPW-mZcftSw002ovPDHLkV1k|ux1#_6 literal 11171 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 diff --git a/common/src/main/res/mipmap-xxhdpi/img_aristocrat_huangdi.png b/common/src/main/res/mipmap-xxhdpi/img_aristocrat_huangdi.png index 5ad36e1f409b9140ac9d001cc02651c837b1991c..9c91a929ef328bab9c408d1e164ea0053139d279 100644 GIT binary patch literal 20112 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 Dc#O~5 literal 12836 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�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 U>E_8twg3PC07*qoM6N<$f}z0zC;$Ke literal 11162 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 ZPx1=pyW3rek^k2K($O;1e5d{-_J4lA_8b5J diff --git a/common/src/main/res/mipmap-xxhdpi/img_aristocrat_zijue.png b/common/src/main/res/mipmap-xxhdpi/img_aristocrat_zijue.png index cbacb5725534496a1ac0ea679b80d388ba92dc93..78e3abdc44a18ac022ec02f27c64bfc64c8b78d1 100644 GIT binary patch literal 16848 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 P00000NkvXXu0mjfb>Ql9 literal 10469 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 D;sR3# diff --git a/common/src/main/res/values-en-rUS/string.xml b/common/src/main/res/values-en-rUS/string.xml index 26fdf25f2..96bd3694f 100644 --- a/common/src/main/res/values-en-rUS/string.xml +++ b/common/src/main/res/values-en-rUS/string.xml @@ -1251,8 +1251,37 @@ Limited ride And limited avatar frame Red successfully %s experience upgrade,%s receive rewards You have reached the highest level! - There\\\'s nothing in the package yet + There\'s nothing in the package yet Custom quantity + Gift wall + %s has been lit + Illustrated book + unlit + All service + Love \\ \"ceremony \\\" at the beginning, \\ \"wall \\\" potential light temporarily no light + No unlit gifts yet + Instant light + Honorary achievement + Lit + Gift Wall Entrance + Personal profile card, personal homepage, live streaming room header button, and by clickingView personal and person\'s profile cards and homepage. + Lighting up gifts + On the gift panel and click on the gift wall of the recipient to light up the gift for gifting, Illuminate the corresponding gift icon in the recipient\'s gift wall. Only diamond gifts Can light up gifts. When the gifts in the event are compared to the gifts in the gift wall and guidebook When the same, give the same gift, first light up the event, gift wall, and picture guide A gift for. + Named gift + Within each cycle, if a certain amount of diamonds are given as a single or cumulative gift Display the most gifts given to a recipient on the gift icon Gift person avatar, clicking on the avatar can also directly reach the giver\'s homepage of the named gift. + When the gift in the guidebook is the same as the gift in the gift wall, give the same gift Objects, first point the gift on the gift wall, and then light up the gift in the guidebook. Honor achievement + Medal of Achievement + Medal of achievement + Currently, there are three achievements, namely A cloud of good friends,Very rich, + A cloud of good friends: When the number of gifts received reaches 20, 30, 50, 100When it comes to 200 models, light up the corresponding achievements separately;Rich and capriciou + A rich party: When the price of a single gift received exceeds 50000 diamonds, it is sufficient Illuminate the achievement; + Very rich: When receiving 100 gifts priced over 3000 diamonds, i.e This achievement can be illuminated. + The current user has a total of 4 achievements, namely being rich and capricious, sharing rain and dew, and giving gifts Gift machines, lighting masters. + Rich and capricious: Accumulated gifts worth 50K, 2M,10M, 100M, 300M, light up the corresponding achievements separately; + Rain and dew evenly: the cumulative Style quantity of gifts given to anchors reaches 10, 20, 50, 100,200, can achieve success; + gift machine: The cumulative number of gifts given reaches 200, 1000, 10K,100K,1M,light up the corresponding achievements separately; + lighting master: The number of unlocked Gift Walls has reached 10, 30, 50 At 100 and 200, light up the corresponding achievements separately. + rule diff --git a/common/src/main/res/values-zh-rHK/strings.xml b/common/src/main/res/values-zh-rHK/strings.xml index 08a2d1069..9134aec0e 100644 --- a/common/src/main/res/values-zh-rHK/strings.xml +++ b/common/src/main/res/values-zh-rHK/strings.xml @@ -1248,4 +1248,33 @@ 恭喜,你已達到最高等級 包裹中暫無物品哦 自定義數量 + 禮物墻 + 已點亮%s個 + 圖鑒 + 榮譽成就 + 已點亮 + 未點亮 + 全服冠軍 + 愛\\“禮\\”伊始,\\“墻\\”勢點亮 暫無點亮 + 暂无未点亮礼物哦 + 立即點亮 + 禮物墻入口 + 個人資料卡片、個人主頁、直播間頭部按鈕及通過點擊 自己與TA人的資料卡和主頁查看。 + 點亮禮物 + 在禮物面板和點擊收禮人禮物牆待點亮的禮物進行送禮, 即點亮收禮人禮物牆中對應的禮物圖標。只有鑽石送禮可點亮禮物。當活動中的禮物與禮物牆和圖鑒中的禮物相同時,則的禮物。 + 冠名禮物 + 每個週期內單個或累計送同一禮物達一定數量鑽石,會在該禮物圖標上顯示對於某位收禮人而言送出最多的送禮人頭像,點擊頭像還可直達冠名禮物的送禮人主頁。 + 當圖鑒的禮物與禮物牆中的禮物相同時,則送同一個禮物,先點禮物牆的禮物,之後再點亮圖鑒的禮物。 + 榮譽成就 + 成就勳章 + 當前主播共有3個成就,分別是勝友如雲、富甲一方、腰纏萬貫。 + 勝友如雲:當收到的禮物款數達到20、30、50、100、200款時,分別點亮對應的成就; + 富甲一方:收到的單款禮物價格超過50000鑽時,即可點亮該成就; + 腰纏萬貫:當收到100款價格超過3000鑽的禮物時,即可點亮該成就。 + 當前用戶共有4個成就,分別是有錢任性、雨露均沾、送禮機器、點燈大師。 + 有錢任性:纍計送出禮物價值鉆石數量達到50K、2M、10M、100M、300M時,分別點亮對應的成就 + 雨露均沾:纍計送禮給主播人數達到10、20、50、100、200時,分別點亮對應的成就; + 送禮機器:纍計贈送禮物個數達到200、1000、10K、00K、1M時,分別點亮對應的成就; + 點燈大師:解鎖【禮物墻】的數量達到10、30、50、100、200時,分別點亮對應的成就 + 規則 diff --git a/common/src/main/res/values-zh-rTW/strings.xml b/common/src/main/res/values-zh-rTW/strings.xml index b19b12c49..d0f6ba525 100644 --- a/common/src/main/res/values-zh-rTW/strings.xml +++ b/common/src/main/res/values-zh-rTW/strings.xml @@ -1247,4 +1247,33 @@ 恭喜,你已達到最高等級 包裹中暫無物品哦 自定義數量 + 禮物墻 + 已點亮%s個 + 圖鑒 + 榮譽成就 + 已點亮 + 未點亮 + 全服冠軍 + 愛\\“禮\\”伊始,\\“墻\\”勢點亮 暫無點亮 + 暂无未点亮礼物哦 + 立即點亮 + 禮物墻入口 + 個人資料卡片、個人主頁、直播間頭部按鈕及通過點擊 自己與TA人的資料卡和主頁查看。 + 點亮禮物 + 在禮物面板和點擊收禮人禮物牆待點亮的禮物進行送禮, 即點亮收禮人禮物牆中對應的禮物圖標。只有鑽石送禮可點亮禮物。當活動中的禮物與禮物牆和圖鑒中的禮物相同時,則的禮物。 + 冠名禮物 + 每個週期內單個或累計送同一禮物達一定數量鑽石,會在該禮物圖標上顯示對於某位收禮人而言送出最多的送禮人頭像,點擊頭像還可直達冠名禮物的送禮人主頁。 + 當圖鑒的禮物與禮物牆中的禮物相同時,則送同一個禮物,先點禮物牆的禮物,之後再點亮圖鑒的禮物。 + 榮譽成就 + 成就勳章 + 當前主播共有3個成就,分別是勝友如雲、富甲一方、腰纏萬貫。 + 勝友如雲:當收到的禮物款數達到20、30、50、100、200款時,分別點亮對應的成就; + 富甲一方:收到的單款禮物價格超過50000鑽時,即可點亮該成就; + 腰纏萬貫:當收到100款價格超過3000鑽的禮物時,即可點亮該成就。 + 當前用戶共有4個成就,分別是有錢任性、雨露均沾、送禮機器、點燈大師。 + 有錢任性:纍計送出禮物價值鉆石數量達到50K、2M、10M、100M、300M時,分別點亮對應的成就 + 雨露均沾:纍計送禮給主播人數達到10、20、50、100、200時,分別點亮對應的成就; + 送禮機器:纍計贈送禮物個數達到200、1000、10K、00K、1M時,分別點亮對應的成就; + 點燈大師:解鎖【禮物墻】的數量達到10、30、50、100、200時,分別點亮對應的成就 + 規則 diff --git a/common/src/main/res/values-zh/strings.xml b/common/src/main/res/values-zh/strings.xml index 535ce85c2..de2da757d 100644 --- a/common/src/main/res/values-zh/strings.xml +++ b/common/src/main/res/values-zh/strings.xml @@ -1248,6 +1248,35 @@ 恭喜,你已達到最高等級 包裹中暫無物品哦 自定義數量 + 禮物墻 + 已點亮%s個 + 圖鑒 + 未點亮 + 全服冠軍 + 愛\\“禮\\”伊始,\\“墻\\”勢點亮 暫無點亮 + 暂无未点亮礼物哦 + 立即點亮 + 榮譽成就 + 已點亮 + 禮物墻入口 + 個人資料卡片、個人主頁、直播間頭部按鈕及通過點擊 自己與TA人的資料卡和主頁查看。 + 點亮禮物 + 在禮物面板和點擊收禮人禮物牆待點亮的禮物進行送禮, 即點亮收禮人禮物牆中對應的禮物圖標。只有鑽石送禮可點亮禮物。當活動中的禮物與禮物牆和圖鑒中的禮物相同時,則的禮物。 + 冠名禮物 + 每個週期內單個或累計送同一禮物達一定數量鑽石,會在該禮物圖標上顯示對於某位收禮人而言送出最多的送禮人頭像,點擊頭像還可直達冠名禮物的送禮人主頁。 + 當圖鑒的禮物與禮物牆中的禮物相同時,則送同一個禮物,先點禮物牆的禮物,之後再點亮圖鑒的禮物。 + 榮譽成就 + 成就勳章 + 當前主播共有3個成就,分別是勝友如雲、富甲一方、腰纏萬貫。 + 勝友如雲:當收到的禮物款數達到20、30、50、100、200款時,分別點亮對應的成就; + 富甲一方:收到的單款禮物價格超過50000鑽時,即可點亮該成就; + 腰纏萬貫:當收到100款價格超過3000鑽的禮物時,即可點亮該成就。 + 當前用戶共有4個成就,分別是有錢任性、雨露均沾、送禮機器、點燈大師。 + 有錢任性:纍計送出禮物價值鉆石數量達到50K、2M、10M、100M、300M時,分別點亮對應的成就 + 雨露均沾:纍計送禮給主播人數達到10、20、50、100、200時,分別點亮對應的成就; + 送禮機器:纍計贈送禮物個數達到200、1000、10K、00K、1M時,分別點亮對應的成就; + 點燈大師:解鎖【禮物墻】的數量達到10、30、50、100、200時,分別點亮對應的成就 + 規則 diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml index cff72ab76..4faaf5e62 100644 --- a/common/src/main/res/values/strings.xml +++ b/common/src/main/res/values/strings.xml @@ -1251,7 +1251,37 @@ Limited ride And limited avatar frame number >Red successfully %s experience upgrade,%s receive rewards - There\\\'s nothing in the package yet + There\'s nothing in the package yet You have reached the highest level! Custom quantity + Gift wall + %s has been lit + unlit + All service + Love \\ \"ceremony \\\" at the beginning, \\ \"wall \\\" potential light temporarily no light + No unlit gifts yet + Instant light + Gift Wall Entrance + Personal profile card, personal homepage, live streaming room header button, and by clicking + Lighting up gifts + On the gift panel and click on the gift wall of the recipient to light up the gift for gifting, Illuminate the corresponding gift icon in the recipient\'s gift wall. Only diamond gifts Can light up gifts. When the gifts in the event are compared to the gifts in the gift wall and guidebook When the same, give the same gift, first light up the event, gift wall, and picture guide A gift for. + Named gift + Within each cycle, if a certain amount of diamonds are given as a single or cumulative gift Display the most gifts given to a recipient on the gift icon Gift person avatar, clicking on the avatar can also directly reach the giver\'s homepage of the named gift. + When the gift in the guidebook is the same as the gift in the gift wall, give the same gift Objects, first point the gift on the gift wall, and then light up the gift in the guidebook. Honor achievement + Medal of Achievement + Medal of achievement + Currently, there are three achievements, namely A cloud of good friends,Very rich, + A cloud of good friends: When the number of gifts received reaches 20, 30, 50, 100When it comes to 200 models, light up the corresponding achievements separately;Rich and capriciou + A rich party: When the price of a single gift received exceeds 50000 diamonds, it is sufficient Illuminate the achievement; + Very rich: When receiving 100 gifts priced over 3000 diamonds, i.e This achievement can be illuminated. + The current user has a total of 4 achievements, namely being rich and capricious, sharing rain and dew, and giving gifts Gift machines, lighting masters. + Rich and capricious: Accumulated gifts worth 50K, 2M,10M, 100M, 300M, light up the corresponding achievements separately; + Rain and dew evenly: the cumulative Style quantity of gifts given to anchors reaches 10, 20, 50, 100,200, can achieve success; + gift machine: The cumulative number of gifts given reaches 200, 1000, 10K,100K,1M,light up the corresponding achievements separately; + lighting master: The number of unlocked Gift Walls has reached 10, 30, 50 At 100 and 200, light up the corresponding achievements separately. + rule + Illustrated book + Honorary achievement + Lit + diff --git a/gradle.properties b/gradle.properties index a5066c177..e850a38e3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -19,8 +19,8 @@ org.gradle.configureondemand=true android.useAndroidX=true android.enableJetifier=true -#systemProp.http.proxyHost=127.0.0.1 -#systemProp.https.proxyHost=127.0.0.1 -#systemProp.https.proxyPort=7890 -#systemProp.http.proxyPort=7890 +systemProp.http.proxyHost=127.0.0.1 +systemProp.https.proxyHost=127.0.0.1 +systemProp.https.proxyPort=10809 +systemProp.http.proxyPort=10809 #android.enableR8.fullMode=true \ No newline at end of file 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 b786ce6f4..7b9a56dbc 100644 --- a/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java +++ b/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java @@ -90,7 +90,6 @@ import com.yunbao.live.bean.ImUserBean; import com.yunbao.live.bean.LiveChatBean; import com.yunbao.live.dialog.LiveFansFragment; import com.yunbao.live.dialog.LiveGameDialogFragment; -import com.yunbao.live.dialog.LiveGiftDialogFragment; import com.yunbao.live.dialog.LiveGiftPopup; import com.yunbao.live.dialog.LiveHDDialogFragment; import com.yunbao.live.dialog.LiveInputDialogFragment; @@ -1433,6 +1432,17 @@ public class LiveAudienceActivity extends LiveActivity { liveInputDialogFragment.setArguments(liveInputBundle); liveInputDialogFragment.show(getSupportFragmentManager(), "LiveInputDialogFragment"); break; + case IS_ATTENTION: + if (manager != null) { + manager.setAttention(event.getLiveType()); + } + + break; + case GIFT_WALL: + if (manager != null) { + manager.showGiftWall(); + } + break; } diff --git a/live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java b/live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java new file mode 100644 index 000000000..37b88a0d5 --- /dev/null +++ b/live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java @@ -0,0 +1,202 @@ +package com.yunbao.live.dialog; + +import android.content.DialogInterface; +import android.graphics.Typeface; +import android.os.Bundle; +import android.view.Gravity; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.fragment.app.FragmentTransaction; + +import com.lxj.xpopup.XPopup; +import com.makeramen.roundedimageview.RoundedImageView; +import com.yunbao.common.Constants; +import com.yunbao.common.dialog.AbsDialogFragment; +import com.yunbao.common.fragment.GiftAlreadyWallFragment; +import com.yunbao.common.fragment.GiftWithoutWallFragment; +import com.yunbao.common.glide.ImgLoader; +import com.yunbao.common.http.CommonHttpUtil; +import com.yunbao.common.interfaces.CommonCallback; +import com.yunbao.common.manager.IMLoginManager; +import com.yunbao.common.utils.Bus; +import com.yunbao.common.views.weight.ViewClicksAntiShake; +import com.yunbao.live.R; +import com.yunbao.live.activity.LiveActivity; +import com.yunbao.live.event.GiftTitleEvent; +import com.yunbao.live.event.LiveAudienceEvent; + +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; + +import java.util.ArrayList; +import java.util.List; + +/** + * 礼物墙 + */ +public class GiftWallDialog extends AbsDialogFragment { + private LinearLayout layoutLitIcon, layoutUnlitIcon, layoutAllServiceChampion; + private TextView textLitIcon, textUnlitIcon, textAllServiceChampion, anchorName, regularBubble; + private View viewAllServiceChampion, viewUnlitIcon, viewLitIcon, attention; + private RoundedImageView avatar; + private List tabText = new ArrayList<>(); + private List tabView = new ArrayList<>(); + private String mStream, mAnchorName, mLiveUid, mAvatarUrl; + private int isAttention = 0;//是否关注 0=没关注, + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + Bus.getOn(this); + initView(); + initDate(); + } + + private void initView() { + layoutLitIcon = mRootView.findViewById(R.id.layout_lit_icon); + layoutUnlitIcon = mRootView.findViewById(R.id.layout_unlit_icon); + layoutAllServiceChampion = mRootView.findViewById(R.id.layout_all_service_champion); + textLitIcon = mRootView.findViewById(R.id.text_lit_icon); + textUnlitIcon = mRootView.findViewById(R.id.text_unlit_icon); + textAllServiceChampion = mRootView.findViewById(R.id.text_all_service_champion); + viewAllServiceChampion = mRootView.findViewById(R.id.view_all_service_champion); + viewUnlitIcon = mRootView.findViewById(R.id.view_unlit_icon); + viewLitIcon = mRootView.findViewById(R.id.view_lit_icon); + avatar = mRootView.findViewById(R.id.avatar); + attention = mRootView.findViewById(R.id.attention); + anchorName = mRootView.findViewById(R.id.anchor_name); + regularBubble = mRootView.findViewById(R.id.regular_bubble); + tabText.add(textLitIcon); + tabText.add(textUnlitIcon); + tabText.add(textAllServiceChampion); + tabView.add(viewLitIcon); + tabView.add(viewUnlitIcon); + tabView.add(viewAllServiceChampion); + selectTab(textLitIcon, viewLitIcon); + ViewClicksAntiShake.clicksAntiShake(layoutLitIcon, () -> { + selectTab(textLitIcon, viewLitIcon); + FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); + transaction.replace(R.id.context_layout_gift, GiftAlreadyWallFragment.newInstance(mStream, mLiveUid)); + transaction.commit(); + }); + ViewClicksAntiShake.clicksAntiShake(layoutUnlitIcon, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + selectTab(textUnlitIcon, viewUnlitIcon); + FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); + transaction.replace(R.id.context_layout_gift, GiftWithoutWallFragment.newInstance(mStream, mLiveUid)); + transaction.commit(); + + } + }); + ViewClicksAntiShake.clicksAntiShake(layoutAllServiceChampion, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + selectTab(textAllServiceChampion, viewAllServiceChampion); + } + }); + ViewClicksAntiShake.clicksAntiShake(attention, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + CommonHttpUtil.setAttention(mLiveUid, new CommonCallback() { + @Override + public void callback(Integer isAttention) { + if (isAttention == 1) { + LiveActivity.sendSystemMessage(IMLoginManager.get(getContext()).getUserInfo().getUserNicename() + + getActivity().getString(R.string.live_follow_anchor)); + attention.setVisibility(View.GONE); + Bus.get().post(new LiveAudienceEvent() + .setType(LiveAudienceEvent.LiveAudienceType.IS_ATTENTION).setLiveType(isAttention)); + } + } + }); + } + }); + ViewClicksAntiShake.clicksAntiShake(regularBubble, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + new XPopup.Builder(getContext()) + .asCustom(new RegularIntroducePopup(getContext())) + .show(); + } + }); + } + + private void initDate() { + Bundle bundle = getArguments(); + if (bundle == null) { + return; + } + mLiveUid = bundle.getString(Constants.LIVE_UID); + mStream = bundle.getString(Constants.STREAM); + mAnchorName = bundle.getString("mAnchorName"); + mAvatarUrl = bundle.getString("mAvatarUrl"); + isAttention = bundle.getInt("isAttention"); + + FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); + transaction.replace(R.id.context_layout_gift, GiftAlreadyWallFragment.newInstance(mStream, mLiveUid)); + transaction.commit(); + ImgLoader.display(getContext(), mAvatarUrl, avatar); + anchorName.setText(mAnchorName); + attention.setVisibility(isAttention == 0 ? View.VISIBLE : View.GONE); + } + + private void selectTab(TextView textView, View tab) { + for (TextView view : tabText) { + if (textView == view) { + view.setTypeface(Typeface.SANS_SERIF, Typeface.BOLD_ITALIC); + } else { + view.setTypeface(Typeface.SANS_SERIF, Typeface.ITALIC); + } + } + for (View view : tabView) { + view.setVisibility(view == tab ? View.VISIBLE : View.GONE); + } + } + + @Override + public void onDismiss(DialogInterface dialog) { + super.onDismiss(dialog); + Bus.getOff(this); + + } + + // 返回自定义弹窗的布局 + @Override + protected int getLayoutId() { + return R.layout.dialog_live_gift_wall; + } + + @Override + protected int getDialogStyle() { + return R.style.dialog2; + } + + @Override + protected boolean canCancel() { + return true; + } + + @Override + protected void setWindowAttributes(Window window) { + window.setWindowAnimations(com.yunbao.common.R.style.bottomToTopAnim); + window.setDimAmount(0f);//去掉遮罩层(全透明) + WindowManager.LayoutParams params = window.getAttributes(); + params.width = WindowManager.LayoutParams.MATCH_PARENT; + params.height = WindowManager.LayoutParams.WRAP_CONTENT; + params.gravity = Gravity.BOTTOM; + window.setAttributes(params); + } + + /** + * 关于点击礼物分类的通知 + */ + @Subscribe(threadMode = ThreadMode.MAIN) + public void onGiftTitleEvent(GiftTitleEvent event) { + + } +} diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveGiftPopup.java b/live/src/main/java/com/yunbao/live/dialog/LiveGiftPopup.java index 4e09bb882..04302b225 100644 --- a/live/src/main/java/com/yunbao/live/dialog/LiveGiftPopup.java +++ b/live/src/main/java/com/yunbao/live/dialog/LiveGiftPopup.java @@ -57,6 +57,7 @@ import com.yunbao.common.http.live.LiveNetManager; import com.yunbao.common.manager.IMLoginManager; import com.yunbao.common.utils.AppManager; import com.yunbao.common.utils.Bus; +import com.yunbao.common.utils.DeviceUtils; import com.yunbao.common.utils.DialogUitl; import com.yunbao.common.utils.NobleUtil; import com.yunbao.common.utils.SVGAViewUtils; @@ -175,7 +176,7 @@ public class LiveGiftPopup extends AbsDialogFragment { //设置礼物弹窗背景 ImgLoader.displayBlurLive(getContext(), R.drawable.backgroud_custom_gift2, gitBackground); gitBackground.setAlpha(0.97f); - ImgLoader.display(getContext(), R.mipmap.icon_arrow_right, iconArrow); + ImgLoader.display(getContext(), R.mipmap.icon_arrow_right_2, iconArrow); //礼物分类tab LinearLayoutManager manager = new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false); giftTitle.setLayoutManager(manager); @@ -239,7 +240,9 @@ public class LiveGiftPopup extends AbsDialogFragment { .append("/h5/info/index.html?uid=") .append(userInfo.getId()) .append("&token=") - .append(userInfo.getToken()); + .append(userInfo.getToken()) + .append("&no_back=1") + ; Bundle bundle = new Bundle(); bundle.putString("url", htmlUrl.toString()); LiveHDDialogFragment fragment = new LiveHDDialogFragment(); @@ -269,6 +272,7 @@ public class LiveGiftPopup extends AbsDialogFragment { .append("&for"); Bundle bundle = new Bundle(); bundle.putString("url", htmlUrl.toString()); + bundle.putInt("height", DeviceUtils.getScreenHeight(getActivity()) / 5 * 3); LiveHDDialogFragment fragment = new LiveHDDialogFragment(); fragment.setArguments(bundle); fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment"); @@ -301,6 +305,7 @@ public class LiveGiftPopup extends AbsDialogFragment { .append("&for"); Bundle bundle = new Bundle(); bundle.putString("url", htmlUrl.toString()); + LiveHDDialogFragment fragment = new LiveHDDialogFragment(); fragment.setArguments(bundle); fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment"); diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveUserDialogFragment.java b/live/src/main/java/com/yunbao/live/dialog/LiveUserDialogFragment.java index 3d3eb8bbb..09233e892 100644 --- a/live/src/main/java/com/yunbao/live/dialog/LiveUserDialogFragment.java +++ b/live/src/main/java/com/yunbao/live/dialog/LiveUserDialogFragment.java @@ -109,7 +109,7 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On private TextView mUnion; private TextView mHonorVal; private TextView mNobleTitleVal; - private TextView mLvVal; + private TextView mLvVal, textGiftWall, valueGiftWall; private ImageView mFollowImage; private ImageView mSex; private ImageView good_nub_ico; @@ -121,13 +121,13 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On private ImageView shawl; private ImageView honorIcon; private ImageView mTitleBg; - private ImageView mSetting; + private ImageView mSetting, iconGiftWall; private UserBean mUserBean; private LinearLayout mGuardLayout; private LinearLayout mUnionLayout; private LinearLayout mNobleIconLayout; private LinearLayout mUserLevelLayout; - private LinearLayout mHonorLayout; + private LinearLayout mHonorLayout, giftWall; private boolean mFollowing; GifImageView btn_live; SVGAImageView gift_svga; @@ -239,6 +239,10 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On mNobleIconLayout = mRootView.findViewById(R.id.noble_icon_layout); mNobleTitleVal = mRootView.findViewById(R.id.noble_title_val); mHonorLayout = mRootView.findViewById(R.id.honor_layout); + giftWall = mRootView.findViewById(R.id.gift_wall); + textGiftWall = mRootView.findViewById(R.id.text_gift_wall); + valueGiftWall = mRootView.findViewById(R.id.value_gift_wall); + iconGiftWall = mRootView.findViewById(R.id.icon_gift_wall); mTitleBg = mRootView.findViewById(R.id.title_bg); mSetting = mRootView.findViewById(R.id.btn_setting); mLvVal = mRootView.findViewById(R.id.user_card_lv_val); @@ -264,6 +268,14 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On } } });*/ + ViewClicksAntiShake.clicksAntiShake(giftWall, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + Bus.get().post(new LiveAudienceEvent() + .setType(LiveAudienceEvent.LiveAudienceType.GIFT_WALL)); + dismiss(); + } + }); } @@ -344,19 +356,6 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On case SETTING_ACTION_ANC_ADM: mSetting.setVisibility(View.VISIBLE); } - if (isAnchor) { - mGuardLayout.setVisibility(View.VISIBLE); - if (obj.containsKey("user_president_name") && !StringUtil.isEmpty(obj.getString("user_president_name"))) { - mUnion.setText(obj.getString("user_president_name")); - mUnionLayout.setVisibility(View.VISIBLE); - } - mNoble.setVisibility(View.GONE); - mUserLevelLayout.setBackgroundResource(R.drawable.bg_user_card_lv); - mNobleTitleVal.setText(R.string.live_noble_fens_anchor); - mNobleIconLayout.setBackgroundResource(R.drawable.bg_user_card_fans); - } else { - mUserLevelLayout.setBackgroundResource(R.drawable.bg_user_card_au_lv); - } mName.setText(obj.getString("user_nicename")); if (mUserBean.getGoodnum() != null && !mUserBean.getGoodnum().equals("")) { if (!isAnchor) { @@ -370,7 +369,34 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On good_nub_ico.setVisibility(View.GONE); mID.setText(mUserBean.getId()); } + giftWall.setBackgroundResource(R.drawable.bg_gift_wall_lv); + ImgLoader.display(mContext, R.drawable.icon_gift_wall, iconGiftWall); + textGiftWall.setText(mContext.getString(R.string.gift_wall)); + valueGiftWall.setText(String.format(mContext.getString(R.string.has_been_lit), obj.getString("gift_wall_lighten_number"))); mSex.setImageResource(CommonIconUtil.getSexIconForUserCard(obj.getIntValue("sex"))); + if (isAnchor) { + mGuardLayout.setVisibility(View.VISIBLE); + if (obj.containsKey("user_president_name") && !StringUtil.isEmpty(obj.getString("user_president_name"))) { + mUnion.setText(obj.getString("user_president_name")); + mUnionLayout.setVisibility(View.VISIBLE); + } + mNoble.setVisibility(View.GONE); + mUserLevelLayout.setBackgroundResource(R.drawable.bg_user_card_lv); + + mHonorLayout.setBackgroundResource(R.drawable.bg_user_card_honor); + mNobleTitleVal.setText(R.string.live_noble_fens_anchor); + mNobleIconLayout.setBackgroundResource(R.drawable.bg_user_card_fans); + } else { + mUserLevelLayout.setBackgroundResource(R.drawable.bg_user_card_au_lv); +// giftWall.setBackgroundResource(R.drawable.bg_gift_wall_lv); +// mNobleIconLayout.setBackgroundResource(R.drawable.bg_user_card_fans); +// mHonorLayout.setBackgroundResource(R.drawable.bg_user_card_honor); +// +// ImgLoader.display(mContext, R.drawable.icon_gift_wall, mNobleIcon); +// ImgLoader.display(mContext, R.drawable.icon_gift_wall, mNobleIcon); +// textGiftWall.setText(mContext.getString(R.string.gift_wall)); +// valueGiftWall.setText(String.format(mContext.getString(R.string.has_been_lit), obj.getString("gift_wall_lighten_number"))); + } LevelBean levelBean; if (isAnchor) { levelBean = CommonAppConfig.getInstance().getAnchorLevel(mUserBean.getLevelAnchor()); diff --git a/live/src/main/java/com/yunbao/live/dialog/RegularIntroducePopup.java b/live/src/main/java/com/yunbao/live/dialog/RegularIntroducePopup.java new file mode 100644 index 000000000..b1f992dc3 --- /dev/null +++ b/live/src/main/java/com/yunbao/live/dialog/RegularIntroducePopup.java @@ -0,0 +1,36 @@ +package com.yunbao.live.dialog; + + +import android.content.Context; + +import androidx.annotation.NonNull; + +import com.lxj.xpopup.impl.FullScreenPopupView; +import com.yunbao.common.views.weight.ViewClicksAntiShake; +import com.yunbao.live.R; + +/** + * 礼物冠名规则 + */ +public class RegularIntroducePopup extends FullScreenPopupView { + public RegularIntroducePopup(@NonNull Context context) { + super(context); + } + + @Override + protected int getImplLayoutId() { + return R.layout.rogular_introduce_popup; + } + + @Override + protected void onCreate() { + super.onCreate(); + //初始化 + ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.close_btn), new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + dialog.dismiss(); + } + }); + } +} 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 7c62ecdf4..ad7dd3660 100644 --- a/live/src/main/java/com/yunbao/live/event/LiveAudienceEvent.java +++ b/live/src/main/java/com/yunbao/live/event/LiveAudienceEvent.java @@ -462,7 +462,9 @@ public class LiveAudienceEvent extends BaseModel { BLIND_BOX(68, "盲盒全服通知"), RED_PACKET(69, "RedPacket"), RED_PACKET_SUPER_JACKPOT(70, "超级红包"), - INPUT_DIALOG(71, "输入框"); + INPUT_DIALOG(71, "输入框"), + IS_ATTENTION(72,"是否关注主播"), + GIFT_WALL(73,"礼物墙"); private int type; private String name; 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 00f2fd4df..beb8f40d1 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java @@ -147,11 +147,11 @@ import com.yunbao.live.bean.WishlistItemModel; import com.yunbao.live.custom.LiveLightView; import com.yunbao.live.custom.RightGradual; import com.yunbao.live.custom.TopGradual; +import com.yunbao.live.dialog.GiftWallDialog; import com.yunbao.live.dialog.LiveFaceUnityDialogFragment; import com.yunbao.live.dialog.LiveFansMedalDialogFragment; import com.yunbao.live.dialog.LiveGameDialogFragment; import com.yunbao.live.dialog.LiveHDDialogFragment; -import com.yunbao.live.dialog.LiveUserAnchorMailBoxWebInfoPopDialog; import com.yunbao.live.dialog.LiveUserDialogFragment; import com.yunbao.live.dialog.LiveWishListDialogFragment4Audience; import com.yunbao.live.dialog.ReceiveRendPacketPopup; @@ -350,7 +350,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis //接口整合新加参数 private GuardUserModel guardUserModel; - private static ViewFlipper flipper; + private static ViewFlipper flipper, wksAndGiftWall; private TextView mRandomPkTimer; //全服通知 @@ -948,6 +948,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis mic_view1 = (RelativeLayout) findViewById(R.id.mic_view1); mic_view2 = (RelativeLayout) findViewById(R.id.mic_view2); flipper = (ViewFlipper) findViewById(R.id.hour_rank_list); + wksAndGiftWall = (ViewFlipper) findViewById(R.id.live_wks_and_gift_wall); mic_ico = (ImageView) findViewById(R.id.mic_ico); newMessage = (ImageView) findViewById(R.id.new_message); atMessage = (ImageView) findViewById(R.id.at_message); @@ -1371,7 +1372,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis reloadIM(); // initStarChallengeStatus(); - new LoadDian9TuUtil().loadDian9TuAssets2(mContext, liveWksLayout, "rectangle_new.png", 1); + new LoadDian9TuUtil().loadDian9TuAssets2(mContext, wishListLayout2, "rectangle_new.png", 1); } @@ -2428,13 +2429,13 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis } } }); - //点击打开周星榜 - ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.live_wks_layout), - () -> { - - Bus.get().post(new LiveAudienceEvent() - .setType(LiveAudienceEvent.LiveAudienceType.LIVE_WKS)); - }); +// //点击打开周星榜 +// ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.live_wks_layout), +// () -> { +// +// Bus.get().post(new LiveAudienceEvent() +// .setType(LiveAudienceEvent.LiveAudienceType.LIVE_WKS)); +// }); } public static int pkEndIndex = 0; @@ -2657,6 +2658,18 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis } } + public void showGiftWall() { + GiftWallDialog giftWallDialog = new GiftWallDialog(); + Bundle bundle = new Bundle(); + bundle.putString(Constants.LIVE_UID, mLiveUid); + bundle.putString(Constants.LIVE_STREAM, mStream); + bundle.putString("mAnchorName", mAnchorName); + bundle.putString("mAvatarUrl", mAvatarUrl); + bundle.putInt("isAttention", isAttention); + giftWallDialog.setArguments(bundle); + giftWallDialog.show(((AbsActivity) mContext).getSupportFragmentManager(), "GiftWallDialog"); + } + public boolean pkHandler = true; //左上角显示对方主播头像及昵称 @@ -2811,6 +2824,56 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis } } + /** + * 设置礼物墙和周星榜 + */ + public void setGiftWall(String giftWallLightenNumber, String giftWallLightenTotal) { + if (wksAndGiftWall.getChildCount() > 0) { + wksAndGiftWall.removeAllViews(); + } + LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(DpUtil.dp2px(16), DpUtil.dp2px(16)); + LinearLayout.LayoutParams textParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); + textParams.leftMargin = DpUtil.dp2px(5); + textParams.rightMargin = DpUtil.dp2px(5); + params.leftMargin = DpUtil.dp2px(5); + View weekView = LayoutInflater.from(mContext).inflate(R.layout.view_wish_list, null); + ImageView weekViewPic = weekView.findViewById(R.id.wish_pic); + TextView week = weekView.findViewById(R.id.wish_index); + week.setLayoutParams(textParams); + week.setGravity(Gravity.CENTER); + week.setText(mContext.getString(R.string.live_wks)); + weekViewPic.setImageResource(R.mipmap.live_icon_zhouxing); + weekViewPic.setLayoutParams(params); + if (!TextUtils.isEmpty(giftWallLightenNumber) && !TextUtils.isEmpty(giftWallLightenTotal)) { + StringBuffer stringBuffer = new StringBuffer(); + stringBuffer.append(mContext.getString(R.string.gift_wall)) + .append(giftWallLightenNumber) + .append("/") + .append(giftWallLightenTotal); + View giftWall = LayoutInflater.from(mContext).inflate(R.layout.view_wish_list, null); + ImageView giftWallPic = giftWall.findViewById(R.id.wish_pic); + TextView giftText = giftWall.findViewById(R.id.wish_index); + giftText.setText(stringBuffer.toString()); + giftText.setGravity(Gravity.CENTER); + giftText.setLayoutParams(textParams); + giftWallPic.setImageResource(R.mipmap.icon_gift_wall); + giftWallPic.setLayoutParams(params); + wksAndGiftWall.addView(giftWall); + ViewClicksAntiShake.clicksAntiShake(giftWall, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + Bus.get().post(new LiveAudienceEvent() + .setType(LiveAudienceEvent.LiveAudienceType.GIFT_WALL)); + } + }); + } + + ViewClicksAntiShake.clicksAntiShake(weekView, () -> Bus.get().post(new LiveAudienceEvent() + .setType(LiveAudienceEvent.LiveAudienceType.LIVE_WKS))); + wksAndGiftWall.addView(weekView); + wksAndGiftWall.startFlipping(); + new LoadDian9TuUtil().loadDian9TuAssets2(mContext, liveWksLayout, "rectangle_new.png", 1); + } /** * 守护信息发生变化 @@ -5073,7 +5136,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis .setType(LiveAudienceEvent.LiveAudienceType.GIFT_POPUP) .setmLiveUid(mLiveUid) .setmStream(mStream) - .setmWishGiftId(data.getGiftId() + "") + .setmWishGiftId(data.getGiftId() + "") .setIsContactGift(true)); } 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 1be8185f3..a8d471f4a 100644 --- a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java +++ b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java @@ -8,6 +8,7 @@ import android.app.Dialog; import android.content.Intent; import android.content.res.Configuration; import android.graphics.drawable.AnimationDrawable; +import android.os.Bundle; import android.os.CountDownTimer; import android.os.Handler; import android.text.TextUtils; @@ -80,6 +81,7 @@ import com.yunbao.live.bean.LivePKUserListBean; import com.yunbao.live.bean.LiveReceiveGiftBean; import com.yunbao.live.bean.OpenParametersModel; import com.yunbao.live.dialog.BlowkissDialog; +import com.yunbao.live.dialog.GiftWallDialog; import com.yunbao.live.dialog.NewUserDialog; import com.yunbao.live.event.LinkMicTxAccEvent; import com.yunbao.live.event.LiveAudienceEvent; @@ -663,6 +665,8 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe mLiveRoomViewHolder.setFansNum(fansNum); //红包相关 mLiveRoomViewHolder.setRedPackBtnVisible(Integer.parseInt(data.getEnterRoomInfo().getIsred()) == 1); + //礼物墙相关 + mLiveRoomViewHolder.setGiftWall(data.getEnterRoomInfo().getGiftWallLightenNumber(), data.getEnterRoomInfo().getGiftWallLightenTotal()); } //奖池等级 @@ -1903,6 +1907,18 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe } + public void setAttention(int attention) { + if (mLiveRoomViewHolder != null) + mLiveRoomViewHolder.setAttention(attention); + } + + public void showGiftWall() { + + if (mLiveRoomViewHolder!=null){ + mLiveRoomViewHolder.showGiftWall(); + } + } + /** * 全服喇叭 * diff --git a/live/src/main/res/drawable/background_regular.xml b/live/src/main/res/drawable/background_regular.xml new file mode 100644 index 000000000..2f431e6a0 --- /dev/null +++ b/live/src/main/res/drawable/background_regular.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/live/src/main/res/drawable/background_regular_center.xml b/live/src/main/res/drawable/background_regular_center.xml new file mode 100644 index 000000000..9f86dd090 --- /dev/null +++ b/live/src/main/res/drawable/background_regular_center.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/live/src/main/res/drawable/bg_gift_wall_lv.xml b/live/src/main/res/drawable/bg_gift_wall_lv.xml new file mode 100644 index 000000000..afa19e0e1 --- /dev/null +++ b/live/src/main/res/drawable/bg_gift_wall_lv.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/live/src/main/res/drawable/bg_user_card_fans.xml b/live/src/main/res/drawable/bg_user_card_fans.xml index 60ab9e052..0eb0c90c8 100644 --- a/live/src/main/res/drawable/bg_user_card_fans.xml +++ b/live/src/main/res/drawable/bg_user_card_fans.xml @@ -2,7 +2,7 @@ - + diff --git a/live/src/main/res/drawable/bg_user_card_honor.xml b/live/src/main/res/drawable/bg_user_card_honor.xml index 7ad95101b..7940d56ec 100644 --- a/live/src/main/res/drawable/bg_user_card_honor.xml +++ b/live/src/main/res/drawable/bg_user_card_honor.xml @@ -2,7 +2,7 @@ - + diff --git a/live/src/main/res/drawable/bg_user_card_lv.xml b/live/src/main/res/drawable/bg_user_card_lv.xml index 3190220a6..2ee7d3463 100644 --- a/live/src/main/res/drawable/bg_user_card_lv.xml +++ b/live/src/main/res/drawable/bg_user_card_lv.xml @@ -2,7 +2,7 @@ - + diff --git a/live/src/main/res/drawable/icon_gift_wall.png b/live/src/main/res/drawable/icon_gift_wall.png new file mode 100644 index 0000000000000000000000000000000000000000..d098b121e1f273409ac7d0e9248833fd1d0a4d24 GIT binary patch literal 8250 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 literal 0 HcmV?d00001 diff --git a/live/src/main/res/layout/dialog_live_gift_wall.xml b/live/src/main/res/layout/dialog_live_gift_wall.xml new file mode 100644 index 000000000..cc3eb7cd0 --- /dev/null +++ b/live/src/main/res/layout/dialog_live_gift_wall.xml @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/live/src/main/res/layout/dialog_new_live_user.xml b/live/src/main/res/layout/dialog_new_live_user.xml index b10ddfbd1..505984def 100644 --- a/live/src/main/res/layout/dialog_new_live_user.xml +++ b/live/src/main/res/layout/dialog_new_live_user.xml @@ -401,29 +401,32 @@ + android:gravity="center_vertical"> + android:textSize="11sp" /> + android:textSize="9sp" /> + + + + + + + + + + + + + + android:gravity="center_vertical"> + android:textSize="11sp" /> + android:textSize="9sp" /> + android:gravity="center_vertical"> + android:textSize="11sp" /> + android:textSize="9sp" /> diff --git a/live/src/main/res/layout/rogular_introduce_popup.xml b/live/src/main/res/layout/rogular_introduce_popup.xml new file mode 100644 index 000000000..8b354e0cc --- /dev/null +++ b/live/src/main/res/layout/rogular_introduce_popup.xml @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/live/src/main/res/layout/view_live_room.xml b/live/src/main/res/layout/view_live_room.xml index 7e621c3d3..bdd47344d 100644 --- a/live/src/main/res/layout/view_live_room.xml +++ b/live/src/main/res/layout/view_live_room.xml @@ -351,7 +351,7 @@ - - - + android:layout_height="20dp" + android:layout_marginStart="0dp" + android:flipInterval="5000" + android:inAnimation="@anim/anim_marquee_in" + android:outAnimation="@anim/anim_marquee_out" /> + + + + + + + + + diff --git a/live/src/main/res/mipmap-hdpi/background_gift_wall_item.png b/live/src/main/res/mipmap-hdpi/background_gift_wall_item.png new file mode 100644 index 0000000000000000000000000000000000000000..cc3c0faf7f0fd1175706bda4670afffaf4e24f71 GIT binary patch literal 18172 zcmV)iK%&2iP)PyA07*naRCr$PeM`)3$#qtpcE9{c?7VD;I0=EI`}VaQ5E2R#7$CubWE4N71Sw*K zgb)&gpfJeW-~IUEU(eV%6@b6-Uykp4;?a;nsW{_*!D*|r^1dgq}@cJw5Fa7A>Km1wM z-l+h5_S46I)>`{FC*d!@(%R?0R2}A~-LbWO>)!dHu05^@+!qAC|AVbP`NTTZq5a(5 zj~RkQK?LVjO z!^5y%d1I^WTn7y!ul6mDbwd zJ9YZjtF8V1AGUU`;-=t?oT#l`tI9jI!+#2lsw|XK?Ne>XvOUM`k(ZI=He_aFM%N#- zKHm60@V%`)@p#w#vyVU0{`L?5?GL})+KVq2 zqgQCK7sN`xtj%p@Qg2)f@(Adv&YA9)7%L-8rfZmpP9SjBgANgfDN$EBC}T!f&+g-) zwZp1&B=58Y{m=(mJFJQxTYLVoN7_$5^^=F^B21-SpZ(b%%E@4#*|`Bd3q<9} z!3b~^6SfaZiK0S48MKtW2RV@*&iG9HMV=s@ayYilW~@FA>JNWceV}j;XS<4Gm8s!) zljxQ277=LAI%7pax6Ei_HV!8g^bPqNx%chwZteZwbu$x!iT}49+kbuak@ky!<)eo$ z*!MjEpa10Xhu(Ok{jb*AcX8l-UlDcHXLjn=;YVr#FyPU~PI+#-l)2vg|P_H-RG*#hjk^s?nhcMuqYL^}c6 zi2&Zj1Yk04ZQPeSD&vFa`f>#D8WMvunXSW3Ij z>1RKEe4(}W-qV+-`+MJf<=)j!L<=NNzoM=lidN_sWleO-W|lLsOkonVfCzz(nR5Vd zW!55YNb5IAqMHZTv1t!@0KHF^l;$n*;8;Bw0g)F{T3y6=A?XJnj#*&{4kE3YyAV?m zNd=89b}YCk2nPsNa$U#T)O(Ek>bu2frXMb}02fOT9WRBIO$L-SHyaj$jQuO}t?|ib z;NH$=PQ@#de+tIaCe8ZqYj;0(cpnE~&(ELxgR#zA$N|7%B4^)uc6-5x!P5JR#@RSL zE`nwOs>TW?iF=y`HalS107R+S%Rxtz!loQCM=$yYiGa8);Tu*6kas9o-1H@1qkXJ5 z@L|HXv%i;YqJU#EW#r3d0Z*O^x=IpOvl%8? z#T$hsCoW}&!pY;MN`%;d_Y9a3&YP(gMR9#B?j3qWXHt3r&0wfNWrr!?k*HDoD6qR+ zs}0sKvYAjhPAz#9$y8!=NkcoT6(Uy>2$u)mEQIY?Zw|)nGh-UfnCg~;hnvD=!>Po- zUNZQRnI)*oM2pg}O|F)vxLXu0M?BJbfyYkftjhWh06Sax9s$*|ivzSj@vv?Zs3np| z3Z-kdlvYWhf-maL!K4CZV>{h)>HfjZ9C2H%g5gHDfLk+In%o`;SjWRHC2SWhOEl&^=#4Vv=b_Fij7@J4UkS|1B zOQIVbX|o7tFg6pp(|3}$x2x|#u4XR#&iu=MW*b?zK-VE~53N1*{WlCPZNhW`l$kae zW|g}*6Ydc%J6@HkjtJOiS=xc@@@P7=dyJjfb}!5W6K|nhkj3%bjL)s@ja1OCcAY!OG<+bj9j_}v$<_$ zs|vcGx=D@z>H-DcKEQi(mLwtAdIG{sMz`Gt{<0I`vprce+zYkaN1(@401km`^CsD$JXneRNOcDM zozLIQTq=q3q&5)QoBrbm;XCEL@hDLZD;*i&&UnZ(TLQ^!F6@YOz*Pa;z)1evXh4u0MDB1XJ;~8 zu6o#e32C;El5@^?nGX~PD*+Yx(3@=Vd&Nx^CsP5a2CildkAzwO%vc3fG@B?8yoBJ9 znZJ*+cs1BO=gpEcnmxTB@`9L&%D7e%pr=1>vP61i{#PrIDh3rl?!iA={V`YSHQ+h} z&Stz}_Hcd~Fl*$geKl|+*->_kW)d$uZu)?diYR3{juDYe#64OHq0X3yDt=!2s$FMt z4(s9uWw4A@vv!mKW&$@$01Bhw`Po zIP4AQImLe^Fx9I9$$%2r`*{$504RGZ@!I zL!0$O2Pe5#WxCG<%!0p{5rXLve+{w(N%9jW8wYm?kqF*wFu*8+V?%D(NU6+V6|B0P zAaklfRksO3d&KU%xhI;zFER-@x25n|SH@u~02Q&z#1pfD1#5r6Sw*Y`5Ilj8Px&uh zoJhxqrWeC)D!}b&x);>59g>h!U^J%l9H}B;heS+QW}~tVcj`7z^n1Fgds^fZ+==Wv zm-MqF8Aws`u@0VZVJDWkB{og$GUo=zjhQ(!eViue$;7 zV+&4A1>gX_w=AM3+bux)?56t7>@9sp@9Rq`8m<4zS zS#=)z8}aa($+azROx>J7)XjY!2e95GEes6nhqr1VkYyr+S$}igTM(dcmO6S88CIlp z-hr$*J6uCmqKEXz?uDiIT2^@(S*A0&cWXgKav*#IyQ+<6*MwC^!Qdr)l13#NDPiw5 zKw0Gg{M;8;>Efq0@&Vr}P^J+(SG=bLeWe1t&sI1sd8A?T22)*>Or)8sEPN0+d_GK& zFq?V%xK0q32%{QtlE`*-(SL?@A@NQp1+N1FRs1E)0ypdmo~AI7Y1g(s_#3?J`$)^BDJl(sF}TG6S}Ce>%6K{Vb|@T%+hHiRufY2b=6 zl{ORhOf~g_QcPk~ab^sC3j^MQ$d2?}0A?wGu9p?BtZ}SOAha@G zy7L&2up-~>Uf3Wg^8a45Jy<($1CT$Eow@P71DH*hj9X;$jv-Tc&*4TY+-WcufV}+l zwv`bbMoO&-`8(BL$x#~-xb}u$2?qK;;}c%6zkWQ1I=dpmL)fA2LUNsh~9 z2j^)*SGWOF>+sqUoO11Nd%Vqi#YiP;D%_l11_EC70Q|#sl*&$>GAs%fGtvm@1uZ9l z!ZVY&`?+~$6tk*Fe*PYH;Ee&XQ84TvMtzAi8=s0DyuO1NZEz(!dunGi<)ybFQrW3R zA1i+&7piR)Hu&lZ6+{YeWtZZ6CGms&VTYV_nGe9!J933o>~*ge+~^SRg4zuD;B|g;XmDlso5N2JSj&ei0C$jfN0$-us9yD)bM~Mh_>!_7Fqy8y z&m%A$fEVQp2ybdiGplg4wN?+nKcY&XXAT@NGe{N1SV&vYn9QAy!WZfek6Nim zlqx~X0jg%t3Yn~pkxbd{>4?NsxG?riKII#46@a#6w^5vDE4#YhV__aqY3$8ACsn_Q zljvW>-wPh*p2rV`H|wVSy#g~AfKdi7J}R^kk?p9>jOp!SF#t^bb7!X6{#C51?Rb1| z=g!07w)9s-%xs#`UF||+@~+x7!@zvD=c(_#X&rCEoMyo5zbgW70tB)J*u!MP zH2`nX8BN-z#w4T5zQuEVpZ20T*Ff}91J zS9s5iGt(BG==Jk94Jtv0_OhIaIG$`z2Dj$~c+!J6k=XxA_8u&8EcG`Bjv*EVwjh$QAgygSxwza0fis== zj5%B9?iu4@=#y}1E&wxPTK!NZV+K%EFf&nc9j?~rtdqCtkmS%@69=>G$J)IH%f$9?UkH^DJ zHkhl8hDw3&IWLpP#cj0F!A^}fBUGX9ZFZnTxp?)3MvSjlwPHdh3$2$T`H24EQ~r(w3t zI9L9)|HFmAh5dd1128gRk8!hW^Gnn-NQp{qQ=!lv+beP}+2&HVnofIdj`TQJ$61|b z+mk=)0r=&6J?$;R_dev_4VTN&CV-WkPC>lrvDOTOPF$O)+6)O`c6fp5>1g$est*J# zOEXb#rFg211ga6k5@kJLb2(MlA&b-v?X$np=d(e;m@pQ~Cu&?T`9*$GzQS5u{jHLO zm+Z4i1$8Dr)C2Ie2@@6gPAvA>~jp`z(JJw3VaNPtj_N83Jtq0 z@Cx)Ej8P6-iP8J7r>)9UaaqpV$-}X$jR&eC;W07c(`IW&qk_T#We>+0aN<~hL)ddB z+6Mt3B#Equ|FEFfr+jJek9j|&iTe4gJKb;Lx-UVG}z=$s#= zlFp*b+DQeg*N1KB4h)uCc!s&Br^$^HqzVcqt_qZyz^@QnB{Lp3OL$&@cYADZkW7tmxV1=|YL&D2$k$`=wr%vn`QW6`3I**;^07BJ_}&_TfG$)U}H}pl#m7tSAhEAuau0eE%J0a0F`qw!Z{mb2DiVL3}gl) zz!p5PVP^!f%!vJDCQ?MA^*1kJxAgQtBuvPN`&vFtfaFuSlp%KLEHVZQ3~IF_HHw1_pj2w_#cG zRCNaY+&TlQWfBHDIyP$S8N(n}3!Rh`}z*-F(Hq<>1Ez;BibP1n$Q^RCua@X8ZXJ3^kK0jH5}b9)N#3E_arJ zR>>Wl;LP?6Oa!Hp4Wl-$EYO#;JF`QP!^`BJ^EMfh53^YZUB)8a6lrKhv$?H@dT`rK zje=uirr&hDxqVnkPRh^OY%6Cg(nBTUVXU=*7XSzru3+4mQvA@L@m4 zSPsBm0|HYyb8bKaQ21y4GFyw|iv=GB;tjJ5)^{QqD5A?ih7A*}5r%1CjV`;vjfFjL zTnuA4NuUy3i*u=lHJeo3F)Wn@A%-L*9KwmUCk0VQ4@nR4qs+D$X8mGwyg4L@KC>1Q zJQJL;U;Kp|S)`wv*i}L(B#DhYdVgxU2K?NgZf{5~!q<>rbg{o-cdjb{k%A`%VZVXk zbW;{LQ-&Arnxkw?CWjH;zUQfLh~RshIK2q~JYbEs;KG2`EJGi-wsf}*7nQ|uMuPQj zPat?cdte{7U-HE&3;m{&3curJQIV4=oIZrt>?Rq$)CxC0c!zTt-+~Z0)C1adMs69f ziK;zRtM-@r!JRcKBJeTe|{oXkXt+GQYl6%oX|5us^m4}3(x*2kyLQa^x~kc2K#1g@183)jFN=(DLGaplB)03*vQ#( z0RHxA69)cuA?pZghFBcwXj(BK%F^BpA>|4{&6G&T88W+V$%uY$kMCCt#rwV1Rk&xH zEsfk0V-;8qxYCafAw8Qndah%!e#)L~23f9WM z^d!u8-6$463GP97D& zGXpajQPM|(;W(8sD{V5}oQWs=+2lZ6nzg-^V>KZ6=!<QoO(vQL$lpkIY0C<<}zyUDxd-kz?fwMS%}Hh3wJ?cWoceF!gF znW^h|OLNv+JV;>6snh>>v)Q}xjCE9$gj`1pozgcKF#GT`FLP8|^g&W%E;v*+QVjPX z3cH+WDdyPXQcgXs)U#n>i6ZtLqq8OIGvHTO;JiA8f#;jW{)T9`Y5~PtM~iWXHTdlM zTeVMQY@CK$Uz`*;ZC2VUY~dl^E>hKa3ZEc#4_FJ|xn0%zmq_m7#L1Ea*Xle@qLqZZ zw&`O>c;hv-6i~@nB{mFv3{v{rO_s-*O&FU2XXfKt!q_SC;pyfAoCUyoz0$wZ=3GSf zjIpQBxq8m_4<^xBQGG!(xzKXQdHOqVF2%c`X9nP`rE1onlJRC>#*{&E`9 zN`?Cc@RU+n<2_36>67Vkz3x5YJdMo$0GxGf)V?YUr+TY*yd^F}Q5mDs#)G)px7u#n zl@C{kTQ`%Jx3^{ftRc~|Q^=YNK(+q2@3J}sYdH=c1e4`p-Np5Q=Y*hM7%<>~Ry7{W z;+n#{r-X#?#^Lciy_KDaJLok0VqPUIrN8G7g@+>gERHsw$C+6^pgfNwYD~se`5Nt2 z_a3SN>a?2=z{&F2Vlmw z?0QyLsQz9}plTd^R*`EAHTEpXm3oJPSAA6d5$TK9a9JHa*XYT!dWf;g>YW0imL?eo zqFR^jtlWcB7-X2+IM^=JJL9g0kK*t8T|EH5mY}bQpVeQ{THm`lY!0rHA!^5C?9oTr zSgBzm@|(_H8&5udU#WM38}KD~D|VtS5g#hDlzk;d*G3s`*>$$1f-wg=>HGA1Z@!3Y zz$^e~fVj53B5*}uLEzyF!0Iv}o9?R)o*B<;>n)M1I?OKHX5`*x+ZpVtdR(G*tB&;` z+u0IyY6kSy%Na2%1e*av)ev4S$MsUSj`!-58U3pEMzxT-=Ty4#Eb=GA% z087p%^7THX{xH&%R}kFH$e^+ z`_%*R&xw7e03E?>FG_L=3MZ7}OO=qTj<4=v3xazYM735YgiT~^MF0RG07*naR2?xa z0%ucNP(bukd_Z<53&~xYkPdhhb|;4Eq4c$5nbC0!`Klux558bUVE2z`q%)lkZC5~t zcwbNX1zz_Tx0yc%`@oU?_-17{e#b$F@4UqmZN<^x7O={WG@&H337+JHvb^tIJghTs z_?+I1{cSgr;~H=cKuYSpw`a@D_kzPcp?Mo)40066NFwvO6B8;~mtKTiv3C>v;7N8;e|S_N^2z2YDzFl$o| zz~|Qhlt#nUtH|Y%DRP`=gqMk(glY*=Iz7^rffvbZa3qq6ommZxAsgel*8`m3`t7?0@y90s#P zG$Fz^?=x8sPw7o4So`6PCfE+HT#X)T2cnNRlYl6BjB^y+>~IYD9?k2(JsCM~_2#=oO8^Xn# zp;V%<-$bfYgIz)(w=6k`_mmn444=^}k zXX$Qr7S%f@ZkT;(Dz-q3NWKtdZD9VxLayszfl794+FJarGJD*KWV=wnd<5CdlGEmB zZ{wGE<2uf`T`qvsZL`P#J^Ogx>BE$WdcvYTj)9}V*MaNc48{iecJkfR@3{dxtO1|@ z#`ussgF$?iCsoNz8azBNlJhVLDR~{td;^^HiQoHEovj{a(C%fY9XQju&Ab0eHeB1&F_L3Rzvt;oyYWjJ{D zM#+;op?vNIs7i=ga7LWsU`Jm>SSkJX1t4hO|D@xB-K?>8z}ZU%Oft>5q%rw`pw*?z zm{em9@U8zgZKf{nO9i7YTT2?(5I_(zx<|E$~m64ZL)`d1tvf^TN-FA7r2L8~KB2F=|Y zgQ97KQ`f5R@-@_DOPm-{oNO?NLOm&^4&7%qr*VVqJx4>#IGN*!Lj1dQl7@hMH} zjn#Nc5vTC=^ME@VX_&I#8DDWCFCM48+$)7Tva7LTxcn!^T};OM)8UZ&f-2Cz->+3T zGS9HaFxPh$sSe&>xak(70e?JsQ%UVs@+)u=nXtW z!VIhm>6tt@303Q%Ohy#^GlZ==DAeDL+0;G*_PQpbA84)9%kNn87E4c zFlWzz4ioy<0aN&v1#U@8qe0g4rxTr>21%wCH+ zTRu8d3f@-?&pe3s0upSqfZv?KK^@pP5uXPBFt2Fk3lLS%)Vt0!h6#GQ9Dpy~tQ-4{ zP9ziTM)a{%3P2(;smMWY5L3U+TA%Mbt?lKBL97o?pQ{o>vVhugxNqqtqje0q`xk71 zD!aHol=n^7wV#n}qZZu9#fJk1q8TnoxmDM}FLvGA`s~>dAMm8VZRv>jfVrOqg}`!C z%ai?f-@4b7%ExOT`3$1KKqd?13hRLK0kirN^b~;NUy$re*`gxzHpa-76+D!5M^KqYTFqP(PL zl0KuG<7mSsAS2y_x>G)^jQZ2_vRzNQ|0$p4VjMhQ8s5rBc#V9&xn~Ib5=%FQxu;Wg zVzGAOIc9uLcSE67mwEu6X21vZFY<$@Qkv;RN6rJcY3?5VoXPMu)qLB_-s>j@&XaR% z0eC6J-*gN()9_07N}D$wZWmPeHt@MEnNOFOpgU&3bQx8&YSS$1mtFUkpu9vxQdDGK zibS_HRS9SPu{HZwTsxMPzhWT8-%$$m4Up zK()+r*#n2ks>qAFaV?>03vO@vf&EL9b*#;O%gjFS(FW1F z6j3j)_Ey|rzkB*yJ5L7s3)@uvCHPVgz?ZjP$uQ6Sc)fo62wZ)1`xu`y!ks5?ddK$x zMF5^N@Y}iXH7F*${}u=9G6DE7fRyQwU7z5@rfGGFw`b{w%j9Ue>@DNfvRm1DEb$HKuBh-!V`Tffb3ppcA!$ zdrzz)7xiTQ@jjP#Uoj&D>&rNJI7aoRy8p&p$m%TgKi6IvZeG1^QFgE^6|vv$k|R%NOjK+F`h{Xk!~VZ>H+vFX^|Dfl|VeV z&9&aCBbe1l9xec3ffgb05jJezcufP`P?= zTYC2>US3v{grT=s+k8(;S8st8E&ewC0bOjRi&&Qf@VQqVCzrX z%Vas;dI1i<>;VLQF^}}X1D(uPJj}xjz@-}=wy98DMVP1Tv0g zNyS-a;K8A6_a@V$jdT$+zhPqsv*1gfmv+?GO)Bsb-yQ_mJ;EP?$4fAaA5d|cW_z$% z48Uo+>d;i4rOmE8kKSB~Yrxl>>@e}NsVGBlG84^=o&kzGOhE3-B%*;0TWCsEeD4k#~KEVhX{$0J~rm^{DmDyT|+4>vFPa2)UNYG6f) z1@*57;Oj6YuUd4cfVRWHY{kk%FGFsWUK@5XaOT7E-KxN5nM(Sg(>-SnPH~F(frK~) z3GMaT`aNgAA<(SN`ad7?xO`1DEGDTnd8Vuv-jI6M@8AlnZ&0rD-wuGzqw zrG`vM2UBvEA7*WkyUDV^Rv9$OJERcXA;@6^X&|(7UW$=j)qQ;zb5*bh25c(zU<6L6 z+OF#hwP=R`voUR)aZvIhn|N4Dke7PGuw7G>%lZyJT=~&AlQ?Uvjr$}4&g2up?!4oM zNns86-0S1yt7a0Oo^h%LPRk#NdzsRky&yK_^T#R(Je@PLZvsUbTKFy+pZK;pK4L?F z;E>bEH%v(MkyfR z=#1FdKC63%%#E3Z{^kJ898tZV$z@wz@(EB>TNMxrUv%t-R7nJER1xRD+n8MIl~w@4 zPaa3IK;rAFy%z+PfQrWNa%q67kHSf06~b+vsm_3I0P=YSjx(0=S0%Vc;`D>tzp~D& zAQGh4E`Mz^%svEEPY6!EBM(mDb8JXo6~qg9a2XHvPUP4yb+2s0dZ#b9R7O(7bI91c z7y96h@m_OT4IgE1r^ep|H=M`bp;mqrzz?;ccMP4QW0Z^+9i7;~@5=%B+#5G+#bD~S zpRpJM5bLN-lE!*R)oGZLEp72sio}NY7~r0NhxnxNdmo+-_y7(}r>LXAVyJgk=im#8 zhwKaYpf-iQk}1&heI+sV<1l65{LXZysQ}#$xx>e zA2MDp*PX*#Wj^A)hShJfKHy0KJ}>G6CRnRK^T^G}aSdnz=sBtQJ?oiuQ@+dkY%(O> z-atH}w%H_63GRvv*5?v74+-WbcW%^)Y*5!Y=S53Y&QDxpR`F9~W_`2kp5L>6ioel! zD&OGPQvsMM$4)OVouDI=FC?Q-X!Dg*?=W#@Y>N^hUdsZhVyhPfQ4-0VK9J8byo!g^ z&z9@6nerCfSMBjsIJdtiw;X`azj0H;8ObsdNTrjM+t=i4JGc1^BHR`}_dg*TGSNNb z0nxlbvATC=rd?zy9h1mcwq(g-^Q>*!VdCX&0q$NBVB34U%qf(0uz6Jt!(wwLMqU57m`Re^r~YjWe@~N%F8@=e+SbLV3?<)@vob$LePWLn8 zf}aVWP0btCs$SG0zU&{zsnOx7&w!nA4LGwOZ2{!%DhWqc6Wrb>nNdHHwQNrc$zq8N(UVJpQk_UpLcH( z6FxtX&HWWwl%M!Jlfyb>_6pzD18_I9ou7G|vIt5vhAQ^i88bSnO%1RAp0-&ZxIXwL z>!)qSi%((C?xy zC36xwRW(eCxM}`?Y}gloC$$6Xr)+`swR;0J8Bc;BntaYtKMk9xp+W&p$?H#{O@aS#f7Hry7@bRQD-NL#79xJ^{=AgS4R6&=)A z=r_d&zHV5m@0AYTW{$@f+CW=WQkyYRq5v87888a4y;shm~NF| z0=v3sUhboAO14)AWr2s|@EGV*g+0n<9Qm5bVh&`qfgW}+kn}n+yy&%1^h;^8F=02{0x{8Ppy};J{8AD>u}F;d-_yKP_-$mAF!^mvAsGdvQx?7 z_L}V^U!~@Y>b=S)prc!T20XpL5ZB1jO1@;ZLSDh5hx>2UxLCLe9O|W4X+4X5eN~u zOaNBa-d=5xIjB-^%#NRp`Bu1I#pImYxH`sL0Z(2gU&yBU0K{TA+hjS%L0;cIMYO8P z_@=M|*b9D^H zd49<_Sg{S`DBCEj@I%FGMNhAd7e^IcJRY!}S&rE|7Wb>zsC;$~ejW#A^3$ySdpS_? z*E4YRdw3u4*+=i)LfP|Afdffkcsa9LU2#xV9GK~u$(X&a5@I!hXGtT|WhOC2ZL@J^ z13QzK`DoVfazYTx;F2BU`0)%ooNTf&?E3BiM8Yxo`e!hHIA$3v$w<1HL06f*A1)WF z9(CF+GC{sI>nj@`du_n|dZL22a`ExXr>+~@MSVLg$(|AX95kLKvDn1pz}aysn2`hv zk#Kw?t~fJ(kwpQffaX_sbY}x=5g%)Bc(_O9l85meMGo#P$@Ltzo=@2On~ro&J$$`c zy)0_cGKO_C`Mv3?fccMc#N=(n#rm-OP@IA_@Ti~{@{;*v$)^V)ym8H5?TBYvF0$a& zkoanR!@NENKDJ$gZl>Aw3nSDrK7uQbRo*xQ&u`;G+&jl_MQzC3z`B8esH1qDKnET4 z-Vk`zqZ3!1alYz=eS3hf9g)aAIk0RkT>n1}pL6cXZQuEFG zt(1IT7OG_*+Lq2zqy)<2zI-j>00%YO;(caJlwTG9m}{(?!cDc|WQhF3#HYB-NkDzJ zetfMQfX}S~$iPG--8j-&%6ZBuBB)@GoQ$#=R0LB6wIZeG(4j3W=_IQxad~1mfiZbi zfM;#00qYT!6Bp0cYPRPj;sw5!6p?!>5IJz7#8<^EvS0ZtO915>@H7K@24|TUXPAwW z&H!|G+wS5o6zr=lVB^Qh&aIIH}U}?+zGY6 zZ7q*=iq*Gx9^NuEB$XjE0+pOq67IfOLEOBe-ZtD;ehse|#BvKTv<)A_Xz41> zl4l;MS^V@}c?oJWAa1H`*2e1>48~>#q;%lTAUy$zO^$BRI_8ia!P>41kq>8WJTS6n z)?kV>(0fqAco=Xzn=aQ(U$r|XHe808Uu~oq=H`sGgEzZI8z@7tgSCL9UAwy{0NLSHAlMis z#{*_CWbMeAP6d2LUPM3zTI4)MGEaUsYok3ZS0zA&N7eo;$eBnOjHPh}le2(h8#7xX zU(NW@OD5U)>bjT2&A0P2U;#+aSfz{+OF5&GecWK6&4)^s&)P(UQL{4YrU++}CJ%?q zSQlH9T{GaKFl{I-v!K;A(K<<`7poOujgC*5xKD$4BweGSKPAHm2k9^jdKEEf4@cad zv`e}g>3D;{e9)V(%o<4N9i9nwGu9@I`4EgS1v9aip+$gpXe?;VFUckz-)tWAa`YHr z1OL1AV8n?ix|C0mhr!q#CfLln`^t?X^EDt2h7MT2@5WQ{FzkLZ5I~M0jz#g*vA{m| zH}1k&L!53^+M}@-!0gdBK5dl)5A{PQ!Pt_xsvk~gypiFhYqX7?CUP^phmjgzVBBX0 zK8e@%1n_$-j)X!BHjIVn({mupUS$qRgP*FxdfUUDrpWF-z6B&WHSp0UDZmnUsO{@| z06r0Ue!Qj<2$K&IS??UqJ}^X-pz2y~UyzmcJ!jmkZ+1OO*fZDMU=%y786KAyx6cYB zjQKsQOSQe4(5ijUX=nc49e|wVqurkfKvql7(oMjxO_K@DKu_nFIGr6-1S|Nt= zfvGWTn+m4PH<8KF_~+_YhMGYRI?m`@@l7?+l>_j(C+_`xX7=AS*wA4Hlv%x0dv`o% zN)Hbd-Kh{ecN)Lhaf^7*idBbuW-B8c;}Ul7#d6QsUY|@>IRKxr9=pS!WoK3*HNzDj8)LnAswo5&CLf7Uh24-i2lds) zndu09Hb05+wm2yXDn1U$l;jM$;rO`O8zjQvQAT?-k#~Mqxp!Z_(JtNveKMcIrjkdp zD^@yvDU-n}7u#3(pQ8b{WeSa#F+sl|`AccpgcQbW5f^zpoeHXGXSe7R&mLZQD4tC5 zko4K~<;{)N-f#>LPx1Xl1F*oe2iBzGl#ImDq;+Y-D*B!?X2sTu{8>Gt_InfGtPT~s z?pK?KE&$I3bGH9%``d8Lv<{-fr2=ZkzKY&io9z0GK9^{l>XSAYwaA*61Ms;g3%j7R z>!w-60&6luXNM}U^Uf4}mfnTV*d%N|8Nsfs@_=UoccJbXgw+k6z3P+$@YzBQxG8ow z3-$>$4Ve@n^-IxU97_^a-Ku)nkQtFHYp^JhIRsz6X4%>2iaV73j*ZLLlQ&BHhQ*AZ ztrn>IFtRiAm-1_dtLGzrKKanv-EZC~7jMG6lYYjG#ybivJX*=L_{G~fVucYf-qnoA z$v}HRB|$a(&aI&H=67+P!|5?6ccaPLd8B0h858{M1(4?t)z|#Un=9V#WtOxs2{KmE zZ5Ge28NR5o@lAW)F1piCPCACI3PhB1Y^^>6o&s>@AChRM-)*(6?)2Tp_z!YyWzP$Kbs~-p{f2>Uh8VWte2w@3+1WYP|c2 z!+j0F2La(Zp+W31rV1{}O#4 z0iOn7`J@dGV(iM8l{SEVRt_&sRV^IVlvUrJ%k^O0Iv0Rd(6V;f^#~a5Tk?z$nCWoN z^-AB9O4ZF4R6mn#M5N7xp<9F*=rwG?d$`Z&!*(DB)nMSV#`~Qn%Ts#p<&J~#9uw*T z_%87l8YYls3Io=Qd~TOHMrAf8Fgw#513|CKRmghV?bepBd)YbDN9{ajc-eKt0DZ## zQL{&7MdFc~F^G~Tazyl7E~}kMw$0;%H+$jt9&ZsxX9sxL$)0UiI&?U@u@ILNY;7#-5!%?4$Z;*E7tL9loV|gjptE`8E13k~f3jOk2;!b8L&a zqww^`QmY%0Z0^2vBOtyHc$xuk@n2;nbBn`YML(nnyw!QJI{^0rv$x+v%8#pBZ!!cP zHva7nzyLJ#)7IOReG8aMb>Cz*lwl#e&I`cusB6PnP-oj$^zn-FO5bza z+=e}MSI2Qs&Tx7x!)&+BQN9aB^lM=uz{6LY^{ z+uav$8pXFEPBY;3-xYx?0vAQ#8h{st^D69$z#IbC0Gz|?yw=qs{k&1Gy=^I&ZIWFI zsWUd$&JV!7n=3QMKMcgZZ5?h~{tVvttF5=8mhIwRI;waa1Gf+mx z>^cL(+s1f3y5<2qJHC>$SBC26?do1y|Ghe&OH>u8=LBJO#;Vvm8@$v$3&0mzYwtbb z_xn$__R>3&H>2^k?x~~Nini~O{1s3>=Fsy2HG&f~Giag`tdi_@R)e519$c=KzBuigFF;e9rDEf75W zspGG;L;G>Va8zRRikcR}3BrRYFq9#B@|xtE8#$%!utJUr)Zmk^RDnniEgN9gk~j3@?Ey{(1qb zIKsC>j`xD@eXq9m?XR`=juGcyzx(mSPYhIe{*%WadgIXkXFIg-VcTDMq_r6 zh?yf5coE?}@Uwe7(KzSyRkKdzo>kU{uV?KeJ-qu5xXLhWLkFyyKlSQVt(y!{L z3eK~52KqetdTSqirL}jRX0h$RKY8Sh_G5QGariyX#qGC#`S_v7-e~`@9opY%t^Ey7 zj$eMfwXZy0MdI4-ion|sfzyoly|3K7F#{0z?BUpc_0dP#zx|Pq9=>4TyYteszkK|` z;~VWC99sLwI4gefiPpaM*xL`-tHoCYG6YUb&F_18cwNm)hhzK2{4sq>K*+j}m zduz9-VEGUr@S&IQZMLlcKKJ^!+TZ%fPapm`Q>_$$Cn3-N^6{^=WBWfQ@b})?+Bb)- zoouMdAN8IKeAb_LVb2W)wM$um~ zUJk&Mu+M(__#Y3g{q*VY7vIs^@6W!%zM|2k+f+cUw3*e51N_u~CdhFMeRk~IZXe+_ zgC!>|Z`(h^ZD!09HZ#fBlMTB6;7hH&`}Gd`zq|Xf!#}FJU@8DV^Pi93|L9}wbH~=M z3(zXU*LH6o1di?HcO2UfKmCcr7pq231>mw2{nYX2+oAo7>HybvR|MWR2prna-~H&} zU(VP&9e~SH^i#*5J+$^S?a)3lGuXB56@j-T0>}25V{5Y?Lk!B2>{)JPiLNke#Mp(bgRX0tB4rn$#+9*lEhEEZ zne1yA+1EydDI-hx4SxTebN)E*@;vYJKA-P5;ZF-AE_N_G003Mj#`;zO0D{rKwOIe4 zKidbKis>&TJhd6zIwHshPCf?p3vC)}>(nB>q>E$ujOU0)A z{X|v$y6y!Xw;zs2q(gGwf5XyV4NoqccYJwbMI?)CHpR;C%GU*4`K8ekGVGc&AAp=D zr@lq5NcLuJ95e;=tJ*8$YR&>@K|u4O%!bOk{oa)+ArLQ5v;$8izz0z~o0h^LUi)<7kSPjG9k1Uennh~k*#0N@}qFoMt4wIp7Pd-ikB0VNi@JByIfLVex0 zHW3aq!msiC72cpd8v#Dh3p3|4@(3I5I^uQQ1{0> zkVW@y9M7>fS9dzeDBt7P5ir{ixYs!&jv{Zh?R>-4Y$eoOO=`~y|LDXiZ>qgi{H=0^HzIZG>>K|65s3R32^&NooQPuj)FEFfRg$9`@~nqw#i1+AeIfyqlM zK}fsL2!}GH+2nGGAVy%{{8xuntnt8@ zFf&zmLg5GjNPu>*ZnB+^(sdN)YeyeUe(9XIF||d+G7fg8>vBa#yf{V?r|afrHIp4a zPM&>Va>NbTfiS+&A>eLnaC_^aaE656!6FR!YGl|N3@PF)&OD`Qh3PCgq|mc2O7x%2){ZWVIxT=r+2D3=^g5KUU6a1q6h<>vZzSPomo4n^jzm{uSNa80c zVL)(}ye;_I&Y!Y>CoP&let!bp1)ojqAC+kW|IXPPT*;?Ty5}E1a?MOL%B)J5o zg_~Ualt5QHc)kvq!Ozj_Xls+uRuS}0JRH?)+GB$#L1OGK^e^7Xfe@1T9R$i1v+3(& z$Y%_0$qCa;%?31F>QQ5aBWy++v!L*Tn!Onc*m38NW5+@n{P(Z!PN3F z5ncjc)9HiQPL8|dt6Ynwy_V9KF@q}G>x3$$jB6dfMp7pn{i^}8&cLiaCLts+)}3BrV8xEj?J0P5{_Y2b#RRlo}C_v;S;fE^L709L?@_5A+$BpH)lzx z?m_A8w)%^?-6`Y&#Zb~Zr?i&I$D#wh6D@fdIxAq7lf}-|vl(YYf(TdOI4j;YkVl_Ux~#{~(c%u6oI|92?D0@K*6%m95W#WtKV7E3R{tMs zHZkTY_MW=P8@$WPa{XklI}DC1Tyfiz@{}*8=Pp97txd-CP7#veT18Lw-yLoRGSG+h zSv8KZuc>0@vvl2uEDmtndQytXqq!D8q7{%R88i~q*m-HG=5Pn&6QN*!Y6gjH`hI*8 zYiju;ECxOzulBa$o`Mm!TXAWsuL6&I^AjCXToL`CRqb1#WcTUXsa*ffM6=CTwT2yh zhL9#J9RXWfT$;SAMF)ke2#I+xHtdHAu-jiN(VQvDI9*a%Xo}aFiuG}utvG6z6u~9- zIK)QQ^=@37KoX<3PZtLvmWr>O4Yu9tqDdW_tEICxhTVvp1@roWw}_T2y)DHING%`k z5v|P>`x3RO($G*3Um9?GnUkxqZeDVpf$p>S`Q1_R8{!n%^-Gb4i)1Cwo zEyM}WssO&JVDS~p) zi{fz7OX>L4$l}n~^u6FWd5wpyT^-0W`StQQR?Nq~21>eb+#`wzd_;Z%jq5ovR&4vwoq?O-$$60 zz)?6lij__|L6~+$)fFVl8QQ3>`Jy1|blSF31CuG7+A~Xj{3(e97n|cwuz9fZ{P3ib ziu{@QQ042oey3@dSjh)vgK691pi(7;ZH48yv{kOswD`9gh?T<4yd257_7Xg2g@ebj zWe_Eq!uc)5R-GotuTHVL{e^dto5Q(lX65xbbQ3O3X>y?oA`6mgTlO3#B`Oeoh*$e2;%i+ z!ZClTruN?WuALz~=*C~WY zKC+J&Mwy&g!;?pj4Vt(u<-FR{GF!U8>h69ZMn6E+8~V4kTV~W)_}|d)VG}hkH>-Az z!i3%S_t^bHIanl@`H7j#K19CxzRNuNVVcA=e=%WuUEe1-=TlEOX-#QUNw9JsXff?6 zyZPMquLKR=g~#rAX9L6Y3xYREv_>(<#=r>mNWZn{ad9To=qb|7Ljui9kLZwdg^9XT zpcW8eRAkA)+`bA%M?UzNR3$l2U&MMN_sxbpR3ov zj=R8MSgy)n#djXTjTz-Iyb}PIB5kh)jfhsb{!lY`mOO_Tw=P{-4Jm9^3Jrj6?(kHi zk{Dl~qp~kxJV&`f_4HFFaM<^U_E9!&?g*orbraaui&<%~XdU7GaZDcM~Zv=;qP& jbFZ9SRi2azbRGf5k$j=wxAB?uiwt05V4+{G=N$7tH^(dh literal 0 HcmV?d00001 diff --git a/live/src/main/res/mipmap-xxxhdpi/background_giftwall_tab.png b/live/src/main/res/mipmap-xxxhdpi/background_giftwall_tab.png new file mode 100644 index 0000000000000000000000000000000000000000..4c63afac694db521ba096f3efa1097b47e9db70d GIT binary patch literal 27389 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 N002ovPDHLkV1l@4>7W1r literal 0 HcmV?d00001 diff --git a/live/src/main/res/mipmap-xxxhdpi/icon_following_anchor.png b/live/src/main/res/mipmap-xxxhdpi/icon_following_anchor.png new file mode 100644 index 0000000000000000000000000000000000000000..0139f446d4f661e8af60a32c31dd732999c0c712 GIT binary patch literal 933 zcmV;W16urvP)Px&Ur9tkR7gvum&&cZ=b!+I%n^- z*A*pJM9c=(0-piXfDZuy{{y|iW8gf{A?bEeN^cx=MZ`*AFR-{MQSSQ{?~(NDV0&tU zM#OmF2VhNZV-L^;Tm_y1{{ka{iNFG&B^@ry*$Hfx^r9Mk0BA&fl#)+M!6$+JlI|3- zjfh#m9$zj=}~@fKhTJn4qODx)Nj=)=}Zw=_4kNa4g8$m-b|NDdXUBSfkwnQ z;5uN2Pk@z@{unA?79SB!skkNsW;{>QD}T>}o(8@Ie6mHu0n7m#&^6$j>y-3WA816Z z0?wx37D?IfdX+s|(mzEvkvhNy=(So>SA}UrxH8=qrzEW_k?0%Xdtj@i_7d?Y0O!3d zX|W<=E^sq#oF(aAi6qB>jX=AkO(o)I0(Vo~T!ZdQWqwuCr$q_U%^U>`c1+Udl6$h- zY%}O@Kr^sY(xH+G8Ufwyeg}FC`aD(Fs(R9uKTJd%2DSm;N!niWpeq1NW3NFi+AgRW z`3BCF{RUuJF0td616D3Kyv1Zh?t8bS<23}s!gJq4!l01?nk4;M#b^xhx(t)57`M~g zs$3R}rhx}X&CfxU_z3;b7fdH_@*9{7K!Ki>fJ4= ztt4n8)w=^Y=o&ES0bm#4Ysp{Zp!gBd2&jkqBH(~Q=K!~?hQKG1GUccTI#fma7|7=F zyi9w$Q?Z=-;xD?K%w6%kVbzvTzOX-O5&l^^0`fg8y=81VDq07t}>Bzp$7=**Y& zvL9$-YiaZQ`eg23d!)jFUgHhF0DesU@0(jL$r4yuW!#_#@V=6B)^5-~IWq$GMjj-6 zrmQAtVr-^IfUncx+)kGPJHu<~y8Z)3CEvTyik3!XM#!GazSm6qts;l-arEsF9lnj2 z9e(DE2Gn9*&@4LlU&cc3chCOI_y+v;wygdyV~_QFQN_Ol!hv+eWRrT`00000NkvXX Hu0mjf%gngf literal 0 HcmV?d00001 diff --git a/live/src/main/res/mipmap-xxxhdpi/icon_regular_black.png b/live/src/main/res/mipmap-xxxhdpi/icon_regular_black.png new file mode 100644 index 0000000000000000000000000000000000000000..397c175cc3cf0c74d386a6328173d2239c72515e GIT binary patch literal 472 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 literal 0 HcmV?d00001 diff --git a/main/src/main/java/com/yunbao/main/activity/MainActivity.java b/main/src/main/java/com/yunbao/main/activity/MainActivity.java index ede574312..cce8ea893 100644 --- a/main/src/main/java/com/yunbao/main/activity/MainActivity.java +++ b/main/src/main/java/com/yunbao/main/activity/MainActivity.java @@ -162,9 +162,6 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene private MainHomeViewHolder mainHomeViewHolder; private MainHomeCommunityViewHolder mMainHomeCommunityViewHolder; private MainMessageViewHolder mainMessageViewHolder; - private MainHomeVideoViewHolder mainHomeVideoViewHolder; - private MainHomeShopViewHolder mListShopViewHolder; - private ChatListViewHolder mChatListViewHolder; private MainMeViewHolder mMeViewHolder; private AbsMainViewHolder[] mViewHolders; private View mBottom; From 5afa3bd30b4755bbdfc0ee34e96b8525491eea4a Mon Sep 17 00:00:00 2001 From: 18401019693 Date: Wed, 2 Aug 2023 13:23:37 +0800 Subject: [PATCH 08/19] =?UTF-8?q?6.5.4=E7=A4=BC=E7=89=A9=E5=86=A0=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/MonthGiftNamingAdapter.java | 43 +++++ .../common/bean/GiftWallGiftDetail.java | 51 ++++++ .../com/yunbao/common/bean/GiftWallModel.java | 33 ++++ .../common/dialog/GiftWallItemPopup.java | 25 --- .../common/event/GiftWallItemEvent.java | 27 +++ .../fragment/AllServiceChampionFragment.java | 73 ++++++++ .../CurrentMonthGiftNamingFragment.java | 79 +++++++++ .../fragment/LastMonthGiftNamingFragment.java | 79 +++++++++ .../com/yunbao/common/http/PDLiveApi.java | 27 +++ .../common/http/live/LiveNetManager.java | 69 ++++++++ .../views/GiftAlreadyWallViewHolder.java | 9 + .../views/GiftWithoutWallViewHolder.java | 8 +- .../views/MonthGiftNamingViewHolder.java | 35 ++++ .../views/weight/ViewClicksAntiShake.java | 2 +- .../background_select_all_service.xml | 15 ++ .../layout/fragment_all_service_champion.xml | 49 ++++++ .../fragment_current_month_gift_naming.xml | 24 +++ .../res/layout/fragment_gift_already_wall.xml | 1 + .../fragment_last_month_gift_naming.xml | 24 +++ .../res/layout/item_month_gift_naming.xml | 65 ++++++++ .../main/res/layout/popup_gift_wall_item.xml | 156 +++++++++++++++++- .../background_gift_wall_item.png | Bin .../icon_vacant_position_awaits.png | Bin 0 -> 16032 bytes common/src/main/res/values-en-rUS/string.xml | 2 +- common/src/main/res/values/strings.xml | 10 +- .../yunbao/live/dialog/GiftWallDialog.java | 19 ++- .../yunbao/live/dialog/GiftWallItemPopup.java | 110 ++++++++++++ .../live/dialog/RegularIntroducePopup.java | 14 ++ .../live/views}/GiftAlreadyWallFragment.java | 22 ++- .../res/layout/rogular_introduce_popup.xml | 8 +- .../background_regular_title.png | Bin 32810 -> 29105 bytes 31 files changed, 1034 insertions(+), 45 deletions(-) create mode 100644 common/src/main/java/com/yunbao/common/adapter/MonthGiftNamingAdapter.java create mode 100644 common/src/main/java/com/yunbao/common/bean/GiftWallGiftDetail.java delete mode 100644 common/src/main/java/com/yunbao/common/dialog/GiftWallItemPopup.java create mode 100644 common/src/main/java/com/yunbao/common/event/GiftWallItemEvent.java create mode 100644 common/src/main/java/com/yunbao/common/fragment/AllServiceChampionFragment.java create mode 100644 common/src/main/java/com/yunbao/common/fragment/CurrentMonthGiftNamingFragment.java create mode 100644 common/src/main/java/com/yunbao/common/fragment/LastMonthGiftNamingFragment.java create mode 100644 common/src/main/java/com/yunbao/common/views/MonthGiftNamingViewHolder.java create mode 100644 common/src/main/res/drawable/background_select_all_service.xml create mode 100644 common/src/main/res/layout/fragment_all_service_champion.xml create mode 100644 common/src/main/res/layout/fragment_current_month_gift_naming.xml create mode 100644 common/src/main/res/layout/fragment_last_month_gift_naming.xml create mode 100644 common/src/main/res/layout/item_month_gift_naming.xml rename {live/src/main/res/mipmap-hdpi => common/src/main/res/mipmap-xxhdpi}/background_gift_wall_item.png (100%) create mode 100644 common/src/main/res/mipmap-xxhdpi/icon_vacant_position_awaits.png create mode 100644 live/src/main/java/com/yunbao/live/dialog/GiftWallItemPopup.java rename {common/src/main/java/com/yunbao/common/fragment => live/src/main/java/com/yunbao/live/views}/GiftAlreadyWallFragment.java (77%) diff --git a/common/src/main/java/com/yunbao/common/adapter/MonthGiftNamingAdapter.java b/common/src/main/java/com/yunbao/common/adapter/MonthGiftNamingAdapter.java new file mode 100644 index 000000000..ed15f7b54 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/adapter/MonthGiftNamingAdapter.java @@ -0,0 +1,43 @@ +package com.yunbao.common.adapter; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.R; +import com.yunbao.common.bean.GiftWallModel; +import com.yunbao.common.views.MonthGiftNamingViewHolder; + +import java.util.ArrayList; +import java.util.List; + +public class MonthGiftNamingAdapter extends RecyclerView.Adapter { + private List giftWall = new ArrayList<>(); + + @NonNull + @Override + public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View herdView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_month_gift_naming, parent, false); + return new MonthGiftNamingViewHolder(herdView); + } + + @Override + public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { + MonthGiftNamingViewHolder monthGiftNamingViewHolder = (MonthGiftNamingViewHolder) holder; + monthGiftNamingViewHolder.showData(giftWall.get(position)); + } + + @Override + public int getItemCount() { + return giftWall.size(); + } + + public void addAllData(List mGiftWall) { + giftWall.clear(); + giftWall.addAll(mGiftWall); + notifyDataSetChanged(); + } +} diff --git a/common/src/main/java/com/yunbao/common/bean/GiftWallGiftDetail.java b/common/src/main/java/com/yunbao/common/bean/GiftWallGiftDetail.java new file mode 100644 index 000000000..7c069265f --- /dev/null +++ b/common/src/main/java/com/yunbao/common/bean/GiftWallGiftDetail.java @@ -0,0 +1,51 @@ +package com.yunbao.common.bean; + +import com.google.gson.annotations.SerializedName; + +public class GiftWallGiftDetail extends BaseModel { + + @SerializedName("uid") + private int uid; + @SerializedName("user_nicename") + private String userNicename; + @SerializedName("avatar") + private String avatar; + @SerializedName("naming_coin") + private int namingCoin; + + public int getUid() { + return uid; + } + + public GiftWallGiftDetail setUid(int uid) { + this.uid = uid; + return this; + } + + public String getUserNicename() { + return userNicename; + } + + public GiftWallGiftDetail setUserNicename(String userNicename) { + this.userNicename = userNicename; + return this; + } + + public String getAvatar() { + return avatar; + } + + public GiftWallGiftDetail setAvatar(String avatar) { + this.avatar = avatar; + return this; + } + + public int getNamingCoin() { + return namingCoin; + } + + public GiftWallGiftDetail setNamingCoin(int namingCoin) { + this.namingCoin = namingCoin; + return this; + } +} diff --git a/common/src/main/java/com/yunbao/common/bean/GiftWallModel.java b/common/src/main/java/com/yunbao/common/bean/GiftWallModel.java index 83cbb6359..38484a554 100644 --- a/common/src/main/java/com/yunbao/common/bean/GiftWallModel.java +++ b/common/src/main/java/com/yunbao/common/bean/GiftWallModel.java @@ -63,6 +63,39 @@ public class GiftWallModel extends BaseModel { private String gifticonTotal; @SerializedName("gift_count_number") private String giftCountNumber; + @SerializedName("user_nicename") + private String userNicename; + @SerializedName("avatar") + private String avatar; + @SerializedName("naming_coin_max") + private String namingCoinMax; + + public String getNamingCoinMax() { + return namingCoinMax; + } + + public GiftWallModel setNamingCoinMax(String namingCoinMax) { + this.namingCoinMax = namingCoinMax; + return this; + } + + public String getAvatar() { + return avatar; + } + + public GiftWallModel setAvatar(String avatar) { + this.avatar = avatar; + return this; + } + + public String getUserNicename() { + return userNicename; + } + + public GiftWallModel setUserNicename(String userNicename) { + this.userNicename = userNicename; + return this; + } public String getId() { return id; diff --git a/common/src/main/java/com/yunbao/common/dialog/GiftWallItemPopup.java b/common/src/main/java/com/yunbao/common/dialog/GiftWallItemPopup.java deleted file mode 100644 index c3a09ee04..000000000 --- a/common/src/main/java/com/yunbao/common/dialog/GiftWallItemPopup.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.yunbao.common.dialog; - - -import android.content.Context; - -import androidx.annotation.NonNull; - -import com.lxj.xpopup.core.CenterPopupView; -import com.yunbao.common.R; - -public class GiftWallItemPopup extends CenterPopupView { - public GiftWallItemPopup(@NonNull Context context) { - super(context); - } - - @Override - protected int getImplLayoutId() { - return R.layout.popup_gift_wall_item; - } - - @Override - protected void onCreate() { - super.onCreate(); - } -} diff --git a/common/src/main/java/com/yunbao/common/event/GiftWallItemEvent.java b/common/src/main/java/com/yunbao/common/event/GiftWallItemEvent.java new file mode 100644 index 000000000..301d46608 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/event/GiftWallItemEvent.java @@ -0,0 +1,27 @@ +package com.yunbao.common.event; + +import com.yunbao.common.bean.BaseModel; +import com.yunbao.common.bean.GiftWallModel; + +public class GiftWallItemEvent extends BaseModel { + private GiftWallModel giftWallModel; + private boolean unlit; + + public GiftWallModel getGiftWallModel() { + return giftWallModel; + } + + public GiftWallItemEvent setGiftWallModel(GiftWallModel giftWallModel) { + this.giftWallModel = giftWallModel; + return this; + } + + public boolean isUnlit() { + return unlit; + } + + public GiftWallItemEvent setUnlit(boolean unlit) { + this.unlit = unlit; + return this; + } +} diff --git a/common/src/main/java/com/yunbao/common/fragment/AllServiceChampionFragment.java b/common/src/main/java/com/yunbao/common/fragment/AllServiceChampionFragment.java new file mode 100644 index 000000000..8f6501212 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/fragment/AllServiceChampionFragment.java @@ -0,0 +1,73 @@ +package com.yunbao.common.fragment; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.fragment.app.FragmentTransaction; + +import com.yunbao.common.R; +import com.yunbao.common.views.weight.ViewClicksAntiShake; + +public class AllServiceChampionFragment extends BaseFragment { + private TextView winnerOfTheMonth, lastMonthWinner; + private String mStream, mLiveUid; + @Override + public View createView(LayoutInflater layoutInflater, ViewGroup viewGroup) { + return layoutInflater.inflate(R.layout.fragment_all_service_champion, viewGroup, false); + } + + @Override + protected void initVariables(Bundle bundle) { + mStream = bundle.getString("mStream"); + mLiveUid = bundle.getString("mLiveUid"); + } + + @Override + protected void initViews(Bundle savedInstanceState, View contentView) { + winnerOfTheMonth = contentView.findViewById(R.id.winner_of_the_month); + lastMonthWinner = contentView.findViewById(R.id.last_month_winner); + winnerOfTheMonth.setSelected(true); + lastMonthWinner.setSelected(false); + + FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); + transaction.replace(R.id.context_layout_gift, CurrentMonthGiftNamingFragment.newInstance(mStream, mLiveUid)); + transaction.commit(); + ViewClicksAntiShake.clicksAntiShake(winnerOfTheMonth, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + winnerOfTheMonth.setSelected(true); + lastMonthWinner.setSelected(false); + + FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); + transaction.replace(R.id.context_layout_gift, CurrentMonthGiftNamingFragment.newInstance(mStream, mLiveUid)); + transaction.commit(); + } + }); + ViewClicksAntiShake.clicksAntiShake(lastMonthWinner, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + lastMonthWinner.setSelected(true); + winnerOfTheMonth.setSelected(false); + FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); + transaction.replace(R.id.context_layout_gift, LastMonthGiftNamingFragment.newInstance(mStream, mLiveUid)); + transaction.commit(); + } + }); + } + + @Override + protected void loadData() { + + } + public static AllServiceChampionFragment newInstance(String mStream, String mLiveUid) { + AllServiceChampionFragment allServiceChampionFragment = new AllServiceChampionFragment(); + Bundle bundle = new Bundle(); + bundle.putString("mStream", mStream); + bundle.putString("mLiveUid", mLiveUid); + allServiceChampionFragment.setArguments(bundle); + return allServiceChampionFragment; + } +} diff --git a/common/src/main/java/com/yunbao/common/fragment/CurrentMonthGiftNamingFragment.java b/common/src/main/java/com/yunbao/common/fragment/CurrentMonthGiftNamingFragment.java new file mode 100644 index 000000000..53364a780 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/fragment/CurrentMonthGiftNamingFragment.java @@ -0,0 +1,79 @@ +package com.yunbao.common.fragment; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.R; +import com.yunbao.common.adapter.MonthGiftNamingAdapter; +import com.yunbao.common.bean.GiftWallModel; +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 CurrentMonthGiftNamingFragment extends BaseFragment { + private String mStream, mLiveUid; + private RecyclerView giftList; + private MonthGiftNamingAdapter monthGiftNamingAdapter; + private View noData; + + @Override + public View createView(LayoutInflater layoutInflater, ViewGroup viewGroup) { + return layoutInflater.inflate(R.layout.fragment_current_month_gift_naming, viewGroup, false); + } + + + @Override + protected void initVariables(Bundle bundle) { + mStream = bundle.getString("mStream"); + mLiveUid = bundle.getString("mLiveUid"); + } + + @Override + protected void initViews(Bundle savedInstanceState, View contentView) { + giftList = contentView.findViewById(R.id.gift_list); + noData = contentView.findViewById(R.id.no_data); + monthGiftNamingAdapter = new MonthGiftNamingAdapter(); + giftList.setLayoutManager(new GridLayoutManager(getContext(), 3, GridLayoutManager.VERTICAL, false)); + giftList.setAdapter(monthGiftNamingAdapter); + } + + @Override + protected void loadData() { + LiveNetManager.get(getContext()). + currentMonthGiftNaming(new HttpCallback>() { + @Override + public void onSuccess(List data) { + if (data.size() > 0) { + giftList.setVisibility(View.VISIBLE); + noData.setVisibility(View.GONE); + monthGiftNamingAdapter.addAllData(data); + } else { + giftList.setVisibility(View.GONE); + noData.setVisibility(View.VISIBLE); + + } + } + + @Override + public void onError(String error) { + ToastUtil.show(error); + } + }); + } + + public static CurrentMonthGiftNamingFragment newInstance(String mStream, String mLiveUid) { + CurrentMonthGiftNamingFragment currentMonthGiftNamingFragment = new CurrentMonthGiftNamingFragment(); + Bundle bundle = new Bundle(); + bundle.putString("mStream", mStream); + bundle.putString("mLiveUid", mLiveUid); + currentMonthGiftNamingFragment.setArguments(bundle); + return currentMonthGiftNamingFragment; + } +} diff --git a/common/src/main/java/com/yunbao/common/fragment/LastMonthGiftNamingFragment.java b/common/src/main/java/com/yunbao/common/fragment/LastMonthGiftNamingFragment.java new file mode 100644 index 000000000..7aaabb134 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/fragment/LastMonthGiftNamingFragment.java @@ -0,0 +1,79 @@ +package com.yunbao.common.fragment; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.R; +import com.yunbao.common.adapter.MonthGiftNamingAdapter; +import com.yunbao.common.bean.GiftWallModel; +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 LastMonthGiftNamingFragment extends BaseFragment { + private String mStream, mLiveUid; + private RecyclerView giftList; + private MonthGiftNamingAdapter monthGiftNamingAdapter; + private View noData; + + @Override + public View createView(LayoutInflater layoutInflater, ViewGroup viewGroup) { + return layoutInflater.inflate(R.layout.fragment_last_month_gift_naming, viewGroup, false); + } + + + @Override + protected void initVariables(Bundle bundle) { + mStream = bundle.getString("mStream"); + mLiveUid = bundle.getString("mLiveUid"); + } + + @Override + protected void initViews(Bundle savedInstanceState, View contentView) { + giftList = contentView.findViewById(R.id.gift_list); + noData = contentView.findViewById(R.id.no_data); + monthGiftNamingAdapter = new MonthGiftNamingAdapter(); + giftList.setLayoutManager(new GridLayoutManager(getContext(), 3, GridLayoutManager.VERTICAL, false)); + giftList.setAdapter(monthGiftNamingAdapter); + } + + @Override + protected void loadData() { + LiveNetManager.get(getContext()). + lastMonthGiftNaming(new HttpCallback>() { + @Override + public void onSuccess(List data) { + if (data.size() > 0) { + giftList.setVisibility(View.VISIBLE); + noData.setVisibility(View.GONE); + monthGiftNamingAdapter.addAllData(data); + } else { + giftList.setVisibility(View.GONE); + noData.setVisibility(View.VISIBLE); + + } + } + + @Override + public void onError(String error) { + ToastUtil.show(error); + } + }); + } + + public static LastMonthGiftNamingFragment newInstance(String mStream, String mLiveUid) { + LastMonthGiftNamingFragment lastMonthGiftNamingFragment = new LastMonthGiftNamingFragment(); + Bundle bundle = new Bundle(); + bundle.putString("mStream", mStream); + bundle.putString("mLiveUid", mLiveUid); + lastMonthGiftNamingFragment.setArguments(bundle); + return lastMonthGiftNamingFragment; + } +} 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 248c73191..54573f999 100644 --- a/common/src/main/java/com/yunbao/common/http/PDLiveApi.java +++ b/common/src/main/java/com/yunbao/common/http/PDLiveApi.java @@ -13,6 +13,8 @@ import com.yunbao.common.bean.DiscountsModel; import com.yunbao.common.bean.EnterRoomNewModel; import com.yunbao.common.bean.FaceBookUpModel; import com.yunbao.common.bean.GiftAlreadyWallModel; +import com.yunbao.common.bean.GiftWallGiftDetail; +import com.yunbao.common.bean.GiftWallModel; import com.yunbao.common.bean.HourRank; import com.yunbao.common.bean.HttpCallbackModel; import com.yunbao.common.bean.IMLoginModel; @@ -847,4 +849,29 @@ public interface PDLiveApi { @Query("liveuid") String liveUid ); + /** + * 礼物墙选中礼物详情 + */ + @GET("/api/public/?service=Gift.giftDetail") + Observable> giftDetail( + @Query("liveuid") String liveUid, + @Query("gift_id") String giftId + ); + + /** + * 礼物墙本月冠名礼物 + * + * @return + */ + @GET("/api/public/?service=Gift.currentMonthGiftNaming") + Observable>> currentMonthGiftNaming(); + + /** + * 礼物墙上月冠名 + * + * @return + */ + @GET("/api/public/?service=Gift.lastMonthGiftNaming") + Observable>> lastMonthGiftNaming(); + } 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 39959de77..6ee8b6508 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 @@ -14,6 +14,8 @@ import com.yunbao.common.bean.CustomSidebarInfoModel; import com.yunbao.common.bean.DiscountsModel; import com.yunbao.common.bean.EnterRoomNewModel; import com.yunbao.common.bean.GiftAlreadyWallModel; +import com.yunbao.common.bean.GiftWallGiftDetail; +import com.yunbao.common.bean.GiftWallModel; import com.yunbao.common.bean.HttpCallbackModel; import com.yunbao.common.bean.LinkMicUserBean; import com.yunbao.common.bean.LinkMicUserBeanV2; @@ -1818,6 +1820,7 @@ public class LiveNetManager { } }).isDisposed(); } + public void giftWithoutWall(String liveUid, HttpCallback callback) { API.get().pdLiveApi(mContext) .giftWithoutWall(liveUid) @@ -1840,6 +1843,72 @@ public class LiveNetManager { }).isDisposed(); } + public void giftDetail(String liveUid, String giftId, HttpCallback callback) { + API.get().pdLiveApi(mContext) + .giftDetail(liveUid, giftId) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Consumer>() { + @Override + public void accept(ResponseModel giftWallGiftDetailResponseModel) throws Exception { + if (callback != null) { + callback.onSuccess(giftWallGiftDetailResponseModel.getData().getInfo()); + } + } + }, new Consumer() { + @Override + public void accept(Throwable throwable) throws Exception { + if (callback != null) { + callback.onError(mContext.getString(R.string.net_error)); + } + } + }).isDisposed(); + } + + public void currentMonthGiftNaming(HttpCallback> callback) { + API.get().pdLiveApi(mContext) + .currentMonthGiftNaming() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Consumer>>() { + @Override + public void accept(ResponseModel> listResponseModel) throws Exception { + if (callback != null) { + callback.onSuccess(listResponseModel.getData().getInfo()); + } + } + }, new Consumer() { + @Override + public void accept(Throwable throwable) throws Exception { + if (callback != null) { + callback.onError(mContext.getString(R.string.net_error)); + } + } + }).isDisposed(); + } + + public void lastMonthGiftNaming(HttpCallback> callback) { + API.get().pdLiveApi(mContext) + .lastMonthGiftNaming() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Consumer>>() { + @Override + public void accept(ResponseModel> listResponseModel) throws Exception { + if (callback != null) { + callback.onSuccess(listResponseModel.getData().getInfo()); + } + } + }, new Consumer() { + @Override + public void accept(Throwable throwable) throws Exception { + if (callback != null) { + callback.onError(mContext.getString(R.string.net_error)); + } + } + }).isDisposed(); + } + /** * 直播间取消网络请求 */ diff --git a/common/src/main/java/com/yunbao/common/views/GiftAlreadyWallViewHolder.java b/common/src/main/java/com/yunbao/common/views/GiftAlreadyWallViewHolder.java index b7244cd9b..e19c54ad6 100644 --- a/common/src/main/java/com/yunbao/common/views/GiftAlreadyWallViewHolder.java +++ b/common/src/main/java/com/yunbao/common/views/GiftAlreadyWallViewHolder.java @@ -9,7 +9,10 @@ import androidx.recyclerview.widget.RecyclerView; import com.yunbao.common.R; import com.yunbao.common.bean.GiftWallModel; +import com.yunbao.common.event.GiftWallItemEvent; import com.yunbao.common.glide.ImgLoader; +import com.yunbao.common.utils.Bus; +import com.yunbao.common.views.weight.ViewClicksAntiShake; public class GiftAlreadyWallViewHolder extends RecyclerView.ViewHolder { private ImageView giftImg; @@ -24,5 +27,11 @@ public class GiftAlreadyWallViewHolder extends RecyclerView.ViewHolder { public void showData(GiftWallModel giftWallModel) { giftTitle.setText(giftWallModel.getGiftname()); ImgLoader.display(itemView.getContext(), giftWallModel.getGifticon(), giftImg); + ViewClicksAntiShake.clicksAntiShake(itemView, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + Bus.get().post(new GiftWallItemEvent().setGiftWallModel(giftWallModel).setUnlit(true)); + } + }); } } diff --git a/common/src/main/java/com/yunbao/common/views/GiftWithoutWallViewHolder.java b/common/src/main/java/com/yunbao/common/views/GiftWithoutWallViewHolder.java index 4685e441d..9cd0d6f9e 100644 --- a/common/src/main/java/com/yunbao/common/views/GiftWithoutWallViewHolder.java +++ b/common/src/main/java/com/yunbao/common/views/GiftWithoutWallViewHolder.java @@ -7,11 +7,11 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; -import com.lxj.xpopup.XPopup; import com.yunbao.common.R; import com.yunbao.common.bean.GiftWallModel; -import com.yunbao.common.dialog.GiftWallItemPopup; +import com.yunbao.common.event.GiftWallItemEvent; import com.yunbao.common.glide.ImgLoader; +import com.yunbao.common.utils.Bus; import com.yunbao.common.views.weight.ViewClicksAntiShake; public class GiftWithoutWallViewHolder extends RecyclerView.ViewHolder { @@ -30,9 +30,7 @@ public class GiftWithoutWallViewHolder extends RecyclerView.ViewHolder { ViewClicksAntiShake.clicksAntiShake(itemView, new ViewClicksAntiShake.ViewClicksCallBack() { @Override public void onViewClicks() { - new XPopup.Builder(itemView.getContext()) - .asCustom(new GiftWallItemPopup(itemView.getContext())) - .show(); + Bus.get().post(new GiftWallItemEvent().setGiftWallModel(giftWallModel).setUnlit(false)); } }); } diff --git a/common/src/main/java/com/yunbao/common/views/MonthGiftNamingViewHolder.java b/common/src/main/java/com/yunbao/common/views/MonthGiftNamingViewHolder.java new file mode 100644 index 000000000..35da55a3a --- /dev/null +++ b/common/src/main/java/com/yunbao/common/views/MonthGiftNamingViewHolder.java @@ -0,0 +1,35 @@ +package com.yunbao.common.views; + +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.R; +import com.yunbao.common.bean.GiftWallModel; +import com.yunbao.common.glide.ImgLoader; + +public class MonthGiftNamingViewHolder extends RecyclerView.ViewHolder { + private ImageView giftImg, avatar; + private TextView giftTitle, namingCoin, userName; + + public MonthGiftNamingViewHolder(@NonNull View itemView) { + super(itemView); + giftImg = itemView.findViewById(R.id.gift_img); + avatar = itemView.findViewById(R.id.avatar); + giftTitle = itemView.findViewById(R.id.gift_title); + namingCoin = itemView.findViewById(R.id.naming_coin); + userName = itemView.findViewById(R.id.user_name); + } + + public void showData(GiftWallModel giftWallModel) { + giftTitle.setText(giftWallModel.getGiftname()); + namingCoin.setText(giftWallModel.getNamingCoinMax()); + userName.setText(giftWallModel.getUserNicename()); + ImgLoader.display(itemView.getContext(), giftWallModel.getGifticon(), giftImg); + ImgLoader.display(itemView.getContext(), giftWallModel.getAvatar(), avatar); + + } +} diff --git a/common/src/main/java/com/yunbao/common/views/weight/ViewClicksAntiShake.java b/common/src/main/java/com/yunbao/common/views/weight/ViewClicksAntiShake.java index b2474695e..c59283b42 100644 --- a/common/src/main/java/com/yunbao/common/views/weight/ViewClicksAntiShake.java +++ b/common/src/main/java/com/yunbao/common/views/weight/ViewClicksAntiShake.java @@ -8,7 +8,7 @@ import java.util.concurrent.TimeUnit; import io.reactivex.Observer; import io.reactivex.disposables.Disposable; -import kotlin.*; +import kotlin.Unit; /** * View防抖 diff --git a/common/src/main/res/drawable/background_select_all_service.xml b/common/src/main/res/drawable/background_select_all_service.xml new file mode 100644 index 000000000..aab1d1cb8 --- /dev/null +++ b/common/src/main/res/drawable/background_select_all_service.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/fragment_all_service_champion.xml b/common/src/main/res/layout/fragment_all_service_champion.xml new file mode 100644 index 000000000..6e2e6ffb5 --- /dev/null +++ b/common/src/main/res/layout/fragment_all_service_champion.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/fragment_current_month_gift_naming.xml b/common/src/main/res/layout/fragment_current_month_gift_naming.xml new file mode 100644 index 000000000..37a78bbb7 --- /dev/null +++ b/common/src/main/res/layout/fragment_current_month_gift_naming.xml @@ -0,0 +1,24 @@ + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/fragment_gift_already_wall.xml b/common/src/main/res/layout/fragment_gift_already_wall.xml index 55ebffda9..846998445 100644 --- a/common/src/main/res/layout/fragment_gift_already_wall.xml +++ b/common/src/main/res/layout/fragment_gift_already_wall.xml @@ -74,6 +74,7 @@ android:textSize="12sp" /> + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/item_month_gift_naming.xml b/common/src/main/res/layout/item_month_gift_naming.xml new file mode 100644 index 000000000..ea267bc88 --- /dev/null +++ b/common/src/main/res/layout/item_month_gift_naming.xml @@ -0,0 +1,65 @@ + + + + + + + + +a + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/popup_gift_wall_item.xml b/common/src/main/res/layout/popup_gift_wall_item.xml index 02b2826d6..d7fd2c668 100644 --- a/common/src/main/res/layout/popup_gift_wall_item.xml +++ b/common/src/main/res/layout/popup_gift_wall_item.xml @@ -1,10 +1,158 @@ + android:orientation="vertical" + app:cardCornerRadius="10dp" + app:cardElevation="0dp"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/live/src/main/res/mipmap-hdpi/background_gift_wall_item.png b/common/src/main/res/mipmap-xxhdpi/background_gift_wall_item.png similarity index 100% rename from live/src/main/res/mipmap-hdpi/background_gift_wall_item.png rename to common/src/main/res/mipmap-xxhdpi/background_gift_wall_item.png diff --git a/common/src/main/res/mipmap-xxhdpi/icon_vacant_position_awaits.png b/common/src/main/res/mipmap-xxhdpi/icon_vacant_position_awaits.png new file mode 100644 index 0000000000000000000000000000000000000000..bc47926fffc13889ac0cd967beb8588f6bb99a14 GIT binary patch literal 16032 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 When the gift in the guidebook is the same as the gift in the gift wall, give the same gift Objects, first point the gift on the gift wall, and then light up the gift in the guidebook. Honor achievement Medal of Achievement Medal of achievement - Currently, there are three achievements, namely A cloud of good friends,Very rich, + Currently, there are three achievements, namely A cloud of good friends, A rich party, Very rich, A cloud of good friends: When the number of gifts received reaches 20, 30, 50, 100When it comes to 200 models, light up the corresponding achievements separately;Rich and capriciou A rich party: When the price of a single gift received exceeds 50000 diamonds, it is sufficient Illuminate the achievement; Very rich: When receiving 100 gifts priced over 3000 diamonds, i.e This achievement can be illuminated. diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml index 4faaf5e62..60af067da 100644 --- a/common/src/main/res/values/strings.xml +++ b/common/src/main/res/values/strings.xml @@ -1270,7 +1270,7 @@ Limited ride And limited avatar frame When the gift in the guidebook is the same as the gift in the gift wall, give the same gift Objects, first point the gift on the gift wall, and then light up the gift in the guidebook. Honor achievement Medal of Achievement Medal of achievement - Currently, there are three achievements, namely A cloud of good friends,Very rich, + Currently, there are three achievements, namely A cloud of good friends, A rich party, Very rich, A cloud of good friends: When the number of gifts received reaches 20, 30, 50, 100When it comes to 200 models, light up the corresponding achievements separately;Rich and capriciou A rich party: When the price of a single gift received exceeds 50000 diamonds, it is sufficient Illuminate the achievement; Very rich: When receiving 100 gifts priced over 3000 diamonds, i.e This achievement can be illuminated. @@ -1283,5 +1283,13 @@ Limited ride And limited avatar frame Illustrated book Honorary achievement Lit + 規則介紹 + 禮物詳情 + 虛位以待 + 距離冠名還需%s鑽 + 送TA + 本月得主 + 上月得主 + 上月奪得最終禮物冠名權用戶將獲得該禮物一個月專屬冠名皮膚 diff --git a/live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java b/live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java index 37b88a0d5..6e518a59d 100644 --- a/live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java +++ b/live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java @@ -16,7 +16,9 @@ import com.lxj.xpopup.XPopup; import com.makeramen.roundedimageview.RoundedImageView; import com.yunbao.common.Constants; import com.yunbao.common.dialog.AbsDialogFragment; -import com.yunbao.common.fragment.GiftAlreadyWallFragment; +import com.yunbao.common.event.GiftWallItemEvent; +import com.yunbao.common.fragment.AllServiceChampionFragment; +import com.yunbao.live.views.GiftAlreadyWallFragment; import com.yunbao.common.fragment.GiftWithoutWallFragment; import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.http.CommonHttpUtil; @@ -26,8 +28,8 @@ import com.yunbao.common.utils.Bus; import com.yunbao.common.views.weight.ViewClicksAntiShake; import com.yunbao.live.R; import com.yunbao.live.activity.LiveActivity; -import com.yunbao.live.event.GiftTitleEvent; import com.yunbao.live.event.LiveAudienceEvent; +import com.yunbao.live.event.LiveGiftDialogEvent; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -97,6 +99,10 @@ public class GiftWallDialog extends AbsDialogFragment { @Override public void onViewClicks() { selectTab(textAllServiceChampion, viewAllServiceChampion); + + FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); + transaction.replace(R.id.context_layout_gift, AllServiceChampionFragment.newInstance(mStream, mLiveUid)); + transaction.commit(); } }); ViewClicksAntiShake.clicksAntiShake(attention, new ViewClicksAntiShake.ViewClicksCallBack() { @@ -196,7 +202,14 @@ public class GiftWallDialog extends AbsDialogFragment { * 关于点击礼物分类的通知 */ @Subscribe(threadMode = ThreadMode.MAIN) - public void onGiftTitleEvent(GiftTitleEvent event) { + public void onGiftWallItemEvent(GiftWallItemEvent event) { + new XPopup.Builder(getActivity()) + .asCustom(new GiftWallItemPopup(getActivity(), event.getGiftWallModel(), event.isUnlit(), mLiveUid, mStream)) + .show(); + } + @Subscribe(threadMode = ThreadMode.MAIN) + public void onLiveGiftDialogEvent(LiveGiftDialogEvent event) { + dismiss(); } } diff --git a/live/src/main/java/com/yunbao/live/dialog/GiftWallItemPopup.java b/live/src/main/java/com/yunbao/live/dialog/GiftWallItemPopup.java new file mode 100644 index 000000000..bec97cd32 --- /dev/null +++ b/live/src/main/java/com/yunbao/live/dialog/GiftWallItemPopup.java @@ -0,0 +1,110 @@ +package com.yunbao.live.dialog; + + +import android.content.Context; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.cardview.widget.CardView; + +import com.lxj.xpopup.core.CenterPopupView; +import com.yunbao.common.R; +import com.yunbao.common.bean.GiftWallGiftDetail; +import com.yunbao.common.bean.GiftWallModel; +import com.yunbao.common.glide.ImgLoader; +import com.yunbao.common.http.base.HttpCallback; +import com.yunbao.common.http.live.LiveNetManager; +import com.yunbao.common.utils.Bus; +import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.views.weight.ViewClicksAntiShake; +import com.yunbao.live.event.LiveAudienceEvent; +import com.yunbao.live.event.LiveGiftDialogEvent; + +public class GiftWallItemPopup extends CenterPopupView { + private CardView layout; + private ImageView giftImg, avatar; + private TextView price, giftDetailsBtn, distanceNaming, vacantPositionAwaits, giftDetails, vacantPosition; + private GiftWallModel giftWallModel; + private boolean unlit; + private String mLiveUid, mStream; + + public GiftWallItemPopup(@NonNull Context context, GiftWallModel giftWallModel, + boolean unlit, String mLiveUid, String mStream) { + super(context); + this.giftWallModel = giftWallModel; + this.unlit = unlit; + this.mLiveUid = mLiveUid; + this.mStream = mStream; + } + + @Override + protected int getImplLayoutId() { + return R.layout.popup_gift_wall_item; + } + + @Override + protected void onCreate() { + super.onCreate(); + layout = findViewById(R.id.layout); + giftImg = findViewById(R.id.gift_img); + price = findViewById(R.id.price); + giftDetails = findViewById(R.id.gift_details); + giftDetailsBtn = findViewById(R.id.gift_details_btn); + distanceNaming = findViewById(R.id.distance_naming); + vacantPositionAwaits = findViewById(R.id.vacant_position_awaits); + vacantPosition = findViewById(R.id.vacant_position); + avatar = findViewById(R.id.avatar); + if (unlit) { + giftDetailsBtn.setText(getContext().getText(R.string.send_hem)); + } else { + giftDetailsBtn.setText(getContext().getText(R.string.instant_light)); + } + ImgLoader.display(getContext(), giftWallModel.getGifticon(), giftImg); + giftDetails.setText(giftWallModel.getGiftname()); + price.setText(giftWallModel.getNeedcoin()); + loadData(); + ViewClicksAntiShake.clicksAntiShake(giftDetailsBtn, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + Bus.get().post(new LiveAudienceEvent() + .setType(LiveAudienceEvent.LiveAudienceType.GIFT_POPUP) + .setmLiveUid(mLiveUid) + .setmStream(mStream) + .setmWishGiftId(giftWallModel.getId())); + Bus.get().post(new LiveGiftDialogEvent()); + dialog.dismiss(); + } + }); + + } + + public void loadData() { + LiveNetManager.get(getContext()). + giftDetail(mLiveUid, String.valueOf(giftDetails.getId()), new HttpCallback() { + @Override + public void onSuccess(GiftWallGiftDetail data) { + if (data.getUid() == 0) { + ImgLoader.display(getContext(), R.mipmap.icon_vacant_position_awaits, avatar); + vacantPositionAwaits.setText(getContext().getText(R.string.vacant_position_awaits)); + vacantPosition.setText("?"); + } else { + ImgLoader.display(getContext(), data.getAvatar(), avatar); + vacantPositionAwaits.setText(data.getUserNicename()); + vacantPosition.setText(giftWallModel.getGiftname()); + } + if (data.getNamingCoin() == 0) { + distanceNaming.setVisibility(GONE); + } else { + distanceNaming.setVisibility(VISIBLE); + distanceNaming.setText(String.format(getContext().getString(R.string.distance_naming), String.valueOf(data.getNamingCoin()))); + } + } + + @Override + public void onError(String error) { + ToastUtil.show(error); + } + }); + } +} diff --git a/live/src/main/java/com/yunbao/live/dialog/RegularIntroducePopup.java b/live/src/main/java/com/yunbao/live/dialog/RegularIntroducePopup.java index b1f992dc3..68d143009 100644 --- a/live/src/main/java/com/yunbao/live/dialog/RegularIntroducePopup.java +++ b/live/src/main/java/com/yunbao/live/dialog/RegularIntroducePopup.java @@ -2,17 +2,24 @@ package com.yunbao.live.dialog; import android.content.Context; +import android.graphics.Color; +import android.text.Spannable; +import android.text.SpannableStringBuilder; +import android.widget.TextView; import androidx.annotation.NonNull; import com.lxj.xpopup.impl.FullScreenPopupView; import com.yunbao.common.views.weight.ViewClicksAntiShake; import com.yunbao.live.R; +import com.yunbao.live.utils.LinearGradientFontSpan; /** * 礼物冠名规则 */ public class RegularIntroducePopup extends FullScreenPopupView { + private TextView regularTitle; + public RegularIntroducePopup(@NonNull Context context) { super(context); } @@ -25,6 +32,13 @@ public class RegularIntroducePopup extends FullScreenPopupView { @Override protected void onCreate() { super.onCreate(); + regularTitle = findViewById(R.id.regular_title); + String title = getContext().getString(R.string.rule_introduction); + SpannableStringBuilder builder = new SpannableStringBuilder(); + builder.append(title); + builder.setSpan(new LinearGradientFontSpan(Color.parseColor("#ffffff"), + Color.parseColor("#F7FDFF")), 0, title.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + regularTitle.setText(builder); //初始化 ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.close_btn), new ViewClicksAntiShake.ViewClicksCallBack() { @Override diff --git a/common/src/main/java/com/yunbao/common/fragment/GiftAlreadyWallFragment.java b/live/src/main/java/com/yunbao/live/views/GiftAlreadyWallFragment.java similarity index 77% rename from common/src/main/java/com/yunbao/common/fragment/GiftAlreadyWallFragment.java rename to live/src/main/java/com/yunbao/live/views/GiftAlreadyWallFragment.java index ae1d4f378..ddf30f143 100644 --- a/common/src/main/java/com/yunbao/common/fragment/GiftAlreadyWallFragment.java +++ b/live/src/main/java/com/yunbao/live/views/GiftAlreadyWallFragment.java @@ -1,4 +1,4 @@ -package com.yunbao.common.fragment; +package com.yunbao.live.views; import android.os.Bundle; import android.view.LayoutInflater; @@ -13,8 +13,13 @@ import androidx.recyclerview.widget.RecyclerView; import com.yunbao.common.R; import com.yunbao.common.adapter.GiftAlreadyWallAdapter; import com.yunbao.common.bean.GiftAlreadyWallModel; +import com.yunbao.common.fragment.BaseFragment; import com.yunbao.common.http.base.HttpCallback; import com.yunbao.common.http.live.LiveNetManager; +import com.yunbao.common.utils.Bus; +import com.yunbao.common.views.weight.ViewClicksAntiShake; +import com.yunbao.live.event.LiveAudienceEvent; +import com.yunbao.live.event.LiveGiftDialogEvent; /** * 已点亮礼物墙 @@ -24,7 +29,8 @@ public class GiftAlreadyWallFragment extends BaseFragment { private LinearLayout giftWallNoData, giftWallData; private RecyclerView alreadyList; private GiftAlreadyWallAdapter alreadyWallAdapter; - private TextView litIcon,giftAll; + private TextView litIcon, giftAll; + @Override public View createView(LayoutInflater layoutInflater, ViewGroup viewGroup) { return layoutInflater.inflate(R.layout.fragment_gift_already_wall, viewGroup, false); @@ -47,6 +53,16 @@ public class GiftAlreadyWallFragment extends BaseFragment { alreadyWallAdapter = new GiftAlreadyWallAdapter(); alreadyList.setLayoutManager(new GridLayoutManager(getContext(), 3, GridLayoutManager.VERTICAL, false)); alreadyList.setAdapter(alreadyWallAdapter); + ViewClicksAntiShake.clicksAntiShake(contentView.findViewById(R.id.instant_light), new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + Bus.get().post(new LiveAudienceEvent() + .setType(LiveAudienceEvent.LiveAudienceType.GIFT_POPUP) + .setmLiveUid(mLiveUid) + .setmStream(mStream)); + Bus.get().post(new LiveGiftDialogEvent()); + } + }); } @Override @@ -60,7 +76,7 @@ public class GiftAlreadyWallFragment extends BaseFragment { giftWallData.setVisibility(View.VISIBLE); alreadyWallAdapter.addAllData(data.getGiftWall()); litIcon.setText(data.getGiftWallLightenNumber()); - giftAll.setText("/"+data.getGiftWallLightenTotal()); + giftAll.setText("/" + data.getGiftWallLightenTotal()); } else { giftWallNoData.setVisibility(View.VISIBLE); giftWallData.setVisibility(View.GONE); diff --git a/live/src/main/res/layout/rogular_introduce_popup.xml b/live/src/main/res/layout/rogular_introduce_popup.xml index 8b354e0cc..b8214a611 100644 --- a/live/src/main/res/layout/rogular_introduce_popup.xml +++ b/live/src/main/res/layout/rogular_introduce_popup.xml @@ -173,18 +173,22 @@ + android:background="@mipmap/background_regular_title" + android:gravity="center" + android:textSize="16sp" + android:textStyle="bold" /> \ No newline at end of file diff --git a/live/src/main/res/mipmap-xxxhdpi/background_regular_title.png b/live/src/main/res/mipmap-xxxhdpi/background_regular_title.png index 536cf6788b9758e6c0fecdf3229064a3c390b0c3..1c2e03194a36d54fff6ac3795835bcf9c1efd4c2 100644 GIT binary patch literal 29105 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 A(EtDd literal 32810 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 N002ovPDHLkV1l@4>7W1r From b78fef6adc287e0366cbaf9b769bd72f2bde1a7d Mon Sep 17 00:00:00 2001 From: 18401019693 Date: Wed, 2 Aug 2023 16:55:36 +0800 Subject: [PATCH 09/19] =?UTF-8?q?6.5.4=E7=A4=BC=E7=89=A9=E5=86=A0=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yunbao/common/bean/GiftGuideModel.java | 119 ++++++++++++++++++ .../com/yunbao/common/bean/GiftWallModel.java | 23 ++++ .../com/yunbao/common/event/CodexEvent.java | 6 + .../common}/event/LiveGiftDialogEvent.java | 2 +- .../com/yunbao/common/http/PDLiveApi.java | 15 +++ .../common/http/live/LiveNetManager.java | 45 +++++++ .../drawable/background_codex_item_btn.xml | 15 +++ .../res/drawable/background_codex_top.xml | 7 ++ .../drawable/background_dialog_live_codex.xml | 7 ++ .../src/main/res/layout/dialog_live_codex.xml | 23 ++++ common/src/main/res/layout/item_codex.xml | 66 ++++++++++ .../src/main/res/layout/item_codex_item.xml | 31 +++++ .../res/mipmap-xxhdpi}/icon_regular_black.png | Bin common/src/main/res/values/strings.xml | 3 + .../com/yunbao/live/adapter/CodexAdapter.java | 47 +++++++ .../yunbao/live/adapter/CodexItemAdapter.java | 43 +++++++ .../yunbao/live/adapter/LiveGiftAdapter.java | 2 +- .../com/yunbao/live/dialog/CodexDialog.java | 114 +++++++++++++++++ .../yunbao/live/dialog/GiftWallDialog.java | 13 +- .../yunbao/live/dialog/GiftWallItemPopup.java | 2 +- .../live/dialog/LiveGiftDialogFragment.java | 2 +- .../com/yunbao/live/dialog/LiveGiftPopup.java | 2 +- .../live/views/CodexItemViewHolder.java | 55 ++++++++ .../yunbao/live/views/CodexViewHolder.java | 68 ++++++++++ .../live/views/FrameGiftViewHolder.java | 2 +- .../live/views/GiftAlreadyWallFragment.java | 2 +- .../live/views/LiveParcelItemViewHolder.java | 2 +- .../live/views/PortraitLiveManager.java | 4 +- .../main/res/layout/dialog_live_gift_wall.xml | 1 + 29 files changed, 708 insertions(+), 13 deletions(-) create mode 100644 common/src/main/java/com/yunbao/common/bean/GiftGuideModel.java create mode 100644 common/src/main/java/com/yunbao/common/event/CodexEvent.java rename {live/src/main/java/com/yunbao/live => common/src/main/java/com/yunbao/common}/event/LiveGiftDialogEvent.java (53%) create mode 100644 common/src/main/res/drawable/background_codex_item_btn.xml create mode 100644 common/src/main/res/drawable/background_codex_top.xml create mode 100644 common/src/main/res/drawable/background_dialog_live_codex.xml create mode 100644 common/src/main/res/layout/dialog_live_codex.xml create mode 100644 common/src/main/res/layout/item_codex.xml create mode 100644 common/src/main/res/layout/item_codex_item.xml rename {live/src/main/res/mipmap-xxxhdpi => common/src/main/res/mipmap-xxhdpi}/icon_regular_black.png (100%) create mode 100644 live/src/main/java/com/yunbao/live/adapter/CodexAdapter.java create mode 100644 live/src/main/java/com/yunbao/live/adapter/CodexItemAdapter.java create mode 100644 live/src/main/java/com/yunbao/live/dialog/CodexDialog.java create mode 100644 live/src/main/java/com/yunbao/live/views/CodexItemViewHolder.java create mode 100644 live/src/main/java/com/yunbao/live/views/CodexViewHolder.java diff --git a/common/src/main/java/com/yunbao/common/bean/GiftGuideModel.java b/common/src/main/java/com/yunbao/common/bean/GiftGuideModel.java new file mode 100644 index 000000000..c2484cfd5 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/bean/GiftGuideModel.java @@ -0,0 +1,119 @@ +package com.yunbao.common.bean; + +import com.google.gson.annotations.SerializedName; + +import java.util.List; + +public class GiftGuideModel extends BaseModel { + + @SerializedName("guide_name") + private String guideName; + @SerializedName("illuminate_count") + private int illuminateCount; + @SerializedName("already_font") + private String alreadyFont; + @SerializedName("without_font") + private String withoutFont; + @SerializedName("number") + private String number; + @SerializedName("illuminate_total") + private int illuminateTotal; + @SerializedName("week_number") + private String weekNumber; + @SerializedName("guide_name_img_path") + private String guideNameImgPath; + @SerializedName("guide_background_picture_path") + private String guideBackgroundPicturePath; + @SerializedName("gift_data") + private List giftData; + + public String getAlreadyFont() { + return alreadyFont; + } + + public GiftGuideModel setAlreadyFont(String alreadyFont) { + this.alreadyFont = alreadyFont; + return this; + } + + public String getWithoutFont() { + return withoutFont; + } + + public GiftGuideModel setWithoutFont(String withoutFont) { + this.withoutFont = withoutFont; + return this; + } + + public String getNumber() { + return number; + } + + public GiftGuideModel setNumber(String number) { + this.number = number; + return this; + } + + public int getIlluminateTotal() { + return illuminateTotal; + } + + public GiftGuideModel setIlluminateTotal(int illuminateTotal) { + this.illuminateTotal = illuminateTotal; + return this; + } + + public String getWeekNumber() { + return weekNumber; + } + + public GiftGuideModel setWeekNumber(String weekNumber) { + this.weekNumber = weekNumber; + return this; + } + + public String getGuideNameImgPath() { + return guideNameImgPath; + } + + public GiftGuideModel setGuideNameImgPath(String guideNameImgPath) { + this.guideNameImgPath = guideNameImgPath; + return this; + } + + public String getGuideBackgroundPicturePath() { + return guideBackgroundPicturePath; + } + + public GiftGuideModel setGuideBackgroundPicturePath(String guideBackgroundPicturePath) { + this.guideBackgroundPicturePath = guideBackgroundPicturePath; + return this; + } + + public String getGuideName() { + return guideName; + } + + public GiftGuideModel setGuideName(String guideName) { + this.guideName = guideName; + return this; + } + + public int getIlluminateCount() { + return illuminateCount; + } + + public GiftGuideModel setIlluminateCount(int illuminateCount) { + this.illuminateCount = illuminateCount; + return this; + } + + public List getGiftData() { + return giftData; + } + + public GiftGuideModel setGiftData(List giftData) { + this.giftData = giftData; + return this; + } +} diff --git a/common/src/main/java/com/yunbao/common/bean/GiftWallModel.java b/common/src/main/java/com/yunbao/common/bean/GiftWallModel.java index 38484a554..ac4dc6841 100644 --- a/common/src/main/java/com/yunbao/common/bean/GiftWallModel.java +++ b/common/src/main/java/com/yunbao/common/bean/GiftWallModel.java @@ -70,6 +70,29 @@ public class GiftWallModel extends BaseModel { @SerializedName("naming_coin_max") private String namingCoinMax; + @SerializedName("illuminate_status") + private int illuminateStatus; + @SerializedName("font_color") + private String fontColor; + + public String getFontColor() { + return fontColor; + } + + public GiftWallModel setFontColor(String fontColor) { + this.fontColor = fontColor; + return this; + } + + public int getIlluminateStatus() { + return illuminateStatus; + } + + public GiftWallModel setIlluminateStatus(int illuminateStatus) { + this.illuminateStatus = illuminateStatus; + return this; + } + public String getNamingCoinMax() { return namingCoinMax; } diff --git a/common/src/main/java/com/yunbao/common/event/CodexEvent.java b/common/src/main/java/com/yunbao/common/event/CodexEvent.java new file mode 100644 index 000000000..09c6e9d00 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/event/CodexEvent.java @@ -0,0 +1,6 @@ +package com.yunbao.common.event; + +import com.yunbao.common.bean.BaseModel; + +public class CodexEvent extends BaseModel { +} diff --git a/live/src/main/java/com/yunbao/live/event/LiveGiftDialogEvent.java b/common/src/main/java/com/yunbao/common/event/LiveGiftDialogEvent.java similarity index 53% rename from live/src/main/java/com/yunbao/live/event/LiveGiftDialogEvent.java rename to common/src/main/java/com/yunbao/common/event/LiveGiftDialogEvent.java index cd0a65171..5c6c76e48 100644 --- a/live/src/main/java/com/yunbao/live/event/LiveGiftDialogEvent.java +++ b/common/src/main/java/com/yunbao/common/event/LiveGiftDialogEvent.java @@ -1,4 +1,4 @@ -package com.yunbao.live.event; +package com.yunbao.common.event; public class LiveGiftDialogEvent { } 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 54573f999..904534dd3 100644 --- a/common/src/main/java/com/yunbao/common/http/PDLiveApi.java +++ b/common/src/main/java/com/yunbao/common/http/PDLiveApi.java @@ -13,6 +13,7 @@ import com.yunbao.common.bean.DiscountsModel; import com.yunbao.common.bean.EnterRoomNewModel; import com.yunbao.common.bean.FaceBookUpModel; import com.yunbao.common.bean.GiftAlreadyWallModel; +import com.yunbao.common.bean.GiftGuideModel; import com.yunbao.common.bean.GiftWallGiftDetail; import com.yunbao.common.bean.GiftWallModel; import com.yunbao.common.bean.HourRank; @@ -873,5 +874,19 @@ public interface PDLiveApi { */ @GET("/api/public/?service=Gift.lastMonthGiftNaming") Observable>> lastMonthGiftNaming(); + /** + * 礼物墙上月冠名 + * + * @return + */ + @GET("/api/public/?service=Gift.getGiftGuide") + Observable>> getGiftGuide( + @Query("liveuid") String liveUid + ); + + @GET("/api/public/?service=Gift.getGiftGuideHistory") + Observable>> getGiftGuideHistory( + @Query("liveuid") String liveUid + ); } 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 6ee8b6508..c727f5adc 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 @@ -14,6 +14,7 @@ import com.yunbao.common.bean.CustomSidebarInfoModel; import com.yunbao.common.bean.DiscountsModel; import com.yunbao.common.bean.EnterRoomNewModel; import com.yunbao.common.bean.GiftAlreadyWallModel; +import com.yunbao.common.bean.GiftGuideModel; import com.yunbao.common.bean.GiftWallGiftDetail; import com.yunbao.common.bean.GiftWallModel; import com.yunbao.common.bean.HttpCallbackModel; @@ -1909,6 +1910,50 @@ public class LiveNetManager { }).isDisposed(); } + public void getGiftGuide(String liveUid, HttpCallback> callback) { + API.get().pdLiveApi(mContext) + .getGiftGuide(liveUid) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Consumer>>() { + @Override + public void accept(ResponseModel> listResponseModel) throws Exception { + if (callback != null) { + callback.onSuccess(listResponseModel.getData().getInfo()); + } + } + }, new Consumer() { + @Override + public void accept(Throwable throwable) throws Exception { + if (callback != null) { + callback.onError(mContext.getString(R.string.net_error)); + } + } + }).isDisposed(); + } + + public void getGiftGuideHistory(String liveUid, HttpCallback> callback) { + API.get().pdLiveApi(mContext) + .getGiftGuideHistory(liveUid) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Consumer>>() { + @Override + public void accept(ResponseModel> listResponseModel) throws Exception { + if (callback != null) { + callback.onSuccess(listResponseModel.getData().getInfo()); + } + } + }, new Consumer() { + @Override + public void accept(Throwable throwable) throws Exception { + if (callback != null) { + callback.onError(mContext.getString(R.string.net_error)); + } + } + }).isDisposed(); + } + /** * 直播间取消网络请求 */ diff --git a/common/src/main/res/drawable/background_codex_item_btn.xml b/common/src/main/res/drawable/background_codex_item_btn.xml new file mode 100644 index 000000000..0682d347a --- /dev/null +++ b/common/src/main/res/drawable/background_codex_item_btn.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/drawable/background_codex_top.xml b/common/src/main/res/drawable/background_codex_top.xml new file mode 100644 index 000000000..96109f515 --- /dev/null +++ b/common/src/main/res/drawable/background_codex_top.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/common/src/main/res/drawable/background_dialog_live_codex.xml b/common/src/main/res/drawable/background_dialog_live_codex.xml new file mode 100644 index 000000000..cc001c397 --- /dev/null +++ b/common/src/main/res/drawable/background_dialog_live_codex.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/dialog_live_codex.xml b/common/src/main/res/layout/dialog_live_codex.xml new file mode 100644 index 000000000..9bc06cce4 --- /dev/null +++ b/common/src/main/res/layout/dialog_live_codex.xml @@ -0,0 +1,23 @@ + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/item_codex.xml b/common/src/main/res/layout/item_codex.xml new file mode 100644 index 000000000..4e975281f --- /dev/null +++ b/common/src/main/res/layout/item_codex.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/item_codex_item.xml b/common/src/main/res/layout/item_codex_item.xml new file mode 100644 index 000000000..27e0f6b88 --- /dev/null +++ b/common/src/main/res/layout/item_codex_item.xml @@ -0,0 +1,31 @@ + + + + + + + + + \ No newline at end of file diff --git a/live/src/main/res/mipmap-xxxhdpi/icon_regular_black.png b/common/src/main/res/mipmap-xxhdpi/icon_regular_black.png similarity index 100% rename from live/src/main/res/mipmap-xxxhdpi/icon_regular_black.png rename to common/src/main/res/mipmap-xxhdpi/icon_regular_black.png diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml index 60af067da..98c080b77 100644 --- a/common/src/main/res/values/strings.xml +++ b/common/src/main/res/values/strings.xml @@ -1291,5 +1291,8 @@ Limited ride And limited avatar frame 本月得主 上月得主 上月奪得最終禮物冠名權用戶將獲得該禮物一個月專屬冠名皮膚 + 近期點亮 + 已獲得 + 去點亮 diff --git a/live/src/main/java/com/yunbao/live/adapter/CodexAdapter.java b/live/src/main/java/com/yunbao/live/adapter/CodexAdapter.java new file mode 100644 index 000000000..3c87cc947 --- /dev/null +++ b/live/src/main/java/com/yunbao/live/adapter/CodexAdapter.java @@ -0,0 +1,47 @@ +package com.yunbao.live.adapter; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.R; +import com.yunbao.common.bean.GiftGuideModel; +import com.yunbao.live.views.CodexViewHolder; + +import java.util.ArrayList; +import java.util.List; + +public class CodexAdapter extends RecyclerView.Adapter { + private List giftGuideModels = new ArrayList<>(); + private boolean history; + private String mStream, mLiveUid; + @NonNull + @Override + public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View herdView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_codex, parent, false); + return new CodexViewHolder(herdView); + } + + @Override + public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { + CodexViewHolder codexViewHolder = (CodexViewHolder) holder; + codexViewHolder.showData(giftGuideModels.get(position), history,mStream,mLiveUid); + } + + @Override + public int getItemCount() { + return giftGuideModels.size(); + } + + public void addAllData(List mGiftWall, boolean history, String mStream, String mLiveUid) { + this.history = history; + this.mStream = mStream; + this.mLiveUid = mLiveUid; + giftGuideModels.clear(); + giftGuideModels.addAll(mGiftWall); + notifyDataSetChanged(); + } +} diff --git a/live/src/main/java/com/yunbao/live/adapter/CodexItemAdapter.java b/live/src/main/java/com/yunbao/live/adapter/CodexItemAdapter.java new file mode 100644 index 000000000..5913f3b3b --- /dev/null +++ b/live/src/main/java/com/yunbao/live/adapter/CodexItemAdapter.java @@ -0,0 +1,43 @@ +package com.yunbao.live.adapter; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.R; +import com.yunbao.common.bean.GiftWallModel; +import com.yunbao.live.views.CodexItemViewHolder; + +import java.util.ArrayList; +import java.util.List; + +public class CodexItemAdapter extends RecyclerView.Adapter { + private List giftData = new ArrayList<>(); + + @NonNull + @Override + public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View herdView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_codex_item, parent, false); + return new CodexItemViewHolder(herdView); + } + + @Override + public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { + CodexItemViewHolder codexItemViewHolder = (CodexItemViewHolder) holder; + codexItemViewHolder.showData(giftData.get(position)); + } + + @Override + public int getItemCount() { + return giftData.size(); + } + + public void addAllData(List mGiftWall) { + giftData.clear(); + giftData.addAll(mGiftWall); + notifyDataSetChanged(); + } +} diff --git a/live/src/main/java/com/yunbao/live/adapter/LiveGiftAdapter.java b/live/src/main/java/com/yunbao/live/adapter/LiveGiftAdapter.java index 777d7714b..3817726cf 100644 --- a/live/src/main/java/com/yunbao/live/adapter/LiveGiftAdapter.java +++ b/live/src/main/java/com/yunbao/live/adapter/LiveGiftAdapter.java @@ -35,7 +35,7 @@ import com.yunbao.common.views.weight.ViewClicksAntiShake; import com.yunbao.live.R; import com.yunbao.live.custom.GiftMarkView; import com.yunbao.live.dialog.SendRendPacketPopup; -import com.yunbao.live.event.LiveGiftDialogEvent; +import com.yunbao.common.event.LiveGiftDialogEvent; import java.io.File; import java.util.List; diff --git a/live/src/main/java/com/yunbao/live/dialog/CodexDialog.java b/live/src/main/java/com/yunbao/live/dialog/CodexDialog.java new file mode 100644 index 000000000..a0e192154 --- /dev/null +++ b/live/src/main/java/com/yunbao/live/dialog/CodexDialog.java @@ -0,0 +1,114 @@ +package com.yunbao.live.dialog; + +import android.content.Context; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.lxj.xpopup.core.BottomPopupView; +import com.yunbao.common.bean.GiftGuideModel; +import com.yunbao.common.event.CodexEvent; +import com.yunbao.common.event.LiveGiftDialogEvent; +import com.yunbao.common.http.base.HttpCallback; +import com.yunbao.common.http.live.LiveNetManager; +import com.yunbao.common.utils.Bus; +import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.views.weight.ViewClicksAntiShake; +import com.yunbao.live.R; +import com.yunbao.live.adapter.CodexAdapter; + +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; + +import java.util.List; + +public class CodexDialog extends BottomPopupView { + private String mStream, mLiveUid; + private RecyclerView liveCodex; + private CodexAdapter codexAdapter; + private boolean history; + + public CodexDialog(@NonNull Context context, String mStream, String mLiveUid, boolean history) { + super(context); + this.mLiveUid = mLiveUid; + this.mStream = mStream; + this.history = history; + } + + // 返回自定义弹窗的布局 + @Override + protected int getImplLayoutId() { + return R.layout.dialog_live_codex; + } + + // 执行初始化操作,比如:findView,设置点击,或者任何你弹窗内的业务逻辑 + @Override + protected void onCreate() { + super.onCreate(); + Bus.getOn(this); + initView(); + initDate(); + } + + private void initDate() { + if (history) { + LiveNetManager.get(getContext()). + getGiftGuideHistory(mLiveUid, new HttpCallback>() { + @Override + public void onSuccess(List data) { + codexAdapter.addAllData(data,history,mStream,mLiveUid); + } + + @Override + public void onError(String error) { + ToastUtil.show(error); + } + }); + } else { + LiveNetManager.get(getContext()). + getGiftGuide(mLiveUid, new HttpCallback>() { + @Override + public void onSuccess(List data) { + codexAdapter.addAllData(data,history,mStream,mLiveUid); + } + + @Override + public void onError(String error) { + ToastUtil.show(error); + } + }); + } + + } + + private void initView() { + liveCodex = findViewById(R.id.live_codex); + codexAdapter = new CodexAdapter(); + liveCodex.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false)); + liveCodex.setAdapter(codexAdapter); + ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.close_btn), new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + dialog.dismiss(); + } + }); + } + + @Override + protected void onDismiss() { + Bus.getOff(this); + + super.onDismiss(); + } + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onCodexEvent(CodexEvent event) { + + } + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onLiveGiftDialogEvent(LiveGiftDialogEvent event) { + dismiss(); + } +} diff --git a/live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java b/live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java index 6e518a59d..a5f06e276 100644 --- a/live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java +++ b/live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java @@ -18,7 +18,6 @@ import com.yunbao.common.Constants; import com.yunbao.common.dialog.AbsDialogFragment; import com.yunbao.common.event.GiftWallItemEvent; import com.yunbao.common.fragment.AllServiceChampionFragment; -import com.yunbao.live.views.GiftAlreadyWallFragment; import com.yunbao.common.fragment.GiftWithoutWallFragment; import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.http.CommonHttpUtil; @@ -29,7 +28,8 @@ import com.yunbao.common.views.weight.ViewClicksAntiShake; import com.yunbao.live.R; import com.yunbao.live.activity.LiveActivity; import com.yunbao.live.event.LiveAudienceEvent; -import com.yunbao.live.event.LiveGiftDialogEvent; +import com.yunbao.common.event.LiveGiftDialogEvent; +import com.yunbao.live.views.GiftAlreadyWallFragment; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -130,6 +130,15 @@ public class GiftWallDialog extends AbsDialogFragment { .show(); } }); + ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.codex_layout), new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + new XPopup.Builder(getContext()) + .enableDrag(false) + .asCustom(new CodexDialog(getContext(), mStream, mLiveUid,false)) + .show(); + } + }); } private void initDate() { diff --git a/live/src/main/java/com/yunbao/live/dialog/GiftWallItemPopup.java b/live/src/main/java/com/yunbao/live/dialog/GiftWallItemPopup.java index bec97cd32..2f2a138e2 100644 --- a/live/src/main/java/com/yunbao/live/dialog/GiftWallItemPopup.java +++ b/live/src/main/java/com/yunbao/live/dialog/GiftWallItemPopup.java @@ -19,7 +19,7 @@ import com.yunbao.common.utils.Bus; import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.views.weight.ViewClicksAntiShake; import com.yunbao.live.event.LiveAudienceEvent; -import com.yunbao.live.event.LiveGiftDialogEvent; +import com.yunbao.common.event.LiveGiftDialogEvent; public class GiftWallItemPopup extends CenterPopupView { private CardView layout; diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveGiftDialogFragment.java b/live/src/main/java/com/yunbao/live/dialog/LiveGiftDialogFragment.java index fd3fd30e3..ead655723 100644 --- a/live/src/main/java/com/yunbao/live/dialog/LiveGiftDialogFragment.java +++ b/live/src/main/java/com/yunbao/live/dialog/LiveGiftDialogFragment.java @@ -80,7 +80,7 @@ import com.yunbao.live.bean.GiftTopBean; import com.yunbao.live.bean.LiveGuardInfo; import com.yunbao.live.custom.GiftViewPager; import com.yunbao.live.event.LiveAudienceEvent; -import com.yunbao.live.event.LiveGiftDialogEvent; +import com.yunbao.common.event.LiveGiftDialogEvent; import com.yunbao.live.http.LiveHttpConsts; import com.yunbao.live.http.LiveHttpUtil; import com.yunbao.live.utils.ToolsButton; diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveGiftPopup.java b/live/src/main/java/com/yunbao/live/dialog/LiveGiftPopup.java index 04302b225..06d7054d1 100644 --- a/live/src/main/java/com/yunbao/live/dialog/LiveGiftPopup.java +++ b/live/src/main/java/com/yunbao/live/dialog/LiveGiftPopup.java @@ -74,7 +74,7 @@ import com.yunbao.live.bean.GiftTopBean; import com.yunbao.live.bean.LiveGuardInfo; import com.yunbao.live.event.GiftTitleEvent; import com.yunbao.live.event.LiveAudienceEvent; -import com.yunbao.live.event.LiveGiftDialogEvent; +import com.yunbao.common.event.LiveGiftDialogEvent; import com.yunbao.live.event.LiveGiftItemEvent; import com.yunbao.live.event.LiveParcelItemRefreshEvent; import com.yunbao.live.http.LiveHttpUtil; diff --git a/live/src/main/java/com/yunbao/live/views/CodexItemViewHolder.java b/live/src/main/java/com/yunbao/live/views/CodexItemViewHolder.java new file mode 100644 index 000000000..07c4227d4 --- /dev/null +++ b/live/src/main/java/com/yunbao/live/views/CodexItemViewHolder.java @@ -0,0 +1,55 @@ +package com.yunbao.live.views; + +import android.graphics.Color; +import android.text.TextUtils; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.R; +import com.yunbao.common.bean.GiftWallModel; +import com.yunbao.common.event.LiveGiftDialogEvent; +import com.yunbao.common.glide.ImgLoader; +import com.yunbao.common.utils.Bus; +import com.yunbao.common.views.weight.ViewClicksAntiShake; +import com.yunbao.live.event.LiveAudienceEvent; + +public class CodexItemViewHolder extends RecyclerView.ViewHolder { + private ImageView giftImg; + private TextView giftName, giftWall; + + public CodexItemViewHolder(@NonNull View itemView) { + super(itemView); + giftImg = itemView.findViewById(R.id.gift_img); + giftName = itemView.findViewById(R.id.gift_name); + giftWall = itemView.findViewById(R.id.gift_wall); + } + + public void showData(GiftWallModel giftWallModel) { + ImgLoader.display(itemView.getContext(), giftWallModel.getGifticon(), giftImg); + giftName.setText(giftWallModel.getGiftname()); + giftName.setTextColor(Color.parseColor(giftWallModel.getFontColor())); + giftWall.setSelected(TextUtils.equals(String.valueOf(giftWallModel.getIlluminateStatus()), "1")); + if (TextUtils.equals(String.valueOf(giftWallModel.getIlluminateStatus()), "1")) { + giftWall.setText(itemView.getContext().getString(R.string.received_wall2)); + giftWall.setTextColor(Color.parseColor("#FFFFFF")); + ViewClicksAntiShake.clicksAntiShake(giftWall, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + Bus.get().post(new LiveGiftDialogEvent()); + Bus.get().post(new LiveAudienceEvent() + .setType(LiveAudienceEvent.LiveAudienceType.GIFT_POPUP) + .setmWishGiftId(giftWallModel.getId()) + .setmLiveUid("") + .setmStream("")); + } + }); + } else { + giftWall.setText(itemView.getContext().getString(R.string.received_wall)); + giftWall.setTextColor(Color.parseColor("#49669F")); + } + } +} diff --git a/live/src/main/java/com/yunbao/live/views/CodexViewHolder.java b/live/src/main/java/com/yunbao/live/views/CodexViewHolder.java new file mode 100644 index 000000000..cc5f42643 --- /dev/null +++ b/live/src/main/java/com/yunbao/live/views/CodexViewHolder.java @@ -0,0 +1,68 @@ +package com.yunbao.live.views; + +import android.graphics.Color; +import android.text.TextUtils; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.lxj.xpopup.XPopup; +import com.yunbao.common.R; +import com.yunbao.common.bean.GiftGuideModel; +import com.yunbao.common.glide.ImgLoader; +import com.yunbao.common.views.weight.ViewClicksAntiShake; +import com.yunbao.live.adapter.CodexItemAdapter; +import com.yunbao.live.dialog.CodexDialog; + +public class CodexViewHolder extends RecyclerView.ViewHolder { + private ImageView codexLayout, titleIcon; + private TextView titleName, weekNumber, weekNumber2; + private RecyclerView giftList; + private CodexItemAdapter codexItemAdapter; + + public CodexViewHolder(@NonNull View itemView) { + super(itemView); + codexLayout = itemView.findViewById(R.id.codex_layout); + titleIcon = itemView.findViewById(R.id.title_icon); + titleName = itemView.findViewById(R.id.title_name); + weekNumber = itemView.findViewById(R.id.week_number); + weekNumber2 = itemView.findViewById(R.id.week_number2); + giftList = itemView.findViewById(R.id.gift_list); + codexItemAdapter = new CodexItemAdapter(); + giftList.setLayoutManager(new LinearLayoutManager(itemView.getContext(), LinearLayoutManager.HORIZONTAL, false)); + giftList.setAdapter(codexItemAdapter); + } + + public void showData(GiftGuideModel giftGuideModel, boolean history, String mStream, String mLiveUid) { + StringBuffer stringBuffer = new StringBuffer(); + stringBuffer.append(giftGuideModel.getIlluminateCount()) + .append("/") + .append(giftGuideModel.getIlluminateTotal()); + ImgLoader.display(itemView.getContext(), giftGuideModel.getGuideBackgroundPicturePath(), codexLayout); + ImgLoader.display(itemView.getContext(), giftGuideModel.getGuideNameImgPath(), titleIcon); + titleName.setText(stringBuffer.toString()); + titleName.setTextColor(Color.parseColor(giftGuideModel.getNumber())); + weekNumber.setText(giftGuideModel.getWeekNumber()); + weekNumber.setVisibility(TextUtils.isEmpty(giftGuideModel.getWeekNumber()) ? View.GONE : View.VISIBLE); + if (history) { + weekNumber2.setVisibility(View.GONE); + } else { + weekNumber2.setVisibility(TextUtils.isEmpty(giftGuideModel.getWeekNumber()) ? View.GONE : View.VISIBLE); + } + + codexItemAdapter.addAllData(giftGuideModel.getGiftData()); + ViewClicksAntiShake.clicksAntiShake(weekNumber2, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + new XPopup.Builder(itemView.getContext()) + .enableDrag(false) + .asCustom(new CodexDialog(itemView.getContext(), mStream, mLiveUid,true)) + .show(); + } + }); + } +} diff --git a/live/src/main/java/com/yunbao/live/views/FrameGiftViewHolder.java b/live/src/main/java/com/yunbao/live/views/FrameGiftViewHolder.java index 709767b88..d89aa8c62 100644 --- a/live/src/main/java/com/yunbao/live/views/FrameGiftViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/FrameGiftViewHolder.java @@ -28,7 +28,7 @@ import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.views.weight.ViewClicksAntiShake; import com.yunbao.live.R; import com.yunbao.live.dialog.SendRendPacketPopup; -import com.yunbao.live.event.LiveGiftDialogEvent; +import com.yunbao.common.event.LiveGiftDialogEvent; import java.io.File; diff --git a/live/src/main/java/com/yunbao/live/views/GiftAlreadyWallFragment.java b/live/src/main/java/com/yunbao/live/views/GiftAlreadyWallFragment.java index ddf30f143..51bce1418 100644 --- a/live/src/main/java/com/yunbao/live/views/GiftAlreadyWallFragment.java +++ b/live/src/main/java/com/yunbao/live/views/GiftAlreadyWallFragment.java @@ -19,7 +19,7 @@ import com.yunbao.common.http.live.LiveNetManager; import com.yunbao.common.utils.Bus; import com.yunbao.common.views.weight.ViewClicksAntiShake; import com.yunbao.live.event.LiveAudienceEvent; -import com.yunbao.live.event.LiveGiftDialogEvent; +import com.yunbao.common.event.LiveGiftDialogEvent; /** * 已点亮礼物墙 diff --git a/live/src/main/java/com/yunbao/live/views/LiveParcelItemViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveParcelItemViewHolder.java index a94d35354..3353538e2 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveParcelItemViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveParcelItemViewHolder.java @@ -26,7 +26,7 @@ import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.views.weight.ViewClicksAntiShake; import com.yunbao.live.R; import com.yunbao.live.dialog.SendRendPacketPopup; -import com.yunbao.live.event.LiveGiftDialogEvent; +import com.yunbao.common.event.LiveGiftDialogEvent; import java.io.File; 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 a8d471f4a..ef87fca35 100644 --- a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java +++ b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java @@ -8,7 +8,6 @@ import android.app.Dialog; import android.content.Intent; import android.content.res.Configuration; import android.graphics.drawable.AnimationDrawable; -import android.os.Bundle; import android.os.CountDownTimer; import android.os.Handler; import android.text.TextUtils; @@ -81,11 +80,10 @@ import com.yunbao.live.bean.LivePKUserListBean; import com.yunbao.live.bean.LiveReceiveGiftBean; import com.yunbao.live.bean.OpenParametersModel; import com.yunbao.live.dialog.BlowkissDialog; -import com.yunbao.live.dialog.GiftWallDialog; import com.yunbao.live.dialog.NewUserDialog; import com.yunbao.live.event.LinkMicTxAccEvent; import com.yunbao.live.event.LiveAudienceEvent; -import com.yunbao.live.event.LiveGiftDialogEvent; +import com.yunbao.common.event.LiveGiftDialogEvent; import com.yunbao.live.event.LiveRoomChangeEvent; import com.yunbao.live.http.LiveHttpConsts; import com.yunbao.live.http.LiveHttpUtil; diff --git a/live/src/main/res/layout/dialog_live_gift_wall.xml b/live/src/main/res/layout/dialog_live_gift_wall.xml index cc3eb7cd0..1e9c28dee 100644 --- a/live/src/main/res/layout/dialog_live_gift_wall.xml +++ b/live/src/main/res/layout/dialog_live_gift_wall.xml @@ -48,6 +48,7 @@ android:background="@mipmap/background_giftwall_tab"> Date: Wed, 2 Aug 2023 17:47:00 +0800 Subject: [PATCH 10/19] =?UTF-8?q?6.5.4=E7=A4=BC=E7=89=A9=E5=86=A0=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yunbao/common/utils/RouteUtil.java | 11 + live/src/main/AndroidManifest.xml | 6 + .../live/activity/GiftWallActivity.java | 190 +++++++++++++++++ .../yunbao/live/views/LiveRoomViewHolder.java | 1 + .../drawable/background_gift_wall_shape.xml | 8 + .../res/layout/activity_live_gift_wall.xml | 192 ++++++++++++++++++ 6 files changed, 408 insertions(+) create mode 100644 live/src/main/java/com/yunbao/live/activity/GiftWallActivity.java create mode 100644 live/src/main/res/drawable/background_gift_wall_shape.xml create mode 100644 live/src/main/res/layout/activity_live_gift_wall.xml diff --git a/common/src/main/java/com/yunbao/common/utils/RouteUtil.java b/common/src/main/java/com/yunbao/common/utils/RouteUtil.java index aaae75cc4..e7346a06b 100644 --- a/common/src/main/java/com/yunbao/common/utils/RouteUtil.java +++ b/common/src/main/java/com/yunbao/common/utils/RouteUtil.java @@ -35,6 +35,7 @@ public class RouteUtil { public static final String PATH_MAIN = "/main/MainActivity"; public static final String PATH_ENTRY = "/main/EntryActivity"; public static final String PATH_LIVE_AUDIENCE = "/live/LiveAudienceActivity"; + public static final String PATH_GIFT_WALL = "/live/GiftWallActivity"; public static final String PATH_SETTING = "/main/SettingActivity"; public static final String PATH_FANSACTIVITY = "/main/FansActivity"; public static final String PATH_MYWEBVIEWACTIVTITY2 = "/main/MyWebViewActivity2"; @@ -232,6 +233,15 @@ public class RouteUtil { postcard.navigation(); } + public static void forwardGiftWallActivity(String mStream, String mAnchorName, String mLiveUid, String mAvatarUrl, int isAttention) { + ARouter.getInstance().build(PATH_GIFT_WALL) + .withString(Constants.LIVE_UID, mLiveUid) + .withString(Constants.STREAM, mStream) + .withString("mAnchorName", mAnchorName) + .withString("mAvatarUrl", mAvatarUrl) + .withInt("isAttention", isAttention) + .navigation(); + } /** * 举报个人 @@ -287,6 +297,7 @@ public class RouteUtil { /** * 红包发放情况 + * * @param id 发放者uid */ public static void forwardRedPacketUser(int id) { diff --git a/live/src/main/AndroidManifest.xml b/live/src/main/AndroidManifest.xml index d780e2f5e..71ec8f14e 100644 --- a/live/src/main/AndroidManifest.xml +++ b/live/src/main/AndroidManifest.xml @@ -5,6 +5,7 @@ + + tabText = new ArrayList<>(); + private List tabView = new ArrayList<>(); + private String mStream, mAnchorName, mLiveUid, mAvatarUrl; + private int isAttention = 0;//是否关注 0=没关注, + + @Override + protected int getLayoutId() { + return R.layout.activity_live_gift_wall; + } + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + Bus.getOn(this); + initView(); + initDate(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + Bus.getOff(this); + } + + private void initView() { + layoutLitIcon = findViewById(R.id.layout_lit_icon); + layoutUnlitIcon = findViewById(R.id.layout_unlit_icon); + layoutAllServiceChampion = findViewById(R.id.layout_all_service_champion); + textLitIcon = findViewById(R.id.text_lit_icon); + textUnlitIcon = findViewById(R.id.text_unlit_icon); + textAllServiceChampion = findViewById(R.id.text_all_service_champion); + viewAllServiceChampion = findViewById(R.id.view_all_service_champion); + viewUnlitIcon = findViewById(R.id.view_unlit_icon); + viewLitIcon = findViewById(R.id.view_lit_icon); + avatar = findViewById(R.id.avatar); + attention = findViewById(R.id.attention); + anchorName = findViewById(R.id.anchor_name); + tabText.add(textLitIcon); + tabText.add(textUnlitIcon); + tabText.add(textAllServiceChampion); + tabView.add(viewLitIcon); + tabView.add(viewUnlitIcon); + tabView.add(viewAllServiceChampion); + selectTab(textLitIcon, viewLitIcon); + ViewClicksAntiShake.clicksAntiShake(layoutLitIcon, () -> { + selectTab(textLitIcon, viewLitIcon); + FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); + transaction.replace(R.id.context_layout_gift, GiftAlreadyWallFragment.newInstance(mStream, mLiveUid)); + transaction.commit(); + }); + ViewClicksAntiShake.clicksAntiShake(layoutUnlitIcon, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + selectTab(textUnlitIcon, viewUnlitIcon); + FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); + transaction.replace(R.id.context_layout_gift, GiftWithoutWallFragment.newInstance(mStream, mLiveUid)); + transaction.commit(); + + } + }); + ViewClicksAntiShake.clicksAntiShake(layoutAllServiceChampion, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + selectTab(textAllServiceChampion, viewAllServiceChampion); + FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); + transaction.replace(R.id.context_layout_gift, AllServiceChampionFragment.newInstance(mStream, mLiveUid)); + transaction.commit(); + } + }); + ViewClicksAntiShake.clicksAntiShake(attention, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + CommonHttpUtil.setAttention(mLiveUid, new CommonCallback() { + @Override + public void callback(Integer isAttention) { + if (isAttention == 1) { + LiveActivity.sendSystemMessage(IMLoginManager.get(GiftWallActivity.this).getUserInfo().getUserNicename() + + getString(R.string.live_follow_anchor)); + attention.setVisibility(View.GONE); + Bus.get().post(new LiveAudienceEvent() + .setType(LiveAudienceEvent.LiveAudienceType.IS_ATTENTION).setLiveType(isAttention)); + } + } + }); + } + }); + + ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.codex_layout), new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + new XPopup.Builder(GiftWallActivity.this) + .enableDrag(false) + .asCustom(new CodexDialog(GiftWallActivity.this, mStream, mLiveUid, false)) + .show(); + } + }); + } + + private void initDate() { + Intent intent = getIntent(); + if (intent == null) { + return; + } + mLiveUid = intent.getStringExtra(Constants.LIVE_UID); + mStream = intent.getStringExtra(Constants.STREAM); + mAnchorName = intent.getStringExtra("mAnchorName"); + mAvatarUrl = intent.getStringExtra("mAvatarUrl"); + isAttention = intent.getIntExtra("isAttention", 0); + + FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); + transaction.replace(R.id.context_layout_gift, GiftAlreadyWallFragment.newInstance(mStream, mLiveUid)); + transaction.commit(); + ImgLoader.display(GiftWallActivity.this, mAvatarUrl, avatar); + anchorName.setText(mAnchorName); + attention.setVisibility(isAttention == 0 ? View.VISIBLE : View.GONE); + } + + private void selectTab(TextView textView, View tab) { + for (TextView view : tabText) { + if (textView == view) { + view.setTypeface(Typeface.SANS_SERIF, Typeface.BOLD_ITALIC); + } else { + view.setTypeface(Typeface.SANS_SERIF, Typeface.ITALIC); + } + } + for (View view : tabView) { + view.setVisibility(view == tab ? View.VISIBLE : View.GONE); + } + } + + /** + * 关于点击礼物分类的通知 + */ + @Subscribe(threadMode = ThreadMode.MAIN) + public void onGiftWallItemEvent(GiftWallItemEvent event) { + new XPopup.Builder(this) + .asCustom(new GiftWallItemPopup(this, event.getGiftWallModel(), event.isUnlit(), mLiveUid, mStream)) + .show(); + } + @Subscribe(threadMode = ThreadMode.MAIN) + public void onLiveGiftDialogEvent(LiveGiftDialogEvent event) { + onBackPressed(); + } +} \ No newline at end of file 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 beb8f40d1..b4086d48e 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java @@ -2668,6 +2668,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis bundle.putInt("isAttention", isAttention); giftWallDialog.setArguments(bundle); giftWallDialog.show(((AbsActivity) mContext).getSupportFragmentManager(), "GiftWallDialog"); +// RouteUtil.forwardGiftWallActivity(mStream,mAnchorName,mLiveUid,mAvatarUrl,isAttention); } public boolean pkHandler = true; diff --git a/live/src/main/res/drawable/background_gift_wall_shape.xml b/live/src/main/res/drawable/background_gift_wall_shape.xml new file mode 100644 index 000000000..652afc29f --- /dev/null +++ b/live/src/main/res/drawable/background_gift_wall_shape.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/live/src/main/res/layout/activity_live_gift_wall.xml b/live/src/main/res/layout/activity_live_gift_wall.xml new file mode 100644 index 000000000..f9e5835f4 --- /dev/null +++ b/live/src/main/res/layout/activity_live_gift_wall.xml @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 986902886a56062eb2882f19392ffb15c46f14c6 Mon Sep 17 00:00:00 2001 From: 18401019693 Date: Thu, 3 Aug 2023 14:29:04 +0800 Subject: [PATCH 11/19] =?UTF-8?q?6.5.4=E7=A4=BC=E7=89=A9=E5=86=A0=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/AchievementDetailsAdapter.java | 41 +++++ .../adapter/MedalAchievementAdapter.java | 44 +++++ .../common/bean/MedalAchievementModel.java | 42 +++++ .../common/bean/UserMedalListModel.java | 76 +++++++++ .../yunbao/common/bean/UserMedalModel.java | 72 ++++++++ .../dialog/AchievementDetailsPopup.java | 93 +++++++++++ .../com/yunbao/common/http/PDLiveApi.java | 6 + .../common/http/live/LiveNetManager.java | 45 +++++ .../views/AchievementDetailsViewHolder.java | 22 +++ .../views/MedalAchievementViewHolder.java | 48 ++++++ .../background_achievement_details_list.xml | 8 + .../drawable/background_codex_item_btn.xml | 4 +- .../res/layout/item_achievement_details.xml | 12 ++ .../src/main/res/layout/item_codex_item.xml | 1 + .../res/layout/item_medal_achievement.xml | 32 ++++ .../res/layout/popup_achievement_details.xml | 155 ++++++++++++++++++ .../background_medal_achievement.png | Bin 0 -> 13977 bytes common/src/main/res/values/strings.xml | 2 + .../yunbao/live/dialog/GiftWallDialog.java | 16 +- .../live/dialog/MedalAchievementPopup.java | 94 +++++++++++ .../yunbao/live/views/LiveRoomViewHolder.java | 1 + .../drawable/background_medal_achievement.xml | 9 + .../main/res/layout/dialog_live_gift_wall.xml | 1 + .../res/layout/dialog_medal_achievement.xml | 80 +++++++++ 24 files changed, 899 insertions(+), 5 deletions(-) create mode 100644 common/src/main/java/com/yunbao/common/adapter/AchievementDetailsAdapter.java create mode 100644 common/src/main/java/com/yunbao/common/adapter/MedalAchievementAdapter.java create mode 100644 common/src/main/java/com/yunbao/common/bean/MedalAchievementModel.java create mode 100644 common/src/main/java/com/yunbao/common/bean/UserMedalListModel.java create mode 100644 common/src/main/java/com/yunbao/common/bean/UserMedalModel.java create mode 100644 common/src/main/java/com/yunbao/common/dialog/AchievementDetailsPopup.java create mode 100644 common/src/main/java/com/yunbao/common/views/AchievementDetailsViewHolder.java create mode 100644 common/src/main/java/com/yunbao/common/views/MedalAchievementViewHolder.java create mode 100644 common/src/main/res/drawable/background_achievement_details_list.xml create mode 100644 common/src/main/res/layout/item_achievement_details.xml create mode 100644 common/src/main/res/layout/item_medal_achievement.xml create mode 100644 common/src/main/res/layout/popup_achievement_details.xml create mode 100644 common/src/main/res/mipmap-xxhdpi/background_medal_achievement.png create mode 100644 live/src/main/java/com/yunbao/live/dialog/MedalAchievementPopup.java create mode 100644 live/src/main/res/drawable/background_medal_achievement.xml create mode 100644 live/src/main/res/layout/dialog_medal_achievement.xml diff --git a/common/src/main/java/com/yunbao/common/adapter/AchievementDetailsAdapter.java b/common/src/main/java/com/yunbao/common/adapter/AchievementDetailsAdapter.java new file mode 100644 index 000000000..79cebed8e --- /dev/null +++ b/common/src/main/java/com/yunbao/common/adapter/AchievementDetailsAdapter.java @@ -0,0 +1,41 @@ +package com.yunbao.common.adapter; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.R; +import com.yunbao.common.bean.UserMedalModel; +import com.yunbao.common.views.AchievementDetailsViewHolder; + +import java.util.ArrayList; +import java.util.List; + +public class AchievementDetailsAdapter extends RecyclerView.Adapter { + private List dressInfo = new ArrayList<>(); + + public AchievementDetailsAdapter(List dressInfo) { + this.dressInfo = dressInfo; + } + + @NonNull + @Override + public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View herdView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_achievement_details, parent, false); + return new AchievementDetailsViewHolder(herdView); + } + + @Override + public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { + AchievementDetailsViewHolder achievementDetailsViewHolder = (AchievementDetailsViewHolder) holder; + achievementDetailsViewHolder.showData(dressInfo.get(position)); + } + + @Override + public int getItemCount() { + return dressInfo.size(); + } +} diff --git a/common/src/main/java/com/yunbao/common/adapter/MedalAchievementAdapter.java b/common/src/main/java/com/yunbao/common/adapter/MedalAchievementAdapter.java new file mode 100644 index 000000000..e0b43c9df --- /dev/null +++ b/common/src/main/java/com/yunbao/common/adapter/MedalAchievementAdapter.java @@ -0,0 +1,44 @@ +package com.yunbao.common.adapter; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.R; +import com.yunbao.common.bean.UserMedalListModel; +import com.yunbao.common.views.MedalAchievementViewHolder; + +import java.util.ArrayList; +import java.util.List; + +public class MedalAchievementAdapter extends RecyclerView.Adapter { + private List medalData = new ArrayList<>(); + + @NonNull + @Override + public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View herdView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_medal_achievement, parent, false); + return new MedalAchievementViewHolder(herdView); + } + + @Override + public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { + MedalAchievementViewHolder achievementViewHolder = (MedalAchievementViewHolder) holder; + achievementViewHolder.showData(medalData.get(position)); + } + + @Override + public int getItemCount() { + return medalData.size(); + } + + public void addAllData(List mGiftWall) { + + medalData.clear(); + medalData.addAll(mGiftWall); + notifyDataSetChanged(); + } +} diff --git a/common/src/main/java/com/yunbao/common/bean/MedalAchievementModel.java b/common/src/main/java/com/yunbao/common/bean/MedalAchievementModel.java new file mode 100644 index 000000000..9a6fb6ea5 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/bean/MedalAchievementModel.java @@ -0,0 +1,42 @@ +package com.yunbao.common.bean; + +import com.google.gson.annotations.SerializedName; + +import java.util.List; + +public class MedalAchievementModel extends BaseModel { + + @SerializedName("medal_total_number") + private String medalTotalNumber; + @SerializedName("medal_light_number") + private String medalLightNumber; + @SerializedName("medal_data") + private List medalData; + + public String getMedalTotalNumber() { + return medalTotalNumber; + } + + public MedalAchievementModel setMedalTotalNumber(String medalTotalNumber) { + this.medalTotalNumber = medalTotalNumber; + return this; + } + + public String getMedalLightNumber() { + return medalLightNumber; + } + + public MedalAchievementModel setMedalLightNumber(String medalLightNumber) { + this.medalLightNumber = medalLightNumber; + return this; + } + + public List getMedalData() { + return medalData; + } + + public MedalAchievementModel setMedalData(List medalData) { + this.medalData = medalData; + return this; + } +} diff --git a/common/src/main/java/com/yunbao/common/bean/UserMedalListModel.java b/common/src/main/java/com/yunbao/common/bean/UserMedalListModel.java new file mode 100644 index 000000000..13b783833 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/bean/UserMedalListModel.java @@ -0,0 +1,76 @@ +package com.yunbao.common.bean; + +import com.google.gson.annotations.SerializedName; + +import java.util.ArrayList; +import java.util.List; + +public class UserMedalListModel extends BaseModel { + + @SerializedName("dress_name") + private String dressName; + @SerializedName("dress_info") + private List dressInfo = new ArrayList<>(); + @SerializedName("display_src") + private String displaySrc; + @SerializedName("dress_description") + private String dressDescription; + @SerializedName("display_src_second") + private String displaySrcSecond; + @SerializedName("dress_status")//1Hd2whd + private String dressStatus; + + public String getDressDescription() { + return dressDescription; + } + + public UserMedalListModel setDressDescription(String dressDescription) { + this.dressDescription = dressDescription; + return this; + } + + public String getDisplaySrcSecond() { + return displaySrcSecond; + } + + public UserMedalListModel setDisplaySrcSecond(String displaySrcSecond) { + this.displaySrcSecond = displaySrcSecond; + return this; + } + + public String getDressStatus() { + return dressStatus; + } + + public UserMedalListModel setDressStatus(String dressStatus) { + this.dressStatus = dressStatus; + return this; + } + + public String getDressName() { + return dressName; + } + + public UserMedalListModel setDressName(String dressName) { + this.dressName = dressName; + return this; + } + + public List getDressInfo() { + return dressInfo; + } + + public UserMedalListModel setDressInfo(List dressInfo) { + this.dressInfo = dressInfo; + return this; + } + + public String getDisplaySrc() { + return displaySrc; + } + + public UserMedalListModel setDisplaySrc(String displaySrc) { + this.displaySrc = displaySrc; + return this; + } +} diff --git a/common/src/main/java/com/yunbao/common/bean/UserMedalModel.java b/common/src/main/java/com/yunbao/common/bean/UserMedalModel.java new file mode 100644 index 000000000..4ac5dde3e --- /dev/null +++ b/common/src/main/java/com/yunbao/common/bean/UserMedalModel.java @@ -0,0 +1,72 @@ +package com.yunbao.common.bean; + +import com.google.gson.annotations.SerializedName; + +public class UserMedalModel extends BaseModel { + @SerializedName("id") + private String id; + @SerializedName("display_src") + private String displaySrc; + @SerializedName("dress_name") + private String dressName; + @SerializedName("dress_description") + private String dressDescription; + @SerializedName("sort") + private String sort; + @SerializedName("dress_status") + private String dressStatus; + + public String getId() { + return id; + } + + public UserMedalModel setId(String id) { + this.id = id; + return this; + } + + public String getDisplaySrc() { + return displaySrc; + } + + public UserMedalModel setDisplaySrc(String displaySrc) { + this.displaySrc = displaySrc; + return this; + } + + public String getDressName() { + return dressName; + } + + public UserMedalModel setDressName(String dressName) { + this.dressName = dressName; + return this; + } + + public String getDressDescription() { + return dressDescription; + } + + public UserMedalModel setDressDescription(String dressDescription) { + this.dressDescription = dressDescription; + return this; + } + + public String getSort() { + return sort; + } + + public UserMedalModel setSort(String sort) { + this.sort = sort; + return this; + } + + public String getDressStatus() { + return dressStatus; + } + + public UserMedalModel setDressStatus(String dressStatus) { + this.dressStatus = dressStatus; + return this; + } +} diff --git a/common/src/main/java/com/yunbao/common/dialog/AchievementDetailsPopup.java b/common/src/main/java/com/yunbao/common/dialog/AchievementDetailsPopup.java new file mode 100644 index 000000000..2c7fc07a3 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/dialog/AchievementDetailsPopup.java @@ -0,0 +1,93 @@ +package com.yunbao.common.dialog; + + +import android.content.Context; +import android.text.TextUtils; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.lxj.xpopup.core.CenterPopupView; +import com.yunbao.common.R; +import com.yunbao.common.adapter.AchievementDetailsAdapter; +import com.yunbao.common.bean.UserMedalListModel; +import com.yunbao.common.glide.ImgLoader; +import com.yunbao.common.views.weight.ViewClicksAntiShake; + +public class AchievementDetailsPopup extends CenterPopupView { + private UserMedalListModel userMedalListModel; + private ImageView achievementImg; + private TextView dressName, dressDescription; + private View havaDataList, havaData; + private AchievementDetailsAdapter achievementDetailsAdapter; +private RecyclerView achievementImgList; + public AchievementDetailsPopup(@NonNull Context context, UserMedalListModel userMedalListModel) { + super(context); + this.userMedalListModel = userMedalListModel; + } + + @Override + protected int getImplLayoutId() { + return R.layout.popup_achievement_details; + } + + @Override + protected void onCreate() { + super.onCreate(); + havaDataList = findViewById(R.id.hava_data_list); + havaData = findViewById(R.id.hava_data); + if (userMedalListModel.getDressInfo().size() > 0) { + havaDataList.setVisibility(GONE); + havaData.setVisibility(VISIBLE); + achievementDetailsAdapter = new AchievementDetailsAdapter(userMedalListModel.getDressInfo()); + + achievementImg = findViewById(R.id.achievement_img2); + dressName = findViewById(R.id.dress_name2); + dressDescription = findViewById(R.id.dress_description2); + achievementImgList = findViewById(R.id.achievement_img_list); + + if (TextUtils.equals(userMedalListModel.getDressStatus(), "1")) { + ImgLoader.display(getContext(), userMedalListModel.getDisplaySrc(), achievementImg); + } else { + ImgLoader.display(getContext(), userMedalListModel.getDisplaySrcSecond(), achievementImg); + } + dressName.setText(userMedalListModel.getDressName()); + dressDescription.setText(userMedalListModel.getDressDescription()); + achievementImgList.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false)); + achievementImgList.setAdapter(achievementDetailsAdapter); + ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.gift_details_btn2), new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + dialog.dismiss(); + } + }); + + } else { + havaDataList.setVisibility(VISIBLE); + havaData.setVisibility(GONE); + + achievementImg = findViewById(R.id.achievement_img); + dressName = findViewById(R.id.dress_name); + dressDescription = findViewById(R.id.dress_description); + + if (TextUtils.equals(userMedalListModel.getDressStatus(), "1")) { + ImgLoader.display(getContext(), userMedalListModel.getDisplaySrc(), achievementImg); + } else { + ImgLoader.display(getContext(), userMedalListModel.getDisplaySrcSecond(), achievementImg); + } + dressName.setText(userMedalListModel.getDressName()); + dressDescription.setText(userMedalListModel.getDressDescription()); + ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.gift_details_btn), new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + dialog.dismiss(); + } + }); + } + + } +} 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 904534dd3..12b2a56cf 100644 --- a/common/src/main/java/com/yunbao/common/http/PDLiveApi.java +++ b/common/src/main/java/com/yunbao/common/http/PDLiveApi.java @@ -31,6 +31,7 @@ import com.yunbao.common.bean.LiveRoomVoteModel; import com.yunbao.common.bean.LiveStetUpStatusModel; import com.yunbao.common.bean.LiveTaskModel; import com.yunbao.common.bean.LiveUserMailBoxModel; +import com.yunbao.common.bean.MedalAchievementModel; import com.yunbao.common.bean.MsgSwitchDetailModel; import com.yunbao.common.bean.NewPeopleInfo; import com.yunbao.common.bean.NobleRankHideUserListModel; @@ -49,6 +50,7 @@ import com.yunbao.common.bean.SetAttentsModel; import com.yunbao.common.bean.SlideInBannerModel; import com.yunbao.common.bean.StarChallengeStatusModel; import com.yunbao.common.bean.UserAreaBean; +import com.yunbao.common.bean.UserMedalListModel; import com.yunbao.common.bean.VipModel; import com.yunbao.common.bean.WishListGiftConfModel; import com.yunbao.common.bean.WishListModel; @@ -888,5 +890,9 @@ public interface PDLiveApi { Observable>> getGiftGuideHistory( @Query("liveuid") String liveUid ); + @GET("/api/public/?service=Gift.getUserMedalList") + Observable> getUserMedalList(); + @GET("/api/public/?service=Gift.getLiveMedalList") + Observable> getLiveMedalList(); } 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 c727f5adc..d51ef37be 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 @@ -31,6 +31,7 @@ import com.yunbao.common.bean.LiveRoomVoteModel; import com.yunbao.common.bean.LiveStetUpStatusModel; import com.yunbao.common.bean.LiveTaskModel; import com.yunbao.common.bean.LiveUserMailBoxModel; +import com.yunbao.common.bean.MedalAchievementModel; import com.yunbao.common.bean.NobleRankHideUserListModel; import com.yunbao.common.bean.NobleTrumpetModel; import com.yunbao.common.bean.PkRankBean; @@ -1954,6 +1955,50 @@ public class LiveNetManager { }).isDisposed(); } + public void getUserMedalList(HttpCallback callback) { + API.get().pdLiveApi(mContext) + .getUserMedalList() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Consumer>() { + @Override + public void accept(ResponseModel listResponseModel) throws Exception { + if (callback != null) { + callback.onSuccess(listResponseModel.getData().getInfo()); + } + } + }, new Consumer() { + @Override + public void accept(Throwable throwable) throws Exception { + if (callback != null) { + callback.onError(mContext.getString(R.string.net_error)); + } + } + }).isDisposed(); + } + + public void getLiveMedalList(HttpCallback callback) { + API.get().pdLiveApi(mContext) + .getLiveMedalList() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Consumer>() { + @Override + public void accept(ResponseModel listResponseModel) throws Exception { + if (callback != null) { + callback.onSuccess(listResponseModel.getData().getInfo()); + } + } + }, new Consumer() { + @Override + public void accept(Throwable throwable) throws Exception { + if (callback != null) { + callback.onError(mContext.getString(R.string.net_error)); + } + } + }).isDisposed(); + } + /** * 直播间取消网络请求 */ diff --git a/common/src/main/java/com/yunbao/common/views/AchievementDetailsViewHolder.java b/common/src/main/java/com/yunbao/common/views/AchievementDetailsViewHolder.java new file mode 100644 index 000000000..05c44f939 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/views/AchievementDetailsViewHolder.java @@ -0,0 +1,22 @@ +package com.yunbao.common.views; + +import android.view.View; +import android.widget.ImageView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.R; +import com.yunbao.common.bean.UserMedalModel; +import com.yunbao.common.glide.ImgLoader; + +public class AchievementDetailsViewHolder extends RecyclerView.ViewHolder { + private ImageView achievementImg; + public AchievementDetailsViewHolder(@NonNull View itemView) { + super(itemView); + achievementImg = itemView.findViewById(R.id.achievement_img); + } + public void showData(UserMedalModel userMedalModel){ + ImgLoader.display(itemView.getContext(), userMedalModel.getDisplaySrc(), achievementImg); + } +} diff --git a/common/src/main/java/com/yunbao/common/views/MedalAchievementViewHolder.java b/common/src/main/java/com/yunbao/common/views/MedalAchievementViewHolder.java new file mode 100644 index 000000000..6c45a011c --- /dev/null +++ b/common/src/main/java/com/yunbao/common/views/MedalAchievementViewHolder.java @@ -0,0 +1,48 @@ +package com.yunbao.common.views; + +import android.graphics.Color; +import android.text.TextUtils; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.lxj.xpopup.XPopup; +import com.yunbao.common.R; +import com.yunbao.common.bean.UserMedalListModel; +import com.yunbao.common.dialog.AchievementDetailsPopup; +import com.yunbao.common.glide.ImgLoader; +import com.yunbao.common.views.weight.ViewClicksAntiShake; + +public class MedalAchievementViewHolder extends RecyclerView.ViewHolder { + private ImageView achievementImg; + private TextView giftWall; + + public MedalAchievementViewHolder(@NonNull View itemView) { + super(itemView); + achievementImg = itemView.findViewById(R.id.achievement_img); + giftWall = itemView.findViewById(R.id.gift_wall); + } + + public void showData(UserMedalListModel userMedalListModel) { + if (TextUtils.equals(userMedalListModel.getDressStatus(), "1")) { + ImgLoader.display(itemView.getContext(), userMedalListModel.getDisplaySrc(), achievementImg); + giftWall.setTextColor(Color.parseColor("#6F43FF")); + } else { + ImgLoader.display(itemView.getContext(), userMedalListModel.getDisplaySrcSecond(), achievementImg); + giftWall.setTextColor(Color.parseColor("#53408F")); + } + giftWall.setText(userMedalListModel.getDressName()); + ViewClicksAntiShake.clicksAntiShake(itemView, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + new XPopup.Builder(itemView.getContext()) + .enableDrag(false) + .asCustom(new AchievementDetailsPopup(itemView.getContext(), userMedalListModel)) + .show(); + } + }); + } +} diff --git a/common/src/main/res/drawable/background_achievement_details_list.xml b/common/src/main/res/drawable/background_achievement_details_list.xml new file mode 100644 index 000000000..a803f914b --- /dev/null +++ b/common/src/main/res/drawable/background_achievement_details_list.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/common/src/main/res/drawable/background_codex_item_btn.xml b/common/src/main/res/drawable/background_codex_item_btn.xml index 0682d347a..9769f0609 100644 --- a/common/src/main/res/drawable/background_codex_item_btn.xml +++ b/common/src/main/res/drawable/background_codex_item_btn.xml @@ -2,13 +2,13 @@ - + - + diff --git a/common/src/main/res/layout/item_achievement_details.xml b/common/src/main/res/layout/item_achievement_details.xml new file mode 100644 index 000000000..cb19261f7 --- /dev/null +++ b/common/src/main/res/layout/item_achievement_details.xml @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/item_codex_item.xml b/common/src/main/res/layout/item_codex_item.xml index 27e0f6b88..9b24732aa 100644 --- a/common/src/main/res/layout/item_codex_item.xml +++ b/common/src/main/res/layout/item_codex_item.xml @@ -26,6 +26,7 @@ android:layout_width="50dp" android:layout_height="20dp" android:layout_marginTop="6dp" + android:textSize="11sp" android:background="@drawable/background_codex_item_btn" android:gravity="center" /> \ No newline at end of file diff --git a/common/src/main/res/layout/item_medal_achievement.xml b/common/src/main/res/layout/item_medal_achievement.xml new file mode 100644 index 000000000..6f25b39d9 --- /dev/null +++ b/common/src/main/res/layout/item_medal_achievement.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/popup_achievement_details.xml b/common/src/main/res/layout/popup_achievement_details.xml new file mode 100644 index 000000000..9a706886d --- /dev/null +++ b/common/src/main/res/layout/popup_achievement_details.xml @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/mipmap-xxhdpi/background_medal_achievement.png b/common/src/main/res/mipmap-xxhdpi/background_medal_achievement.png new file mode 100644 index 0000000000000000000000000000000000000000..67933e568191229bcec1d98611336002b6899489 GIT binary patch literal 13977 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 SODHXwQp&mC(x;-0>kgLi+}=RwQdRMi z%zdd*Ear@~xL5-UGiV?aAtPxf4S39SX&zI5N)rsmP4HZXL6}nmdF2(Wm|9uxg9#?g z9iEAa1XXu1{+UKujyHBm6EleUu;X{4e&SzT-@&`i@DszFNU2>75N|QS0+#?2H<|R( zq?brbE7q3AL3w2sv{nU6YiWA4<{p4o@s;d+1sF?f4t^7}R+^u3S=N2ZRYuIw^s`g~ zns&{vG~>2bC9_d7ZzXo(jOYxRG3BxIC{27jZ|rjHL`t4wAtR$P?d}=aYE=2#mdY^HqFL6{c9wLc z$hAqq=7(H5g(;vl&erHDjVtBB%i@;tZmG&G_4t9>8vsbso7+j>GySQSFiYf$kje>D zioGved|?OAw2A z;;2@TnrARD&NM9GHME?kwQCx`rr}B#4l|yn&^%eIMN7+BnAVe}M-y&octyN7UWQ)S z(x6)DxMOd8Fw2S`*}XT=ISk_a**k%t_^BW+HgV31*|V%#%V%T)=;g7uoz|eWc(A@( zlO@uQ1(Zlzl7}9dS+c9uxB9Ubx0Wg7jah9hwEWOV(!}!Ec@_}gBtr6(WD^@f@t($r z3O+KR5wNg!D8*Wx>3F?%^C%Q)YN19i^|NKu&s@@wb9kG@1dQ`UUF8<96Rw4 zx1FJhaoEvi6SJQfu@eAr&H&U3#f%W`En!iixB9TOhz0Dq`ttzqY2Y3pw6GO@Ub7klK}_*v{?~O$RX&r@+OQmt>365ur47?CXs|;wdA`HFpRO3>W zdmwUgP~RAHxY!bi*_@aI#3^egGUm#0i2;?=D9hrO;ep3IDHY5!PL}{|} zZxMM#%4pzPd`H{yCS+jwi;PKevF!rHh@BYti33FMdy$CHTRhIuMyrp<`F$)up?W!a zO7as=0`V{8>q*b&V`q3LPKXZh2bAPLo=>+W(8P>1khp?$xJqM-cL}Oo5sH+KENeNI z#g1c8KWf}ryGDKZp*IP=hNavUMT~bXtH{n#%fD7f(7z?K90Q!H*Tz(WqJd^yPfA%a z@dq0_oY-*y(CR z#glj9B0oGc7l`4RfF|af9URoY#iTlVd{RPqZ2ewmetUWAE$vjvocz6cp1oBRFnG*mp+r;n_!<^u}6WT@{1LUW@&J^%mXW7Y(9c*HbVtcG0wlru< z=(VM2u4Rg~gEaxi&^(2wR$cjh7qYS1?3ICTBQj2rIyuQUj-J!TZZ;6JcOvR1_Owjz z@2#DA4;Z|%b7;gK6JRXOyPz{F-UjPel&tjvb!G)!vEG<^*CVq&YD)E9Tfi zTXBz=c+K8qS#NnIb3fW13kG;#xjmu}`$AM1RbiOpTDr z=f3siDQ$TN4V+>@RFtwEC@HnHX^@sKm>%Zan9(ekqF{1m@WBZM&*7N>kXaMMPyF?0 z6x-)=1|XOd4C3saNVco^ucdKnno%$JTC-NcPZhZ~z% zMzOUH;jAT5D=b|`56*DfZ2xOZ`zUbeLDS2hp+HL~-eFwy0Ln8ZTA8OTH~ltK{NpHBX6n+TB|Q%PkR|HXran7wWZkmCMS!w`>X+tfU8xnHkoQ5(zNyrYOU@V6Q(6=PfnI; zF-E2l8Ow=Qyc3Uz0AhG2&XA97tR_B1Q2aAQ$G1K(Ck7ikL*jaKB9|L0dEA!S;Gthh zwfwU-ThwOBQlo`lvBZ|aGK}{@!bCYj23iK2$O<~QmRCuOVLT7=m*u?1sTk)Qu9=2X0vBn$dyEE zY0spM*d<%q(*eJyWxZ8pj25!^+QLvSB$sRhw_7W3jn1gXZfVJ44jF#%p4G)_r?$$$ zJ8>yOG0)x`3E~sj#E6}ER)9Fi6MF*hw(-VDqEe@4`L~*xT0hE8tDmV8snvdz&L>q) z+r)@s8?T9xC0>CzEs?GB_RRelVYW1kvBD1?YkJ&*AH(Am8nt$>t#q}1c1?G5HP~9M zkT?c!c4V6vhaCyTICg%g$2;-!>pQTA5j&AUe3D})poy`24MDv=NB{s9M@d9MRDgKb zLVA*#bP5P}UAJO-&(ifA<63P4AkI&K!B33a9mSkL?8NUyPwX;?;U`Y!1VEhM>?j+% z0FbLv^CG!=MO}%WnnU0r6G_pqrG>2LVU3ed*Y2)8Yuh6)gU+h0FUmJ%S&L$8(Ws*A zOb|m8!^PGOVz!A-4G`A|6A?{?`JPBDt8E>^Da&|?@KDAG{Y>GVA`)xRofl%sg{*{$ z{LRR_W)A)sS=9KqWYGdnPmZ{X47c9hW|`{{S}R$ilYnsmVm!#0V<*lYD~N*t*TtH% z-Dr09IzH>=K4Nn0`&GhQy&rU%ob_@m%gIv@Rlj>eIBk`7yuKzQx`N%O>^&D5TRARCEw(4b`T5rJni8YfBrsLB^VWMEOs)Prz9lDI?p8l&|s5 z-_WM^yViD?x?lNkt%>2C$PY4h+r&i^^I->X?9ibkzGomh%SL3}+2m5ZA%UwPa~)4S z8pLq1;a%r+?2Hq;2#9O5aSD9o(&jD4*7Dc0Bu41#ZLei2v=B2zSy*yn9;J5Gs}Gl{ z$z027tX!NiONSjCikUU>{dbA_H+IhxB^Mim_;`~Q(|SG09e=$P$%57ZdV@N4X|f3O z`jtzfw|uui7hU!PrdV}OMd;8C=n3JSZPz-knQqZ~EezzaQan(8{%{kDneNyzh`$l_ z6aUTi9heihaM&S1e3C7RDHLfk7sM%cf}_}26T|)DfjF|P z=pDDUd_{iK%bhjDEjqnrGV;3xEsviF4`Y_@G4QrzRZ~QBjZux(idk4};yE<23u13c z7_-c^mV9YS=q2A;GUYNkW{GRHY3F$A&r#;u?V9p%;n!C*a{>0wM^MY8suDOu#Xe%;Jfa(^v8+m z_;gn0H8UdIxIdi;rU+dm@=IWL!bT;(9Aj=Jf!?=s^3JTj3)+&5kHar#K_0?g>FrpU2N$IFx;e<6FdXj`M}|p<(p6v1KIMp^V7bHw*+?e?5{q@ z!oM$aR?G_k7@NE7otOmTbnMI^7TyUBI$nZ3kZQ1P4Yre2MlS7g)=Mx;FO=t%(*pC_ zb%ATdxzx-V%Z#ullqE0i$=d>!A*D7Lvk zjOV{#6LXU7k|jrQDl@pqbs{m#$?|m44kd|_DJPF0Gqu&WNd8wQPL@sqYA!RFXgN8b zm4<7u49et!1~LW{hBM@djwB77(9eqUN>!N7On(_JcnZ9deSIO{F|Ry-?@p@ zu53;mZvudB9OYcIN)UR6OO2e0O4VlkdoW0r_7L} zRJ*qEB;NyVEBMfTB|1f-M49oj(45UV2F4(*mSC);oXWz|D~wzf3~ZO5^zg|cv{pR{ z=#rMq*eH8rn9KrW|Nw3su z&zd+^E;8AUq}4JZ^dNhKY4NPv_9l@99t#+{++c+Xgd0ma%eHhoRzEE>q&5Ls{B5<3 zo6g9`_J}Ci#Ms>7;Tdf1rh*unIGGdB608a2$Yg4ZR$#&Ml4pE3f$14dawhXKB}@is znRqLMT)MsYsm)}879yFS{Qp*;=~IQDfr(-8R{)@7XvwXrR0IuMi=s5m39+GMAVxyLe6s^-UEyLYmjj)VvouyqlML3bnriE4e4vTt z5-tWN+3RWr@U&I|Pp&XvUndLaHbpW)o$PzyV=`vpAYBzt8rhzw0yBL&jn-CnPA(@i ze`+3`pyXm3t%-5a0doQ%KCZv*9Kn{Ud5wYC z(iSakr|hlT@>Zi$gE>lX?{d1!@}9{PwSO%PTjODw7~X2sgAMeb9%IZw@o8f>2Z)h( z;xL2wFdsQf^;H9%$3XgBXdhn2%kOFllS}iU&Dyf1mPg%o3rx~9YL&(J8i2|staeqd zW_nZzDE(^Fjr)=aW>qNZHOvUTJZ*WTl0C=gFPD?<*awLToB+Zu;a-^cLUsx$R_l#y0H(RQYm z({v=8cy9g8{TCEJR$8!03BC?Mu2HhI`F z8pJs$o-c|<<+hYtBw$LQ25PynV-RCwH_4oUO`Jn9(}^7jsF?$;aqC%vYfE3NpU3%K zn>u>wW%I{dP9vt(RDQHs*BV2QCyS1#Srp+RKTr;BT;ho*Yhng5?${xon2()3vmhG4 zP^+(PQ@un>Vbsbpcw`x`ys*gzvaV^3s0_TeExXZMs-sJCui4cyp=$E7K-rR)920Aw zBSSIaoj??ubg^}r6Yvw`dJ+f4YY<0fm1WmTtu&^MrOtjzAUX*x5F?&AX94Q-PIw@O zzpu3v?WdR*s;`0sw4azYG5d)}YhrBd^vw>-Y_M!WOY>Swo?iN;Kx=NG*7Bs6LvQ(P znFiLx^#Xw-{I%SW(u8X9sLd_SV@nHq=2pa%(B_ZEK+6?sxa^X5Lf-6v7S36K#%W>% z#pmn#<=ELGyyZHI2;@m?f)bEA5>a&2DPwZv^F<%rt5F5K) zFuSz5NB}l*PGeQBCrttI>20DDXkxx7ns0V2l3paRGYN1M8wUV!2B6XA1a3Ru-q^zc zaysn5(y(tqKs%H8((vpOSU^0xNS6j5w*+!fJl?UxGhius3cJ`4#n$be;Fpt5vnJNb zQyw>iOMlm20^()|0G!_K*g1%637#Qx`Q1voYz44;<#-6KHt|iHIkmugZflHbqF z@7Nh2E}9s`J+0=%Sa3wayzk{^l8*-QU}HBL#EVV5@9^3m`t$W9xv`rB;+yiYgKs;t zCbmKerQNG-Ez2H@T!E?Cta{1vmU_!>ZY{@>{+8WqtxT5P&i1iq|7+XVlcy)!mi=wn zrk*`)_3i!U+2qz8#i0nrkrVc8T2=%%`tVNy35uN=jO;mZJ|;knEBi<)m~M99*m;UMkv4YHPdrIFdscaulVHz8 zF`3+!EcMNfheVUiiQ=8eQEW*QFV~YMkK@unT>?0pna?Hi{tYN>tRA)h;J#2iBHoOHQ6$sqJEK`L<}*wzDTY zYaCkiOSyADl7BhoS}ytDgPR=^#7JZH??<@U@YDf6i)(_|A}|URElgdnwe-x@k4HzO z|CT))wGDfCiI$Df@5$V&s})wnUhkwMz1hJD1rf!D!wx)mfMe$_5Z}%Z&)~!^KRSaK zMN?MHPNJeR--~inc%M>tSHgMRGzBI-Oo@~{h4W4T#C&Bx3}ToQ&k~(JOLT%G=M$oG zVi$O`V^{KC+P#7j*uf-7AVvVtqYaSLv2(X3&LB=tfMpQl#16;KRTtY8l<`8+{z;&K z7y&@AiKl?LXyTlAB1N$+nt17|J9g!;V-kpO6P+T-Ha2z);^lhMKEYu>X%%t z>v=1Pb#YPC??I}U7sZITq(ZI{$nt9;wzut+_A$YQF&z_Z+0M(En*riBeY0hj06x%yw2~~ zU5LCBXZhWZm%bGQ@#{ac{@$(Iba;ZzU4FA8MX}}BiIh~(dT*f?4b_uuSw?O_60IcL zT3Wg3S0WAQv0LF*z_kB1jfO>xP3B z1!bMbTOoGju6Z_$j=I3IX$VEpPJ1KC<~#*V~T&_(J+%8aFZAL~61dGz!l01SJ$ zq;<^^Y`C6;SmH-#^tE4mWA*hAh`;<-)<3p7qBl-%(*bN^JW>vmBE=Qw%^d@o8!VeW zYk6+jfHfdk=0*fK){+)6T_R=1EcMd7s%ffL|50#6R*;t5TQ{LCv!@HodAJL~?`7f(K4uKejzVuV;-#9v=Po%f(PB%ct$z9ppWwQdt zKLEU*$z`!6gTSB#ibP;Px=gQC5urD-B9A6mRcz7I`fg!4L>oYx6&#xpDHuM-5#tfY zhYvO{Cp~&Z-~F|3uYTQX*R^b4|K$2(>znkglT*6InwTFdM@(^YwE?&pyy^dRYpvaX z>$|47wF~YvZ_L4I^`SMTD?vrP)vosNv_`(Q)3@qJJQY!IPK!SIU2iyzu`HSxLGaMV z;(};;Nfg098zA3X-KS5#{GHXGbb%O!U;C@;pFFrh|K#{4tx8B{j-vp8SBNhLb}^8w zi9Ho!{VvUn=ydl48C`~Dxhd*Sf;Zw}sHrQ9Cd(|dJQ3E~YPkSw=8RE8`!&`kz<-tu^%S9DD6k>(3k<(ytty(u(b3m=p+*hh2P_ z0i1v=2a5l03ACoME$tN56wz`ujZ)K&6|jQ;GCma^%GgKwtWA(HtALh~r!n*Ig zdD`Dw6%~kaArz)W+R&X7!L^pW5=ffzfYz56^jojKvHE6h$UNkOcWJ&U(lCcePi{9t!_df zMkD|9r`CVw;FA8{;SKsr2ZwZ+ycD=|2OuY#LYTx)P&h4yuif{3khNjzl?`2vA6~;F zah{^rE-x?Xe_X8Sx4-!9)&Gr*R~W?H7~F4{2lR>6iax$Npg*@dpbs4o9i>ejfIO3z zB0~I9W)CGGJQC2vmqd@&m-P1flK%I4O?M71>ARL2ZL&GBhoV|Yeu^Z}t%;u^*(|K? zi3Ao9@5w+dWcm_VK)j%1? 近期點亮 已獲得 去點亮 + 我的荣誉墙 + 成就詳情 diff --git a/live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java b/live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java index a5f06e276..5703cab6e 100644 --- a/live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java +++ b/live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java @@ -17,6 +17,7 @@ import com.makeramen.roundedimageview.RoundedImageView; import com.yunbao.common.Constants; import com.yunbao.common.dialog.AbsDialogFragment; import com.yunbao.common.event.GiftWallItemEvent; +import com.yunbao.common.event.LiveGiftDialogEvent; import com.yunbao.common.fragment.AllServiceChampionFragment; import com.yunbao.common.fragment.GiftWithoutWallFragment; import com.yunbao.common.glide.ImgLoader; @@ -28,7 +29,6 @@ import com.yunbao.common.views.weight.ViewClicksAntiShake; import com.yunbao.live.R; import com.yunbao.live.activity.LiveActivity; import com.yunbao.live.event.LiveAudienceEvent; -import com.yunbao.common.event.LiveGiftDialogEvent; import com.yunbao.live.views.GiftAlreadyWallFragment; import org.greenrobot.eventbus.Subscribe; @@ -49,6 +49,7 @@ public class GiftWallDialog extends AbsDialogFragment { private List tabView = new ArrayList<>(); private String mStream, mAnchorName, mLiveUid, mAvatarUrl; private int isAttention = 0;//是否关注 0=没关注, + private boolean isLive;//是否正在直播 @Override public void onActivityCreated(Bundle savedInstanceState) { @@ -135,7 +136,16 @@ public class GiftWallDialog extends AbsDialogFragment { public void onViewClicks() { new XPopup.Builder(getContext()) .enableDrag(false) - .asCustom(new CodexDialog(getContext(), mStream, mLiveUid,false)) + .asCustom(new CodexDialog(getContext(), mStream, mLiveUid, false)) + .show(); + } + }); + ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.medal_achievement), new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + new XPopup.Builder(getContext()) + .enableDrag(false) + .asCustom(new MedalAchievementPopup(getContext(), isLive)) .show(); } }); @@ -151,7 +161,7 @@ public class GiftWallDialog extends AbsDialogFragment { mAnchorName = bundle.getString("mAnchorName"); mAvatarUrl = bundle.getString("mAvatarUrl"); isAttention = bundle.getInt("isAttention"); - + isLive = bundle.getBoolean("isLive"); FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); transaction.replace(R.id.context_layout_gift, GiftAlreadyWallFragment.newInstance(mStream, mLiveUid)); transaction.commit(); diff --git a/live/src/main/java/com/yunbao/live/dialog/MedalAchievementPopup.java b/live/src/main/java/com/yunbao/live/dialog/MedalAchievementPopup.java new file mode 100644 index 000000000..e14abf8a3 --- /dev/null +++ b/live/src/main/java/com/yunbao/live/dialog/MedalAchievementPopup.java @@ -0,0 +1,94 @@ +package com.yunbao.live.dialog; + +import android.content.Context; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.lxj.xpopup.core.BottomPopupView; +import com.yunbao.common.adapter.MedalAchievementAdapter; +import com.yunbao.common.bean.MedalAchievementModel; +import com.yunbao.common.http.base.HttpCallback; +import com.yunbao.common.http.live.LiveNetManager; +import com.yunbao.common.utils.ToastUtil; +import com.yunbao.live.R; + +public class MedalAchievementPopup extends BottomPopupView { + private boolean isLive; + private TextView achievementText; + private RecyclerView achievementList; + private MedalAchievementAdapter medalAchievementAdapter; + + public MedalAchievementPopup(@NonNull Context context, boolean isLive) { + super(context); + this.isLive = isLive; + } + + // 返回自定义弹窗的布局 + @Override + protected int getImplLayoutId() { + return R.layout.dialog_medal_achievement; + } + + // 执行初始化操作,比如:findView,设置点击,或者任何你弹窗内的业务逻辑 + @Override + protected void onCreate() { + super.onCreate(); + initView(); + initDate(); + } + + private void initDate() { + if (isLive) { + LiveNetManager.get(getContext()) + .getLiveMedalList(new HttpCallback() { + @Override + public void onSuccess(MedalAchievementModel data) { + StringBuffer stringBuffer = new StringBuffer(); + stringBuffer.append(data.getMedalLightNumber()) + .append("/") + .append(data.getMedalTotalNumber()); + achievementText.setText(stringBuffer.toString()); + medalAchievementAdapter.addAllData(data.getMedalData()); + } + + @Override + public void onError(String error) { + ToastUtil.show(error); + } + }); + } else { + LiveNetManager.get(getContext()) + .getUserMedalList(new HttpCallback() { + @Override + public void onSuccess(MedalAchievementModel data) { + StringBuffer stringBuffer = new StringBuffer(); + stringBuffer.append(data.getMedalLightNumber()) + .append("/") + .append(data.getMedalTotalNumber()); + achievementText.setText(stringBuffer.toString()); + medalAchievementAdapter.addAllData(data.getMedalData()); + } + + @Override + public void onError(String error) { + ToastUtil.show(error); + } + }); + } + } + + private void initView() { + achievementText = findViewById(R.id.achievement_text); + achievementList = findViewById(R.id.achievement_list); + if (isLive) { + achievementList.setLayoutManager(new GridLayoutManager(getContext(), 3, GridLayoutManager.VERTICAL, false)); + } else { + achievementList.setLayoutManager(new GridLayoutManager(getContext(), 4, GridLayoutManager.VERTICAL, false)); + } + medalAchievementAdapter = new MedalAchievementAdapter(); + achievementList.setAdapter(medalAchievementAdapter); + } +} 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 b4086d48e..39db6a2b5 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java @@ -2666,6 +2666,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis bundle.putString("mAnchorName", mAnchorName); bundle.putString("mAvatarUrl", mAvatarUrl); bundle.putInt("isAttention", isAttention); + bundle.putBoolean("isLive", mContext instanceof LiveRyAnchorActivity); giftWallDialog.setArguments(bundle); giftWallDialog.show(((AbsActivity) mContext).getSupportFragmentManager(), "GiftWallDialog"); // RouteUtil.forwardGiftWallActivity(mStream,mAnchorName,mLiveUid,mAvatarUrl,isAttention); diff --git a/live/src/main/res/drawable/background_medal_achievement.xml b/live/src/main/res/drawable/background_medal_achievement.xml new file mode 100644 index 000000000..75f3d9478 --- /dev/null +++ b/live/src/main/res/drawable/background_medal_achievement.xml @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/live/src/main/res/layout/dialog_live_gift_wall.xml b/live/src/main/res/layout/dialog_live_gift_wall.xml index 1e9c28dee..5ae28e0f1 100644 --- a/live/src/main/res/layout/dialog_live_gift_wall.xml +++ b/live/src/main/res/layout/dialog_live_gift_wall.xml @@ -58,6 +58,7 @@ android:textSize="16sp" /> + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 3f8d6ed4af25b6fd58b4bc1bc505ee8de724c2e4 Mon Sep 17 00:00:00 2001 From: 18401019693 Date: Thu, 3 Aug 2023 16:08:43 +0800 Subject: [PATCH 12/19] =?UTF-8?q?6.5.4=E7=A4=BC=E7=89=A9=E5=86=A0=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yunbao/common/bean/LiveGiftBean.java | 106 ++++++++++++++++++ .../utils/JavascriptInterfaceUtils.java | 6 + .../res/layout/dialog_live_gift_popup.xml | 90 ++++++++++++--- .../background_live_gift_gift_itle.png | Bin 0 -> 3007 bytes .../icon_live_gift_gift_itle.png | Bin 0 -> 5303 bytes common/src/main/res/values/strings.xml | 2 + .../com/yunbao/live/dialog/LiveGiftPopup.java | 29 ++++- .../live/views/FrameGiftViewHolder.java | 10 +- .../yunbao/live/views/LiveRoomViewHolder.java | 2 +- 9 files changed, 224 insertions(+), 21 deletions(-) create mode 100644 common/src/main/res/mipmap-xxhdpi/background_live_gift_gift_itle.png create mode 100644 common/src/main/res/mipmap-xxhdpi/icon_live_gift_gift_itle.png diff --git a/common/src/main/java/com/yunbao/common/bean/LiveGiftBean.java b/common/src/main/java/com/yunbao/common/bean/LiveGiftBean.java index 16f974b1d..5047d7c1b 100644 --- a/common/src/main/java/com/yunbao/common/bean/LiveGiftBean.java +++ b/common/src/main/java/com/yunbao/common/bean/LiveGiftBean.java @@ -48,6 +48,112 @@ public class LiveGiftBean { @JSONField(name = "operate_url") private String operateUrl; + @JSONField(name = "naming_liveuid") + private String namingLiveuid; + @JSONField(name = "naming_uid") + private String namingUid; + @JSONField(name = "naming_live_name") + private String namingLiveName; + @JSONField(name = "naming_user_name") + private String namingUserName; + @JSONField(name = "naming_live_avatar") + private String namingLiveAvatar; + @JSONField(name = "naming_user_avatar") + private String namingUserAvatar; + @JSONField(name = "naming_status") + private String namingStatus; + @JSONField(name = "naming_coin") + private String namingCoin; + + public View getmView() { + return mView; + } + + public LiveGiftBean setmView(View mView) { + this.mView = mView; + return this; + } + + public String getmGiftNum() { + return mGiftNum; + } + + public LiveGiftBean setmGiftNum(String mGiftNum) { + this.mGiftNum = mGiftNum; + return this; + } + + public String getNamingLiveuid() { + return namingLiveuid; + } + + public LiveGiftBean setNamingLiveuid(String namingLiveuid) { + this.namingLiveuid = namingLiveuid; + return this; + } + + public String getNamingUid() { + return namingUid; + } + + public LiveGiftBean setNamingUid(String namingUid) { + this.namingUid = namingUid; + return this; + } + + public String getNamingLiveName() { + return namingLiveName; + } + + public LiveGiftBean setNamingLiveName(String namingLiveName) { + this.namingLiveName = namingLiveName; + return this; + } + + public String getNamingUserName() { + return namingUserName; + } + + public LiveGiftBean setNamingUserName(String namingUserName) { + this.namingUserName = namingUserName; + return this; + } + + public String getNamingLiveAvatar() { + return namingLiveAvatar; + } + + public LiveGiftBean setNamingLiveAvatar(String namingLiveAvatar) { + this.namingLiveAvatar = namingLiveAvatar; + return this; + } + + public String getNamingUserAvatar() { + return namingUserAvatar; + } + + public LiveGiftBean setNamingUserAvatar(String namingUserAvatar) { + this.namingUserAvatar = namingUserAvatar; + return this; + } + + public String getNamingStatus() { + return namingStatus; + } + + public LiveGiftBean setNamingStatus(String namingStatus) { + this.namingStatus = namingStatus; + return this; + } + + public String getNamingCoin() { + return namingCoin; + } + + public LiveGiftBean setNamingCoin(String namingCoin) { + this.namingCoin = namingCoin; + return this; + } public String getOperateImage() { return operateImage; diff --git a/common/src/main/java/com/yunbao/common/utils/JavascriptInterfaceUtils.java b/common/src/main/java/com/yunbao/common/utils/JavascriptInterfaceUtils.java index 99d965be4..41f967ed3 100644 --- a/common/src/main/java/com/yunbao/common/utils/JavascriptInterfaceUtils.java +++ b/common/src/main/java/com/yunbao/common/utils/JavascriptInterfaceUtils.java @@ -542,9 +542,15 @@ public class JavascriptInterfaceUtils { Bus.get().post(new JavascriptInterfaceEvent() .setMethod("closeLiveRoom")); } + @JavascriptInterface public void clickLogOffAccount() { Bus.get().post(new JavascriptInterfaceEvent() .setMethod("clickLogOffAccount")); } + + @JavascriptInterface + public void toGiftNamingAlertAllPageView(String mAnchorName, String mLiveUid, String mAvatarUrl) { + RouteUtil.forwardGiftWallActivity("", mAnchorName, mLiveUid, mAvatarUrl, 0); + } } diff --git a/common/src/main/res/layout/dialog_live_gift_popup.xml b/common/src/main/res/layout/dialog_live_gift_popup.xml index 81361b32b..e51c57a5d 100644 --- a/common/src/main/res/layout/dialog_live_gift_popup.xml +++ b/common/src/main/res/layout/dialog_live_gift_popup.xml @@ -6,23 +6,87 @@ android:layout_gravity="bottom" android:orientation="vertical"> - - + android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_weight="1"> - - layout="@layout/view_blind_box" /> + + + + + + + + + + + + + + + + + + + android:src="@mipmap/icon_arrow_right_2" /> qj8^Tam*;82hWSRWc_J4=N@p#8$F3-Ew?tWJ9}r&xtPujNSt zeo+)c)^#b|q#(`Aq{pnVI?|`$MLb{eS(u7hvKb#9FHZ)R`z#i?x%HT-UOGjOpu7Yk zIb`IFz$azEK@i@X{;OX))gst=pR<}h-kc*);Uvv%QnnzjKA^Kc>DY*ck59Sr`rk*C zk?2?Gi|%MNCKn_3(=RxSHjDoqcY!d*)%YQ=VQ7fAtL1aV7%1ed| zs0>Bt=hHa_-EQjpEKROP!m?~kqs&u#dp|qsgp^vIJ!iv@#Bc`KS|{#;0>!>Q3ODaY ze0s~n>u2#87z?a?ZEh*VbK>8!<>jjDg73cd`(D)d=}6}~KQa<#ahluD_A>o=B83us zXQrIXkJ~zi0i^VZ`9h>6*f;}hMstjbvE5#uP@URNYmmY=_noxnMhXyW>J5Ch&^42p zBt&xG2hV_aTGF$;dH^OCo?oHy0FxCtwyw_Y?)|E7>79lf_I;SC!}Th(oJdrkyPDQ) zHp#X=7#3#bR^Lkw8+h*H8q3K2uP!^w!L?X)5aPQA=oMeX&}PJdhe&VUSAAA|T- zwG~U!$9|6YJ)bCS>B~GHg56pZ-X+YV_f@CCeHR&EM5Fzt%ceVuP*t=G;#`E930cza= zs_B2FVN~6q^G!ceRC;1px_&Hps)_X6Y(ClMTQYub+=K&G99Fo#4h;Iv51KwD#FX2{Kx&--aVW&CWyu8nyIdNlXXQqS;+h{y??SDNa@5SOiGK_I(18c)4w=o+G= zsGX_{cV<{Z%-fjNH_2RwzAWMIH9Sx(6`LC{|6406S+ji^ojonYk&{8aREYc@AHRbqPn`(=xk-;|fzbD@|Kzz`2Qo?g(13Du1wkGM>WvfzY}H`+sRU&hDS_l+Q`_ z9erIWS{d|1PVrKDWZy>ide3%Bi%s1pT8n(jzOcW&qHqawtJ=MuK9f@y8fIwITya3k z_|qR^I7F}>O8WRQM7$=WgK(*l8+kpC>P(cSl=s`ul-DbBg7^NclWK^f`m%Jr;=pvn#{DY}Y|=k1D=ms#0LU4lCrocx7w4-=(47G zR=y)+U|QUC!|~&|pZ63EhlP!155?j~rCv9d%~Chhyl($+I#+=5-4n7Yl!f`gPowsv zC}B+R!Ve;mSjx0RexjwehKM5%G?aq>9wV@*kw!LwCuB?mK>&|51)l^0;hw$&^0M;ez5mRJ%L8>b#k1CwIdWM&VgiljW5mUp{tt+m* z%SCE2+}GoZ%e;I~sk$@%NiFZg+xSmT5--YRrkyD+FqC^ zHaoRGV2^bOYk-LDy0Z=uF2Lu~k${_|`Hq(mIyD|vR(KufuZ|^`Z9BZ|vJcGt>3xkS zF_-E{he+?^ISnrq6+F|QAhL$O&yLamUYr2E@pTeVU^9BN^x=bnp{XgU zyEEY)sOWqUrLv~R_H(f3XUo}koj*1PC4=2<HMR7+sFP+)_CuWCZUq$}K_`FXiYm=0TGZ%gz*j93AzfC`2556a2En z{wysvA-m?Zn%~y*Tz~D7oX^_RHv*1f`HmV%4#0HF1r@7>nn}ux+k+YyLuA%YvwqgkMulU8>aDX8m zGA9=HS0MP&=sE2(3JNPSpg^q)&oYzwP2y9ave0WsA7E6tw^olxIdRN0(+IsKE{?TxoUU4kZbHB=qT&PEO}F)|028rVPj EABasb$N&HU literal 0 HcmV?d00001 diff --git a/common/src/main/res/mipmap-xxhdpi/icon_live_gift_gift_itle.png b/common/src/main/res/mipmap-xxhdpi/icon_live_gift_gift_itle.png new file mode 100644 index 0000000000000000000000000000000000000000..b575ecf36905898cd85ac2368442b877059b68e2 GIT binary patch literal 5303 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 去點亮 我的荣誉墙 成就詳情 + 冠名主播: + 冠名金主: diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveGiftPopup.java b/live/src/main/java/com/yunbao/live/dialog/LiveGiftPopup.java index 06d7054d1..3e99a8762 100644 --- a/live/src/main/java/com/yunbao/live/dialog/LiveGiftPopup.java +++ b/live/src/main/java/com/yunbao/live/dialog/LiveGiftPopup.java @@ -49,6 +49,7 @@ import com.yunbao.common.bean.LiveGiftBean2; import com.yunbao.common.bean.UserBean; import com.yunbao.common.dialog.AbsDialogFragment; import com.yunbao.common.event.GiftNumberEvent; +import com.yunbao.common.event.LiveGiftDialogEvent; import com.yunbao.common.event.SendBlindGiftEvent; import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.http.HttpCallback; @@ -74,7 +75,6 @@ import com.yunbao.live.bean.GiftTopBean; import com.yunbao.live.bean.LiveGuardInfo; import com.yunbao.live.event.GiftTitleEvent; import com.yunbao.live.event.LiveAudienceEvent; -import com.yunbao.common.event.LiveGiftDialogEvent; import com.yunbao.live.event.LiveGiftItemEvent; import com.yunbao.live.event.LiveParcelItemRefreshEvent; import com.yunbao.live.http.LiveHttpUtil; @@ -94,14 +94,14 @@ import java.util.List; * 直播间新送礼弹窗 */ public class LiveGiftPopup extends AbsDialogFragment { - private ImageView gitBackground, nobilityIcon, description, iconArrow, operateImage; + private ImageView gitBackground, nobilityIcon, description, iconArrow, operateImage, namingAvatar; private JSONArray liveGiftList; private TextView diamondText, goldText, liveWrap, vipGoldDesc, vipGoldTitle, giftNumber; private RecyclerView giftTitle; private GiftTitleAdapter giftTitleAdapter; private FrameLayout contextLayoutGift; private String mStream, mLiveUid; - private FrameLayout blindBox, frameBlindTop, noNobility, giftNumberLayout, giftSendLayout; + private FrameLayout blindBox, frameBlindTop, noNobility, giftNumberLayout, giftSendLayout, namingLayout; private ProgressBar progressBlind, progressBlind1, progressBlind2; private SVGAImageView blindSvga, blindBoxOpen; private View iconMasking; @@ -116,7 +116,7 @@ public class LiveGiftPopup extends AbsDialogFragment { private String by; private boolean isWrap; private ProgressBar progressBar; - private MarqueeTextView giftDescription; + private MarqueeTextView giftDescription, namingName; private boolean isPk; @@ -144,6 +144,7 @@ public class LiveGiftPopup extends AbsDialogFragment { giftTitle = mRootView.findViewById(R.id.gift_title); liveWrap = mRootView.findViewById(R.id.live_wrap); giftDescription = mRootView.findViewById(R.id.gift_description); + namingName = mRootView.findViewById(R.id.naming_name); blindBox = mRootView.findViewById(R.id.blind_box); frameBlindTop = mRootView.findViewById(R.id.frame_blind_top); progressBlind = mRootView.findViewById(R.id.progress_blind1); @@ -166,13 +167,16 @@ public class LiveGiftPopup extends AbsDialogFragment { mLianText = mRootView.findViewById(R.id.lian_text); mBtnSendGroup = mRootView.findViewById(R.id.btn_send_lian); giftSendLayout = mRootView.findViewById(R.id.gift_send_layout); + namingLayout = mRootView.findViewById(R.id.naming_layout); description = mRootView.findViewById(R.id.description); lvStr = mRootView.findViewById(R.id.lv_str); iconArrow = mRootView.findViewById(R.id.icon_arrow); operateImage = mRootView.findViewById(R.id.operate_image); + namingAvatar = mRootView.findViewById(R.id.naming_avatar); leaveHint = mRootView.findViewById(R.id.leave_hint); progressBar = mRootView.findViewById(R.id.progressBar); levelingLayout = mRootView.findViewById(R.id.leveling_layout); + namingLayout.setVisibility(View.GONE); //设置礼物弹窗背景 ImgLoader.displayBlurLive(getContext(), R.drawable.backgroud_custom_gift2, gitBackground); gitBackground.setAlpha(0.97f); @@ -653,8 +657,22 @@ public class LiveGiftPopup extends AbsDialogFragment { @Subscribe(threadMode = ThreadMode.MAIN) public void onLiveGiftItemEvent(LiveGiftItemEvent event) { - liveGiftModel = event.getLiveGiftModel(); + + if (!TextUtils.equals(liveGiftModel.getNamingLiveuid(), "0") && !TextUtils.equals(liveGiftModel.getNamingUid(), "0")) { + namingLayout.setVisibility(View.VISIBLE); + ImgLoader.display(mContext, liveGiftModel.getNamingLiveAvatar(), namingAvatar); + StringBuffer namingNameText = new StringBuffer(); + namingNameText.append(mContext.getText(com.yunbao.live.R.string.title_anchor)) + .append(liveGiftModel.getNamingLiveName()) + .append(mContext.getText(com.yunbao.live.R.string.the_title_financier)) + .append(liveGiftModel.getNamingUserName()); + namingName.setText(namingNameText.toString()); + } else { + namingLayout.setVisibility(View.GONE); + + } + if (liveGiftModel.getType() == 7) { showBlindProgress(liveGiftModel.getBlind_box_type()); } else { @@ -853,6 +871,7 @@ public class LiveGiftPopup extends AbsDialogFragment { textBlindGiftName.setText(stringBuilder); boxBlindHandler.postDelayed(boxBlindRunnable, 1500); stringBuilders.remove(0); + } else { textBlindGiftName.setText(String.format(mContext.getString(R.string.random_availability), blindGiftNamesBuffer.toString())); } diff --git a/live/src/main/java/com/yunbao/live/views/FrameGiftViewHolder.java b/live/src/main/java/com/yunbao/live/views/FrameGiftViewHolder.java index d89aa8c62..86ce8a3ed 100644 --- a/live/src/main/java/com/yunbao/live/views/FrameGiftViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/FrameGiftViewHolder.java @@ -2,6 +2,7 @@ package com.yunbao.live.views; import android.content.Context; import android.graphics.Color; +import android.text.TextUtils; import android.util.TypedValue; import android.view.View; import android.view.animation.AccelerateDecelerateInterpolator; @@ -20,6 +21,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.lxj.xpopup.XPopup; import com.yunbao.common.bean.LiveGiftBean; +import com.yunbao.common.event.LiveGiftDialogEvent; import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.interfaces.CommonCallback; import com.yunbao.common.utils.Bus; @@ -28,7 +30,6 @@ import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.views.weight.ViewClicksAntiShake; import com.yunbao.live.R; import com.yunbao.live.dialog.SendRendPacketPopup; -import com.yunbao.common.event.LiveGiftDialogEvent; import java.io.File; @@ -76,7 +77,12 @@ public class FrameGiftViewHolder extends RecyclerView.ViewHolder { } ImgLoader.display(mContext, model.getIcon(), giftIcon); ImgLoader.display(mContext, model.getCornerMark(), cornerMark); - giftName.setText(model.getName()); + if (!TextUtils.equals(model.getNamingLiveuid(), "0") && !TextUtils.equals(model.getNamingUid(), "0")) { + giftName.setText(model.getNamingUserName()); + } else { + giftName.setText(model.getName()); + } + //特殊礼物红包 if (model.getType() == 9999999) { mPayIco.setVisibility(View.GONE); 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 39db6a2b5..5dfa58d56 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java @@ -2669,7 +2669,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis bundle.putBoolean("isLive", mContext instanceof LiveRyAnchorActivity); giftWallDialog.setArguments(bundle); giftWallDialog.show(((AbsActivity) mContext).getSupportFragmentManager(), "GiftWallDialog"); -// RouteUtil.forwardGiftWallActivity(mStream,mAnchorName,mLiveUid,mAvatarUrl,isAttention); + } public boolean pkHandler = true; From fa086dc5cb114ce3577032c840f4374e387feb3c Mon Sep 17 00:00:00 2001 From: 18401019693 Date: Thu, 3 Aug 2023 17:54:14 +0800 Subject: [PATCH 13/19] =?UTF-8?q?6.5.4=E7=A4=BC=E7=89=A9=E5=86=A0=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fragment/GiftWithoutWallFragment.java | 8 ++- .../com/yunbao/common/http/PDLiveApi.java | 12 ++-- .../common/http/live/LiveNetManager.java | 12 ++-- .../utils/JavascriptInterfaceUtils.java | 2 +- .../res/layout/fragment_gift_already_wall.xml | 1 + .../live/activity/GiftWallActivity.java | 62 ++++++++++--------- .../live/activity/LiveAudienceActivity.java | 2 +- .../live/activity/ZhuangBanActivity.java | 2 +- .../yunbao/live/dialog/GiftWallDialog.java | 11 ++-- .../live/dialog/LiveUserDialogFragment.java | 2 +- .../live/dialog/MedalAchievementPopup.java | 27 +++++++- .../live/views/GiftAlreadyWallFragment.java | 9 ++- .../yunbao/live/views/LiveRoomViewHolder.java | 5 +- .../live/views/PortraitLiveManager.java | 4 +- .../res/layout/activity_live_gift_wall.xml | 8 +-- .../res/layout/dialog_medal_achievement.xml | 1 + 16 files changed, 102 insertions(+), 66 deletions(-) diff --git a/common/src/main/java/com/yunbao/common/fragment/GiftWithoutWallFragment.java b/common/src/main/java/com/yunbao/common/fragment/GiftWithoutWallFragment.java index 25bb35261..f86e1aebf 100644 --- a/common/src/main/java/com/yunbao/common/fragment/GiftWithoutWallFragment.java +++ b/common/src/main/java/com/yunbao/common/fragment/GiftWithoutWallFragment.java @@ -19,7 +19,7 @@ import com.yunbao.common.http.live.LiveNetManager; * wei点亮礼物墙 */ public class GiftWithoutWallFragment extends BaseFragment { - private String mStream, mLiveUid; + private String mStream, mLiveUid, toUid; private RecyclerView withoutList; private LinearLayout giftWallNoData; private GiftWithoutWallAdapter withoutWallAdapter; @@ -34,6 +34,7 @@ public class GiftWithoutWallFragment extends BaseFragment { protected void initVariables(Bundle bundle) { mStream = bundle.getString("mStream"); mLiveUid = bundle.getString("mLiveUid"); + toUid = bundle.getString("toUid"); } @Override @@ -48,7 +49,7 @@ public class GiftWithoutWallFragment extends BaseFragment { @Override protected void loadData() { LiveNetManager.get(getActivity()). - giftWithoutWall(mLiveUid, new HttpCallback() { + giftWithoutWall(mLiveUid, toUid, new HttpCallback() { @Override public void onSuccess(GiftAlreadyWallModel data) { if (data.getGiftWall().size() > 0) { @@ -68,11 +69,12 @@ public class GiftWithoutWallFragment extends BaseFragment { }); } - public static GiftWithoutWallFragment newInstance(String mStream, String mLiveUid) { + public static GiftWithoutWallFragment newInstance(String mStream, String mLiveUid, String toUid) { GiftWithoutWallFragment liveGiftFragment = new GiftWithoutWallFragment(); Bundle bundle = new Bundle(); bundle.putString("mStream", mStream); bundle.putString("mLiveUid", mLiveUid); + bundle.putString("toUid", toUid); liveGiftFragment.setArguments(bundle); return liveGiftFragment; } 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 12b2a56cf..1155d847c 100644 --- a/common/src/main/java/com/yunbao/common/http/PDLiveApi.java +++ b/common/src/main/java/com/yunbao/common/http/PDLiveApi.java @@ -50,7 +50,6 @@ import com.yunbao.common.bean.SetAttentsModel; import com.yunbao.common.bean.SlideInBannerModel; import com.yunbao.common.bean.StarChallengeStatusModel; import com.yunbao.common.bean.UserAreaBean; -import com.yunbao.common.bean.UserMedalListModel; import com.yunbao.common.bean.VipModel; import com.yunbao.common.bean.WishListGiftConfModel; import com.yunbao.common.bean.WishListModel; @@ -841,7 +840,8 @@ public interface PDLiveApi { */ @GET("/api/public/?service=Gift.giftAlreadyWall") Observable> giftAlreadyWall( - @Query("liveuid") String liveUid + @Query("liveuid") String liveUid, + @Query("to_uid") String toUid ); /** @@ -849,7 +849,8 @@ public interface PDLiveApi { */ @GET("/api/public/?service=Gift.giftWithoutWall") Observable> giftWithoutWall( - @Query("liveuid") String liveUid + @Query("liveuid") String liveUid, + @Query("to_uid") String toUid ); /** @@ -876,6 +877,7 @@ public interface PDLiveApi { */ @GET("/api/public/?service=Gift.lastMonthGiftNaming") Observable>> lastMonthGiftNaming(); + /** * 礼物墙上月冠名 * @@ -890,8 +892,10 @@ public interface PDLiveApi { Observable>> getGiftGuideHistory( @Query("liveuid") String liveUid ); + @GET("/api/public/?service=Gift.getUserMedalList") - Observable> getUserMedalList(); + Observable> getUserMedalList(@Query("to_uid") String toUid); + @GET("/api/public/?service=Gift.getLiveMedalList") Observable> getLiveMedalList(); 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 d51ef37be..07c530e3b 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 @@ -1801,9 +1801,9 @@ public class LiveNetManager { }).isDisposed(); } - public void giftAlreadyWall(String liveUid, HttpCallback callback) { + public void giftAlreadyWall(String liveUid, String toUid, HttpCallback callback) { API.get().pdLiveApi(mContext) - .giftAlreadyWall(liveUid) + .giftAlreadyWall(liveUid, toUid) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Consumer>() { @@ -1823,9 +1823,9 @@ public class LiveNetManager { }).isDisposed(); } - public void giftWithoutWall(String liveUid, HttpCallback callback) { + public void giftWithoutWall(String liveUid, String toUid, HttpCallback callback) { API.get().pdLiveApi(mContext) - .giftWithoutWall(liveUid) + .giftWithoutWall(liveUid, toUid) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Consumer>() { @@ -1955,9 +1955,9 @@ public class LiveNetManager { }).isDisposed(); } - public void getUserMedalList(HttpCallback callback) { + public void getUserMedalList(String toUid, HttpCallback callback) { API.get().pdLiveApi(mContext) - .getUserMedalList() + .getUserMedalList(toUid) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Consumer>() { diff --git a/common/src/main/java/com/yunbao/common/utils/JavascriptInterfaceUtils.java b/common/src/main/java/com/yunbao/common/utils/JavascriptInterfaceUtils.java index 41f967ed3..271b7c43a 100644 --- a/common/src/main/java/com/yunbao/common/utils/JavascriptInterfaceUtils.java +++ b/common/src/main/java/com/yunbao/common/utils/JavascriptInterfaceUtils.java @@ -550,7 +550,7 @@ public class JavascriptInterfaceUtils { } @JavascriptInterface - public void toGiftNamingAlertAllPageView(String mAnchorName, String mLiveUid, String mAvatarUrl) { + public void toGiftNamingAlertAllPageView(String mAnchorName, String mLiveUid, String mAvatarUrl,String toUid) { RouteUtil.forwardGiftWallActivity("", mAnchorName, mLiveUid, mAvatarUrl, 0); } } diff --git a/common/src/main/res/layout/fragment_gift_already_wall.xml b/common/src/main/res/layout/fragment_gift_already_wall.xml index 846998445..40823ee2c 100644 --- a/common/src/main/res/layout/fragment_gift_already_wall.xml +++ b/common/src/main/res/layout/fragment_gift_already_wall.xml @@ -82,6 +82,7 @@ android:background="@drawable/background_skip_button" android:gravity="center" android:text="@string/instant_light" + android:visibility="gone" android:textColor="#F16D00" android:textSize="14sp" /> diff --git a/live/src/main/java/com/yunbao/live/activity/GiftWallActivity.java b/live/src/main/java/com/yunbao/live/activity/GiftWallActivity.java index 97cc90f08..1844987cd 100644 --- a/live/src/main/java/com/yunbao/live/activity/GiftWallActivity.java +++ b/live/src/main/java/com/yunbao/live/activity/GiftWallActivity.java @@ -20,17 +20,13 @@ import com.yunbao.common.event.LiveGiftDialogEvent; import com.yunbao.common.fragment.AllServiceChampionFragment; import com.yunbao.common.fragment.GiftWithoutWallFragment; import com.yunbao.common.glide.ImgLoader; -import com.yunbao.common.http.CommonHttpUtil; -import com.yunbao.common.interfaces.CommonCallback; -import com.yunbao.common.manager.IMLoginManager; import com.yunbao.common.utils.Bus; import com.yunbao.common.utils.RouteUtil; import com.yunbao.common.views.weight.ViewClicksAntiShake; import com.yunbao.live.R; import com.yunbao.live.dialog.CodexDialog; import com.yunbao.live.dialog.GiftWallItemPopup; -import com.yunbao.live.dialog.RegularIntroducePopup; -import com.yunbao.live.event.LiveAudienceEvent; +import com.yunbao.live.dialog.MedalAchievementPopup; import com.yunbao.live.views.GiftAlreadyWallFragment; import org.greenrobot.eventbus.Subscribe; @@ -38,11 +34,12 @@ import org.greenrobot.eventbus.ThreadMode; import java.util.ArrayList; import java.util.List; + @Route(path = RouteUtil.PATH_GIFT_WALL) public class GiftWallActivity extends AbsActivity { private LinearLayout layoutLitIcon, layoutUnlitIcon, layoutAllServiceChampion; private TextView textLitIcon, textUnlitIcon, textAllServiceChampion, anchorName; - private View viewAllServiceChampion, viewUnlitIcon, viewLitIcon, attention; + private View viewAllServiceChampion, viewUnlitIcon, viewLitIcon; private RoundedImageView avatar; private List tabText = new ArrayList<>(); private List tabView = new ArrayList<>(); @@ -79,7 +76,6 @@ public class GiftWallActivity extends AbsActivity { viewUnlitIcon = findViewById(R.id.view_unlit_icon); viewLitIcon = findViewById(R.id.view_lit_icon); avatar = findViewById(R.id.avatar); - attention = findViewById(R.id.attention); anchorName = findViewById(R.id.anchor_name); tabText.add(textLitIcon); tabText.add(textUnlitIcon); @@ -91,7 +87,7 @@ public class GiftWallActivity extends AbsActivity { ViewClicksAntiShake.clicksAntiShake(layoutLitIcon, () -> { selectTab(textLitIcon, viewLitIcon); FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); - transaction.replace(R.id.context_layout_gift, GiftAlreadyWallFragment.newInstance(mStream, mLiveUid)); + transaction.replace(R.id.context_layout_gift, GiftAlreadyWallFragment.newInstance(mStream, mLiveUid, mLiveUid)); transaction.commit(); }); ViewClicksAntiShake.clicksAntiShake(layoutUnlitIcon, new ViewClicksAntiShake.ViewClicksCallBack() { @@ -99,7 +95,7 @@ public class GiftWallActivity extends AbsActivity { public void onViewClicks() { selectTab(textUnlitIcon, viewUnlitIcon); FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); - transaction.replace(R.id.context_layout_gift, GiftWithoutWallFragment.newInstance(mStream, mLiveUid)); + transaction.replace(R.id.context_layout_gift, GiftWithoutWallFragment.newInstance(mStream, mLiveUid, mLiveUid)); transaction.commit(); } @@ -113,23 +109,7 @@ public class GiftWallActivity extends AbsActivity { transaction.commit(); } }); - ViewClicksAntiShake.clicksAntiShake(attention, new ViewClicksAntiShake.ViewClicksCallBack() { - @Override - public void onViewClicks() { - CommonHttpUtil.setAttention(mLiveUid, new CommonCallback() { - @Override - public void callback(Integer isAttention) { - if (isAttention == 1) { - LiveActivity.sendSystemMessage(IMLoginManager.get(GiftWallActivity.this).getUserInfo().getUserNicename() - + getString(R.string.live_follow_anchor)); - attention.setVisibility(View.GONE); - Bus.get().post(new LiveAudienceEvent() - .setType(LiveAudienceEvent.LiveAudienceType.IS_ATTENTION).setLiveType(isAttention)); - } - } - }); - } - }); + ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.codex_layout), new ViewClicksAntiShake.ViewClicksCallBack() { @Override @@ -140,6 +120,27 @@ public class GiftWallActivity extends AbsActivity { .show(); } }); + ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.medal_achievement), new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + new XPopup.Builder(GiftWallActivity.this) + .enableDrag(false) + .asCustom(new MedalAchievementPopup(GiftWallActivity.this, false, mLiveUid)) + .show(); + } + }); + ViewClicksAntiShake.clicksAntiShake(avatar, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + forwardHomePage(); + } + }); + ViewClicksAntiShake.clicksAntiShake(anchorName, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + forwardHomePage(); + } + }); } private void initDate() { @@ -154,11 +155,10 @@ public class GiftWallActivity extends AbsActivity { isAttention = intent.getIntExtra("isAttention", 0); FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); - transaction.replace(R.id.context_layout_gift, GiftAlreadyWallFragment.newInstance(mStream, mLiveUid)); + transaction.replace(R.id.context_layout_gift, GiftAlreadyWallFragment.newInstance(mStream, mLiveUid, mLiveUid)); transaction.commit(); ImgLoader.display(GiftWallActivity.this, mAvatarUrl, avatar); anchorName.setText(mAnchorName); - attention.setVisibility(isAttention == 0 ? View.VISIBLE : View.GONE); } private void selectTab(TextView textView, View tab) { @@ -173,7 +173,10 @@ public class GiftWallActivity extends AbsActivity { view.setVisibility(view == tab ? View.VISIBLE : View.GONE); } } - + private void forwardHomePage() { + finish(); + RouteUtil.forwardUserHome(mContext, mLiveUid, false, mLiveUid, 0); + } /** * 关于点击礼物分类的通知 */ @@ -183,6 +186,7 @@ public class GiftWallActivity extends AbsActivity { .asCustom(new GiftWallItemPopup(this, event.getGiftWallModel(), event.isUnlit(), mLiveUid, mStream)) .show(); } + @Subscribe(threadMode = ThreadMode.MAIN) public void onLiveGiftDialogEvent(LiveGiftDialogEvent event) { onBackPressed(); 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 7b9a56dbc..e1e3637ee 100644 --- a/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java +++ b/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java @@ -1440,7 +1440,7 @@ public class LiveAudienceActivity extends LiveActivity { break; case GIFT_WALL: if (manager != null) { - manager.showGiftWall(); + manager.showGiftWall(event.getUid()); } break; diff --git a/live/src/main/java/com/yunbao/live/activity/ZhuangBanActivity.java b/live/src/main/java/com/yunbao/live/activity/ZhuangBanActivity.java index af28b0cf5..b04de9858 100644 --- a/live/src/main/java/com/yunbao/live/activity/ZhuangBanActivity.java +++ b/live/src/main/java/com/yunbao/live/activity/ZhuangBanActivity.java @@ -296,7 +296,7 @@ public class ZhuangBanActivity extends AbsActivity { Intent intent = new Intent(context, ZhuangBanActivity.class); Log.i("tag", url); intent.putExtra(Constants.URL, url); - if (url.contains("Noble/index.html")) { + if (url.contains("Noble/index.html")||url.contains("RongYuQiang")) { intent.putExtra("title", ""); } context.startActivity(intent); diff --git a/live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java b/live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java index 5703cab6e..5f0db059c 100644 --- a/live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java +++ b/live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java @@ -47,7 +47,7 @@ public class GiftWallDialog extends AbsDialogFragment { private RoundedImageView avatar; private List tabText = new ArrayList<>(); private List tabView = new ArrayList<>(); - private String mStream, mAnchorName, mLiveUid, mAvatarUrl; + private String mStream, mAnchorName, mLiveUid, mAvatarUrl, toUid; private int isAttention = 0;//是否关注 0=没关注, private boolean isLive;//是否正在直播 @@ -83,7 +83,7 @@ public class GiftWallDialog extends AbsDialogFragment { ViewClicksAntiShake.clicksAntiShake(layoutLitIcon, () -> { selectTab(textLitIcon, viewLitIcon); FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); - transaction.replace(R.id.context_layout_gift, GiftAlreadyWallFragment.newInstance(mStream, mLiveUid)); + transaction.replace(R.id.context_layout_gift, GiftAlreadyWallFragment.newInstance(mStream, mLiveUid, toUid)); transaction.commit(); }); ViewClicksAntiShake.clicksAntiShake(layoutUnlitIcon, new ViewClicksAntiShake.ViewClicksCallBack() { @@ -91,7 +91,7 @@ public class GiftWallDialog extends AbsDialogFragment { public void onViewClicks() { selectTab(textUnlitIcon, viewUnlitIcon); FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); - transaction.replace(R.id.context_layout_gift, GiftWithoutWallFragment.newInstance(mStream, mLiveUid)); + transaction.replace(R.id.context_layout_gift, GiftWithoutWallFragment.newInstance(mStream, mLiveUid, toUid)); transaction.commit(); } @@ -145,7 +145,7 @@ public class GiftWallDialog extends AbsDialogFragment { public void onViewClicks() { new XPopup.Builder(getContext()) .enableDrag(false) - .asCustom(new MedalAchievementPopup(getContext(), isLive)) + .asCustom(new MedalAchievementPopup(getContext(), isLive, toUid)) .show(); } }); @@ -160,10 +160,11 @@ public class GiftWallDialog extends AbsDialogFragment { mStream = bundle.getString(Constants.STREAM); mAnchorName = bundle.getString("mAnchorName"); mAvatarUrl = bundle.getString("mAvatarUrl"); + toUid = bundle.getString("toUid"); isAttention = bundle.getInt("isAttention"); isLive = bundle.getBoolean("isLive"); FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); - transaction.replace(R.id.context_layout_gift, GiftAlreadyWallFragment.newInstance(mStream, mLiveUid)); + transaction.replace(R.id.context_layout_gift, GiftAlreadyWallFragment.newInstance(mStream, mLiveUid, toUid)); transaction.commit(); ImgLoader.display(getContext(), mAvatarUrl, avatar); anchorName.setText(mAnchorName); diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveUserDialogFragment.java b/live/src/main/java/com/yunbao/live/dialog/LiveUserDialogFragment.java index 09233e892..73849cca0 100644 --- a/live/src/main/java/com/yunbao/live/dialog/LiveUserDialogFragment.java +++ b/live/src/main/java/com/yunbao/live/dialog/LiveUserDialogFragment.java @@ -272,7 +272,7 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On @Override public void onViewClicks() { Bus.get().post(new LiveAudienceEvent() - .setType(LiveAudienceEvent.LiveAudienceType.GIFT_WALL)); + .setType(LiveAudienceEvent.LiveAudienceType.GIFT_WALL).setUid(mToUid)); dismiss(); } }); diff --git a/live/src/main/java/com/yunbao/live/dialog/MedalAchievementPopup.java b/live/src/main/java/com/yunbao/live/dialog/MedalAchievementPopup.java index e14abf8a3..3f04c10a8 100644 --- a/live/src/main/java/com/yunbao/live/dialog/MedalAchievementPopup.java +++ b/live/src/main/java/com/yunbao/live/dialog/MedalAchievementPopup.java @@ -8,22 +8,29 @@ import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.lxj.xpopup.core.BottomPopupView; +import com.yunbao.common.CommonAppConfig; import com.yunbao.common.adapter.MedalAchievementAdapter; +import com.yunbao.common.bean.IMLoginModel; import com.yunbao.common.bean.MedalAchievementModel; 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; import com.yunbao.live.R; +import com.yunbao.live.activity.ZhuangBanActivity; public class MedalAchievementPopup extends BottomPopupView { private boolean isLive; + private String toUid; private TextView achievementText; private RecyclerView achievementList; private MedalAchievementAdapter medalAchievementAdapter; - public MedalAchievementPopup(@NonNull Context context, boolean isLive) { + public MedalAchievementPopup(@NonNull Context context, boolean isLive, String toUid) { super(context); this.isLive = isLive; + this.toUid = toUid; } // 返回自定义弹窗的布局 @@ -61,7 +68,7 @@ public class MedalAchievementPopup extends BottomPopupView { }); } else { LiveNetManager.get(getContext()) - .getUserMedalList(new HttpCallback() { + .getUserMedalList(toUid, new HttpCallback() { @Override public void onSuccess(MedalAchievementModel data) { StringBuffer stringBuffer = new StringBuffer(); @@ -90,5 +97,21 @@ public class MedalAchievementPopup extends BottomPopupView { } medalAchievementAdapter = new MedalAchievementAdapter(); achievementList.setAdapter(medalAchievementAdapter); + ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.wall_honor), new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + StringBuffer htmlUrl = new StringBuffer(); + IMLoginModel userInfo = IMLoginManager.get(getContext()).getUserInfo(); + htmlUrl.append(CommonAppConfig.HOST) + .append("/h5/shequ/index.html#/h5/shequ/RongYuQiang?") + .append("touid=") + .append(toUid) + .append("&token=") + .append(userInfo.getToken()) + .append("&uid=") + .append(userInfo.getId()); + ZhuangBanActivity.forward(getContext(), htmlUrl.toString(), false); + } + }); } } diff --git a/live/src/main/java/com/yunbao/live/views/GiftAlreadyWallFragment.java b/live/src/main/java/com/yunbao/live/views/GiftAlreadyWallFragment.java index 51bce1418..ed577b967 100644 --- a/live/src/main/java/com/yunbao/live/views/GiftAlreadyWallFragment.java +++ b/live/src/main/java/com/yunbao/live/views/GiftAlreadyWallFragment.java @@ -25,7 +25,7 @@ import com.yunbao.common.event.LiveGiftDialogEvent; * 已点亮礼物墙 */ public class GiftAlreadyWallFragment extends BaseFragment { - private String mStream, mLiveUid; + private String mStream, mLiveUid,toUid; private LinearLayout giftWallNoData, giftWallData; private RecyclerView alreadyList; private GiftAlreadyWallAdapter alreadyWallAdapter; @@ -41,6 +41,7 @@ public class GiftAlreadyWallFragment extends BaseFragment { protected void initVariables(Bundle bundle) { mStream = bundle.getString("mStream"); mLiveUid = bundle.getString("mLiveUid"); + toUid = bundle.getString("toUid"); } @Override @@ -68,7 +69,7 @@ public class GiftAlreadyWallFragment extends BaseFragment { @Override protected void loadData() { LiveNetManager.get(getActivity()). - giftAlreadyWall(mLiveUid, new HttpCallback() { + giftAlreadyWall(mLiveUid,toUid, new HttpCallback() { @Override public void onSuccess(GiftAlreadyWallModel data) { if (data.getGiftWall().size() > 0) { @@ -90,11 +91,13 @@ public class GiftAlreadyWallFragment extends BaseFragment { }); } - public static GiftAlreadyWallFragment newInstance(String mStream, String mLiveUid) { + public static GiftAlreadyWallFragment newInstance(String mStream, String mLiveUid,String toUid) { GiftAlreadyWallFragment liveGiftFragment = new GiftAlreadyWallFragment(); Bundle bundle = new Bundle(); bundle.putString("mStream", mStream); bundle.putString("mLiveUid", mLiveUid); + bundle.putString("mLiveUid", mLiveUid); + bundle.putString("toUid", toUid); liveGiftFragment.setArguments(bundle); return liveGiftFragment; } 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 5dfa58d56..2ab379b72 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java @@ -2658,13 +2658,14 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis } } - public void showGiftWall() { + public void showGiftWall(String toUid) { GiftWallDialog giftWallDialog = new GiftWallDialog(); Bundle bundle = new Bundle(); bundle.putString(Constants.LIVE_UID, mLiveUid); bundle.putString(Constants.LIVE_STREAM, mStream); bundle.putString("mAnchorName", mAnchorName); bundle.putString("mAvatarUrl", mAvatarUrl); + bundle.putString("toUid", toUid); bundle.putInt("isAttention", isAttention); bundle.putBoolean("isLive", mContext instanceof LiveRyAnchorActivity); giftWallDialog.setArguments(bundle); @@ -2865,7 +2866,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis @Override public void onViewClicks() { Bus.get().post(new LiveAudienceEvent() - .setType(LiveAudienceEvent.LiveAudienceType.GIFT_WALL)); + .setType(LiveAudienceEvent.LiveAudienceType.GIFT_WALL).setUid(String.valueOf(IMLoginManager.get(mContext).getUserInfo().getId()))); } }); } 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 ef87fca35..abfc9d7fb 100644 --- a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java +++ b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java @@ -1910,10 +1910,10 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe mLiveRoomViewHolder.setAttention(attention); } - public void showGiftWall() { + public void showGiftWall(String toUid) { if (mLiveRoomViewHolder!=null){ - mLiveRoomViewHolder.showGiftWall(); + mLiveRoomViewHolder.showGiftWall(toUid); } } diff --git a/live/src/main/res/layout/activity_live_gift_wall.xml b/live/src/main/res/layout/activity_live_gift_wall.xml index f9e5835f4..e1dce4ddf 100644 --- a/live/src/main/res/layout/activity_live_gift_wall.xml +++ b/live/src/main/res/layout/activity_live_gift_wall.xml @@ -39,12 +39,7 @@ android:textColor="@color/white" android:textSize="14sp" /> - + Date: Fri, 4 Aug 2023 09:47:42 +0800 Subject: [PATCH 14/19] =?UTF-8?q?6.5.4=E7=A4=BC=E7=89=A9=E5=86=A0=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../utils/JavascriptInterfaceUtils.java | 2 +- common/src/main/res/values/strings.xml | 1 + .../yunbao/live/bean/LiveReceiveGiftBean.java | 81 +++++++++++++++++++ .../yunbao/live/socket/SocketRyClient.java | 4 + .../yunbao/live/views/LiveGiftViewHolder.java | 12 ++- .../main/res/drawable/background_naming.xml | 9 +++ .../res/drawable/background_naming_icon.xml | 9 +++ live/src/main/res/layout/view_live_gift.xml | 12 +++ 8 files changed, 127 insertions(+), 3 deletions(-) create mode 100644 live/src/main/res/drawable/background_naming.xml create mode 100644 live/src/main/res/drawable/background_naming_icon.xml diff --git a/common/src/main/java/com/yunbao/common/utils/JavascriptInterfaceUtils.java b/common/src/main/java/com/yunbao/common/utils/JavascriptInterfaceUtils.java index 271b7c43a..41f967ed3 100644 --- a/common/src/main/java/com/yunbao/common/utils/JavascriptInterfaceUtils.java +++ b/common/src/main/java/com/yunbao/common/utils/JavascriptInterfaceUtils.java @@ -550,7 +550,7 @@ public class JavascriptInterfaceUtils { } @JavascriptInterface - public void toGiftNamingAlertAllPageView(String mAnchorName, String mLiveUid, String mAvatarUrl,String toUid) { + public void toGiftNamingAlertAllPageView(String mAnchorName, String mLiveUid, String mAvatarUrl) { RouteUtil.forwardGiftWallActivity("", mAnchorName, mLiveUid, mAvatarUrl, 0); } } diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml index 14234c036..46c21fc10 100644 --- a/common/src/main/res/values/strings.xml +++ b/common/src/main/res/values/strings.xml @@ -1298,5 +1298,6 @@ Limited ride And limited avatar frame 成就詳情 冠名主播: 冠名金主: + 冠名 diff --git a/live/src/main/java/com/yunbao/live/bean/LiveReceiveGiftBean.java b/live/src/main/java/com/yunbao/live/bean/LiveReceiveGiftBean.java index af542556d..e505b5fc9 100644 --- a/live/src/main/java/com/yunbao/live/bean/LiveReceiveGiftBean.java +++ b/live/src/main/java/com/yunbao/live/bean/LiveReceiveGiftBean.java @@ -54,6 +54,87 @@ public class LiveReceiveGiftBean extends BaseModel { private String opentype; private String anchorUid; private boolean isBlindBox = false; + private String namingLiveuid; + private String namingUid; + private String namingLiveName; + private String namingUserName; + private String namingLiveAvatar; + private String namingUserAvatar; + private String namingStatus; + private String namingCoin; + + public String getNamingLiveuid() { + return namingLiveuid; + } + + public LiveReceiveGiftBean setNamingLiveuid(String namingLiveuid) { + this.namingLiveuid = namingLiveuid; + return this; + } + + public String getNamingUid() { + return namingUid; + } + + public LiveReceiveGiftBean setNamingUid(String namingUid) { + this.namingUid = namingUid; + return this; + } + + public String getNamingLiveName() { + return namingLiveName; + } + + public LiveReceiveGiftBean setNamingLiveName(String namingLiveName) { + this.namingLiveName = namingLiveName; + return this; + } + + public String getNamingUserName() { + return namingUserName; + } + + public LiveReceiveGiftBean setNamingUserName(String namingUserName) { + this.namingUserName = namingUserName; + return this; + } + + public String getNamingLiveAvatar() { + return namingLiveAvatar; + } + + public LiveReceiveGiftBean setNamingLiveAvatar(String namingLiveAvatar) { + this.namingLiveAvatar = namingLiveAvatar; + return this; + } + + public String getNamingUserAvatar() { + return namingUserAvatar; + } + + public LiveReceiveGiftBean setNamingUserAvatar(String namingUserAvatar) { + this.namingUserAvatar = namingUserAvatar; + return this; + } + + public String getNamingStatus() { + return namingStatus; + } + + public LiveReceiveGiftBean setNamingStatus(String namingStatus) { + this.namingStatus = namingStatus; + return this; + } + + public String getNamingCoin() { + return namingCoin; + } + + public LiveReceiveGiftBean setNamingCoin(String namingCoin) { + this.namingCoin = namingCoin; + return this; + } + private AllServerNotifyEvent event = new AllServerNotifyEvent(); public AllServerNotifyEvent getEvent() { diff --git a/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java b/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java index 427a8439a..bf5362590 100644 --- a/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java +++ b/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java @@ -1031,6 +1031,10 @@ public class SocketRyClient { receiveGiftBean.setAncherName(map.getString("ancherName")); receiveGiftBean.setHot_num(map.getString("hot_num")); receiveGiftBean.setDrpk_status(map.getString("drpk_status")); + receiveGiftBean.setNamingCoin(map.getString("naming_live_name")); + receiveGiftBean.setNamingLiveName(map.getString("naming_live_name")); + receiveGiftBean.setNamingUid(map.getString("naming_uid")); + receiveGiftBean.setNamingLiveuid(map.getString("naming_liveuid")); receiveGiftBean.setmLiveUId(mLiveUid); receiveGiftBean.setmTypeBuyGuard(false); receiveGiftBean.setAllServerNotify(false); diff --git a/live/src/main/java/com/yunbao/live/views/LiveGiftViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveGiftViewHolder.java index 65da01f37..a36e27ca8 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveGiftViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveGiftViewHolder.java @@ -30,7 +30,7 @@ import com.yunbao.live.utils.LiveTextRender; public class LiveGiftViewHolder extends AbsViewHolder { - private View mRoot; + private View mRoot, root_back; private View mBg; private View mStar; private ImageView mAvatar; @@ -62,6 +62,7 @@ public class LiveGiftViewHolder extends AbsViewHolder { @Override public void init() { mRoot = findViewById(R.id.root); + root_back = findViewById(R.id.root_back); mBg = findViewById(R.id.bg); mStar = findViewById(R.id.star); mAvatar = (ImageView) findViewById(R.id.avatar); @@ -127,7 +128,7 @@ public class LiveGiftViewHolder extends AbsViewHolder { * 显示礼物动画 */ public void show(LiveReceiveGiftBean bean, boolean isSameUser) { - if (bean.getMark()==3) {//这是幸运礼物 + if (bean.getMark() == 3) {//这是幸运礼物 if (!mIdle) { hideNormal(); } @@ -177,6 +178,13 @@ public class LiveGiftViewHolder extends AbsViewHolder { mGiftCount.setText(new LiveTextRender().renderGiftCount(mLianCount)); } mLastGiftKey = bean.getKey(); + if (!TextUtils.equals(bean.getNamingLiveuid(), "0") && !TextUtils.equals(bean.getNamingUid(), "0")) { + root_back.setBackgroundResource(R.drawable.background_naming); + findViewById(R.id.naming_icon).setVisibility(View.VISIBLE); + } else { + root_back.setBackgroundResource(R.mipmap.icon_live_gift_anim_3); + findViewById(R.id.naming_icon).setVisibility(View.GONE); + } if (lian && mGiftCount != null && mAnimation != null) { mGiftCount.startAnimation(mAnimation); } diff --git a/live/src/main/res/drawable/background_naming.xml b/live/src/main/res/drawable/background_naming.xml new file mode 100644 index 000000000..f2b43bce8 --- /dev/null +++ b/live/src/main/res/drawable/background_naming.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/live/src/main/res/drawable/background_naming_icon.xml b/live/src/main/res/drawable/background_naming_icon.xml new file mode 100644 index 000000000..fb9f5a989 --- /dev/null +++ b/live/src/main/res/drawable/background_naming_icon.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/live/src/main/res/layout/view_live_gift.xml b/live/src/main/res/layout/view_live_gift.xml index 333498664..8cb71f034 100644 --- a/live/src/main/res/layout/view_live_gift.xml +++ b/live/src/main/res/layout/view_live_gift.xml @@ -8,6 +8,7 @@ android:visibility="invisible"> + From 4a7790d968d62d296f76042d9dd3d4905e9ee142 Mon Sep 17 00:00:00 2001 From: 18401019693 Date: Fri, 4 Aug 2023 10:11:03 +0800 Subject: [PATCH 15/19] =?UTF-8?q?6.5.4=E7=A4=BC=E7=89=A9=E5=86=A0=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/event/GiftWallIlluminateEvent.java | 52 +++++++++++++++++++ .../live/activity/LiveAudienceActivity.java | 8 +++ .../yunbao/live/socket/SocketRyClient.java | 8 +++ .../live/views/PortraitLiveManager.java | 14 +++-- 4 files changed, 78 insertions(+), 4 deletions(-) create mode 100644 common/src/main/java/com/yunbao/common/event/GiftWallIlluminateEvent.java diff --git a/common/src/main/java/com/yunbao/common/event/GiftWallIlluminateEvent.java b/common/src/main/java/com/yunbao/common/event/GiftWallIlluminateEvent.java new file mode 100644 index 000000000..ef36b27f1 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/event/GiftWallIlluminateEvent.java @@ -0,0 +1,52 @@ +package com.yunbao.common.event; + +import com.google.gson.annotations.SerializedName; +import com.yunbao.common.bean.BaseModel; + +public class GiftWallIlluminateEvent extends BaseModel { + + @SerializedName("_method_") + private String method; + @SerializedName("action") + private String action; + @SerializedName("max_number") + private int maxNumber; + @SerializedName("new_number") + private int newNumber; + + public String getMethod() { + return method; + } + + public GiftWallIlluminateEvent setMethod(String method) { + this.method = method; + return this; + } + + public String getAction() { + return action; + } + + public GiftWallIlluminateEvent setAction(String action) { + this.action = action; + return this; + } + + public int getMaxNumber() { + return maxNumber; + } + + public GiftWallIlluminateEvent setMaxNumber(int maxNumber) { + this.maxNumber = maxNumber; + return this; + } + + public int getNewNumber() { + return newNumber; + } + + public GiftWallIlluminateEvent setNewNumber(int newNumber) { + this.newNumber = newNumber; + return this; + } +} 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 e1e3637ee..50586d85c 100644 --- a/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java +++ b/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java @@ -60,6 +60,7 @@ import com.yunbao.common.dialog.SlideSettingsDialog; import com.yunbao.common.dialog.YoursystemisolderDialog; import com.yunbao.common.event.CustomDrawerPopupEvent; import com.yunbao.common.event.FollowEvent; +import com.yunbao.common.event.GiftWallIlluminateEvent; import com.yunbao.common.event.JavascriptInterfaceEvent; import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.http.CommonHttpConsts; @@ -1448,6 +1449,13 @@ public class LiveAudienceActivity extends LiveActivity { } + @Subscribe(threadMode = ThreadMode.MAIN) + public void GiftWallIlluminateEvent(GiftWallIlluminateEvent event) { + if (manager != null) { + manager.setGiftWall(String.valueOf(event.getNewNumber()), String.valueOf(event.getMaxNumber())); + } + } + /** * 跳转到消息中心的系统信息web * diff --git a/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java b/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java index bf5362590..ae0f9eb93 100644 --- a/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java +++ b/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java @@ -36,6 +36,7 @@ import com.yunbao.common.bean.WishModel; import com.yunbao.common.bean.XydCompleteModel; import com.yunbao.common.event.AllServerNotifyEvent; import com.yunbao.common.event.CustomFullServiceNotifyEvent; +import com.yunbao.common.event.GiftWallIlluminateEvent; import com.yunbao.common.event.SendBlindGiftEvent; import com.yunbao.common.http.HttpCallback; import com.yunbao.common.http.HttpClient; @@ -704,6 +705,13 @@ public class SocketRyClient { .setType(LiveAudienceEvent.LiveAudienceType.RED_PACKET_SUPER_JACKPOT) .setRedPacketInfoModel(redPacketInfoModel)); break; + case "GiftWallIlluminate": + Log.e("GiftWallIlluminate", map.toString()); + Bus.get().post(new GiftWallIlluminateEvent() + .setNewNumber(map.getInteger("new_number")) + .setMaxNumber(map.getInteger("max_number"))); + break; + } } 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 abfc9d7fb..3bf3421ec 100644 --- a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java +++ b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java @@ -49,6 +49,7 @@ import com.yunbao.common.custom.MyViewPager; import com.yunbao.common.event.AllServerNotifyEvent; import com.yunbao.common.event.FollowEvent; import com.yunbao.common.event.LiveFloatEvent; +import com.yunbao.common.event.LiveGiftDialogEvent; import com.yunbao.common.event.SendBlindGiftEvent; import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.http.CommonHttpConsts; @@ -83,7 +84,6 @@ import com.yunbao.live.dialog.BlowkissDialog; import com.yunbao.live.dialog.NewUserDialog; import com.yunbao.live.event.LinkMicTxAccEvent; import com.yunbao.live.event.LiveAudienceEvent; -import com.yunbao.common.event.LiveGiftDialogEvent; import com.yunbao.live.event.LiveRoomChangeEvent; import com.yunbao.live.http.LiveHttpConsts; import com.yunbao.live.http.LiveHttpUtil; @@ -1912,9 +1912,9 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe public void showGiftWall(String toUid) { - if (mLiveRoomViewHolder!=null){ - mLiveRoomViewHolder.showGiftWall(toUid); - } + if (mLiveRoomViewHolder != null) { + mLiveRoomViewHolder.showGiftWall(toUid); + } } /** @@ -2079,4 +2079,10 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe mLiveRoomViewHolder.setRedPacketInfoModel(redPacket); } } + + public void setGiftWall(String giftWallLightenNumber, String giftWallLightenTotal) { + if (mLiveRoomViewHolder != null) { + mLiveRoomViewHolder.setGiftWall(giftWallLightenNumber, giftWallLightenTotal); + } + } } From d6032a0a0a45039945d3a8a06661edf3bdfff76e Mon Sep 17 00:00:00 2001 From: 18401019693 Date: Fri, 4 Aug 2023 10:18:05 +0800 Subject: [PATCH 16/19] =?UTF-8?q?6.5.4=E7=A4=BC=E7=89=A9=E5=86=A0=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/yunbao/live/dialog/MedalAchievementPopup.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/live/src/main/java/com/yunbao/live/dialog/MedalAchievementPopup.java b/live/src/main/java/com/yunbao/live/dialog/MedalAchievementPopup.java index 3f04c10a8..e03216756 100644 --- a/live/src/main/java/com/yunbao/live/dialog/MedalAchievementPopup.java +++ b/live/src/main/java/com/yunbao/live/dialog/MedalAchievementPopup.java @@ -113,5 +113,11 @@ public class MedalAchievementPopup extends BottomPopupView { ZhuangBanActivity.forward(getContext(), htmlUrl.toString(), false); } }); + ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.close_btn), new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + dialog.dismiss(); + } + }); } } From d5ca010ec7fe29a4e78bc9239e128beb2a1630ef Mon Sep 17 00:00:00 2001 From: 18401019693 Date: Fri, 4 Aug 2023 13:57:36 +0800 Subject: [PATCH 17/19] =?UTF-8?q?6.5.4=E7=A4=BC=E7=89=A9=E5=86=A0=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/yunbao/common/http/PDLiveApi.java | 2 +- .../yunbao/common/http/live/LiveNetManager.java | 5 +++-- .../com/yunbao/live/activity/GiftWallActivity.java | 2 +- .../yunbao/live/activity/LiveRyAnchorActivity.java | 14 +++++++++++++- .../com/yunbao/live/dialog/GiftWallDialog.java | 2 +- .../yunbao/live/dialog/MedalAchievementPopup.java | 7 ++++--- 6 files changed, 23 insertions(+), 9 deletions(-) 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 1155d847c..4ba053a05 100644 --- a/common/src/main/java/com/yunbao/common/http/PDLiveApi.java +++ b/common/src/main/java/com/yunbao/common/http/PDLiveApi.java @@ -897,6 +897,6 @@ public interface PDLiveApi { Observable> getUserMedalList(@Query("to_uid") String toUid); @GET("/api/public/?service=Gift.getLiveMedalList") - Observable> getLiveMedalList(); + Observable> getLiveMedalList( @Query("liveuid") String liveUid); } 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 07c530e3b..da51979a1 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 @@ -63,6 +63,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; import io.reactivex.functions.Consumer; import io.reactivex.schedulers.Schedulers; +import retrofit2.http.Query; /** @@ -1977,9 +1978,9 @@ public class LiveNetManager { }).isDisposed(); } - public void getLiveMedalList(HttpCallback callback) { + public void getLiveMedalList( String liveUid,HttpCallback callback) { API.get().pdLiveApi(mContext) - .getLiveMedalList() + .getLiveMedalList(liveUid) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Consumer>() { diff --git a/live/src/main/java/com/yunbao/live/activity/GiftWallActivity.java b/live/src/main/java/com/yunbao/live/activity/GiftWallActivity.java index 1844987cd..7cf23cf24 100644 --- a/live/src/main/java/com/yunbao/live/activity/GiftWallActivity.java +++ b/live/src/main/java/com/yunbao/live/activity/GiftWallActivity.java @@ -125,7 +125,7 @@ public class GiftWallActivity extends AbsActivity { public void onViewClicks() { new XPopup.Builder(GiftWallActivity.this) .enableDrag(false) - .asCustom(new MedalAchievementPopup(GiftWallActivity.this, false, mLiveUid)) + .asCustom(new MedalAchievementPopup(GiftWallActivity.this, false, mLiveUid,mLiveUid)) .show(); } }); diff --git a/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java b/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java index 701d796b2..59d2218aa 100644 --- a/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java +++ b/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java @@ -50,6 +50,7 @@ import com.yunbao.common.bean.LiveUserGiftBean; import com.yunbao.common.bean.MicUserBean; import com.yunbao.common.bean.UserBean; import com.yunbao.common.dialog.NotCancelableDialog; +import com.yunbao.common.event.GiftWallIlluminateEvent; import com.yunbao.common.event.LoginInvalidEvent; import com.yunbao.common.event.SendBlindGiftEvent; import com.yunbao.common.http.CommonHttpConsts; @@ -792,6 +793,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl mLiveRoomViewHolder.startAnchorLight(); //初始化女神说 mLiveRoomViewHolder.initAnchorSay(); + mLiveRoomViewHolder.setGiftWall(obj.getString("gift_wall_lighten_number"),obj.getString("gift_wall_lighten_total")); } if (mLiveAnchorViewHolder == null) { mLiveAnchorViewHolder = new LiveRyAnchorViewHolder(mContext, mContainer); @@ -1654,9 +1656,19 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl mLiveRoomViewHolder.blindBoxAllServerNotify(event.getAllServerNotifyEvent()); } break; + case GIFT_WALL: + if (mLiveRoomViewHolder != null) { + mLiveRoomViewHolder.showGiftWall(event.getUid()); + } + break; + } + } + @Subscribe(threadMode = ThreadMode.MAIN) + public void GiftWallIlluminateEvent(GiftWallIlluminateEvent event) { + if (mLiveRoomViewHolder != null) { + mLiveRoomViewHolder.setGiftWall(String.valueOf(event.getNewNumber()), String.valueOf(event.getMaxNumber())); } } - /** * 检查指定直播间连麦人数 * diff --git a/live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java b/live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java index 5f0db059c..a392848e1 100644 --- a/live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java +++ b/live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java @@ -145,7 +145,7 @@ public class GiftWallDialog extends AbsDialogFragment { public void onViewClicks() { new XPopup.Builder(getContext()) .enableDrag(false) - .asCustom(new MedalAchievementPopup(getContext(), isLive, toUid)) + .asCustom(new MedalAchievementPopup(getContext(), isLive, toUid,mLiveUid)) .show(); } }); diff --git a/live/src/main/java/com/yunbao/live/dialog/MedalAchievementPopup.java b/live/src/main/java/com/yunbao/live/dialog/MedalAchievementPopup.java index e03216756..7d306ee5a 100644 --- a/live/src/main/java/com/yunbao/live/dialog/MedalAchievementPopup.java +++ b/live/src/main/java/com/yunbao/live/dialog/MedalAchievementPopup.java @@ -22,15 +22,16 @@ import com.yunbao.live.activity.ZhuangBanActivity; public class MedalAchievementPopup extends BottomPopupView { private boolean isLive; - private String toUid; + private String toUid,mLiveUid; private TextView achievementText; private RecyclerView achievementList; private MedalAchievementAdapter medalAchievementAdapter; - public MedalAchievementPopup(@NonNull Context context, boolean isLive, String toUid) { + public MedalAchievementPopup(@NonNull Context context, boolean isLive, String toUid, String mLiveUid) { super(context); this.isLive = isLive; this.toUid = toUid; + this.mLiveUid = mLiveUid; } // 返回自定义弹窗的布局 @@ -50,7 +51,7 @@ public class MedalAchievementPopup extends BottomPopupView { private void initDate() { if (isLive) { LiveNetManager.get(getContext()) - .getLiveMedalList(new HttpCallback() { + .getLiveMedalList(mLiveUid,new HttpCallback() { @Override public void onSuccess(MedalAchievementModel data) { StringBuffer stringBuffer = new StringBuffer(); From fb1d6c06881d1fae8a765aed15b00e74401372a8 Mon Sep 17 00:00:00 2001 From: 18401019693 Date: Fri, 4 Aug 2023 14:58:26 +0800 Subject: [PATCH 18/19] =?UTF-8?q?6.5.4=E7=A4=BC=E7=89=A9=E5=86=A0=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../res/layout/item_gift_without_wall.xml | 52 ++++++++++++------ .../background_gift_wall_lock.png | Bin 0 -> 1061 bytes .../background_gift_wall_masking.png | Bin 0 -> 2028 bytes 3 files changed, 35 insertions(+), 17 deletions(-) create mode 100644 common/src/main/res/mipmap-xxhdpi/background_gift_wall_lock.png create mode 100644 common/src/main/res/mipmap-xxhdpi/background_gift_wall_masking.png diff --git a/common/src/main/res/layout/item_gift_without_wall.xml b/common/src/main/res/layout/item_gift_without_wall.xml index 82c8830e8..8a01f826b 100644 --- a/common/src/main/res/layout/item_gift_without_wall.xml +++ b/common/src/main/res/layout/item_gift_without_wall.xml @@ -1,25 +1,43 @@ - - + - - \ No newline at end of file + + + + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/mipmap-xxhdpi/background_gift_wall_lock.png b/common/src/main/res/mipmap-xxhdpi/background_gift_wall_lock.png new file mode 100644 index 0000000000000000000000000000000000000000..2f10e9bcf172fea82d9b77b07ec34a4fce7bf19e GIT binary patch literal 1061 zcmV+=1ls$FP)Px&-$_J4RA@u(noFowRTRg6|6YWUJ&Y`EP!PS9$X;4zVh?(m>99$qlOPHjIFO>q zBnQ&KXjC}}M@=%a2W8RY7A0vxq=JwXJ&KNnfV`w}E{PxVa+w8L&vwH%*g8#F@bBz{M5YS0&xnG~WG5 zun{o__^=}AjdF#gUs5KrO++}PS;rx++~!Gozey(*)*IoDl2`yUBz@U5LCvzTXFmsy zF7<7YbZ3)RBWy%W0=}`lNM6_KkYebfQg z5#rs-`1z8m{~KYF0=o=&wlwMhFh$Z|9bk_E90|%HZJ8u{eAJc#`zY{ONnx9$i+Tke z9v2bYDsRA5k{<2~yROIqhIKYex-tXo$3R){dy$GQe&DE-mRiBkBIG%fOq!Nz8EDC&`(Arxp=60;d!rj!HWuIoIetbaf)i zJh(B=W}dH;+~C1R#8E|7wb%(or^nAX*e8koz((LjzupxQlYv)&YxB*MU1uStHfKL*KBf_WG znZQ%PbvdAO!8&le*x|@BqD6#DP40K%(y8Twohj*y(MTd<2H=dUTq|e|o&)wL;B-lU zj{)mA{$ov@tQBw$SVK%}fOW$3L)W|`2dq7Mj-*{=>a4FxHAijg>)N;WZ;$=yTYC@Oe?}AR0#o(N<8ztR70sDXV zZ0+4ZMD*pFeMiy}8>wGm-XAGUL)t2eRk>0#D!f@I8I|E|1buB!P?|1^@to z$w>+6yJ!Xg3Z3q^%Z{}$zU%@;kuHe`y2iQd0O0>7IUz2yOoq=GJ4jl{m|gp>RTD4l zV#6=V=t5zB@Gv7oa6A(uf@Oc<=7c?R)QF1GnRDw}oA z=yhw#f6`WH%y!L7_7#X72dolwL`6yCJu_t=bQ6fBnAmKOl5xznsLb82TX9f@Ntk;T zYs~(l%#zj>6LzFKm-SQ9ua=cc$8yP$kN7OawEW5#sx#3TT%#gHt?^o$ zjfZ&oVm+>hQcI#e(jT<|+!(-BKR&luZlhbZQRuc1q;?SZ!@kSvkH99R!996IfnV@&pInKGP zs@$9pF*lR`1Ed@+-TLJJk}pST3l?V$ Date: Fri, 4 Aug 2023 15:18:06 +0800 Subject: [PATCH 19/19] =?UTF-8?q?6.5.4=E7=A4=BC=E7=89=A9=E5=86=A0=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/yunbao/live/views/CodexItemViewHolder.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/live/src/main/java/com/yunbao/live/views/CodexItemViewHolder.java b/live/src/main/java/com/yunbao/live/views/CodexItemViewHolder.java index 07c4227d4..5bcac5263 100644 --- a/live/src/main/java/com/yunbao/live/views/CodexItemViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/CodexItemViewHolder.java @@ -32,8 +32,8 @@ public class CodexItemViewHolder extends RecyclerView.ViewHolder { ImgLoader.display(itemView.getContext(), giftWallModel.getGifticon(), giftImg); giftName.setText(giftWallModel.getGiftname()); giftName.setTextColor(Color.parseColor(giftWallModel.getFontColor())); - giftWall.setSelected(TextUtils.equals(String.valueOf(giftWallModel.getIlluminateStatus()), "1")); - if (TextUtils.equals(String.valueOf(giftWallModel.getIlluminateStatus()), "1")) { + giftWall.setSelected(TextUtils.equals(String.valueOf(giftWallModel.getIlluminateStatus()), "2")); + if (TextUtils.equals(String.valueOf(giftWallModel.getIlluminateStatus()), "2")) { giftWall.setText(itemView.getContext().getString(R.string.received_wall2)); giftWall.setTextColor(Color.parseColor("#FFFFFF")); ViewClicksAntiShake.clicksAntiShake(giftWall, new ViewClicksAntiShake.ViewClicksCallBack() {

s%Xp0%bXNp9)b0hm9ToKI4 zM6z~DwUx8W!}qA2QW#4dD#D{ZV`U%UXXLbY+)Lo8$B6lbR=Q~pkLgV4TBzZY_F`46 zk)T~S6bHk!SKuhC(IqBj+Nna=LtP|dXoW+mr3HzaH$}@JVJ)Ld+H<$~k3tjtp;Yfx zFuHVrnGj+>c_)To*hO(D1H&pNT_a*aq)Nmt1EP#OTX~;G{9F^ti|}R{^k)`9T z5X=5>wW_WIQHvoKf#jOXQn`JKxqY@0EfNN5)})BqobLhjLJ$>$a-p{?p7v_K<@nfUl zb><*xOIA5@kYYrO z5{uk%vLv!yErEo>!&r;Yzw@45`CS)id7Xn@0@5IWC`g8J>Wlsj&sI=Ost#2k3xcby z427a?L*)ddAZ$-7+K12<`y9M3+jO8T2sWN+KoU52)xg*jY9V9*Nlm>~L1;@7Tqn>H zvk6@oAo$i2E!L9sgmo<|sR#iF18OLjI`U!Zy)43F9m15?;Vvoo*tqdEkZn(3@_|Wz z&*N*Zzx)S}|MxI8TirLSrF?go^7UDqN&pH-v75 z(i2(cnQL_PXRvg>uqwH@%8jf|&FC)ndC5Zq%LuuIsDq?d`AA`ODv*wrq-+8DwGY3^ zK{m53<4`bIg2504RE=7W_LRU9@-}2}j5Vkl>X6v301#Oo?zE7u{7MqD&{I(erW88g4}>j=xDRGCPCS&h<#i6?#t5{RET>&?I(O}c zCw84YdHWAeIsd=x`pRRW%h$oVjSv3z-fyp6b>L0Q&sqnq^%-R80r0ca&}j3vo4ndi z?i76z5p)6#Z8<7y-)RZ3?wnE-Fe@u{1C}rS9mbA`kG$B?SKo;o3)z{4;(xNPL}tBi zPHFNedN-)Om;nuRNI#1U4!NS542!(eq=sjjt1vLnVQp!jFOrWF?SE`u)KqC*6_wE+ z4T!=}24gAr5KMyh!K!uh88h59S^nC3)0(Na%jL^W9OgN!IWyK%Bf*$$&*_$gwIu?U z(uO1vM2#3+vKsvO3OM-qv)~^GxOex3fByC_fA>af?CDasoPYjhm%MW4*G87^hGnnb z2=VeR!2DiF=I0=z?N)dd2IoUE$fOFG>x|@i<}q?S0SSF=L1GH;tfO3FDztn1B3`U* z7pbBOrR$szvW`2;R#BJcU6OT>#&I9iJ|sTWhbaqeu!gd2L&$dXeetd-VYz-W)NDn? zfW(esxe5r+hK_j%oEc6e6kYckm!%1soiq8Anjz0fYgbR;B4v%A_b^Ydrm@YKdTK6B6c*Zle8U)a?Hk}H@(Wy)Zze^IB) zjw<wE_MIpIba7wA(IpTk%b>j0#pU1m@mKWRJrMna^S7+L{>+>Id7`=ZWy#tlu;kn|5H&oc^M}AM9KxpsOE?Wn zn^QI_R4L4JhX1JAxB?_prC|l4My=G+uztX*P+T-l#=a9~YiIzklh21mw+bz`*HQP7 z6&4=lTZ`7Ur?Zp#R>96wDdB$gH$gzb7tp~KA)uxukO-OzBM~A?6`EbEWAFf7`H)MU zIgR$K#BOXK>_rz1l2YWY_IR%353i^KBs{~CFw{sO`88riaOa?A%!%^RWdQid>X`@* z-@hM{>3P3xa{bm@?mF}8&+PgpJ`SO3Ncqbz|K?fmy6Ds=Z;N4W$^6Dqm^kNnXyE4A zo&DhFjzES>SH%HhZ6dW?GH)S&Qi@=eqg!?I+Sig)0E-Pt?++wbhGz_7Wce9n n6 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 literal 0 HcmV?d00001 diff --git a/common/src/main/res/drawable/bg_gift_wall_list.xml b/common/src/main/res/drawable/bg_gift_wall_list.xml new file mode 100644 index 000000000..ae4451c0a --- /dev/null +++ b/common/src/main/res/drawable/bg_gift_wall_list.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/common/src/main/res/drawable/icon_gift_wall_no_data.png b/common/src/main/res/drawable/icon_gift_wall_no_data.png new file mode 100644 index 0000000000000000000000000000000000000000..7687a95b04798b9b97f4f85ddc36ae7f884ed3ce GIT binary patch literal 31496 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 literal 0 HcmV?d00001 diff --git a/common/src/main/res/drawable/tablayout_gift_wall.xml b/common/src/main/res/drawable/tablayout_gift_wall.xml new file mode 100644 index 000000000..468a4c9db --- /dev/null +++ b/common/src/main/res/drawable/tablayout_gift_wall.xml @@ -0,0 +1,14 @@ + + + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/fragment_gift_already_wall.xml b/common/src/main/res/layout/fragment_gift_already_wall.xml new file mode 100644 index 000000000..55ebffda9 --- /dev/null +++ b/common/src/main/res/layout/fragment_gift_already_wall.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/fragment_gift_without_wall.xml b/common/src/main/res/layout/fragment_gift_without_wall.xml new file mode 100644 index 000000000..09b79300d --- /dev/null +++ b/common/src/main/res/layout/fragment_gift_without_wall.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/item_gift_already_wall.xml b/common/src/main/res/layout/item_gift_already_wall.xml new file mode 100644 index 000000000..672734db4 --- /dev/null +++ b/common/src/main/res/layout/item_gift_already_wall.xml @@ -0,0 +1,25 @@ + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/item_gift_without_wall.xml b/common/src/main/res/layout/item_gift_without_wall.xml new file mode 100644 index 000000000..82c8830e8 --- /dev/null +++ b/common/src/main/res/layout/item_gift_without_wall.xml @@ -0,0 +1,25 @@ + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/popup_gift_wall_item.xml b/common/src/main/res/layout/popup_gift_wall_item.xml new file mode 100644 index 000000000..02b2826d6 --- /dev/null +++ b/common/src/main/res/layout/popup_gift_wall_item.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/common/src/main/res/mipmap-xxhdpi/background_gift_already_wall.png b/common/src/main/res/mipmap-xxhdpi/background_gift_already_wall.png new file mode 100644 index 0000000000000000000000000000000000000000..69555875d5108e81c3449dd1c5140cf1fb8dfda0 GIT binary patch literal 21236 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 literal 0 HcmV?d00001 diff --git a/common/src/main/res/mipmap-xxhdpi/background_gift_wall.png b/common/src/main/res/mipmap-xxhdpi/background_gift_wall.png new file mode 100644 index 0000000000000000000000000000000000000000..2b7522e08b050b2ea920d6da83706346bde272f6 GIT binary patch literal 162206 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 h!TPM$fU9cz96f>wuOGw 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