jimu-decompiled/sources/com/ubt/jimu/controller/data/widget/JockstickDataConverter.java
2025-05-13 19:24:51 +02:00

157 lines
7.5 KiB
Java

package com.ubt.jimu.controller.data.widget;
import android.text.TextUtils;
import com.thoughtworks.xstream.converters.Converter;
import com.thoughtworks.xstream.converters.MarshallingContext;
import com.thoughtworks.xstream.converters.UnmarshallingContext;
import com.thoughtworks.xstream.io.HierarchicalStreamReader;
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
import com.ubt.jimu.base.data.CtrlMotionType;
import com.ubt.jimu.controller.data.config.JockstickConfig;
import com.ubt.jimu.controller.data.config.Wheel;
import com.ubt.jimu.transport.model.TransportFile;
import com.ubtech.utils.XLog;
import java.util.List;
/* loaded from: classes.dex */
public class JockstickDataConverter implements Converter {
public static final String CONFIG_ID = "configID";
public static final String ID = "id";
public static final String MOTION_TYPE = "motionType";
public static final String POS = "pos";
public static final String REVERSE = "reverse";
public static final String TYPE = "type";
public static final String WHEEL = "wheel";
private void marshalConfig(HierarchicalStreamWriter hierarchicalStreamWriter, MarshallingContext marshallingContext, JockstickConfig jockstickConfig) {
if (jockstickConfig != null) {
JockstickConfig.JockType type = jockstickConfig.getType();
if (type != null) {
hierarchicalStreamWriter.startNode("type");
hierarchicalStreamWriter.setValue(type.name());
hierarchicalStreamWriter.endNode();
}
CtrlMotionType motionType = jockstickConfig.getMotionType();
if (motionType != null) {
hierarchicalStreamWriter.startNode("motionType");
hierarchicalStreamWriter.setValue(motionType.name());
hierarchicalStreamWriter.endNode();
}
List<Wheel> wheelList = jockstickConfig.getWheelList();
if (wheelList == null || wheelList.size() <= 0) {
return;
}
for (Wheel wheel : wheelList) {
hierarchicalStreamWriter.startNode(WHEEL);
marshallingContext.convertAnother(wheel);
hierarchicalStreamWriter.endNode();
}
}
}
@Override // com.thoughtworks.xstream.converters.ConverterMatcher
public boolean canConvert(Class cls) {
return JockstickData.class.equals(cls);
}
@Override // com.thoughtworks.xstream.converters.Converter
public void marshal(Object obj, HierarchicalStreamWriter hierarchicalStreamWriter, MarshallingContext marshallingContext) {
JockstickData jockstickData = (JockstickData) obj;
if (!TextUtils.isEmpty(jockstickData.getWidgetId())) {
hierarchicalStreamWriter.addAttribute("widgetId", jockstickData.getWidgetId());
}
JockstickConfig config = jockstickData.getConfig();
if (config != null && !TextUtils.isEmpty(config.getConfigID())) {
hierarchicalStreamWriter.addAttribute("configID", config.getConfigID());
}
hierarchicalStreamWriter.startNode("pos_x");
hierarchicalStreamWriter.setValue(String.valueOf(jockstickData.getPosX()));
hierarchicalStreamWriter.endNode();
hierarchicalStreamWriter.startNode("pos_y");
hierarchicalStreamWriter.setValue(String.valueOf(jockstickData.getPosY()));
hierarchicalStreamWriter.endNode();
}
@Override // com.thoughtworks.xstream.converters.Converter
public Object unmarshal(HierarchicalStreamReader hierarchicalStreamReader, UnmarshallingContext unmarshallingContext) {
String attribute = hierarchicalStreamReader.getAttribute("widgetId");
if (TextUtils.isEmpty(attribute)) {
attribute = hierarchicalStreamReader.getAttribute("widgetID");
}
JockstickData jockstickData = new JockstickData(attribute);
JockstickConfig jockstickConfig = new JockstickConfig();
String attribute2 = hierarchicalStreamReader.getAttribute("configID");
if (!TextUtils.isEmpty(attribute2)) {
jockstickConfig.setConfigID(attribute2);
}
while (hierarchicalStreamReader.hasMoreChildren()) {
hierarchicalStreamReader.moveDown();
switch (hierarchicalStreamReader.getNodeName()) {
case "pos_x":
jockstickData.setPosX(Float.valueOf(hierarchicalStreamReader.getValue()).floatValue());
break;
case "pos_y":
jockstickData.setPosY(Float.valueOf(hierarchicalStreamReader.getValue()).floatValue());
break;
case "type":
try {
jockstickConfig.setType((JockstickConfig.JockType) unmarshallingContext.convertAnother(jockstickData, JockstickConfig.JockType.class));
break;
} catch (Exception e) {
XLog.b(TransportFile.TYPE_CONTROLLER, "unknown JockType");
e.printStackTrace();
jockstickConfig.setType(JockstickConfig.JockType.twoServo);
break;
}
case "motionType":
try {
jockstickConfig.setMotionType((CtrlMotionType) unmarshallingContext.convertAnother(jockstickData, CtrlMotionType.class));
break;
} catch (Exception e2) {
e2.printStackTrace();
jockstickConfig.setMotionType(CtrlMotionType.servo);
break;
}
case "leftUpID":
Integer valueOf = Integer.valueOf(hierarchicalStreamReader.getValue());
if (valueOf != null && valueOf.intValue() > 0) {
jockstickConfig.putWheel(1, new Wheel(valueOf.intValue(), 1));
break;
}
break;
case "rightUpID":
Integer valueOf2 = Integer.valueOf(hierarchicalStreamReader.getValue());
if (valueOf2 != null && valueOf2.intValue() > 0) {
jockstickConfig.putWheel(2, new Wheel(valueOf2.intValue(), 2));
break;
}
break;
case "leftBottomID":
Integer valueOf3 = Integer.valueOf(hierarchicalStreamReader.getValue());
if (valueOf3 != null && valueOf3.intValue() > 0) {
jockstickConfig.putWheel(3, new Wheel(valueOf3.intValue(), 3));
break;
}
break;
case "rightBottomID":
Integer valueOf4 = Integer.valueOf(hierarchicalStreamReader.getValue());
if (valueOf4 != null && valueOf4.intValue() > 0) {
jockstickConfig.putWheel(4, new Wheel(valueOf4.intValue(), 4));
break;
}
break;
case "wheel":
Wheel wheel = (Wheel) unmarshallingContext.convertAnother(jockstickData, Wheel.class);
jockstickConfig.putWheel(wheel.getPosition(), wheel);
break;
default:
XLog.b("woo", "Unknown node name : %s", hierarchicalStreamReader.getNodeName());
break;
}
hierarchicalStreamReader.moveUp();
}
jockstickData.setConfig(jockstickConfig);
return jockstickData;
}
}