@消息逻辑补充
This commit is contained in:
parent
5060d647fb
commit
ee7374d816
@ -112,4 +112,28 @@ public class AtTextWatcher implements TextWatcher {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String atUserID, atUserName;
|
||||||
|
|
||||||
|
public String getAtUserID() {
|
||||||
|
StringBuffer stringBuffer = new StringBuffer();
|
||||||
|
for (String userID : spanMap.keySet()) {
|
||||||
|
stringBuffer.append(userID);
|
||||||
|
stringBuffer.append(",");
|
||||||
|
}
|
||||||
|
return stringBuffer.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAtUserName() {
|
||||||
|
StringBuffer stringBuffer = new StringBuffer();
|
||||||
|
for (String userID : spanMap.keySet()) {
|
||||||
|
OlineUserlistModel model = spanMap.get(userID);
|
||||||
|
stringBuffer.append(model.getUserNicename());
|
||||||
|
stringBuffer.append(",");
|
||||||
|
}
|
||||||
|
return stringBuffer.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void clearMsg() {
|
||||||
|
spanMap.clear();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -938,7 +938,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
|
|||||||
/**
|
/**
|
||||||
* 发 聊天 消息
|
* 发 聊天 消息
|
||||||
*/
|
*/
|
||||||
public void sendChatMessage(String content) {
|
public void sendChatMessage(String content, String atUserID, String atUserName) {
|
||||||
if (!mIsAnchor) {
|
if (!mIsAnchor) {
|
||||||
UserBean u = CommonAppConfig.getInstance().getUserBean();
|
UserBean u = CommonAppConfig.getInstance().getUserBean();
|
||||||
if (u != null && u.getLevel() < mChatLevel) {
|
if (u != null && u.getLevel() < mChatLevel) {
|
||||||
@ -947,7 +947,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
int guardType = mLiveGuardInfo != null ? mLiveGuardInfo.getMyGuardType() : Constants.GUARD_TYPE_NONE;
|
int guardType = mLiveGuardInfo != null ? mLiveGuardInfo.getMyGuardType() : Constants.GUARD_TYPE_NONE;
|
||||||
SocketRyChatUtil.sendChatMessage(mLiveUid, content, mIsAnchor, mSocketUserType, guardType);
|
SocketRyChatUtil.sendChatMessage(mLiveUid, content, mIsAnchor, mSocketUserType, guardType,atUserID,atUserName);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -833,6 +833,9 @@ public class LiveAudienceActivity extends LiveActivity {
|
|||||||
case NEW_MESSAGE_REMINDER:
|
case NEW_MESSAGE_REMINDER:
|
||||||
manager.showNewMessage();
|
manager.showNewMessage();
|
||||||
break;
|
break;
|
||||||
|
case AT_MESSAGE:
|
||||||
|
manager.showAtMessage();
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,8 +24,10 @@ import androidx.recyclerview.widget.RecyclerView;
|
|||||||
import com.makeramen.roundedimageview.RoundedImageView;
|
import com.makeramen.roundedimageview.RoundedImageView;
|
||||||
import com.yunbao.common.CommonAppConfig;
|
import com.yunbao.common.CommonAppConfig;
|
||||||
import com.yunbao.common.Constants;
|
import com.yunbao.common.Constants;
|
||||||
|
import com.yunbao.common.bean.IMLoginModel;
|
||||||
import com.yunbao.common.glide.ImgLoader;
|
import com.yunbao.common.glide.ImgLoader;
|
||||||
import com.yunbao.common.interfaces.OnItemClickListener;
|
import com.yunbao.common.interfaces.OnItemClickListener;
|
||||||
|
import com.yunbao.common.manager.IMLoginManager;
|
||||||
import com.yunbao.common.utils.Bus;
|
import com.yunbao.common.utils.Bus;
|
||||||
import com.yunbao.common.utils.DpUtil;
|
import com.yunbao.common.utils.DpUtil;
|
||||||
import com.yunbao.live.R;
|
import com.yunbao.live.R;
|
||||||
@ -57,10 +59,13 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
|
|||||||
private RecyclerView mRecyclerView;
|
private RecyclerView mRecyclerView;
|
||||||
private LinearLayoutManager mLayoutManager;
|
private LinearLayoutManager mLayoutManager;
|
||||||
|
|
||||||
|
private IMLoginModel model;
|
||||||
|
|
||||||
public LiveChatAdapter(Context context) {
|
public LiveChatAdapter(Context context) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mList = new ArrayList<>();
|
mList = new ArrayList<>();
|
||||||
mInflater = LayoutInflater.from(context);
|
mInflater = LayoutInflater.from(context);
|
||||||
|
model = IMLoginManager.get(context).getUserInfo();
|
||||||
mOnClickListener = new View.OnClickListener() {
|
mOnClickListener = new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
@ -289,7 +294,7 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
|
|||||||
} else if (bean.getType() == LiveChatBean.SYSTEM) {
|
} else if (bean.getType() == LiveChatBean.SYSTEM) {
|
||||||
boolean isContains = false;
|
boolean isContains = false;
|
||||||
for (LiveChatBean model : mList) {
|
for (LiveChatBean model : mList) {
|
||||||
if (!TextUtils.isEmpty(model.getContent()) && (model.getContent().contains("堅決維護青少年群體精神文明健康")||model.getContent().contains("click to register if you like. pdlive conducts"))) {
|
if (!TextUtils.isEmpty(model.getContent()) && (model.getContent().contains("堅決維護青少年群體精神文明健康") || model.getContent().contains("click to register if you like. pdlive conducts"))) {
|
||||||
isContains = true;
|
isContains = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -374,13 +379,16 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
|
|||||||
mList.add(beanNull);
|
mList.add(beanNull);
|
||||||
notifyItemChanged(size + 1);
|
notifyItemChanged(size + 1);
|
||||||
|
|
||||||
if (isSlideToBottom(mRecyclerView)){
|
if (isSlideToBottom(mRecyclerView)) {
|
||||||
mRecyclerView.scrollToPosition(size + 1);
|
mRecyclerView.scrollToPosition(size + 1);
|
||||||
}else {
|
} else {
|
||||||
Bus.get().post(new LiveAudienceEvent()
|
Bus.get().post(new LiveAudienceEvent()
|
||||||
.setType(LiveAudienceEvent.LiveAudienceType.NEW_MESSAGE_REMINDER));
|
.setType(LiveAudienceEvent.LiveAudienceType.NEW_MESSAGE_REMINDER));
|
||||||
}
|
}
|
||||||
|
if (bean.getAtUserID().contains(String.valueOf(model.getId()))) {
|
||||||
|
Bus.get().post(new LiveAudienceEvent()
|
||||||
|
.setType(LiveAudienceEvent.LiveAudienceType.AT_MESSAGE));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -58,6 +58,30 @@ public class LiveChatBean {
|
|||||||
//超皇字体颜色
|
//超皇字体颜色
|
||||||
@SerializedName("contentColor")
|
@SerializedName("contentColor")
|
||||||
private String contentColor = "";
|
private String contentColor = "";
|
||||||
|
//@名字
|
||||||
|
@SerializedName("atUserName")
|
||||||
|
private String atUserName = "";
|
||||||
|
//@ID
|
||||||
|
@SerializedName("atUserID")
|
||||||
|
private String atUserID = "";
|
||||||
|
|
||||||
|
public String getAtUserName() {
|
||||||
|
return atUserName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LiveChatBean setAtUserName(String atUserName) {
|
||||||
|
this.atUserName = atUserName;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAtUserID() {
|
||||||
|
return atUserID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LiveChatBean setAtUserID(String atUserID) {
|
||||||
|
this.atUserID = atUserID;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public String getStartColor() {
|
public String getStartColor() {
|
||||||
return startColor;
|
return startColor;
|
||||||
|
@ -76,6 +76,7 @@ public class LiveInputDialogFragment extends AbsDialogFragment implements View.O
|
|||||||
private long trumpetNum;//喇叭数量
|
private long trumpetNum;//喇叭数量
|
||||||
private String mLiveUid;//主播ID
|
private String mLiveUid;//主播ID
|
||||||
private AtTextWatcher atTextWatcher;
|
private AtTextWatcher atTextWatcher;
|
||||||
|
private String atUserID = null, atUserName = null;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getLayoutId() {
|
protected int getLayoutId() {
|
||||||
@ -235,7 +236,9 @@ public class LiveInputDialogFragment extends AbsDialogFragment implements View.O
|
|||||||
((LiveActivity) mContext).sendDanmuMessage(content);
|
((LiveActivity) mContext).sendDanmuMessage(content);
|
||||||
break;
|
break;
|
||||||
case GENERALMESSAGE:
|
case GENERALMESSAGE:
|
||||||
((LiveActivity) mContext).sendChatMessage(content);
|
((LiveActivity) mContext).sendChatMessage(content, atTextWatcher.getAtUserID(),atTextWatcher.getAtUserName() );
|
||||||
|
atTextWatcher.clearMsg();
|
||||||
|
dismiss();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
mInput.setText("");
|
mInput.setText("");
|
||||||
|
@ -132,7 +132,8 @@ public class LiveAudienceEvent extends BaseModel {
|
|||||||
TRUMPET_NOTIFY(20, "全服喇叭"),
|
TRUMPET_NOTIFY(20, "全服喇叭"),
|
||||||
RECOMMEND_CARD_NOTIFY(21, "贵族推荐通知"),
|
RECOMMEND_CARD_NOTIFY(21, "贵族推荐通知"),
|
||||||
SLIDE_SETTINGS(22, "滑動設置"),
|
SLIDE_SETTINGS(22, "滑動設置"),
|
||||||
NEW_MESSAGE_REMINDER(23, "新消息提醒")
|
NEW_MESSAGE_REMINDER(23, "新消息提醒"),
|
||||||
|
AT_MESSAGE(24, "@消息")
|
||||||
;
|
;
|
||||||
|
|
||||||
private int type;
|
private int type;
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
package com.yunbao.live.socket;
|
package com.yunbao.live.socket;
|
||||||
|
|
||||||
|
import static com.yunbao.common.CommonAppContext.logger;
|
||||||
|
import static com.yunbao.common.CommonAppContext.mFirebaseAnalytics;
|
||||||
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.adjust.sdk.Adjust;
|
import com.adjust.sdk.Adjust;
|
||||||
@ -24,9 +27,6 @@ import io.rong.imlib.model.Conversation;
|
|||||||
import io.rong.imlib.model.Message;
|
import io.rong.imlib.model.Message;
|
||||||
import io.rong.message.TextMessage;
|
import io.rong.message.TextMessage;
|
||||||
|
|
||||||
import static com.yunbao.common.CommonAppContext.logger;
|
|
||||||
import static com.yunbao.common.CommonAppContext.mFirebaseAnalytics;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by cxf on 2018/10/9.
|
* Created by cxf on 2018/10/9.
|
||||||
* 直播间发言
|
* 直播间发言
|
||||||
@ -80,7 +80,7 @@ public class SocketRyChatUtil {
|
|||||||
/**
|
/**
|
||||||
* 发言
|
* 发言
|
||||||
*/
|
*/
|
||||||
public static void sendChatMessage(String mLiveUid, String content, boolean isAnchor, int userType, int guardType) {
|
public static void sendChatMessage(String mLiveUid, String content, boolean isAnchor, int userType, int guardType, String atUserID, String atUserName) {
|
||||||
UserBean u = CommonAppConfig.getInstance().getUserBean();
|
UserBean u = CommonAppConfig.getInstance().getUserBean();
|
||||||
IMLoginModel model = IMLoginManager.get(CommonAppContext.sInstance.getApplicationContext()).getUserInfo();
|
IMLoginModel model = IMLoginManager.get(CommonAppContext.sInstance.getApplicationContext()).getUserInfo();
|
||||||
if (u == null) {
|
if (u == null) {
|
||||||
@ -112,7 +112,8 @@ public class SocketRyChatUtil {
|
|||||||
.param("contentColor", String.valueOf(model.getContentColor()))
|
.param("contentColor", String.valueOf(model.getContentColor()))
|
||||||
.param("startColor", String.valueOf(model.getStartColor()))
|
.param("startColor", String.valueOf(model.getStartColor()))
|
||||||
.param("endColor", String.valueOf(model.getEndColor()))
|
.param("endColor", String.valueOf(model.getEndColor()))
|
||||||
;
|
.param("atUserName", String.valueOf(atUserName))
|
||||||
|
.param("atUserID", String.valueOf(atUserID));
|
||||||
msg.create();
|
msg.create();
|
||||||
|
|
||||||
String targetId = "g" + mLiveUid;
|
String targetId = "g" + mLiveUid;
|
||||||
|
@ -1,5 +1,13 @@
|
|||||||
package com.yunbao.live.socket;
|
package com.yunbao.live.socket;
|
||||||
|
|
||||||
|
import static com.blankj.utilcode.util.SnackbarUtils.dismiss;
|
||||||
|
import static com.blankj.utilcode.util.ViewUtils.runOnUiThread;
|
||||||
|
import static com.yunbao.live.activity.LiveRyAnchorActivity.isDRPK;
|
||||||
|
import static com.yunbao.live.presenter.LiveRyLinkMicPkPresenter.leaveDRRoom;
|
||||||
|
import static com.yunbao.live.views.LivePushRyViewHolder.dr_pk_view;
|
||||||
|
import static com.yunbao.live.views.LivePushRyViewHolder.rtcRoom;
|
||||||
|
import static com.yunbao.live.views.LiveRoomViewHolder.getIsHot;
|
||||||
|
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
@ -54,14 +62,6 @@ import io.rong.imlib.IRongCoreCallback;
|
|||||||
import io.rong.imlib.IRongCoreEnum;
|
import io.rong.imlib.IRongCoreEnum;
|
||||||
import io.rong.imlib.chatroom.base.RongChatRoomClient;
|
import io.rong.imlib.chatroom.base.RongChatRoomClient;
|
||||||
|
|
||||||
import static com.blankj.utilcode.util.SnackbarUtils.dismiss;
|
|
||||||
import static com.blankj.utilcode.util.ViewUtils.runOnUiThread;
|
|
||||||
import static com.yunbao.live.activity.LiveRyAnchorActivity.isDRPK;
|
|
||||||
import static com.yunbao.live.presenter.LiveRyLinkMicPkPresenter.leaveDRRoom;
|
|
||||||
import static com.yunbao.live.views.LivePushRyViewHolder.dr_pk_view;
|
|
||||||
import static com.yunbao.live.views.LivePushRyViewHolder.rtcRoom;
|
|
||||||
import static com.yunbao.live.views.LiveRoomViewHolder.getIsHot;
|
|
||||||
|
|
||||||
public class SocketRyClient {
|
public class SocketRyClient {
|
||||||
|
|
||||||
private static final String TAG = "socket";
|
private static final String TAG = "socket";
|
||||||
@ -609,6 +609,8 @@ public class SocketRyClient {
|
|||||||
chatBean.setStartColor(map.getString("startColor"));//昵称开始颜色
|
chatBean.setStartColor(map.getString("startColor"));//昵称开始颜色
|
||||||
chatBean.setEndColor(map.getString("endColor"));//昵称结束颜色
|
chatBean.setEndColor(map.getString("endColor"));//昵称结束颜色
|
||||||
chatBean.setContentColor(map.getString("contentColor"));//文字内容颜色
|
chatBean.setContentColor(map.getString("contentColor"));//文字内容颜色
|
||||||
|
chatBean.setAtUserName(map.getString("atUserName"));//@名字
|
||||||
|
chatBean.setAtUserID(map.getString("atUserID"));//@ID
|
||||||
if (!map.getString("guard_type").equals("undefined")) {
|
if (!map.getString("guard_type").equals("undefined")) {
|
||||||
chatBean.setGuardType(map.getIntValue("guard_type"));
|
chatBean.setGuardType(map.getIntValue("guard_type"));
|
||||||
}
|
}
|
||||||
|
@ -206,7 +206,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
|||||||
public static String mNameText;
|
public static String mNameText;
|
||||||
public static String mAvatarUrl;
|
public static String mAvatarUrl;
|
||||||
public static FrameLayout ft_hot_add;
|
public static FrameLayout ft_hot_add;
|
||||||
public static ImageView img_hot_gif, newMessage;
|
public static ImageView img_hot_gif, newMessage, atMessage;
|
||||||
|
|
||||||
//多人PK
|
//多人PK
|
||||||
static TextView time;
|
static TextView time;
|
||||||
@ -673,6 +673,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
|||||||
|
|
||||||
mic_ico = (ImageView) findViewById(R.id.mic_ico);
|
mic_ico = (ImageView) findViewById(R.id.mic_ico);
|
||||||
newMessage = (ImageView) findViewById(R.id.new_message);
|
newMessage = (ImageView) findViewById(R.id.new_message);
|
||||||
|
atMessage = (ImageView) findViewById(R.id.at_message);
|
||||||
mic_ico1 = (RoundedImageView) findViewById(R.id.mic_ico1);
|
mic_ico1 = (RoundedImageView) findViewById(R.id.mic_ico1);
|
||||||
mic_ico2 = (RoundedImageView) findViewById(R.id.mic_ico2);
|
mic_ico2 = (RoundedImageView) findViewById(R.id.mic_ico2);
|
||||||
ViewClicksAntiShake.clicksAntiShake(newMessage, () -> {
|
ViewClicksAntiShake.clicksAntiShake(newMessage, () -> {
|
||||||
@ -808,7 +809,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
|||||||
mLiveChatAdapter.removetItem(bean);
|
mLiveChatAdapter.removetItem(bean);
|
||||||
} else if (bean.getType() == -2) {
|
} else if (bean.getType() == -2) {
|
||||||
mLiveChatAdapter.removetItem(bean);
|
mLiveChatAdapter.removetItem(bean);
|
||||||
((LiveActivity) mContext).sendChatMessage("Hi~");
|
((LiveActivity) mContext).sendChatMessage("Hi~", null, null);
|
||||||
} else if (bean.getType() == -5) {
|
} else if (bean.getType() == -5) {
|
||||||
String url = CommonAppConfig.HOST + "/index.php?g=Appapi&m=Turntable&a=tricky";
|
String url = CommonAppConfig.HOST + "/index.php?g=Appapi&m=Turntable&a=tricky";
|
||||||
url += "&uid=" + CommonAppConfig.getInstance().getUid() + "&token="
|
url += "&uid=" + CommonAppConfig.getInstance().getUid() + "&token="
|
||||||
@ -833,6 +834,17 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
|||||||
super.onScrolled(recyclerView, dx, dy);
|
super.onScrolled(recyclerView, dx, dy);
|
||||||
if (mLiveChatAdapter.isSlideToBottom(recyclerView)) {
|
if (mLiveChatAdapter.isSlideToBottom(recyclerView)) {
|
||||||
newMessage.setVisibility(View.GONE);
|
newMessage.setVisibility(View.GONE);
|
||||||
|
if (atMessage.getVisibility()==View.VISIBLE){
|
||||||
|
RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) atMessage.getLayoutParams();
|
||||||
|
if (fastMsgRecyclerView.getVisibility() == View.VISIBLE) {
|
||||||
|
params1.bottomMargin = DpUtil.dp2px(38);
|
||||||
|
} else {
|
||||||
|
params1.bottomMargin = DpUtil.dp2px(8);
|
||||||
|
|
||||||
|
}
|
||||||
|
atMessage.setLayoutParams(params1);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -956,7 +968,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
|||||||
fastMsgRecyclerView.setAdapter(fastMessageRecyclerViewAdapter);
|
fastMsgRecyclerView.setAdapter(fastMessageRecyclerViewAdapter);
|
||||||
fastMessageRecyclerViewAdapter.setMessageListener(msg -> {
|
fastMessageRecyclerViewAdapter.setMessageListener(msg -> {
|
||||||
//点击的消息发送出去
|
//点击的消息发送出去
|
||||||
((LiveActivity) mContext).sendChatMessage(msg);
|
((LiveActivity) mContext).sendChatMessage(msg, null, null);
|
||||||
fastMsgRecyclerView.setVisibility(View.GONE);
|
fastMsgRecyclerView.setVisibility(View.GONE);
|
||||||
params1.bottomMargin = 0;
|
params1.bottomMargin = 0;
|
||||||
mChatRecyclerView.setLayoutParams(params1);
|
mChatRecyclerView.setLayoutParams(params1);
|
||||||
@ -3059,6 +3071,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 展示新消息提示
|
* 展示新消息提示
|
||||||
*/
|
*/
|
||||||
@ -3066,6 +3079,8 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
|||||||
Locale locale = mContext.getResources().getConfiguration().locale;
|
Locale locale = mContext.getResources().getConfiguration().locale;
|
||||||
String language = locale.getLanguage();
|
String language = locale.getLanguage();
|
||||||
ImgLoader.display(mContext, TextUtils.equals(language, "zh") ? R.mipmap.new_message_cn : R.mipmap.new_message_en, newMessage);
|
ImgLoader.display(mContext, TextUtils.equals(language, "zh") ? R.mipmap.new_message_cn : R.mipmap.new_message_en, newMessage);
|
||||||
|
|
||||||
|
|
||||||
RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) newMessage.getLayoutParams();
|
RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) newMessage.getLayoutParams();
|
||||||
if (fastMsgRecyclerView.getVisibility() == View.VISIBLE) {
|
if (fastMsgRecyclerView.getVisibility() == View.VISIBLE) {
|
||||||
params1.bottomMargin = DpUtil.dp2px(38);
|
params1.bottomMargin = DpUtil.dp2px(38);
|
||||||
@ -3075,5 +3090,25 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
|||||||
newMessage.setLayoutParams(params1);
|
newMessage.setLayoutParams(params1);
|
||||||
newMessage.setVisibility(View.VISIBLE);
|
newMessage.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void showAtMessage() {
|
||||||
|
Locale locale = mContext.getResources().getConfiguration().locale;
|
||||||
|
String language = locale.getLanguage();
|
||||||
|
ImgLoader.display(mContext, TextUtils.equals(language, "zh") ? R.mipmap.emphasis_cn : R.mipmap.emphasis_en, atMessage);
|
||||||
|
RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) atMessage.getLayoutParams();
|
||||||
|
if (newMessage.getVisibility() == View.VISIBLE) {
|
||||||
|
params1.bottomMargin = DpUtil.dp2px(58);
|
||||||
|
} else {
|
||||||
|
if (fastMsgRecyclerView.getVisibility() == View.VISIBLE) {
|
||||||
|
params1.bottomMargin = DpUtil.dp2px(38);
|
||||||
|
} else {
|
||||||
|
params1.bottomMargin = DpUtil.dp2px(8);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
atMessage.setLayoutParams(params1);
|
||||||
|
atMessage.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1531,7 +1531,12 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
|
|||||||
*/
|
*/
|
||||||
public void showNewMessage() {
|
public void showNewMessage() {
|
||||||
if (mLiveRoomViewHolder != null) {
|
if (mLiveRoomViewHolder != null) {
|
||||||
mLiveRoomViewHolder.showNewMessage();
|
mLiveRoomViewHolder.showNewMessage( );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void showAtMessage(){
|
||||||
|
if (mLiveRoomViewHolder!=null){
|
||||||
|
mLiveRoomViewHolder.showAtMessage();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1995,6 +1995,8 @@
|
|||||||
android:layout_centerHorizontal="true"
|
android:layout_centerHorizontal="true"
|
||||||
android:layout_centerVertical="true" />
|
android:layout_centerVertical="true" />
|
||||||
<!-- SVG 座骑-->
|
<!-- SVG 座骑-->
|
||||||
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/new_message"
|
android:id="@+id/new_message"
|
||||||
android:layout_width="106.67dp"
|
android:layout_width="106.67dp"
|
||||||
@ -2003,6 +2005,16 @@
|
|||||||
android:layout_marginStart="10dp"
|
android:layout_marginStart="10dp"
|
||||||
android:visibility="gone" />
|
android:visibility="gone" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/at_message"
|
||||||
|
android:layout_width="106.67dp"
|
||||||
|
android:layout_height="27.33dp"
|
||||||
|
android:layout_above="@id/new_message"
|
||||||
|
android:layout_marginStart="10dp"
|
||||||
|
android:layout_alignParentBottom="true"
|
||||||
|
android:layout_marginBottom="35dp"
|
||||||
|
android:visibility="gone" />
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/room_fast_msg"
|
android:id="@+id/room_fast_msg"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
BIN
live/src/main/res/mipmap-xxxhdpi/emphasis_cn.png
Normal file
BIN
live/src/main/res/mipmap-xxxhdpi/emphasis_cn.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
BIN
live/src/main/res/mipmap-xxxhdpi/emphasis_en.png
Normal file
BIN
live/src/main/res/mipmap-xxxhdpi/emphasis_en.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
Loading…
Reference in New Issue
Block a user