星级挑战成功

This commit is contained in:
18401019693 2022-10-12 11:52:45 +08:00
parent db81f4556a
commit 88107b7ab5
11 changed files with 120 additions and 5 deletions

View File

@ -167,6 +167,7 @@ public class Constants {
public static final String RECOMMEND_CARD_NOTIFY = "recommendCardNotify";//推荐卡通知消息 public static final String RECOMMEND_CARD_NOTIFY = "recommendCardNotify";//推荐卡通知消息
public static final String STAR_CHALLENGE_UPDATE = "starChallengeUpdate";//星级助力 public static final String STAR_CHALLENGE_UPDATE = "starChallengeUpdate";//星级助力
public static final String AI_AUTOMATIC_SPEECH = "aiAutomaticSpeech";//机器人助手 public static final String AI_AUTOMATIC_SPEECH = "aiAutomaticSpeech";//机器人助手
public static final String STAR_CHALLENGE_UPGRADE_NOTIFY = "starChallengeUpgradeNotify";//星级挑战成功
//游戏socket //游戏socket
public static final String SOCKET_GAME_ZJH = "startGame";//炸金花 public static final String SOCKET_GAME_ZJH = "startGame";//炸金花

View File

@ -69,6 +69,21 @@ public class MsgModel extends BaseModel {
@SerializedName("taskName2") @SerializedName("taskName2")
private String taskName2; private String taskName2;
/**
* 星级挑战成功IM消息
*
* @return
*/
@SerializedName("ancherName")
private String ancherName;
@SerializedName("competitionArea")
private String competitionArea;
@SerializedName("star")
private String star;
@SerializedName("liveUid")
private String liveUid;
public String getTaskNum() { public String getTaskNum() {
return taskNum; return taskNum;
} }
@ -276,4 +291,36 @@ public class MsgModel extends BaseModel {
return roleType; return roleType;
} }
} }
public String getAncherName() {
return ancherName;
}
public void setAncherName(String ancherName) {
this.ancherName = ancherName;
}
public String getCompetitionArea() {
return competitionArea;
}
public void setCompetitionArea(String competitionArea) {
this.competitionArea = competitionArea;
}
public String getStar() {
return star;
}
public void setStar(String star) {
this.star = star;
}
public String getLiveUid() {
return liveUid;
}
public void setLiveUid(String liveUid) {
this.liveUid = liveUid;
}
} }

View File

@ -924,6 +924,6 @@
<string name="total_star_value">總星值</string> <string name="total_star_value">總星值</string>
<string name="number_of_people_assisted">助力人數</string> <string name="number_of_people_assisted">助力人數</string>
<string name="star_change">星级挑战%s</string> <string name="star_change">星级挑战%s</string>
<string name="star_success">恭喜 %s完成了%s %s星 挑戰,快去一睹主播芳容吧!</string>
<string name="star"></string>
</resources> </resources>

View File

@ -849,6 +849,9 @@ public class LiveAudienceActivity extends LiveActivity {
case AI_AUTOMATIC_SPEECH: case AI_AUTOMATIC_SPEECH:
manager.aiAutomaticSpeech(event.getAiAutomaticSpeechModel()); manager.aiAutomaticSpeech(event.getAiAutomaticSpeechModel());
break; break;
case STAR_CHALLENGE_UPGRADE_NOTIFY:
manager.starChallengeUpgradeNotify(event.getMsgModel());
break;
} }

View File

