2025-10-20 10:16:44 +08:00
|
|
|
package com.xscm.moduleutil.widget;
|
|
|
|
|
|
|
|
|
|
import android.content.Context;
|
|
|
|
|
import android.content.res.TypedArray;
|
|
|
|
|
import android.text.TextUtils;
|
|
|
|
|
import android.util.AttributeSet;
|
|
|
|
|
import android.view.View;
|
|
|
|
|
import android.widget.ImageView;
|
|
|
|
|
import android.widget.TextView;
|
|
|
|
|
|
|
|
|
|
import com.xscm.moduleutil.R;
|
|
|
|
|
import com.xscm.moduleutil.bean.UserOnlineStatusBean;
|
|
|
|
|
import com.xscm.moduleutil.bean.room.RoomPitBean;
|
|
|
|
|
import com.xscm.moduleutil.utils.ImageUtils;
|
2025-10-24 17:52:11 +08:00
|
|
|
import com.xscm.moduleutil.utils.StringUtil;
|
2025-10-20 10:16:44 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
public class RoomMakeWheatView extends BaseWheatView {
|
|
|
|
|
|
|
|
|
|
public ImageView mIvTagBoss;
|
|
|
|
|
public TextView mTvTime;
|
|
|
|
|
public ImageView iv_zhul;
|
2025-11-27 11:47:10 +08:00
|
|
|
// public ImageView iv_on_line;
|
2025-10-20 10:16:44 +08:00
|
|
|
private ImageView iv_tag_type;
|
|
|
|
|
public WheatCharmView mCharmView;
|
|
|
|
|
private boolean showBoss;//显示老板标识
|
|
|
|
|
|
|
|
|
|
private boolean showSexIcon = false;
|
|
|
|
|
private String sex;
|
|
|
|
|
|
|
|
|
|
public RoomMakeWheatView(Context context) {
|
|
|
|
|
this(context, null, 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public RoomMakeWheatView(Context context, AttributeSet attrs) {
|
|
|
|
|
this(context, attrs, 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public RoomMakeWheatView(Context context, AttributeSet attrs, int defStyleAttr) {
|
|
|
|
|
super(context, attrs, defStyleAttr);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
protected void initPit(Context context, AttributeSet attrs) {
|
|
|
|
|
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.RoomMakeWheatView);
|
|
|
|
|
pitNumber = typedArray.getString(R.styleable.RoomMakeWheatView_room_make_wheat_number);
|
2025-11-27 11:47:10 +08:00
|
|
|
pitImageVId = typedArray.getResourceId(R.styleable.RoomMakeWheatView_room_make_pic, 0);
|
2025-10-20 10:16:44 +08:00
|
|
|
typedArray.recycle();
|
|
|
|
|
mIvTagBoss = findViewById(R.id.iv_tag_boos);
|
|
|
|
|
mTvTime = findViewById(R.id.tv_time);
|
2025-10-24 17:52:11 +08:00
|
|
|
// iv_on_line=findViewById(R.id.iv_online);
|
2025-11-27 11:47:10 +08:00
|
|
|
iv_tag_type = findViewById(R.id.iv_tag_type);
|
2025-10-20 10:16:44 +08:00
|
|
|
mCharmView = findViewById(R.id.charm_view);
|
|
|
|
|
mRiv.setImageResource(pitImageVId);
|
2025-10-24 17:52:11 +08:00
|
|
|
|
|
|
|
|
if (mTvTime != null) {
|
|
|
|
|
mTvTime.setOnClickListener(v -> {
|
|
|
|
|
// 处理魅力值点击
|
|
|
|
|
if (mOnCharmClickListener != null && pitBean != null) {
|
|
|
|
|
mOnCharmClickListener.onCharmClick(this, pitBean);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
2025-10-20 10:16:44 +08:00
|
|
|
}
|
|
|
|
|
|
2025-10-24 17:52:11 +08:00
|
|
|
// @Override
|
|
|
|
|
// public void setOnClickListener(OnClickListener l) {
|
|
|
|
|
// // 保存外部设置的点击监听器
|
|
|
|
|
// this.onWholeViewClickListener = l;
|
|
|
|
|
// super.setOnClickListener(l);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// 为子组件设置点击监听器时,确保不会拦截父容器的点击事件
|
|
|
|
|
public void setupChildClickListeners() {
|
|
|
|
|
if (mRiv != null) {
|
|
|
|
|
mRiv.setOnClickListener(v -> {
|
|
|
|
|
// 处理头像点击
|
|
|
|
|
if (onWholeViewClickListener != null) {
|
|
|
|
|
onWholeViewClickListener.onClick(this);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
2025-11-27 11:47:10 +08:00
|
|
|
|
2025-10-24 17:52:11 +08:00
|
|
|
private OnClickListener onWholeViewClickListener;
|
2025-11-27 11:47:10 +08:00
|
|
|
|
2025-10-20 10:16:44 +08:00
|
|
|
@Override
|
|
|
|
|
protected int getLayoutId() {
|
|
|
|
|
return R.layout.room_view_make_wheat;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void setShowZl(boolean show) {
|
|
|
|
|
if (iv_zhul != null) {
|
|
|
|
|
iv_zhul.setVisibility(show ? VISIBLE : GONE);
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-11-27 11:47:10 +08:00
|
|
|
|
2025-10-20 10:16:44 +08:00
|
|
|
@Override
|
|
|
|
|
protected void setPitData(RoomPitBean bean) {
|
|
|
|
|
sex = bean.getSex();
|
|
|
|
|
if (isOn()) {
|
|
|
|
|
//开启声浪
|
2025-11-27 11:47:10 +08:00
|
|
|
if (mIvRipple != null) {
|
|
|
|
|
mIvRipple.stopAnimation(true);
|
|
|
|
|
mIvRipple.setVisibility(VISIBLE);
|
|
|
|
|
}
|
2025-10-20 10:16:44 +08:00
|
|
|
mTvName.setText(bean.getNickname());
|
2025-10-24 17:52:11 +08:00
|
|
|
ImageUtils.loadHeadCC(bean.getAvatar(), mRiv);
|
|
|
|
|
if (TextUtils.isEmpty(pitBean.getDress())) {
|
|
|
|
|
mIvFrame.stopAll();
|
2025-10-20 10:16:44 +08:00
|
|
|
mIvFrame.setVisibility(INVISIBLE);
|
|
|
|
|
} else {
|
|
|
|
|
mIvFrame.setVisibility(VISIBLE);
|
2025-10-24 17:52:11 +08:00
|
|
|
mIvFrame.setSource(pitBean.getDress(), 3);
|
2025-10-20 10:16:44 +08:00
|
|
|
}
|
|
|
|
|
if (showBoss && WHEAT_BOSS.equals(pitNumber)) {
|
|
|
|
|
mIvTagBoss.setVisibility(GONE);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
2025-11-27 11:47:10 +08:00
|
|
|
mTvName.setText((!"8".equals(pitBean.getPit_number()) && !"9".equals(pitBean.getPit_number())) ? pitBean.getPit_number() : "");
|
2025-10-20 10:16:44 +08:00
|
|
|
//麦位上锁
|
|
|
|
|
//麦位上锁
|
|
|
|
|
if (showBoss && WHEAT_BOSS.equals(pitNumber)) {
|
|
|
|
|
mIvTagBoss.setVisibility(VISIBLE);
|
|
|
|
|
ImageUtils.loadRes(isLocked() ? R.mipmap.room_ic_wheat_default_suo : R.mipmap.room_ic_wheat_default, mRiv);
|
|
|
|
|
} else {
|
2025-11-27 11:47:10 +08:00
|
|
|
mRiv.setImageResource(bean.getIs_lock() == 1 ? R.mipmap.room_ic_wheat_default_suo : R.mipmap.room_ic_wheat_default);
|
2025-10-20 10:16:44 +08:00
|
|
|
}
|
2025-11-27 11:47:10 +08:00
|
|
|
if (isMute()) {
|
2025-10-20 10:16:44 +08:00
|
|
|
ImageUtils.loadRes(R.mipmap.room_microphone_off, mIvSex);
|
|
|
|
|
}
|
2025-10-24 17:52:11 +08:00
|
|
|
mIvFrame.stopAll();
|
2025-10-20 10:16:44 +08:00
|
|
|
mIvFrame.setVisibility(INVISIBLE);
|
|
|
|
|
mIvFace.remove();
|
|
|
|
|
//停止声浪
|
2025-11-27 11:47:10 +08:00
|
|
|
if (mIvRipple != null) {
|
|
|
|
|
mIvRipple.stopAnimation(true);
|
|
|
|
|
mIvRipple.setVisibility(GONE);
|
|
|
|
|
}
|
2025-10-20 10:16:44 +08:00
|
|
|
}
|
|
|
|
|
if (showSexIcon) {
|
|
|
|
|
checkSex();
|
|
|
|
|
}
|
|
|
|
|
// if (pitBean.getIs_online()==0 && pitBean.getUser_id()!=null && !pitBean.getUser_id().equals("0")){
|
|
|
|
|
// iv_on_line.setVisibility(VISIBLE);
|
|
|
|
|
// }else {
|
|
|
|
|
// iv_on_line.setVisibility(GONE);
|
|
|
|
|
// }
|
2025-11-27 11:47:10 +08:00
|
|
|
if (pitBean.getPit_number().equals("888")) {
|
2025-10-20 10:16:44 +08:00
|
|
|
iv_tag_type.setVisibility(GONE);
|
|
|
|
|
mCharmView.setVisibility(GONE);
|
2025-11-27 11:47:10 +08:00
|
|
|
mTvName.setText(pitBean.getNickname() != null && !pitBean.getNickname().equals("") ? pitBean.getNickname() : "拍卖者");
|
2025-10-24 17:52:11 +08:00
|
|
|
mTvName.setBackgroundResource(com.xscm.moduleutil.R.mipmap.za_maiw_b);
|
2025-11-27 11:47:10 +08:00
|
|
|
} else if (pitBean.getPit_number().equals("9")) {
|
2025-10-20 10:16:44 +08:00
|
|
|
iv_tag_type.setVisibility(VISIBLE);
|
|
|
|
|
mCharmView.setVisibility(GONE);
|
2025-11-27 11:47:10 +08:00
|
|
|
} else if (pitBean.getPit_number().equals("111") || pitBean.getPit_number().equals("222") || pitBean.getPit_number().equals("333")) {
|
2025-10-20 10:16:44 +08:00
|
|
|
iv_tag_type.setVisibility(GONE);
|
|
|
|
|
mTvName.setVisibility(GONE);
|
|
|
|
|
mCharmView.setVisibility(GONE);
|
2025-11-27 11:47:10 +08:00
|
|
|
if (pitBean.getUser_id() == null || pitBean.getUser_id().equals("0") || pitBean.getUser_id().isEmpty()) {
|
2025-10-20 10:16:44 +08:00
|
|
|
mTvTime.setVisibility(GONE);
|
2025-11-27 11:47:10 +08:00
|
|
|
} else {
|
2025-10-20 10:16:44 +08:00
|
|
|
mTvTime.setVisibility(VISIBLE);
|
|
|
|
|
}
|
2025-11-27 11:47:10 +08:00
|
|
|
mTvTime.setText(StringUtil.toWan2(pitBean.getCharm(), 1));
|
|
|
|
|
} else if (pitBean.getPit_number().equals("000")) {
|
2025-10-20 10:16:44 +08:00
|
|
|
iv_tag_type.setVisibility(GONE);
|
|
|
|
|
mCharmView.setVisibility(GONE);
|
|
|
|
|
}
|
2025-10-24 17:52:11 +08:00
|
|
|
|
|
|
|
|
// mCharmView.setOnClickListener(new OnClickListener() {
|
|
|
|
|
//
|
|
|
|
|
// @Override
|
|
|
|
|
// public void onClick(View v) {
|
|
|
|
|
// if (mOnCharmClickListener != null && pitBean != null){
|
|
|
|
|
// mOnCharmClickListener.onCharmClick(RoomMakeWheatView.this, pitBean);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// });
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-27 11:47:10 +08:00
|
|
|
public void setmTvTime(String charm) {
|
|
|
|
|
mTvTime.setText(StringUtil.toWan2(pitBean.getCharm(), 1));
|
2025-10-20 10:16:44 +08:00
|
|
|
}
|
|
|
|
|
|
2025-10-24 17:52:11 +08:00
|
|
|
private onCharmClickListener mOnCharmClickListener;
|
2025-11-27 11:47:10 +08:00
|
|
|
|
|
|
|
|
//
|
2025-10-24 17:52:11 +08:00
|
|
|
public void setmOnCharmClickListener(onCharmClickListener mOnCharmClickListener) {
|
|
|
|
|
this.mOnCharmClickListener = mOnCharmClickListener;
|
|
|
|
|
}
|
2025-11-27 11:47:10 +08:00
|
|
|
|
|
|
|
|
//
|
|
|
|
|
public interface onCharmClickListener {
|
2025-10-24 17:52:11 +08:00
|
|
|
void onCharmClick(RoomMakeWheatView view, RoomPitBean pitBean);
|
|
|
|
|
}
|
2025-11-27 11:47:10 +08:00
|
|
|
|
|
|
|
|
public void setChe(String che) {
|
2025-10-20 10:16:44 +08:00
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean isMale() {
|
|
|
|
|
return "1".equals(sex);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean isFemale() {
|
|
|
|
|
return "2".equals(sex);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void setShowSexIcon(boolean show) {
|
|
|
|
|
showSexIcon = show;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void checkSex() {
|
|
|
|
|
if (isOn()) {
|
|
|
|
|
mIvSex.setVisibility(VISIBLE);
|
|
|
|
|
} else {
|
|
|
|
|
mIvSex.setVisibility(GONE);
|
|
|
|
|
if (mTvNo != null) mTvNo.setBackgroundResource(getOriginNoImage());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 是否显示老板标识
|
|
|
|
|
*/
|
|
|
|
|
public void setIsBossShow(String is_boss_pit) {
|
|
|
|
|
showBoss = "1".equals(is_boss_pit);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 开启计时
|
|
|
|
|
*/
|
|
|
|
|
public void setTime(int time) {
|
|
|
|
|
if (time == 0) {
|
|
|
|
|
mTvTime.setText("");
|
|
|
|
|
mTvTime.setVisibility(INVISIBLE);
|
|
|
|
|
} else {
|
|
|
|
|
mTvTime.setText(String.format("%s'%s", time / 60, time % 60));
|
|
|
|
|
mTvTime.setVisibility(VISIBLE);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void hideMaoziIcon() {
|
|
|
|
|
View maozi = findViewById(R.id.iv_maozi);
|
|
|
|
|
if (maozi != null) maozi.setVisibility(GONE);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void onRemoteSoundLevelUpdate(String userId, int soundLevel) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void onLocalSoundLevelUpdate(int volume) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void userJoined(int userId, int elapsd) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void userOffline(int userId, int reason) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-18 18:28:16 +08:00
|
|
|
@Override
|
|
|
|
|
public void pkOffSide(int uid) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2025-10-20 10:16:44 +08:00
|
|
|
public void setOnlineStatus(UserOnlineStatusBean isOnline) {
|
|
|
|
|
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) {
|
2025-10-24 17:52:11 +08:00
|
|
|
// iv_on_line.setVisibility(GONE);
|
2025-10-20 10:16:44 +08:00
|
|
|
} else {
|
2025-10-24 17:52:11 +08:00
|
|
|
// iv_on_line.setVisibility(VISIBLE);
|
2025-10-20 10:16:44 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-10-24 17:52:11 +08:00
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void unRegister(Object obj) {
|
|
|
|
|
|
|
|
|
|
}
|
2025-10-20 10:16:44 +08:00
|
|
|
}
|