修复测试反馈内容

新增临时需求:banner点进礼物墙
新增临时需求:主播下播后显示违规内容(未接入接口)
合并潘多拉修复问题
This commit is contained in:
2024-07-30 10:29:34 +08:00
parent 516a068c25
commit 9ae6fedd8d
40 changed files with 592 additions and 366 deletions

View File

@@ -1729,7 +1729,6 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
protected void release() {
EventBus.getDefault().unregister(this);
LiveHttpUtil.cancel(LiveHttpConsts.SEND_DANMU);
LoadDian9TuUtil.clearBitmap();
if (mKeyBoardHeightUtil != null) {
mKeyBoardHeightUtil.release();
}
@@ -1778,6 +1777,11 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
Constants.isSend = "0";
}
private void claerBitmap(){
LoadDian9TuUtil.clearBitmap();
}
/**
* 显示个人资料弹窗
*/
@@ -1835,6 +1839,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
@Override
protected void onDestroy() {
release();
claerBitmap();
super.onDestroy();
}

View File

@@ -982,6 +982,7 @@ public class LiveSwAnchorActivity extends LiveActivity implements LiveFunctionCl
}
if (mLivePushViewHolder != null) {
mLivePushViewHolder.closeLive();
mLivePushViewHolder.release();
}
if (mLiveLinkMicPresenter != null) {

View File

@@ -25,6 +25,7 @@ import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.AppManager;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveRyAnchorActivity;
import com.yunbao.live.activity.LiveSwAnchorActivity;
@@ -129,85 +130,54 @@ public class FreePkRecyclerAdapter extends RefreshAdapter<RandomPkUserBean> {
mAvatar = itemView.findViewById(R.id.item_avatar);
mPkStatus = itemView.findViewById(R.id.item_pk);
mFollow = itemView.findViewById(R.id.item_follow);
mPkStatus.setOnClickListener(v -> {
RandomPkUserBean bean = (RandomPkUserBean) itemView.getTag();
if (bean.isPk()) {
ToastUtil.show(mContext.getString(R.string.free_pk_user_pking));
return;
}
if (freePkNum == 0 && mDrPkNum == -1) {
ToastUtil.show(mContext.getString(R.string.free_pk_num_null));
return;
}
//检查自己是不是在PK中
LiveHttpUtil.livePkCheckLive(IMLoginManager.get(AppManager.getInstance().getMainActivity()).getUserInfo().getId() + "", "", "", new com.yunbao.common.http.HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0 && info.length > 0) {
JSONObject obj = JSON.parseObject(info[0]);
if (obj != null) {
if(mDrPkNum!=-1){
LiveHttpUtil.getMicList(liveUid, 0, new com.yunbao.common.http.HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
System.out.println("code = " + code + ", msg = " + msg + ", info = " + Arrays.deepToString(info));
//非0认为未开通连麦权限
if (code != 0) {
if (mDrPkNum <= 0) {
if (WordUtil.isNewZh()) {
ToastUtil.show("多人次數已用完");
} else {
ToastUtil.show("Multiple times have been used up");
}
return;
}
yaoqing.put(bean.getId(), bean.getId());
if (yaoqing.size() < 5) {
if(mContext instanceof LiveSwAnchorActivity){
((LiveSwAnchorActivity) mContext).linkDrMicAnchorApply(bean.getId(), bean.getId());
}else{
((LiveRyAnchorActivity) mContext).linkDrMicAnchorApply(bean.getId(), bean.getId());
}
} else {
ToastUtil.show(WordUtil.isNewZh() ? "多人PK最大參與人數為4人" : "The maximum number of participants in a multiplayer PK is 4 people");
}
if (freePkRecyclerListener != null) {
freePkRecyclerListener.onClose();
}
} else {
if (WordUtil.isNewZh()) {
ToastUtil.show("請先關閉語音連麥");
} else {
ToastUtil.show("Please disable the voice connection first");
}
}
}
});
}else{
if (TextUtils.equals(obj.getString("ispk"), "0")) {//自己不在PK可以发起邀请
ViewClicksAntiShake.clicksAntiShake(mPkStatus, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
RandomPkUserBean bean = (RandomPkUserBean) itemView.getTag();
if (bean.isPk()) {
ToastUtil.show(mContext.getString(R.string.free_pk_user_pking));
return;
}
if (freePkNum == 0 && mDrPkNum == -1) {
ToastUtil.show(mContext.getString(R.string.free_pk_num_null));
return;
}
//检查自己是不是在PK中
LiveHttpUtil.livePkCheckLive(IMLoginManager.get(AppManager.getInstance().getMainActivity()).getUserInfo().getId() + "", "", "", new com.yunbao.common.http.HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0 && info.length > 0) {
JSONObject obj = JSON.parseObject(info[0]);
if (obj != null) {
if(mDrPkNum!=-1){
LiveHttpUtil.getMicList(liveUid, 0, new com.yunbao.common.http.HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
System.out.println("code = " + code + ", msg = " + msg + ", info = " + Arrays.deepToString(info));
//非0认为未开通连麦权限
if (code != 0) {
if (mDrPkNum == -1) {
if (mDrPkNum <= 0) {
if (WordUtil.isNewZh()) {
ToastUtil.show("邀请 " + bean.getUserNiceName() + " 发送成功");
ToastUtil.show("多人次數已用完");
} else {
ToastUtil.show("invite " + bean.getUserNiceName() + " successful");
}
mOnItemClickListener.onItemClick(bean, -1);
if(mContext instanceof LiveSwAnchorActivity){
((LiveSwAnchorActivity) mContext).linkMicAnchorApply(bean.getId(), bean.getId(),
false);
}else{
((LiveRyAnchorActivity) mContext).linkMicAnchorApply(bean.getId(), bean.getId(),
((LiveRyAnchorActivity) mContext).buildLinkMicJSON().toString()
);
ToastUtil.show("Multiple times have been used up");
}
return;
}
yaoqing.put(bean.getId(), bean.getId());
if (yaoqing.size() < 5) {
if(mContext instanceof LiveSwAnchorActivity){
((LiveSwAnchorActivity) mContext).linkDrMicAnchorApply(bean.getId(), bean.getId());
}else{
((LiveRyAnchorActivity) mContext).linkDrMicAnchorApply(bean.getId(), bean.getId());
}
} else {
ToastUtil.show(WordUtil.isNewZh() ? "多人PK最大參與人數為4人" : "The maximum number of participants in a multiplayer PK is 4 people");
}
if (freePkRecyclerListener != null) {
freePkRecyclerListener.onClose();
}
} else {
if (WordUtil.isNewZh()) {
ToastUtil.show("請先關閉語音連麥");
@@ -218,19 +188,51 @@ public class FreePkRecyclerAdapter extends RefreshAdapter<RandomPkUserBean> {
}
});
}else{
if (WordUtil.isNewZh()) {
ToastUtil.show("請先關閉PK");
} else {
ToastUtil.show("Please disable the PK");
if (TextUtils.equals(obj.getString("ispk"), "0")) {//自己不在PK可以发起邀请
LiveHttpUtil.getMicList(liveUid, 0, new com.yunbao.common.http.HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
System.out.println("code = " + code + ", msg = " + msg + ", info = " + Arrays.deepToString(info));
//非0认为未开通连麦权限
if (code != 0) {
if (mDrPkNum == -1) {
if (WordUtil.isNewZh()) {
ToastUtil.show("邀请 " + bean.getUserNiceName() + " 发送成功");
} else {
ToastUtil.show("invite " + bean.getUserNiceName() + " successful");
}
mOnItemClickListener.onItemClick(bean, -1);
if(mContext instanceof LiveSwAnchorActivity){
((LiveSwAnchorActivity) mContext).linkMicAnchorApply(bean.getId(), bean.getId(),
false);
}else{
((LiveRyAnchorActivity) mContext).linkMicAnchorApply(bean.getId(), bean.getId(),
((LiveRyAnchorActivity) mContext).buildLinkMicJSON().toString()
);
}
}
} else {
if (WordUtil.isNewZh()) {
ToastUtil.show("請先關閉語音連麥");
} else {
ToastUtil.show("Please disable the voice connection first");
}
}
}
});
}else{
if (WordUtil.isNewZh()) {
ToastUtil.show("請先關閉PK");
} else {
ToastUtil.show("Please disable the PK");
}
}
}
}
}
}
}
});
});
}
});
mFollow.setOnClickListener(v -> {
RandomPkUserBean bean = (RandomPkUserBean) itemView.getTag();

View File

@@ -853,12 +853,14 @@ public class LiveGiftPopup extends AbsDialogFragment {
.append(liveGiftModel.getNamingUserCoin())
.append(" ");
}
String hideName=liveGiftModel.getNamingUid().equals(IMLoginManager.get(mContext).getUserInfo().getId()+"")?liveGiftModel.getNamingUserName():WordUtil.getNewString(R.string.mystery_man);
String hideLiveName=liveGiftModel.getNamingLiveuid().equals(IMLoginManager.get(mContext).getUserInfo().getId()+"")?liveGiftModel.getNamingLiveName():WordUtil.getNewString(R.string.mystery_man);
namingNameText.append(mContext.getText(com.yunbao.live.R.string.title_anchor))
.append(liveGiftModel.getNamingLiveName())
.append(" ")
.append(mContext.getText(com.yunbao.live.R.string.the_title_financier))
.append(" ")
.append(liveGiftModel.getNaming_user_gift_hall_rank_hide()==0?liveGiftModel.getNamingUserName():WordUtil.getNewString(R.string.mystery_man));
.append(liveGiftModel.getNaming_user_gift_hall_rank_hide()==0?liveGiftModel.getNamingUserName():hideName);
namingName.setText(namingNameText.toString());
} else {
namingLayout.setVisibility(View.GONE);
@@ -934,7 +936,6 @@ public class LiveGiftPopup extends AbsDialogFragment {
!TextUtils.isEmpty(liveGiftModel.getNamingUid()) &&
!TextUtils.equals(liveGiftModel.getNamingLiveuid(), "0") &&
!TextUtils.equals(liveGiftModel.getNamingUid(), "0")) {
ToastUtil.show("显示");
namingLayout.setVisibility(View.VISIBLE);
ImgLoader.display(mContext, liveGiftModel.getNamingLiveAvatar(), namingAvatar);
StringBuffer namingNameText = new StringBuffer();
@@ -946,11 +947,13 @@ public class LiveGiftPopup extends AbsDialogFragment {
namingNameText.append("Get title: ")
.append(liveGiftModel.getNamingUserCoin());
}
String hideName=liveGiftModel.getNamingUid().equals(IMLoginManager.get(mContext).getUserInfo().getId()+"")?liveGiftModel.getNamingUserName():WordUtil.getNewString(R.string.mystery_man);
String hideLiveName=liveGiftModel.getNamingLiveuid().equals(IMLoginManager.get(mContext).getUserInfo().getId()+"")?liveGiftModel.getNamingLiveName():WordUtil.getNewString(R.string.mystery_man);
namingNameText.append(mContext.getText(com.yunbao.live.R.string.title_anchor))
.append(liveGiftModel.getNamingLiveName())
.append(" ")
.append(mContext.getText(com.yunbao.live.R.string.the_title_financier))
.append(liveGiftModel.getNaming_user_gift_hall_rank_hide()==0?liveGiftModel.getNamingUserName():WordUtil.getNewString(R.string.mystery_man));
.append(liveGiftModel.getNaming_user_gift_hall_rank_hide()==0?liveGiftModel.getNamingUserName():hideName);
namingName.setText(namingNameText.toString());
} else {
namingLayout.setVisibility(View.GONE);

View File

@@ -767,7 +767,6 @@ public class LiveSwLinkMicPkPresenter extends AbsLinkMicPkPresenter implements V
@Override
public void onError(io.rong.imlib.model.Message message, RongIMClient.ErrorCode errorCode) {
Log.e("tx", "aaa" + errorCode.toString());
ToastUtil.show(errorCode.code + ":" + errorCode.msg);
}
});
@@ -801,7 +800,6 @@ public class LiveSwLinkMicPkPresenter extends AbsLinkMicPkPresenter implements V
@Override
public void onError(io.rong.imlib.model.Message message, RongIMClient.ErrorCode errorCode) {
Log.e("tx", "aaa" + errorCode.toString());
ToastUtil.show(errorCode.code + ":" + errorCode.msg);
}
});
}
@@ -829,7 +827,6 @@ public class LiveSwLinkMicPkPresenter extends AbsLinkMicPkPresenter implements V
@Override
public void onError(io.rong.imlib.model.Message message, RongIMClient.ErrorCode errorCode) {
Log.e("tx", "aaa" + errorCode.toString());
ToastUtil.show(errorCode.code + ":" + errorCode.msg);
}
});
}