@ -2,6 +2,7 @@ package com.yunbao.live.adapter;
import static com.yunbao.live.bean.LiveChatBean.AI_AUTOMATIC_SPEECH; import static com.yunbao.live.bean.LiveChatBean.AI_AUTOMATIC_SPEECH;
import static com.yunbao.live.bean.LiveChatBean.RECOMMEND_CARD_NOTIFY; import static com.yunbao.live.bean.LiveChatBean.RECOMMEND_CARD_NOTIFY;
import static com.yunbao.live.bean.LiveChatBean.STAR_CHALLENGE_UPGRADE_NOTIFY;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.content.Context; import android.content.Context;
@ -335,7 +336,11 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
} else if (bean.getType() == AI_AUTOMATIC_SPEECH) { } else if (bean.getType() == AI_AUTOMATIC_SPEECH) {
//加载.9图聊天气泡 //加载.9图聊天气泡
LoadDian9TuUtil.loadDian9Tu(mContext, mBg, bean.getAiAutomaticSpeechModel().getSystemBubble(), 1); LoadDian9TuUtil.loadDian9Tu(mContext, mBg, bean.getAiAutomaticSpeechModel().getSystemBubble(), 1);
LiveTextRender.aiAutomaticSpeech(mContext,mTextView,bean.getAiAutomaticSpeechModel()); LiveTextRender.aiAutomaticSpeech(mContext, mTextView, bean.getAiAutomaticSpeechModel());
} else if (bean.getType() == STAR_CHALLENGE_UPGRADE_NOTIFY) {
//加载.9图聊天气泡
LoadDian9TuUtil.loadDian9Tu(mContext, mBg, bean.getMsgModel().getSystemBubble(), 1);
LiveTextRender.starChallengeUpgradeNotify(mContext, mTextView, bean.getMsgModel());
} else { } else {
if (bean.getBubble() != null && !bean.getBubble().equals("")) { if (bean.getBubble() != null && !bean.getBubble().equals("")) {
//加载.9图聊天气泡 //加载.9图聊天气泡

View File

@ -19,6 +19,7 @@ public class LiveChatBean {
public static final int RED_PACK = 5; public static final int RED_PACK = 5;
public static final int RECOMMEND_CARD_NOTIFY = 10; public static final int RECOMMEND_CARD_NOTIFY = 10;
public static final int AI_AUTOMATIC_SPEECH = 101; public static final int AI_AUTOMATIC_SPEECH = 101;
public static final int STAR_CHALLENGE_UPGRADE_NOTIFY = 105;
private String id; private String id;
private String userNiceName; private String userNiceName;

View File

@ -147,6 +147,7 @@ public class LiveAudienceEvent extends BaseModel {
AT_MESSAGE(24, "@消息"), AT_MESSAGE(24, "@消息"),
START_MESSAGE(25, "星级消息"), START_MESSAGE(25, "星级消息"),
AI_AUTOMATIC_SPEECH(26, "机器人助手"), AI_AUTOMATIC_SPEECH(26, "机器人助手"),
STAR_CHALLENGE_UPGRADE_NOTIFY(27, "星级挑战成功")
; ;
private int type; private int type;

View File

@ -488,6 +488,16 @@ public class SocketRyClient {
.setType(LiveAudienceEvent.LiveAudienceType.AI_AUTOMATIC_SPEECH) .setType(LiveAudienceEvent.LiveAudienceType.AI_AUTOMATIC_SPEECH)
.setAiAutomaticSpeechModel(aiAutomaticSpeechModel)); .setAiAutomaticSpeechModel(aiAutomaticSpeechModel));
break; break;
case Constants.STAR_CHALLENGE_UPGRADE_NOTIFY:
SocketModel starChallengeUpgradeNotify = GsonUtils.fromJson(socketMsg, SocketModel.class);
List<MsgModel> starChallengeUpgradeNotifyMsg = starChallengeUpgradeNotify.getMsg();
if (starChallengeUpgradeNotifyMsg.size() > 0) {
Bus.get().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.STAR_CHALLENGE_UPGRADE_NOTIFY)
.setMsgModel(starChallengeUpgradeNotifyMsg.get(0)));
}
break;
} }
} }

View File

