1:修改换麦逻辑

2:添加闪屏不在直接关闭
This commit is contained in:
2025-09-29 09:05:02 +08:00
parent 046a24a842
commit 72ae93fbb2
22 changed files with 636 additions and 279 deletions

View File

@@ -13,6 +13,7 @@ import androidx.constraintlayout.widget.ConstraintLayout;
import com.opensource.svgaplayer.SVGAImageView;
import com.xscm.moduleutil.R;
import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.base.RoomRollModel;
import com.xscm.moduleutil.bean.FaceBean;
import com.xscm.moduleutil.bean.RoomMessageEvent;
@@ -39,6 +40,8 @@ import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.Map;
public abstract class BaseWheatView extends ConstraintLayout implements IBaseWheat {
public ImageView mRiv;
public ImageView mIvGift;
@@ -108,6 +111,9 @@ public abstract class BaseWheatView extends ConstraintLayout implements IBaseWhe
oX = mIvGift.getX();
oY = mIvGift.getY();
initPit(context, attrs);
if (!EventBus.getDefault().isRegistered( this)){
EventBus.getDefault().register(this);
}
}
protected abstract void initPit(Context context, AttributeSet attrs);
@@ -162,11 +168,22 @@ public abstract class BaseWheatView extends ConstraintLayout implements IBaseWhe
setCardiac(pitBean.getCharm(), getTzbl());
setPitData(bean);
if (bean.getIs_online() == 2 && bean.getUser_id()!=null && !bean.getUser_id().equals("0") && !bean.getUser_id().isEmpty()){
iv_on_line.setVisibility(VISIBLE);
if (bean.getUser_id()!=null && !bean.getUser_id().equals("0") && !bean.getUser_id().isEmpty()) {
if (CommonAppContext.getInstance().getOnlineMap()!=null&&CommonAppContext.getInstance().getOnlineMap().get(bean.getUser_id())!=null) {
iv_on_line.setVisibility(CommonAppContext.getInstance().getOnlineMap().get(bean.getUser_id()) == 1 ? GONE : VISIBLE);
}else {
iv_on_line.setVisibility(GONE);
}
}else {
iv_on_line.setVisibility(GONE);
}
// if (bean.getIs_online() == 2 && bean.getUser_id()!=null && !bean.getUser_id().equals("0") && !bean.getUser_id().isEmpty()){
// iv_on_line.setVisibility(VISIBLE);
// }else {
// iv_on_line.setVisibility(GONE);
// }
// if (bean.getIs_online() == 0 &&bean.getUser_id() != null && !bean.getUser_id().equals("0") && !bean.getUser_id().isEmpty()) {
// iv_on_line.setVisibility(VISIBLE);
// } else {
@@ -241,6 +258,7 @@ public abstract class BaseWheatView extends ConstraintLayout implements IBaseWhe
if (soundLevel == 0) {
mIvRipple.post(() -> {
mIvRipple.stopAnimation(true);
CommonAppContext.getInstance().onlineMap.put(pitBean.getUser_id(),1);
mIvRipple.setVisibility(GONE);
});
mIvRipple.setVisibility(GONE);
@@ -249,8 +267,9 @@ public abstract class BaseWheatView extends ConstraintLayout implements IBaseWhe
mIvRipple.post(() -> {
if (!mIvRipple.isAnimating()) {
mIvRipple.startAnimation();
CommonAppContext.getInstance().onlineMap.put(pitBean.getUser_id(),1);
iv_on_line.setVisibility(GONE);
}
iv_on_line.setVisibility(GONE);
});
}
@@ -269,8 +288,9 @@ public abstract class BaseWheatView extends ConstraintLayout implements IBaseWhe
mIvRipple.post(() -> {
if (!mIvRipple.isAnimating()) {
mIvRipple.startAnimation();
CommonAppContext.getInstance().onlineMap.put(pitBean.getUser_id(),1);
iv_on_line.setVisibility(GONE);
}
iv_on_line.setVisibility(GONE);
});
}
@@ -351,18 +371,27 @@ public abstract class BaseWheatView extends ConstraintLayout implements IBaseWhe
}
// @Subscribe(threadMode = ThreadMode.MAIN)
public void setOnlineStatus() {
// if (pitBean!=null) {
// if (pitBean.getUser_id() != null && !pitBean.getUser_id().equals("0") && !pitBean.getUser_id().isEmpty()) {
// if (pitBean.getUser_id().equals(isOnline.getUser_id())) {
// if (isOnline.getIs_online() == 1) {
// iv_on_line.setVisibility(GONE);
// } else {
// iv_on_line.setVisibility(VISIBLE);
// }
// }
// }
// }
public void setOnlineStatus(UserOnlineStatusBean isOnline) {
if (pitBean!=null) {
if (pitBean.getUser_id() != null && !pitBean.getUser_id().equals("0") && !pitBean.getUser_id().isEmpty()) {
if (pitBean.getUser_id().equals(isOnline.getUser_id())) {
if (isOnline.getIs_online() == 1) {
iv_on_line.setVisibility(GONE);
} else {
iv_on_line.setVisibility(VISIBLE);
}
}
if (pitBean.getUser_id()!=null && !pitBean.getUser_id().equals("0") && !pitBean.getUser_id().isEmpty()) {
if (CommonAppContext.getInstance().getOnlineMap()!=null&&CommonAppContext.getInstance().getOnlineMap().get(pitBean.getUser_id())!=null) {
iv_on_line.setVisibility(CommonAppContext.getInstance().getOnlineMap().get(pitBean.getUser_id()) == 1 ? GONE : VISIBLE);
}else {
iv_on_line.setVisibility(GONE);
}
}else {
iv_on_line.setVisibility(GONE);
}
}