Revert Parser.java

okjack
okjack 2 years ago
parent 899777b99b
commit 8a4827cde1
  1. 22
      app/src/main/java/com/fongmi/android/tv/player/danmu/Parser.java

@ -24,8 +24,10 @@ import master.flame.danmaku.danmaku.util.DanmakuUtils;
public class Parser extends BaseDanmakuParser {
private final Danmu danmu;
private BaseDanmaku item;
private float scaleX;
private float scaleY;
private int index;
public Parser(String path) {
this.danmu = Danmu.fromXml(getContent(path));
@ -43,9 +45,11 @@ public class Parser extends BaseDanmakuParser {
for (Danmu.Data data : danmu.getData()) {
String[] values = data.getParam().split(",");
if (values.length < 4) continue;
BaseDanmaku item = createDanmaku(values);
setText(item, data.getText());
result.addItem(item);
setParam(values);
setText(data.getText());
synchronized (result.obtainSynchronizer()) {
result.addItem(item);
}
}
return result;
}
@ -58,27 +62,27 @@ public class Parser extends BaseDanmakuParser {
return this;
}
private BaseDanmaku createDanmaku(String[] values) {
private void setParam(String[] values) {
int type = Integer.parseInt(values[1]);
long time = (long) (Float.parseFloat(values[0]) * 1000);
float size = Float.parseFloat(values[2]) * (mDispDensity - 0.6f);
int color = (int) ((0x00000000ff000000L | Long.parseLong(values[3])) & 0x00000000ffffffffL);
BaseDanmaku item = mContext.mDanmakuFactory.createDanmaku(type, mContext);
item = mContext.mDanmakuFactory.createDanmaku(type, mContext);
item.setTime(time);
item.setTimer(mTimer);
item.textSize = size;
item.textColor = color;
item.textShadowColor = color <= Color.BLACK ? Color.WHITE : Color.BLACK;
item.flags = mContext.mGlobalFlagValues;
return item;
}
private void setText(BaseDanmaku item, String text) {
private void setText(String text) {
item.index = index++;
DanmakuUtils.fillText(item, decodeXmlString(text));
if (item.getType() == BaseDanmaku.TYPE_SPECIAL && text.startsWith("[") && text.endsWith("]")) setSpecial(item);
if (item.getType() == BaseDanmaku.TYPE_SPECIAL && text.startsWith("[") && text.endsWith("]")) setSpecial();
}
private void setSpecial(BaseDanmaku item) {
private void setSpecial() {
String[] textArr = null;
try {
JSONArray jsonArray = new JSONArray(item.text);

Loading…
Cancel
Save