@ -27,6 +27,7 @@ import com.yunbao.common.CommonAppContext;
import com.yunbao.common.Constants; import com.yunbao.common.Constants;
import com.yunbao.common.bean.AiAutomaticSpeechModel; import com.yunbao.common.bean.AiAutomaticSpeechModel;
import com.yunbao.common.bean.LevelBean; import com.yunbao.common.bean.LevelBean;
import com.yunbao.common.bean.MsgModel;
import com.yunbao.common.custom.VerticalImageSpan; import com.yunbao.common.custom.VerticalImageSpan;
import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.DpUtil; import com.yunbao.common.utils.DpUtil;
@ -93,6 +94,28 @@ public class LiveTextRender {
textView.setText(spannableString); textView.setText(spannableString);
} }
/**
* 星级挑战成功Im消息
*
* @param activity
* @param textView
* @param model
*/
public static void starChallengeUpgradeNotify(Context activity, TextView textView, MsgModel model) {
String star = activity.getString(R.string.star);
String starString = String.format(activity.getString(R.string.star_success), model.getAncherName(), model.getCompetitionArea(), model.getStar());
SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder();
star = model.getStar() + star;
int ancherNameStart = starString.indexOf(model.getAncherName());
int starStart = starString.indexOf(star);
spannableStringBuilder.append(starString);
spannableStringBuilder.setSpan(new ForegroundColorSpan(Color.parseColor("#6ffeff")),
ancherNameStart, ancherNameStart + model.getAncherName().length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
spannableStringBuilder.setSpan(new ForegroundColorSpan(Color.parseColor("#fcfe35")),
starStart, starStart + star.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(spannableStringBuilder);
}
public static void aiAutomaticSpeech(Context activity, TextView textView, AiAutomaticSpeechModel model) { public static void aiAutomaticSpeech(Context activity, TextView textView, AiAutomaticSpeechModel model) {
ImgLoader.displayDrawable(activity, model.getIcon(), new ImgLoader.DrawableCallback() { ImgLoader.displayDrawable(activity, model.getIcon(), new ImgLoader.DrawableCallback() {
@Override @Override
@ -128,7 +151,7 @@ public class LiveTextRender {
String mContext = content; String mContext = content;
for (String name : userNames) { for (String name : userNames) {
name = "@" + name; name = "@" + name;
while (mContext.contains(name)&&!TextUtils.isEmpty(mContext)) { while (mContext.contains(name) && !TextUtils.isEmpty(mContext)) {
int index = mContext.indexOf(name); int index = mContext.indexOf(name);
int end = index + name.length(); int end = index + name.length();
int endIndex = startIndex + name.length(); int endIndex = startIndex + name.length();

View File

@ -3261,12 +3261,25 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
* @param model * @param model
*/ */
public void aiAutomaticSpeech(AiAutomaticSpeechModel model) { public void aiAutomaticSpeech(AiAutomaticSpeechModel model) {
if (mLiveChatAdapter != null){ if (mLiveChatAdapter != null) {
LiveChatBean bean = new LiveChatBean(); LiveChatBean bean = new LiveChatBean();
bean.setType(LiveChatBean.AI_AUTOMATIC_SPEECH); bean.setType(LiveChatBean.AI_AUTOMATIC_SPEECH);
bean.setAiAutomaticSpeechModel(model); bean.setAiAutomaticSpeechModel(model);
mLiveChatAdapter.insertItem(bean); mLiveChatAdapter.insertItem(bean);
} }
}
/**
* 星级挑战成功
*
* @param model
*/
public void starChallengeUpgradeNotify(MsgModel model) {
if (mLiveChatAdapter != null) {
LiveChatBean bean = new LiveChatBean();
bean.setType(LiveChatBean.STAR_CHALLENGE_UPGRADE_NOTIFY);
bean.setMsgModel(model);
mLiveChatAdapter.insertItem(bean);
}
} }
} }

View File

@ -1591,4 +1591,15 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
mLiveRoomViewHolder.aiAutomaticSpeech(model); mLiveRoomViewHolder.aiAutomaticSpeech(model);
} }
} }
/**
* 星级挑战成功
*
* @param msgModel
*/
public void starChallengeUpgradeNotify(MsgModel msgModel) {
if (mLiveRoomViewHolder != null) {
mLiveRoomViewHolder.starChallengeUpgradeNotify(msgModel);
}
}
} }