diff --git a/common/src/main/res/values-en/strings.xml b/common/src/main/res/values-en/strings.xml
index 62e3fef73..388d67d94 100644
--- a/common/src/main/res/values-en/strings.xml
+++ b/common/src/main/res/values-en/strings.xml
@@ -901,4 +901,12 @@ Limited ride And limited avatar frame
皇帝
超皇
Please wait...
+ 滑動設置
+ 上下滑動切換直播間
+ \@用户昵称\t\t你好啊~
+ 在线列表
+ 搜索想要@的人
+ 在線觀眾
+ 觀眾
+ 無法@自己
diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml
index 2863eacee..01e0203fa 100644
--- a/common/src/main/res/values/strings.xml
+++ b/common/src/main/res/values/strings.xml
@@ -912,14 +912,15 @@
订单查询中
订单无异常
登錄失效,請重新登錄
+ 請稍後
滑動設置
上下滑動切換直播間
- 請稍後
\@用户昵称\t\t你好啊~
在线列表
搜索想要@的人
在線觀眾
觀眾
+ 無法@自己
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 5be4c19f3..ce6407f08 100644
--- a/live/src/main/java/com/yunbao/live/adapter/LiveChatAdapter.java
+++ b/live/src/main/java/com/yunbao/live/adapter/LiveChatAdapter.java
@@ -61,6 +61,8 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
private IMLoginModel model;
+ private int mPosition;
+
public LiveChatAdapter(Context context) {
mContext = context;
mList = new ArrayList<>();
@@ -168,6 +170,7 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
}
void setData(final LiveChatBean bean, int position) {
+
itemView.setTag(bean);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.setMargins(0, 0, DpUtil.dp2px(80), 12);
@@ -388,6 +391,7 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
if (bean.getAtUserID().contains(String.valueOf(model.getId()))) {
Bus.get().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.AT_MESSAGE));
+ mPosition = size + 1;
}
}
@@ -419,6 +423,11 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
mRecyclerView.smoothScrollToPosition(getItemCount());
}
}
+ public void scrollToAt(){
+ if (mList.size() > 0) {
+ mRecyclerView.smoothScrollToPosition(mPosition);
+ }
+ }
public void clear() {
if (mList != null) {
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 8fe686125..fccdebe3d 100644
--- a/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java
+++ b/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java
@@ -679,6 +679,20 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
ViewClicksAntiShake.clicksAntiShake(newMessage, () -> {
chatScrollToBottom();
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);
+ }
+ });
+ ViewClicksAntiShake.clicksAntiShake(atMessage, () -> {
+ mLiveChatAdapter.scrollToAt();
+ atMessage.setVisibility(View.GONE);
});
dr_pk_end_gif = (GifImageView) findViewById(R.id.dr_pk_end_gif);
msg = (LinearLayout) findViewById(R.id.room_msg);
@@ -834,7 +848,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
super.onScrolled(recyclerView, dx, dy);
if (mLiveChatAdapter.isSlideToBottom(recyclerView)) {
newMessage.setVisibility(View.GONE);
- if (atMessage.getVisibility()==View.VISIBLE){
+ if (atMessage.getVisibility() == View.VISIBLE) {
RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) atMessage.getLayoutParams();
if (fastMsgRecyclerView.getVisibility() == View.VISIBLE) {
params1.bottomMargin = DpUtil.dp2px(38);
@@ -972,6 +986,21 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
fastMsgRecyclerView.setVisibility(View.GONE);
params1.bottomMargin = 0;
mChatRecyclerView.setLayoutParams(params1);
+ RelativeLayout.LayoutParams params2 = (RelativeLayout.LayoutParams) newMessage.getLayoutParams();
+ RelativeLayout.LayoutParams params3 = (RelativeLayout.LayoutParams) atMessage.getLayoutParams();
+ if (newMessage.getVisibility() == View.VISIBLE) {
+ params2.bottomMargin = DpUtil.dp2px(8);
+ if (atMessage.getVisibility() == View.VISIBLE) {
+ params3.bottomMargin = DpUtil.dp2px(38);
+ atMessage.setLayoutParams(params3);
+ }
+ newMessage.setLayoutParams(params2);
+ } else {
+ if (atMessage.getVisibility() == View.VISIBLE) {
+ params3.bottomMargin = DpUtil.dp2px(8);
+ atMessage.setLayoutParams(params3);
+ }
+ }
});
// mBanner2.setVisibility(View.GONE);
if (fastMsgRecyclerView.getVisibility() == View.GONE) {
@@ -3082,6 +3111,17 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) newMessage.getLayoutParams();
+ RelativeLayout.LayoutParams params2 = (RelativeLayout.LayoutParams) atMessage.getLayoutParams();
+ if (atMessage.getVisibility() == View.VISIBLE) {
+
+
+ if (fastMsgRecyclerView.getVisibility() == View.VISIBLE) {
+ params2.bottomMargin = DpUtil.dp2px(68);
+ } else {
+ params1.bottomMargin = DpUtil.dp2px(38);
+ }
+ atMessage.setLayoutParams(params2);
+ }
if (fastMsgRecyclerView.getVisibility() == View.VISIBLE) {
params1.bottomMargin = DpUtil.dp2px(38);
} else {
@@ -3094,21 +3134,28 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
}
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);
+ new Handler().postDelayed(() -> {
+ 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) {
+ if (fastMsgRecyclerView.getVisibility() == View.VISIBLE) {
+ params1.bottomMargin = DpUtil.dp2px(68);
+ } else {
+ params1.bottomMargin = DpUtil.dp2px(38);
+ }
} else {
- params1.bottomMargin = DpUtil.dp2px(8);
+ if (fastMsgRecyclerView.getVisibility() == View.VISIBLE) {
+ params1.bottomMargin = DpUtil.dp2px(38);
+ } else {
+ params1.bottomMargin = DpUtil.dp2px(8);
+ }
}
- }
- atMessage.setLayoutParams(params1);
- atMessage.setVisibility(View.VISIBLE);
+ atMessage.setLayoutParams(params1);
+ atMessage.setVisibility(View.VISIBLE);
+ }, 100);
+
}
}
diff --git a/live/src/main/java/com/yunbao/live/views/OlineListActivity.java b/live/src/main/java/com/yunbao/live/views/OlineListActivity.java
index 4c41d22d7..bffc3ee67 100644
--- a/live/src/main/java/com/yunbao/live/views/OlineListActivity.java
+++ b/live/src/main/java/com/yunbao/live/views/OlineListActivity.java
@@ -11,12 +11,15 @@ import androidx.recyclerview.widget.RecyclerView;
import com.blankj.utilcode.util.GsonUtils;
import com.yunbao.common.activity.AbsActivity;
+import com.yunbao.common.bean.IMLoginModel;
import com.yunbao.common.bean.OlineModel;
import com.yunbao.common.bean.OlineUserlistModel;
import com.yunbao.common.event.LiveInputEvent;
import com.yunbao.common.event.OlineEvent;
import com.yunbao.common.http.HttpCallback;
+import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.Bus;
+import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordsTypeUtil;
import com.yunbao.live.R;
import com.yunbao.live.adapter.OlineListAdapter;
@@ -194,7 +197,13 @@ public class OlineListActivity extends AbsActivity {
@Subscribe(threadMode = ThreadMode.MAIN)
public void onOlineEvent(OlineEvent event) {
- Bus.get().post(new LiveInputEvent().setModel(event.getModel()));
- finish();
+ IMLoginModel model = IMLoginManager.get(mContext).getUserInfo();
+ if (TextUtils.equals(String.valueOf(model.getId()), event.getModel().getId())) {
+ ToastUtil.show(R.string.cannot_yourself);
+ } else {
+ Bus.get().post(new LiveInputEvent().setModel(event.getModel()));
+ finish();
+ }
+
}
}