View File

@@ -21,6 +21,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.lxj.xpopup.XPopup;
import com.makeramen.roundedimageview.RoundedImageView;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.MobclickAgent;
import com.yunbao.common.bean.LiveGiftBean;
import com.yunbao.common.event.LiveGiftDialogEvent;
@@ -102,7 +103,7 @@ public class FrameGiftViewHolder extends RecyclerView.ViewHolder {
giftName.setText(model.getName());
// }
if (model.getNaming_user_gift_hall_rank_hide() == 1) {
if (model.getNaming_user_gift_hall_rank_hide() == 1 && !model.getNamingUid().equals(IMLoginManager.get(mContext).getUserInfo().getId() + "")) {
avatar.setImageResource(com.yunbao.common.R.mipmap.hide);
naming_name.setText(WordUtil.getNewString(com.yunbao.common.R.string.mystery_man));
} else {

View File

@@ -77,6 +77,8 @@ public class LiveEndViewHolder extends AbsViewHolder implements View.OnClickList
private IMLoginModel model = null;
private String live_id;
private String leaveStream, leaveGroupId;
private TextView banContent, banReason, banTimer;
private View banLayout;
public LiveEndViewHolder(Context context, ViewGroup parentView, String uid) {
super(context, parentView);
@@ -208,7 +210,7 @@ public class LiveEndViewHolder extends AbsViewHolder implements View.OnClickList
@Override
public void onError(String error) {
ToastUtil.show(WordUtil.isNewZh()?"抱歉!出錯了!":"i \\'m sorry! An error occurred");
ToastUtil.show(WordUtil.isNewZh() ? "抱歉!出錯了!" : "i \\'m sorry! An error occurred");
}
});
}
@@ -258,6 +260,11 @@ public class LiveEndViewHolder extends AbsViewHolder implements View.OnClickList
liveDurationAnchor = (TextView) findViewById(R.id.live_duration_anchor);
liveVotes = (TextView) findViewById(R.id.live_votes);
liveWatchNum = (TextView) findViewById(R.id.live_watch_num);
banContent = (TextView) findViewById(R.id.ban_content);
banReason = (TextView) findViewById(R.id.ban_reason);
banTimer = (TextView) findViewById(R.id.ban_timer);
banLayout=findViewById(R.id.banLayout);
findViewById(R.id.go_home_anchor)
.setOnClickListener(new View.OnClickListener() {
@Override
@@ -366,7 +373,7 @@ public class LiveEndViewHolder extends AbsViewHolder implements View.OnClickList
((LiveAudienceActivity) mContext).exitLiveRoom();
} else if (mContext instanceof LiveSwAnchorActivity) {
((LiveSwAnchorActivity) mContext).superBackPressed();
}else if(mContext instanceof LiveRyAnchorActivity){
} else if (mContext instanceof LiveRyAnchorActivity) {
((LiveRyAnchorActivity) mContext).superBackPressed();
}
Bus.get().post(new CloseEvent());
@@ -424,7 +431,7 @@ public class LiveEndViewHolder extends AbsViewHolder implements View.OnClickList
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk,boolean isSw) {
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk, boolean isSw) {
if (liveBean == null) {
return;
}
@@ -450,7 +457,7 @@ public class LiveEndViewHolder extends AbsViewHolder implements View.OnClickList
((LiveAudienceActivity) mContext).exitLiveRoom();
} else if (mContext instanceof LiveSwAnchorActivity) {
((LiveSwAnchorActivity) mContext).superBackPressed();
}else if(mContext instanceof LiveRyAnchorActivity){
} else if (mContext instanceof LiveRyAnchorActivity) {
((LiveRyAnchorActivity) mContext).superBackPressed();
}
}

