package com.dl7.mvp.engine.danmaku;
import com.dl7.mvp.local.table.DanmakuInfo;
import com.google.gson.TypeAdapter;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import java.io.IOException;
/**
* Created by Jiang Chen on 2017/05/11.
* Danmaku TypeAdapter
*/
public class DanmakuInfoTypeAdapter extends TypeAdapter<DanmakuInfo> {
private static final String TYPE = "type";
private static final String CONTENT = "content";
private static final String TIME = "time";
private static final String TEXT_SIZE = "textSize";
private static final String TEXT_COLOR = "textColor";
private static final String USER_NAME = "userName";
private static final String VID = "vid";
@Override
public void write(JsonWriter out, DanmakuInfo value) throws IOException {
out.beginObject();
out.name(TYPE).value(value.getType());
out.name(CONTENT).value(value.getContent());
out.name(TIME).value(value.getTime());
out.name(TEXT_SIZE).value(value.getTextSize());
out.name(TEXT_COLOR).value(value.getTextColor());
out.name(USER_NAME).value(value.getUserName());
out.name(VID).value(value.getVid());
out.endObject();
}
@Override
public DanmakuInfo read(JsonReader in) throws IOException {
DanmakuInfo danmakuInfo = new DanmakuInfo();
in.beginObject();
while (in.hasNext()) {
String field = in.nextName();
if (TYPE.equals(field)) {
danmakuInfo.setType(in.nextInt());
} else if (CONTENT.equals(field)) {
danmakuInfo.setContent(in.nextString());
} else if (TIME.equals(field)) {
danmakuInfo.setTime(in.nextLong());
} else if (TEXT_SIZE.equals(field)) {
danmakuInfo.setTextSize((float) in.nextDouble());
} else if (TEXT_COLOR.equals(field)) {
danmakuInfo.setTextColor(in.nextInt());
} else if (USER_NAME.equals(field)) {
danmakuInfo.setUserName(in.nextString());
} else if (VID.equals(field)) {
danmakuInfo.setVid(in.nextString());
} else {
in.skipValue();
}
}
in.endObject();
return danmakuInfo;
}
}