package com.ubt.jimu.blockly.command; import android.app.Activity; import android.content.Context; import android.text.TextUtils; import android.util.Log; import android.webkit.JavascriptInterface; import android.webkit.WebView; import com.ubt.jimu.JimuApplication; import com.ubt.jimu.R; import com.ubt.jimu.base.cache.Cache; import com.ubt.jimu.base.cache.Constants; import com.ubt.jimu.base.db.diy.DiyHelper; import com.ubt.jimu.base.db.starcourse.CourseDbHandler; import com.ubt.jimu.base.entities.ActionResult; import com.ubt.jimu.base.entities.Constant; import com.ubt.jimu.base.entities.Course; 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.interaction.AbstractBlocklyInteraction; import com.ubt.jimu.blockly.command.interaction.BlocklyInteraction; import com.ubt.jimu.blockly.command.interaction.BlocklyUpload; import com.ubt.jimu.blockly.command.result.JavaResultBean; import com.ubt.jimu.blockly.feature.audio.AudioParams; import com.ubt.jimu.blockly.feature.audio.AudioPlayer; import com.ubt.jimu.blockly.feature.audio.AudioRecoder; import com.ubt.jimu.blockly.feature.course.BlocklyDomCompare; import com.ubt.jimu.blockly.feature.sensor.SensorObservable; import com.ubt.jimu.blockly.feature.sensor.SensorObserver; import com.ubt.jimu.blockly.view.DialogBlocklyWebView; import com.ubt.jimu.course.repository.JimuCourse; import com.ubt.jimu.course.repository.JimuCourseMission; import com.ubt.jimu.course.repository.JimuCourseTask; import com.ubt.jimu.discover.CourseHelper; import com.ubt.jimu.discover.IAccomplishEventListener; import com.ubt.jimu.discover.view.AccomplishWithoutUserDialog; import com.ubt.jimu.diy.DiyRobotDbHandler; import com.ubt.jimu.unity.ModelType; import com.ubt.jimu.unity.bluetooth.UnityActivity; import com.ubt.jimu.utils.DeviceUtils; import com.ubt.jimu.utils.JsonHelper; import com.ubt.jimu.utils.LogUtils; import com.ubt.jimu.utils.SPUtils; import com.ubtech.permission.JimuPermissionRequest; import com.ubtech.permission.PermissionRequestListener; import com.ubtech.utils.FileHelper; import com.ubtech.utils.PermissionHelper; import com.ubtech.utils.XLog; import com.ubtrobot.log.ALog; import java.io.File; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; /* loaded from: classes.dex */ public class JimuJavascriptInterface { private Context context; private Course course; private DialogBlocklyWebView dialogBlocklyWebView; private JavaScriptCommand javaScriptCommand; private JimuRobot jimuRobot; private WebView webView; private final String TAG = JimuJavascriptInterface.class.getSimpleName(); private final String BLOCKLY_INTERVAL = "continueSteps"; private final String SOUND_FILE_MODEL_ID = "0"; private int platformType = 1; private AbstractBlocklyInteraction transportAction = new BlocklyInteraction(new BlocklyUpload()); public JimuJavascriptInterface(WebView webView, Context context, JimuRobot jimuRobot) { this.jimuRobot = jimuRobot; this.webView = webView; this.context = context; this.javaScriptCommand = new JavaScriptCommand(webView, context, jimuRobot, this.transportAction); } private String getBlocklyProjectId(String str) { try { JSONObject jSONObject = new JSONObject(str); if (jSONObject.has("xmlId")) { return jSONObject.getString("xmlId"); } return null; } catch (Exception e) { e.printStackTrace(); return null; } } @JavascriptInterface public String DeleteXml(String str) { return JsonHelper.a(this.javaScriptCommand.deleteXml(getBlocklyProjectId(str))); } @JavascriptInterface public String EditXml(String str) { BlocklyProject blocklyProject = (BlocklyProject) JsonHelper.a(str, (Class) BlocklyProject.class); if (blocklyProject != null) { return JsonHelper.a(this.javaScriptCommand.editXml(blocklyProject.getXmlName(), blocklyProject.getXmlContent(), blocklyProject.getXmlId(), blocklyProject.getBlocklyVersion(), blocklyProject.getDefaultName())); } JavaResultBean javaResultBean = new JavaResultBean(); javaResultBean.retCode = JavaResultBean.RESULT_EXCEPTION; javaResultBean.retMsg = "unknow input"; return JsonHelper.a(javaResultBean); } @JavascriptInterface public String ReadXml(String str) { return JsonHelper.a(this.javaScriptCommand.readXml(getBlocklyProjectId(str))); } @JavascriptInterface public String ReadXmlList() { return JsonHelper.a(this.javaScriptCommand.xmlList()); } @JavascriptInterface public String SaveXml(String str) { BlocklyProject blocklyProject = (BlocklyProject) JsonHelper.a(str, (Class) BlocklyProject.class); if (blocklyProject != null) { return JsonHelper.a(this.javaScriptCommand.saveXml(blocklyProject.getXmlName(), blocklyProject.getXmlContent(), blocklyProject.getBlocklyVersion(), blocklyProject.getDefaultName())); } JavaResultBean javaResultBean = new JavaResultBean(); javaResultBean.retCode = JavaResultBean.RESULT_EXCEPTION; javaResultBean.retMsg = "unknow input"; return JsonHelper.a(javaResultBean); } @JavascriptInterface public String addCustomSound(String str) { return JsonHelper.a(this.javaScriptCommand.addCustomSound(str)); } @JavascriptInterface public void cancelRecordAudio() { AudioRecoder.getInstance().stopRecod(); File parentFile = new File(AudioRecoder.getInstance().getFileName()).getParentFile(); if (parentFile == null || !parentFile.exists()) { return; } FileHelper.a(parentFile); } @JavascriptInterface public void courseSuccessPopup(String str) { LogUtils.c("courseId:" + str + " " + str); final IAccomplishEventListener iAccomplishEventListener = new IAccomplishEventListener() { // from class: com.ubt.jimu.blockly.command.JimuJavascriptInterface.4 @Override // com.ubt.jimu.discover.IAccomplishEventListener public void onPlayAgain(Course course) { JimuJavascriptInterface.this.webView.reload(); } @Override // com.ubt.jimu.discover.IAccomplishEventListener public void onPlayContinue(Course course) { ((UnityActivity) JimuJavascriptInterface.this.context).setIsBack(true); ((UnityActivity) JimuJavascriptInterface.this.context).closeBlockly(); } }; final AccomplishWithoutUserDialog a = AccomplishWithoutUserDialog.a(this.course); a.a(iAccomplishEventListener); String userId = Cache.getInstance().getUserId(); if (!"local".equals(userId) && !TextUtils.isEmpty(userId)) { if (Course.STATUS_COMPLETED.equals(this.course.getStatus())) { a.show(((Activity) this.context).getFragmentManager(), "course"); return; } CourseHelper courseHelper = new CourseHelper(new CourseHelper.IUploadCourseListener() { // from class: com.ubt.jimu.blockly.command.JimuJavascriptInterface.5 @Override // com.ubt.jimu.discover.CourseHelper.IUploadCourseListener public void onFailed() { JimuJavascriptInterface.this.dialogBlocklyWebView.hideWait(); JimuJavascriptInterface.this.webView.postDelayed(new Runnable() { // from class: com.ubt.jimu.blockly.command.JimuJavascriptInterface.5.1 @Override // java.lang.Runnable public void run() { JimuJavascriptInterface.this.dialogBlocklyWebView.commonTips(JimuJavascriptInterface.this.dialogBlocklyWebView.getString(R.string.network_error), 2); } }, 500L); } @Override // com.ubt.jimu.discover.CourseHelper.IUploadCourseListener public void onFinished() { JimuJavascriptInterface.this.dialogBlocklyWebView.hideWait(); } @Override // com.ubt.jimu.discover.CourseHelper.IUploadCourseListener public void onStart() { } @Override // com.ubt.jimu.discover.CourseHelper.IUploadCourseListener public void onSuccess(ActionResult actionResult) { if (actionResult != null && actionResult.getCourse() != null && actionResult.getFlag() == 0) { a.show(((Activity) JimuJavascriptInterface.this.context).getFragmentManager(), "course"); return; } CourseDbHandler.setCourseComplete(JimuJavascriptInterface.this.course); AccomplishWithoutUserDialog a2 = AccomplishWithoutUserDialog.a(JimuJavascriptInterface.this.course, actionResult); a2.a(((Activity) JimuJavascriptInterface.this.context).getFragmentManager(), "course", actionResult); a2.a(iAccomplishEventListener); } }); String b = SPUtils.b(Constant.SelectRobot.INTERSTELLAR_ADVENTURE_SELECT_PACKAGE_KEY); long parseLong = Long.parseLong(str); if (Constant.SelectRobot.INTERSTELLAR_ADVENTURE_NEW_PACKAGE_COSMOS.equals(b) || Constant.SelectRobot.INTERSTELLAR_ADVENTURE_NEW_PACKAGE_STEM.equals(b) || Constant.SelectRobot.INTERSTELLAR_ADVENTURE_NEW_PACKAGE_UPGRADED.equals(b)) { parseLong += 24; } courseHelper.a(parseLong); this.dialogBlocklyWebView.showWait(); return; } String storyName = this.course.getStoryName(); LogUtils.c("storyName:" + storyName + " " + str); if (Constant.SelectRobot.ASTROBOT_MINI.equals(storyName)) { if (!TextUtils.isEmpty(str)) { SPUtils.b(Constant.SelectRobot.LOCAL_USER_COSMOS_FLAG_NEW, Integer.parseInt(str)); } } else if (!TextUtils.isEmpty(str)) { SPUtils.b(Constant.SelectRobot.LOCAL_USER_COSMOS_FLAG_OLD, Integer.parseInt(str)); } CourseDbHandler.setCourseComplete(this.course); a.show(((Activity) this.context).getFragmentManager(), "course"); } @JavascriptInterface public String customSoundList() { return JsonHelper.a(this.javaScriptCommand.customSoundList(Cache.getInstance().getUserId())); } @JavascriptInterface public String deleteCustomMotion(String str) { return JsonHelper.a(this.javaScriptCommand.deleteCustomMotion(str)); } @JavascriptInterface public boolean deleteCustomSound(String str) { return this.javaScriptCommand.deleteCustomSound(Cache.getInstance().getUserId(), str); } @JavascriptInterface public String getBlocklyProjectDescription(String str) { return FileHelper.b(this.jimuRobot.getSamplePath() + str + ".desc", ""); } @JavascriptInterface public String getCustomMotion(String str) { return JsonHelper.a(this.javaScriptCommand.getCustomMotion(str)); } @JavascriptInterface public String getCustomMotionList() { return JsonHelper.a(this.javaScriptCommand.getMotionList()); } @JavascriptInterface public String getDeviceDirection() { return this.dialogBlocklyWebView.getDirection() == null ? "" : this.dialogBlocklyWebView.getDirection().getValue(); } @JavascriptInterface public String getInitProgramInfo() { return this.jimuRobot.getProgram() == null ? "" : JsonHelper.a(this.jimuRobot.getProgram()); } @JavascriptInterface public String getMotionList() { return TextUtils.isEmpty(this.jimuRobot.getMotion()) ? "{}" : this.jimuRobot.getMotion(); } @JavascriptInterface public String getServoID() { StringBuilder sb = new StringBuilder(); sb.append(JimuRobot.ACTIONS); sb.append(this.jimuRobot.getAction()); if (!TextUtils.isEmpty(this.jimuRobot.getServo())) { sb.append("&"); sb.append(JimuRobot.SERVOS); sb.append(this.jimuRobot.getServo()); } if (!TextUtils.isEmpty(this.jimuRobot.getInfraredId())) { sb.append("&"); sb.append(JimuRobot.INFRARED_ID); sb.append(this.jimuRobot.getInfraredId()); } if (!TextUtils.isEmpty(this.jimuRobot.getTouchId())) { sb.append("&"); sb.append(JimuRobot.TOUCH_ID); sb.append(this.jimuRobot.getTouchId()); } if (!TextUtils.isEmpty(this.jimuRobot.getGyroscopeId())) { sb.append("&"); sb.append(JimuRobot.GYROSCOPE_ID); sb.append(this.jimuRobot.getGyroscopeId()); } if (!TextUtils.isEmpty(this.jimuRobot.getCircleServos())) { sb.append("&"); sb.append(JimuRobot.CIRCLE_SERVOS); sb.append(this.jimuRobot.getCircleServos()); } if (!TextUtils.isEmpty(this.jimuRobot.getLights())) { sb.append("&"); sb.append(JimuRobot.LIGHTS); sb.append(this.jimuRobot.getLights()); } if (!TextUtils.isEmpty(this.jimuRobot.getColorId())) { sb.append("&colorId="); sb.append(this.jimuRobot.getColorId()); } if (!TextUtils.isEmpty(this.jimuRobot.getUnicornId())) { sb.append("&unicornId="); sb.append(this.jimuRobot.getUnicornId()); } if (!TextUtils.isEmpty(this.jimuRobot.getMotor())) { sb.append("&motor="); sb.append(this.jimuRobot.getMotor()); } if (!TextUtils.isEmpty(this.jimuRobot.getIsLithium())) { sb.append("&isLithium="); sb.append(this.jimuRobot.getIsLithium()); } if (!TextUtils.isEmpty(this.jimuRobot.getUltrasonicId())) { sb.append("&ultrasonicId="); sb.append(this.jimuRobot.getUltrasonicId()); } if (!TextUtils.isEmpty(this.jimuRobot.getModelType())) { sb.append("&modelType="); sb.append(this.jimuRobot.getModelType()); } if (!TextUtils.isEmpty(this.jimuRobot.getModelId())) { sb.append("&modelID="); sb.append(this.jimuRobot.getModelId()); } String g = JimuApplication.l().g(); sb.append("&"); sb.append(JimuRobot.LANGUAGE); sb.append(g); sb.append("&"); sb.append(JimuRobot.BLUE_STATE); sb.append(this.jimuRobot.getBlueState()); sb.append("&"); sb.append(JimuRobot.MODEL_TYPE); sb.append(SPUtils.a(Constant.Black.BLACK_MODEL_TYPE_KEY, 0)); sb.append("&platformType="); sb.append(this.platformType); Robot robot = Cache.getInstance().getRobot(); String logPath = String.valueOf(ModelType.DEFAULT.getType()).equals(this.jimuRobot.getServerModelType()) ? robot != null ? DiyRobotDbHandler.getLogPath(ModelType.DEFAULT, robot.getModelName()) : "" : DiyHelper.getInstance().queryForUUid(this.jimuRobot.getModelId()) == null ? DiyRobotDbHandler.getLogPath(ModelType.PLAYER_DATA, this.jimuRobot.getModelId()) : DiyHelper.getInstance().queryForUUid(this.jimuRobot.getModelId()).getFilePath(); sb.append("&modelLogo="); sb.append(logPath); String userId = Cache.getInstance().getUserId(); if ("local".equals(userId)) { userId = DeviceUtils.a(this.context); } sb.append("&"); sb.append("userId="); sb.append(userId); sb.append("&"); sb.append("edit="); sb.append(((UnityActivity) this.context).code != 1007 ? 1 : 0); if (1 == this.dialogBlocklyWebView.getModuleType()) { JimuCourse jimuCourse = Cache.getInstance().getJimuCourse(); JimuCourseTask jimuCourseTask = Cache.getInstance().getJimuCourseTask(); JimuCourseMission courseMission = Cache.getInstance().getCourseMission(); if (robot != null && jimuCourse != null && jimuCourseTask != null && courseMission != null) { String str = Constants.COURSE_RESOURCE_PATH + jimuCourse.getId(); sb.append("&"); sb.append("packageId="); sb.append(Cache.getInstance().getPackageId()); sb.append("&"); sb.append("modelId="); sb.append(robot.getModelId()); sb.append("&"); sb.append("modelID="); sb.append(robot.getModelName()); sb.append("&"); sb.append("modelName="); sb.append(robot.getModelDescriptionLangeage()); sb.append("&"); sb.append("moveType="); sb.append(robot.getMoveType()); sb.append("&"); sb.append("level="); sb.append(jimuCourse.getFolderName()); sb.append("&"); sb.append("stage="); sb.append(jimuCourseTask.getFolderName()); sb.append("&"); sb.append("mission="); sb.append(courseMission.getFolderName()); sb.append("&"); sb.append("missionId="); sb.append(courseMission.getId()); sb.append("&"); sb.append("sourcePath="); sb.append(str); } } else { sb.append("&"); sb.append(JimuRobot.IS_FIRST); sb.append(this.jimuRobot.firstOpen()); } Course course = this.course; if (course != null) { String nameKey = course.getNameKey(); String replace = TextUtils.isEmpty(nameKey) ? "" : nameKey.replace("course_", ""); sb.append("&"); sb.append("courseId="); sb.append(replace); sb.append("&"); sb.append("serialName="); sb.append("AstroBot"); sb.append("&"); sb.append("sourcePath="); sb.append(Utils.getStarCourseDirPath()); } String tTSToken = Cache.getInstance().getTTSToken(); LogUtils.c("ttsToken:" + tTSToken); if (!TextUtils.isEmpty(tTSToken)) { sb.append("&"); sb.append("tok="); sb.append(tTSToken); String valueOf = Cache.getInstance().getLoginUserIntId() > 0 ? String.valueOf(Cache.getInstance().getLoginUserIntId()) : DeviceUtils.a(this.context); sb.append("&"); sb.append("cuid="); sb.append(valueOf); } String sb2 = sb.toString(); XLog.a("Chrome", sb2); return sb2; } @JavascriptInterface public boolean hasRecordAuthority() { if (PermissionHelper.a(this.context, "android.permission.RECORD_AUDIO")) { return PermissionHelper.a(this.context, "android.permission.RECORD_AUDIO"); } this.webView.post(new Runnable() { // from class: com.ubt.jimu.blockly.command.JimuJavascriptInterface.2 @Override // java.lang.Runnable public void run() { JimuPermissionRequest.a((Activity) JimuJavascriptInterface.this.context, (PermissionRequestListener) null); } }); return false; } @JavascriptInterface public String helpUrl() { String str = "https://jimu.ubtrobot.com/jimu/help_new/help_new.html?language=" + JimuApplication.l().g(); this.javaScriptCommand.helpUrl(); return str; } @JavascriptInterface public boolean isTablet() { return true; } @JavascriptInterface public void playAudio(String str) { this.javaScriptCommand.playAudio(str); } public void playCurrentRecordAudio() { AudioPlayer.getInstance().play(AudioRecoder.getInstance().getFileName()); } @JavascriptInterface public void recordContentViewEnd(String str) { this.javaScriptCommand.recordContentViewEnd(str); } @JavascriptInterface public void recordContentViewStart(String str) { this.javaScriptCommand.recordContentViewStart(str); } @JavascriptInterface public void recordEvent(String str, String str2) { this.javaScriptCommand.recordEvent(str, str2); } @JavascriptInterface public void registerSensorObserver(String str) { SensorObservable.getInstance().addObserver((SensorObserver) JsonHelper.a(str, (Class) SensorObserver.class)); } @JavascriptInterface public void registerSensorObservers(String str) { try { JSONArray jSONArray = new JSONArray(str); for (int i = 0; i < jSONArray.length(); i++) { JSONObject jSONObject = jSONArray.getJSONObject(i); if (jSONObject != null) { SensorObservable.getInstance().addObserver((SensorObserver) JsonHelper.a(jSONObject.toString(), (Class) SensorObserver.class)); } } } catch (JSONException e) { e.printStackTrace(); } } @JavascriptInterface public String renameAudio(String str) { return JsonHelper.a(this.javaScriptCommand.renameAudio(str)); } @JavascriptInterface public String renameMotion(String str) { return JsonHelper.a(this.javaScriptCommand.renameMotion(str)); } @JavascriptInterface public String renameProject(String str) { return JsonHelper.a(this.javaScriptCommand.renameProject(str)); } @JavascriptInterface public void resignActiveBranch() { ALog.a(this.TAG).d("重新激活分支"); SensorObservable.getInstance().reActiveObserver(); } @JavascriptInterface public String saveCustomMotion(String str) { return JsonHelper.a(this.javaScriptCommand.saveCustomMotion(str)); } public void setCourse(Course course) { this.course = course; } public void setDialogBlocklyWebView(DialogBlocklyWebView dialogBlocklyWebView) { this.dialogBlocklyWebView = dialogBlocklyWebView; } protected void setJSResult(String str, String... strArr) { StringBuilder sb = new StringBuilder(); sb.append("javascript:"); sb.append(str); sb.append("("); if (strArr != null && strArr.length > 0) { for (int i = 0; i < strArr.length; i++) { sb.append("'"); sb.append(strArr[i]); sb.append("'"); if (i < strArr.length - 1) { sb.append(","); } } } sb.append(")"); final String sb2 = sb.toString(); Log.i(this.TAG, sb2); this.webView.post(new Runnable() { // from class: com.ubt.jimu.blockly.command.JimuJavascriptInterface.1 @Override // java.lang.Runnable public void run() { JimuJavascriptInterface.this.webView.loadUrl(sb2); } }); } public void setJimuRobot(JimuRobot jimuRobot) { } @JavascriptInterface public boolean startRecordAudio() { if (!PermissionHelper.a(this.context, "android.permission.RECORD_AUDIO")) { this.webView.post(new Runnable() { // from class: com.ubt.jimu.blockly.command.JimuJavascriptInterface.3 @Override // java.lang.Runnable public void run() { JimuPermissionRequest.a((Activity) JimuJavascriptInterface.this.context, (PermissionRequestListener) null); } }); return false; } String formatId = Utils.getFormatId(System.currentTimeMillis()); try { return AudioRecoder.getInstance().startRecord((this.jimuRobot.getCustomSounds() + formatId) + File.separator + formatId + AudioParams.AAC); } catch (Exception e) { e.printStackTrace(); Log.e(this.TAG, "录音失败"); return false; } } @JavascriptInterface public void stopPlayAudio() { AudioPlayer.getInstance().stop(); } @JavascriptInterface public void stopRecordAudio() { AudioRecoder.getInstance().stopRecod(); } @JavascriptInterface public void successDeal(String str) { this.javaScriptCommand.successDeal(str); } @JavascriptInterface public void unRegisterAllSensorObserver() { ALog.a(this.TAG).d("删除所有的观察者"); SensorObservable.getInstance().deleteObservers(); SensorObservable.getInstance().clearActiveObserver(); } @JavascriptInterface public void unRegisterSensorObserver(String str) { ALog.a(this.TAG).d("删除观察者:" + str); SensorObservable.getInstance().deleteObserver((SensorObserver) JsonHelper.a(str, (Class) SensorObserver.class)); } @JavascriptInterface public String verifyCourse(String str, String str2) { String check = new BlocklyDomCompare().check(str, str2); Log.i(this.TAG, check); return check; } @JavascriptInterface @Deprecated public String versionSwitch(String str) { return ""; } @JavascriptInterface public void recordEvent(String str) { this.javaScriptCommand.recordEvent(str); } }