View File

@@ -667,6 +667,13 @@ public class LivePushSwViewHolder extends AbsRyLivePushViewHolder implements ITX
}
}
public void closeLive(){
if (swManager != null) {
swManager.exitChannelAll();
}
}
public interface onDrPkJoinSuccessListener{
void joinSuccess1();
void joinSuccess2();

View File

@@ -4721,8 +4721,17 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
mRefreshUserListCallback = null;
mTimeChargeCallback = null;
Contexts = null;
if(drawableBg!=null){
drawableBg.clear();
}
drawableBg = null;
if(drawableTitleCn!=null){
drawableTitleCn.clear();
}
drawableTitleCn = null;
if(drawableTitleEn!=null){
drawableTitleEn.clear();
}
drawableTitleEn = null;
}

View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true">
@@ -15,7 +16,8 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#b3000000"
android:visibility="gone">
android:visibility="gone"
tools:visibility="visible">
<TextView
android:id="@+id/text_1"
@@ -137,6 +139,111 @@
</LinearLayout>
<LinearLayout
android:id="@+id/banLayout"
android:layout_width="match_parent"
android:layout_height="180dp"
android:layout_below="@id/group"
android:visibility="gone"
android:layout_centerHorizontal="true"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:layout_marginRight="20dp"
android:orientation="vertical">
<TextView
android:id="@+id/ban_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/live_end_view_ban_title"
android:textColor="#E5E5E5"
android:textSize="14sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="44dp"
android:layout_marginTop="10dp"
android:gravity="center"
android:background="@drawable/bg_live_end"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_marginLeft="10dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/live_end_view_ban_reason"
android:textColor="#E5E5E5"
android:textSize="14sp" />
<TextView
android:id="@+id/ban_reason"
android:layout_width="wrap_content"
android:layout_marginRight="17dp"
android:layout_height="wrap_content"
android:gravity="end"
android:text="123\n45678"
android:textColor="#E5E5E5"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="44dp"
android:layout_marginTop="10dp"
android:gravity="center"
android:background="@drawable/bg_live_end"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_marginLeft="10dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/live_end_view_ban_content"
android:textColor="#E5E5E5"
android:textSize="14sp" />
<TextView
android:id="@+id/ban_content"
android:layout_width="wrap_content"
android:layout_marginRight="17dp"
android:layout_height="wrap_content"
android:gravity="end"
android:text="123\n45678"
android:textColor="#E5E5E5"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="44dp"
android:layout_marginTop="10dp"
android:gravity="center"
android:background="@drawable/bg_live_end"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_marginLeft="10dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/live_end_view_ban_timer"
android:textColor="#E5E5E5"
android:textSize="14sp" />
<TextView
android:id="@+id/ban_timer"
android:layout_width="wrap_content"
android:layout_marginRight="17dp"
android:layout_height="wrap_content"
android:gravity="end"
android:text="123\n45678"
android:textColor="#E5E5E5"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/avatar_2"
android:layout_width="100dp"
@@ -151,7 +258,7 @@
android:id="@+id/btn_back"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_below="@id/group"
android:layout_below="@id/banLayout"
android:layout_marginLeft="50dp"
android:layout_marginTop="50dp"
android:layout_marginRight="50dp"
@@ -169,7 +276,8 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#b3000000"
android:visibility="visible">
android:visibility="visible"
tools:visibility="gone">
<View
@@ -259,9 +367,11 @@
android:background="@drawable/background_live_end"
android:gravity="center"
android:padding="10dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -464,9 +574,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:gravity="center"
android:text="@string/live_watch_num"
android:textColor="@color/white"
android:gravity="center"
android:textSize="13.33sp" />
</LinearLayout>
</LinearLayout>

