jimu-decompiled/sources/com/ubt/jimu/blockly/command/JimuBlocklyCommand.java
2025-05-13 19:24:51 +02:00

502 lines
19 KiB
Java

package com.ubt.jimu.blockly.command;
import android.text.TextUtils;
import android.util.Log;
import android.webkit.WebView;
import com.alibaba.android.arouter.facade.Postcard;
import com.alibaba.android.arouter.launcher.ARouter;
import com.google.gson.reflect.TypeToken;
import com.ubt.jimu.base.cache.Cache;
import com.ubt.jimu.base.db.diy.DiyDBModel;
import com.ubt.jimu.base.db.diy.DiyHelper;
import com.ubt.jimu.base.entities.Robot;
import com.ubt.jimu.blockly.JimuRobot;
import com.ubt.jimu.blockly.Utils;
import com.ubt.jimu.blockly.bean.BlocklyProject;
import com.ubt.jimu.blockly.command.result.JavaResultBean;
import com.ubt.jimu.blockly.command.result.SaveBean;
import com.ubt.jimu.blockly.command.result.XmlListBean;
import com.ubt.jimu.blockly.exception.BlocklyEvent;
import com.ubt.jimu.course.repository.JimuCourse;
import com.ubt.jimu.course.view.JimuTaskListActivity;
import com.ubt.jimu.discover.view.CourseListActivity;
import com.ubt.jimu.diy.view.DiyBrowseActivity;
import com.ubt.jimu.diy.view.DiyFanActivity;
import com.ubt.jimu.unity.bluetooth.UnityActivity;
import com.ubt.jimu.utils.JsonHelper;
import com.ubt.jimu.utils.LogUtils;
import com.ubt.jimu.utils.SPUtils;
import com.ubtech.utils.FileHelper;
import com.ubtrobot.log.ALog;
import java.io.File;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Type;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import org.greenrobot.eventbus.EventBus;
import org.json.JSONException;
import org.json.JSONObject;
/* loaded from: classes.dex */
public class JimuBlocklyCommand {
public static final String BLE_STATE = "BLEState";
public static final String CONNECT_BLE = "ConnectBLE";
public static final String EXIT_LOGIC_VIEW = "ExitLogicView";
public static final String LOGIC_CMD = "LogicCMD";
public static final String SET_SEND_XT_STATE = "setSendXTState";
public static final String SET_SERVO_MODE = "setServoMode";
public static final String WAKEUP_BLOCKLY = "continueSteps";
private UnityActivity context;
private TimerTask infraredTask;
private JimuRobot jimuRobot;
private int moduleType;
private String queryCallback;
private String queryUrl;
private Timer timer;
private WebView webView;
private final String BLE_CONNECT_CALLBACK = JimuUnityCommand.BLE_CONNECT_CALLBACK;
protected final long INFRARED_INTERVAL = 200;
protected String tag = JimuBlocklyCommand.class.getSimpleName();
private ArrayList<BlocklyProject> projects = new ArrayList<>();
private class InfraredTimerTask extends TimerTask {
private String url;
public InfraredTimerTask(String str) {
this.url = str;
}
@Override // java.util.TimerTask, java.lang.Runnable
public void run() {
JimuBlocklyCommand.this.unityComm(this.url);
}
}
public JimuBlocklyCommand(WebView webView, UnityActivity unityActivity, JimuRobot jimuRobot) {
this.context = unityActivity;
this.webView = webView;
this.jimuRobot = jimuRobot;
}
private boolean isNameExist(String str, String str2, String str3) {
JavaResultBean<?> javaResultBean = new JavaResultBean<>();
if (TextUtils.isEmpty(str)) {
javaResultBean.retCode = JavaResultBean.RESULT_EXCEPTION;
javaResultBean.retMsg = "";
setJSResult(javaResultBean, str3, true);
return true;
}
String b = FileHelper.b(this.jimuRobot.getBlocklyProject("blockly") + this.jimuRobot.getModelId() + ".config", (String) null);
if (!TextUtils.isEmpty(b)) {
ArrayList arrayList = (ArrayList) JsonHelper.a(b, new TypeToken<List<BlocklyProject>>() { // from class: com.ubt.jimu.blockly.command.JimuBlocklyCommand.3
}.getType());
if (arrayList == null) {
arrayList = new ArrayList();
}
if (arrayList.size() > 0) {
Iterator it = arrayList.iterator();
while (it.hasNext()) {
BlocklyProject blocklyProject = (BlocklyProject) it.next();
if (blocklyProject.getXmlName().equals(str) && !blocklyProject.getXmlId().equals(str2)) {
break;
}
}
}
}
return false;
}
private String writeConfigFile(String str, String str2, String str3, String str4) {
String str5 = this.jimuRobot.getBlocklyProject("blockly") + this.jimuRobot.getModelId() + ".config";
BlocklyProject blocklyProject = null;
String b = FileHelper.b(str5, (String) null);
boolean isEmpty = TextUtils.isEmpty(b);
ArrayList arrayList = (ArrayList) JsonHelper.a(b, new TypeToken<List<BlocklyProject>>() { // from class: com.ubt.jimu.blockly.command.JimuBlocklyCommand.4
}.getType());
if (arrayList == null) {
arrayList = new ArrayList();
}
if (TextUtils.isEmpty(str3)) {
str3 = System.currentTimeMillis() + "";
File file = new File(this.jimuRobot.getBlocklyProject("blockly"));
if (!file.exists()) {
file.mkdirs();
}
BlocklyProject blocklyProject2 = new BlocklyProject();
blocklyProject2.setXmlId(str3);
blocklyProject2.setXmlName(str);
blocklyProject2.setBlocklyVersion(str4);
blocklyProject2.setIsDefault(false);
arrayList.add(0, blocklyProject2);
this.projects.add(0, blocklyProject2);
} else {
Iterator it = arrayList.iterator();
while (true) {
if (!it.hasNext()) {
break;
}
BlocklyProject blocklyProject3 = (BlocklyProject) it.next();
if (blocklyProject3.getXmlId().equals(str3)) {
blocklyProject3.setXmlName(str);
blocklyProject = blocklyProject3;
break;
}
}
if (blocklyProject != null) {
arrayList.remove(blocklyProject);
arrayList.add(0, blocklyProject);
}
}
FileHelper.a(str5, JsonHelper.a(arrayList), "utf-8");
if (isEmpty) {
try {
if (!TextUtils.isEmpty(this.jimuRobot.getModelType())) {
Integer.parseInt(this.jimuRobot.getModelType());
}
} catch (NumberFormatException e) {
e.printStackTrace();
Log.e(this.tag, "保存文件:" + e.getMessage());
}
}
return str3;
}
public void bleState() {
UnityActivity.communityWithUnity(this.context, BLE_STATE, "");
}
public void closeWindow() {
UnityActivity unityActivity;
UnityActivity.communityWithUnity(this.context, EXIT_LOGIC_VIEW, "");
if (8194 == this.context.getBlocklyType()) {
JimuCourse jimuCourse = Cache.getInstance().getJimuCourse();
Robot robot = Cache.getInstance().getRobot();
if (robot != null && jimuCourse != null && (unityActivity = this.context) != null) {
JimuTaskListActivity.start(unityActivity, Cache.getInstance().getPackageId(), robot.getModelId(), jimuCourse.getId());
}
} else if (8193 == this.context.getBlocklyType()) {
LogUtils.c("返回首页");
ARouter.b().a("/page/main").t();
} else if (8197 == this.context.getBlocklyType()) {
CourseListActivity.start(this.context, "AstroBot");
} else if (8195 == this.context.getBlocklyType()) {
DiyFanActivity.start(this.context, DiyFanActivity.uuid);
} else if (8196 == this.context.getBlocklyType() || 8192 == this.context.getBlocklyType()) {
SPUtils.b(String.format(DiyBrowseActivity.DIYSTEP, this.context.getModelID()), -2);
ARouter.b().a("/diy/detail").t();
} else {
ARouter.b().a("/page/main").t();
}
stopSensorTimer("");
}
public void confirm(String str) {
String[] split;
FileHelper.a(Utils.baseUrl + "status.txt", "", (String) null);
if (TextUtils.isEmpty(str) || (split = str.split("\\|")) == null || split.length < 2) {
return;
}
try {
Utils.setJSResult(this.webView, "continueSteps", URLEncoder.encode(new JSONObject(split[1]).optString("branchId"), "utf-8"), "1");
} catch (JSONException e) {
e.printStackTrace();
} catch (Exception e2) {
e2.printStackTrace();
}
}
public void connectedBLE() {
UnityActivity.communityWithUnity(this.context, CONNECT_BLE, "");
}
public void deleteXml(String str, String str2) {
boolean z;
ALog.a(this.tag).d("deleteXml");
Iterator<BlocklyProject> it = this.projects.iterator();
while (true) {
if (!it.hasNext()) {
z = false;
break;
}
BlocklyProject next = it.next();
if (next.getXmlId().equals(str)) {
z = next.getIsDefault();
break;
}
}
JavaResultBean<?> javaResultBean = new JavaResultBean<>();
if (z) {
javaResultBean.retCode = JavaResultBean.RESULT_FAILED;
javaResultBean.retMsg = "can not delete sample project.";
} else {
File file = new File(this.jimuRobot.getBlocklyProject("blockly") + str + ".xml");
if (file.exists()) {
file.delete();
javaResultBean.retCode = "0000";
} else {
javaResultBean.retCode = "0000";
javaResultBean.retMsg = "file not exit";
}
String str3 = this.jimuRobot.getBlocklyProject("blockly") + this.jimuRobot.getModelId() + ".config";
ArrayList arrayList = (ArrayList) JsonHelper.a(FileHelper.b(str3, (String) null), new TypeToken<List<BlocklyProject>>() { // from class: com.ubt.jimu.blockly.command.JimuBlocklyCommand.5
}.getType());
if (arrayList == null) {
arrayList = new ArrayList();
}
Iterator it2 = arrayList.iterator();
while (true) {
if (!it2.hasNext()) {
break;
}
BlocklyProject blocklyProject = (BlocklyProject) it2.next();
if (blocklyProject.getXmlId().equals(str)) {
arrayList.remove(blocklyProject);
break;
}
}
FileHelper.a(str3, JsonHelper.a(arrayList), "utf-8");
}
setJSResult(javaResultBean, str2, false);
}
public JimuRobot getJimuRobot() {
return this.jimuRobot;
}
public int getModuleType() {
return this.moduleType;
}
public String getQueryCallback() {
return this.queryCallback;
}
public String getQueryUrl() {
return this.queryUrl;
}
public void heartBeat(String str) {
UnityActivity.communityWithUnity(this.context, SET_SEND_XT_STATE, str);
}
public void notifyBLEState(String str) {
EventBus.b().b(new BlocklyEvent(1006, str));
setJSResult(JimuUnityCommand.BLE_CONNECT_CALLBACK, str, true);
}
public void queryInfrared(String str, String str2) {
unityComm(str);
}
/* JADX WARN: Type inference failed for: r1v4, types: [T, com.ubt.jimu.blockly.command.result.XmlListBean] */
public void readXml(String str, String str2) {
BlocklyProject blocklyProject;
String str3;
ALog.a(this.tag).d("readXml");
Iterator<BlocklyProject> it = this.projects.iterator();
while (true) {
if (!it.hasNext()) {
blocklyProject = null;
break;
} else {
blocklyProject = it.next();
if (blocklyProject.getXmlId().equals(str)) {
break;
}
}
}
JavaResultBean<?> javaResultBean = new JavaResultBean<>();
if (blocklyProject != null) {
if (blocklyProject.getIsDefault()) {
str3 = this.jimuRobot.getSamplePath() + str + ".xml";
} else {
str3 = this.jimuRobot.getBlocklyProject("blockly") + str + ".xml";
}
javaResultBean.retCode = "0000";
} else {
javaResultBean.retCode = JavaResultBean.RESULT_FAILED;
javaResultBean.retMsg = "xmlId not in projects";
str3 = "";
}
javaResultBean.result = new XmlListBean(str3);
setJSResult(javaResultBean, str2, true);
}
/* JADX WARN: Type inference failed for: r4v3, types: [T, com.ubt.jimu.blockly.command.result.SaveBean] */
public void saveXml(String str, String str2, String str3, String str4, String str5) {
ALog.a(this.tag).d("saveXml");
if (TextUtils.isEmpty(str3)) {
isNameExist(str, str3, str5);
}
String writeConfigFile = writeConfigFile(str, str2, str3, str4);
JavaResultBean<?> javaResultBean = new JavaResultBean<>();
if (FileHelper.a(this.jimuRobot.getBlocklyProject("blockly") + writeConfigFile + ".xml", str2, (String) null)) {
javaResultBean.retCode = "0000";
} else {
javaResultBean.retCode = JavaResultBean.RESULT_FAILED;
}
?? saveBean = new SaveBean();
saveBean.xmlId = writeConfigFile;
javaResultBean.result = saveBean;
setJSResult(javaResultBean, str5, true);
Iterator<BlocklyProject> it = this.projects.iterator();
while (it.hasNext()) {
BlocklyProject next = it.next();
if (!TextUtils.isEmpty(next.getXmlId())) {
next.getXmlId().equals(writeConfigFile);
}
}
Integer.parseInt(this.jimuRobot.getModelType());
}
public void servoSet(String str) {
try {
FileHelper.a(Utils.baseUrl + "status.txt", "", (String) null);
Utils.setJSResult(this.webView, "continueSteps", URLEncoder.encode(str, "utf-8"), "1");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
Log.e(this.tag, e.getMessage());
}
}
protected void setJSResult(String str, String str2, boolean z) {
if (z) {
try {
str2 = URLEncoder.encode(str2, "utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
Log.e(this.tag, e.getMessage());
return;
}
}
final String str3 = "javascript:" + str + "('" + str2 + "')";
this.webView.post(new Runnable() { // from class: com.ubt.jimu.blockly.command.JimuBlocklyCommand.1
@Override // java.lang.Runnable
public void run() {
JimuBlocklyCommand.this.webView.loadUrl(str3);
}
});
}
public void setJimuRobot(JimuRobot jimuRobot) {
}
public void setModuleType(int i) {
this.moduleType = i;
}
public void setServoMode() {
DiyDBModel queryForUUid;
if (!"1".equals(this.jimuRobot.getModelType()) || (queryForUUid = DiyHelper.getInstance().queryForUUid(this.jimuRobot.getModelId())) == null) {
return;
}
this.context.setIsBack(true);
Postcard a = ARouter.b().a("/controller/servosettings");
a.a("isFromUnity", true);
a.a("robotLite", queryForUUid.getRobotLite());
a.a(this.context, 107);
}
public void startSensorTimer(String str, String str2) {
ALog.a(this.tag).d("startSensorTimer");
if (TextUtils.isEmpty(str)) {
return;
}
this.queryUrl = str;
this.queryCallback = str2;
String str3 = "jimu://queryAllSensor";
String[] split = str.split("\\|");
if (split != null && split.length >= 1) {
str3 = ("jimu://queryAllSensor|") + split[1];
}
if (split != null && split.length >= 2) {
str3 = str3 + "|" + str2;
}
stopSensorTimer("");
this.timer = new Timer();
this.infraredTask = new InfraredTimerTask(str3);
this.timer.schedule(this.infraredTask, 50L, 200L);
}
public void stopSensorTimer(String str) {
ALog.a(this.tag).d("stopSensorTimer");
TimerTask timerTask = this.infraredTask;
if (timerTask != null) {
timerTask.cancel();
this.infraredTask = null;
}
Timer timer = this.timer;
if (timer != null) {
timer.cancel();
this.timer.purge();
this.timer = null;
}
}
public void unityComm(String str) {
JSONObject jSONObject = new JSONObject();
try {
jSONObject.put("funcName", LOGIC_CMD);
jSONObject.put("arg", URLDecoder.decode(str, "UTF-8"));
UnityActivity.communityWithUnity(this.context, jSONObject.toString());
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (JSONException e2) {
e2.printStackTrace();
}
}
/* JADX WARN: Type inference failed for: r0v10, types: [T, com.ubt.jimu.blockly.command.result.XmlListBean] */
/* JADX WARN: Type inference failed for: r0v8, types: [T, com.ubt.jimu.blockly.command.result.XmlListBean] */
public void xmlList(String str) {
ALog.a(this.tag).d("xmlList");
this.projects.clear();
File file = new File(this.jimuRobot.getBlocklyProject("blockly") + this.jimuRobot.getModelId() + ".config");
File file2 = new File(this.jimuRobot.getSamplePath() + this.jimuRobot.getModelId() + ".config");
JavaResultBean<?> javaResultBean = new JavaResultBean<>();
javaResultBean.retCode = "0000";
if (file.exists() || file2.exists()) {
String b = FileHelper.b(file.getAbsolutePath(), (String) null);
String b2 = FileHelper.b(file2.getAbsolutePath(), (String) null);
Type type = new TypeToken<List<BlocklyProject>>() { // from class: com.ubt.jimu.blockly.command.JimuBlocklyCommand.6
}.getType();
ArrayList arrayList = (ArrayList) JsonHelper.a(b, type);
ArrayList arrayList2 = (ArrayList) JsonHelper.a(b2, type);
if (arrayList2 != null) {
this.projects.addAll(arrayList2);
}
if (arrayList != null) {
this.projects.addAll(arrayList);
}
javaResultBean.result = new XmlListBean(this.projects);
} else {
javaResultBean.result = new XmlListBean(new ArrayList());
}
setJSResult(javaResultBean, str, false);
}
private void setJSResult(JavaResultBean<?> javaResultBean, String str, boolean z) {
String a = JsonHelper.a(javaResultBean);
if (z) {
try {
a = URLEncoder.encode(a, "utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return;
}
}
final String str2 = "javascript:" + str + "('" + a + "')";
this.webView.post(new Runnable() { // from class: com.ubt.jimu.blockly.command.JimuBlocklyCommand.2
@Override // java.lang.Runnable
public void run() {
JimuBlocklyCommand.this.webView.loadUrl(str2);
}
});
}
}