优化头像框加载、麦圈加载,二卡八放到对应fragment加载。
This commit is contained in:
@@ -37,6 +37,7 @@ import com.xscm.moduleutil.event.RoomFaceEvent;
|
||||
import com.xscm.moduleutil.interfaces.IBaseWheat;
|
||||
import com.xscm.moduleutil.interfaces.SoundLevelUpdateListener;
|
||||
import com.xscm.moduleutil.rtc.AgoraManager;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
import com.xscm.moduleutil.utils.SpUtil;
|
||||
import com.xscm.moduleutil.utils.logger.Logger;
|
||||
|
||||
@@ -63,6 +64,7 @@ public abstract class BaseWheatView extends ConstraintLayout implements IBaseWhe
|
||||
public TextView tv_time_pk;
|
||||
|
||||
public RoomPitBean pitBean;//麦位数据
|
||||
|
||||
public String roomId;//房间id
|
||||
|
||||
CountDownTimer mCountDownTimer;
|
||||
@@ -82,17 +84,14 @@ public abstract class BaseWheatView extends ConstraintLayout implements IBaseWhe
|
||||
public ImageView iv_on_line;
|
||||
private boolean showGiftAnim = true;//显示麦位动画
|
||||
private ImageView iv_tag_type;
|
||||
|
||||
// 当前音量监听器,用于防止重复添加
|
||||
private SoundLevelUpdateListener currentSoundLevelListener;
|
||||
|
||||
private TextView tv_zhul;
|
||||
|
||||
private SVGAParser mParser;
|
||||
|
||||
private final SVGAParser parser = new SVGAParser(CommonAppContext.getInstance());
|
||||
private String micCycle = "";
|
||||
|
||||
public boolean isMentorShip = false;
|
||||
private SoundLevelUpdateListener soundLevelUpdateListener;
|
||||
|
||||
public BaseWheatView(Context context) {
|
||||
this(context, null, 0);
|
||||
@@ -112,6 +111,7 @@ public abstract class BaseWheatView extends ConstraintLayout implements IBaseWhe
|
||||
mIvSex = findViewById(R.id.iv_sex);
|
||||
mIvFrame = findViewById(R.id.iv_frame);
|
||||
mIvRipple = findViewById(R.id.iv_ripple);
|
||||
|
||||
mIvFace = findViewById(R.id.iv_face);
|
||||
mIvShutup = findViewById(R.id.iv_shutup);
|
||||
tvTime = findViewById(R.id.tv_time);
|
||||
@@ -179,33 +179,61 @@ public abstract class BaseWheatView extends ConstraintLayout implements IBaseWhe
|
||||
setCardiac(pitBean.getCharm(), getTzbl());
|
||||
|
||||
if (bean.getUser_id() != null && !bean.getUser_id().equals("0") && !bean.getUser_id().isEmpty()) {
|
||||
if (bean.getIs_online()==1){
|
||||
iv_on_line.setVisibility(GONE);
|
||||
}else if (bean.getIs_online()==2){
|
||||
if (!bean.getUser_id().equals(SpUtil.getUserId()+"")) {
|
||||
iv_on_line.setVisibility(VISIBLE);
|
||||
}
|
||||
}else {
|
||||
iv_on_line.setVisibility(GONE);
|
||||
}
|
||||
if (bean.getIs_online() == 1) {
|
||||
iv_on_line.setVisibility(GONE);
|
||||
} else if (bean.getIs_online() == 2) {
|
||||
if (!bean.getUser_id().equals(SpUtil.getUserId() + "")) {
|
||||
iv_on_line.setVisibility(VISIBLE);
|
||||
}
|
||||
} else {
|
||||
iv_on_line.setVisibility(GONE);
|
||||
}
|
||||
} else {
|
||||
iv_on_line.setVisibility(GONE);
|
||||
}
|
||||
|
||||
if (mParser == null || (!TextUtils.isEmpty(pitBean.getMic_cycle()) && !micCycle.equals(pitBean.getMic_cycle()))) {
|
||||
LogUtils.e("这是一个很诡异的东西 " + (mParser == null) +",pitBean.getMic_cycle():"+pitBean.getMic_cycle());
|
||||
if (mParser != null) {
|
||||
mParser = null;
|
||||
}
|
||||
micCycle = pitBean.getMic_cycle();
|
||||
mParser = new SVGAParser(getContext());
|
||||
if (TextUtils.isEmpty(pitBean.getMic_cycle())) {
|
||||
mParser.decodeFromAssets("mic.svga", new SVGAParser.ParseCompletion() {
|
||||
@Override
|
||||
public void onComplete(@Nullable SVGAVideoEntity videoItem) {
|
||||
if (videoItem != null) {
|
||||
mIvRipple.setVideoItem(videoItem);
|
||||
}
|
||||
}
|
||||
|
||||
parser.decodeFromAssets("mic.svga", new SVGAParser.ParseCompletion() {
|
||||
@Override
|
||||
public void onComplete(@Nullable SVGAVideoEntity videoItem) {
|
||||
if (videoItem != null) {
|
||||
mIvRipple.setVideoItem(videoItem);
|
||||
@Override
|
||||
public void onError() {
|
||||
Log.e("SVGA", "解析 ripple.svga 失败");
|
||||
}
|
||||
});
|
||||
} else {
|
||||
try {
|
||||
mParser.decodeFromURL(new URL(pitBean.getMic_cycle()),
|
||||
new SVGAParser.ParseCompletion() {
|
||||
@Override
|
||||
public void onComplete(@NotNull SVGAVideoEntity svgaVideoEntity) {
|
||||
mIvRipple.setImageDrawable(new SVGADrawable(svgaVideoEntity));
|
||||
mIvRipple.startAnimation();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError() {
|
||||
LogUtils.e("BaseWheatView", "解析 mic_cycle 失败");
|
||||
}
|
||||
});
|
||||
} catch (MalformedURLException ignored) {
|
||||
LogUtils.e("BaseWheatView", "解析 mic_cycle 失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError() {
|
||||
Log.e("SVGA", "解析 ripple.svga 失败");
|
||||
}
|
||||
});
|
||||
|
||||
setPitData(bean);
|
||||
|
||||
@@ -214,7 +242,7 @@ public abstract class BaseWheatView extends ConstraintLayout implements IBaseWhe
|
||||
mIvRipple.setScaleX(1.1f);
|
||||
mIvRipple.setScaleY(1.1f);
|
||||
}
|
||||
if (!isMentorShip){
|
||||
if (!isMentorShip) {
|
||||
|
||||
//心动值
|
||||
//显示心动
|
||||
@@ -259,13 +287,18 @@ public abstract class BaseWheatView extends ConstraintLayout implements IBaseWhe
|
||||
}
|
||||
}
|
||||
|
||||
AgoraManager.getInstance().addSoundLevelListener(new SoundLevelUpdateListener() {
|
||||
if (soundLevelUpdateListener != null){
|
||||
AgoraManager.getInstance().removeSoundLevelListener(soundLevelUpdateListener);
|
||||
}
|
||||
|
||||
soundLevelUpdateListener = new SoundLevelUpdateListener() {
|
||||
@Override
|
||||
public void onRemoteSoundLevelUpdate(String userId, int soundLevel) {
|
||||
if (mIvRipple == null) return;
|
||||
if (mIvRipple == null || pitBean.getUser_id().equals("0")) return;
|
||||
if (!userId.equals(pitBean.getUser_id())) return;
|
||||
|
||||
boolean nowSpeaking = soundLevel > 0;
|
||||
|
||||
updateSpeakingState(nowSpeaking);
|
||||
}
|
||||
|
||||
@@ -290,9 +323,13 @@ public abstract class BaseWheatView extends ConstraintLayout implements IBaseWhe
|
||||
if (mIvRipple == null)
|
||||
return;
|
||||
mIvRipple.setVisibility(INVISIBLE);
|
||||
|
||||
Log.e("SVGA", "-------"+pitBean.getUser_id());
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
AgoraManager.getInstance().addSoundLevelListener(soundLevelUpdateListener);
|
||||
|
||||
}
|
||||
|
||||
@@ -344,9 +381,11 @@ public abstract class BaseWheatView extends ConstraintLayout implements IBaseWhe
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError() {}
|
||||
public void onError() {
|
||||
}
|
||||
});
|
||||
} catch (MalformedURLException ignored) {}
|
||||
} catch (MalformedURLException ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
public void setCharm(String charm) {
|
||||
@@ -398,13 +437,13 @@ public abstract class BaseWheatView extends ConstraintLayout implements IBaseWhe
|
||||
|
||||
public void setOnlineStatus() {
|
||||
if (pitBean.getUser_id() != null && !pitBean.getUser_id().equals("0") && !pitBean.getUser_id().isEmpty()) {
|
||||
if (pitBean.getIs_online()==1){
|
||||
if (pitBean.getIs_online() == 1) {
|
||||
iv_on_line.setVisibility(GONE);
|
||||
}else if (pitBean.getIs_online()==2){
|
||||
if (!pitBean.getUser_id().equals(SpUtil.getUserId()+"")) {
|
||||
} else if (pitBean.getIs_online() == 2) {
|
||||
if (!pitBean.getUser_id().equals(SpUtil.getUserId() + "")) {
|
||||
iv_on_line.setVisibility(VISIBLE);
|
||||
}
|
||||
}else {
|
||||
} else {
|
||||
iv_on_line.setVisibility(GONE);
|
||||
}
|
||||
} else {
|
||||
@@ -423,6 +462,7 @@ public abstract class BaseWheatView extends ConstraintLayout implements IBaseWhe
|
||||
showGiftAnim = false;
|
||||
releaseCountDownTimer();
|
||||
super.onDetachedFromWindow();
|
||||
mParser = null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -742,7 +782,6 @@ public abstract class BaseWheatView extends ConstraintLayout implements IBaseWhe
|
||||
mIvFace.addData(new FaceBean(roomRollModel.getNumber(), 2));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 是否主持
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user