View File

@@ -120,13 +120,14 @@
android:layout_width="56dp"
android:layout_height="15dp"
android:layout_gravity="bottom"
android:visibility="gone"
android:layout_marginStart="11dp"
android:background="@drawable/background_naming_icon"
android:gravity="center"
android:text="@string/the_title_financier2"
android:textColor="#DB7008"
android:textSize="10sp" />
android:textSize="10sp"
android:visibility="gone"
tools:visibility="visible" />
<com.opensource.svgaplayer.SVGAImageView
android:layout_marginTop="12dp"

View File

@@ -1,137 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="60dp"
android:clipChildren="false"
tools:visibility="visible"
android:visibility="invisible">
<com.opensource.svgaplayer.SVGAImageView
android:id="@+id/root_back"
android:layout_width="204dp"
android:layout_height="45dp"
android:scaleType="fitStart"
android:layout_gravity="bottom"
app:autoPlay="true"
android:layout_marginLeft="10dp"
/>
<View
android:id="@+id/bg"
android:layout_width="204dp"
android:layout_height="50dp"
android:layout_gravity="bottom"
android:layout_marginLeft="10dp"
android:background="@mipmap/icon_live_gift_anim_4"
android:translationX="-214dp" />
<View
android:id="@+id/star"
android:layout_width="38dp"
android:layout_height="50dp"
android:layout_gravity="bottom"
android:layout_marginLeft="214dp"
android:background="@mipmap/icon_live_gift_anim_5"
android:visibility="invisible" />
<LinearLayout
android:id="@+id/content_layout"
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_gravity="bottom"
android:layout_marginLeft="10dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/avatar"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="8dp"
android:scaleType="centerCrop"
app:riv_oval="true" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:textSize="12sp" />
<TextView
android:id="@+id/content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
android:textColor="@color/white"
android:textSize="12sp" />
</LinearLayout>
<ImageView
android:layout_marginLeft="10dp"
android:id="@+id/gift_icon"
android:layout_width="40dp"
android:layout_height="match_parent" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/gift_group_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:textSize="14sp" />
<TextView
android:id="@+id/mul_sign"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/yellow4"
android:textSize="14sp"
android:textStyle="bold" />
</LinearLayout>
<TextView
android:id="@+id/gift_count"
android:layout_width="150dp"
android:layout_height="32dp"
android:singleLine="true"
android:visibility="invisible" />
</LinearLayout>
<TextView
android:id="@+id/naming_icon"
android:layout_width="56dp"
android:layout_height="15dp"
android:layout_gravity="bottom"
android:visibility="gone"
android:layout_marginStart="11dp"
android:background="@drawable/background_naming_icon"
android:gravity="center"
android:text="@string/the_title_financier2"
android:textColor="#DB7008"
android:textSize="10sp" />
<com.opensource.svgaplayer.SVGAImageView
android:layout_marginTop="12dp"
android:layout_marginStart="20dp"
android:id="@+id/gift_naming_icon"
android:layout_width="27dp"
android:layout_height="12dp"/>
</FrameLayout>