Browse Source

011 涂鸦步骤 代码上传

zhangshenjie 3 months ago
parent
commit
0afae346a8

+ 13 - 0
BusinessCommon/src/main/java/com/develop/common/tuya_bean/TuyaQRUrlBean.java

@@ -0,0 +1,13 @@
+package com.develop.common.tuya_bean;
+
+public class TuyaQRUrlBean  {
+    private String shortUrl;
+
+    public String getShortUrl() {
+        return shortUrl;
+    }
+
+    public void setShortUrl(String shortUrl) {
+        this.shortUrl = shortUrl;
+    }
+}

+ 11 - 5
BusinessCommon/src/main/java/com/develop/common/utils/TuyaUtilsSo.java

@@ -3,8 +3,11 @@ package com.develop.common.utils;
 import android.content.Context;
 import android.util.Log;
 
+import com.develop.common.tuya_bean.TuyaQRUrlBean;
 import com.sun.jna.Pointer;
 
+import org.json.JSONObject;
+
 public class TuyaUtilsSo {
     /**
      * 由于Gradle版本问题,建议jna版本用5.14.0
@@ -93,11 +96,14 @@ public class TuyaUtilsSo {
                 if (message.equals("SOC TUYA-Cloud Status:3")){
                     tuyaNetwork = true;
                 }
-                if (message.contains("shorturl")){
-//                    String msg = message;
-//                    //去空格
-//                    String noSpaces = msg.replaceAll("\\s+", "");
-
+                if (message.contains("qrCodeUrl")){
+                    String msg = message;
+                    // 查找 "qrCodeUrl:" 之后的部分
+                    int startIndex = msg.indexOf("qrCodeUrl:") + "qrCodeUrl:".length();
+                    // 截取二维码 URL 部分
+                    String result = msg.substring(startIndex).trim();
+                    TuyaQRUrlBean bean = GsonUtils.GsonToBean(result,TuyaQRUrlBean.class);
+                    shorturl = bean.getShortUrl();
 
                 }
 

+ 4 - 3
BusinessSetting/src/main/java/com/develop/setting/ui/TuyaActivity.kt

@@ -15,6 +15,7 @@ import com.develop.common.tag.ISTUYA
 import com.develop.common.ui.CommonBindingActivity
 import com.develop.common.utils.QRCodeUtils
 import com.develop.common.utils.TuyaUtils
+import com.develop.common.utils.TuyaUtilsSo
 import com.develop.setting.databinding.ActivityTuyaBinding
 import com.google.gson.Gson
 import com.tuya.smartai.iot_sdk.*
@@ -65,11 +66,11 @@ class TuyaActivity : CommonBindingActivity<ActivityTuyaBinding>() {
             binding.tvContent.updateText(getString(com.develop.common.R.string.tuya_app_content))
 
             //  TuyaUtils.qrcodeUrl != "" && !TuyaUtils.init 以前图标
-            if(TuyaUtils.qrcodeUrl != "" && !TuyaUtils.init ){
+            if(TuyaUtilsSo.getInstance().shorturl != "" && TuyaUtilsSo.getInstance().tuyaInitSuccess){
                 //init关乎是否有其他手机连接
                 //有设备连接需要显示cancelBtn按钮
 
-                performBackgroundTaskAndUpdateUI(TuyaUtils.qrcodeUrl)
+                performBackgroundTaskAndUpdateUI(TuyaUtilsSo.getInstance().shorturl)
 
 //                ThreadUtils.runOnMainThread {
 //                    val bitmap = QRCodeUtils.createQRCodeBitmap(TuyaUtils.qrcodeUrl, 500, 500)
@@ -79,7 +80,7 @@ class TuyaActivity : CommonBindingActivity<ActivityTuyaBinding>() {
             }else{
                 binding.cancelWrapper.visibility = View.VISIBLE
                 binding.cancelBtn.setOnClickListener{
-                    TuyaUtils.cancelBind()
+//                    TuyaUtils.cancelBind()
                 }
             }
         }else{

+ 6 - 1
BusinessStep/src/main/java/com/develop/step/ui/cook_step/CookStepActivity.kt

@@ -101,6 +101,11 @@ class CookStepActivity : CookStepBaseActivity() {
     @Autowired(name = "tuya_step")
     var tuyaStep: String? = null
 
+    @JvmField
+    @Autowired(name = "tuya_recipe")
+    var tuyaRecipe: String? = null
+
+
     @JvmField
     @Autowired(name = "portionSizelJson")
     var portionSizelJson: String? = null
@@ -170,7 +175,7 @@ class CookStepActivity : CookStepBaseActivity() {
         isModelNum = getModelNum()
         isNight = isNightTheme()
         viewModel.tuyaStepJson = tuyaStep ?:""
-
+        viewModel.tuyaRecipeJson = tuyaRecipe ?:""
 
         keep = intent.extras?.getBoolean("keep", false) ?: false
 

+ 2 - 0
BusinessStep/src/main/java/com/develop/step/ui/recipes_detail/CookDetailActivity.kt

@@ -14,6 +14,7 @@ import com.develop.base.ext.load
 import com.alibaba.android.arouter.facade.annotation.Autowired
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.alibaba.android.arouter.launcher.ARouter
+import com.blankj.utilcode.util.GsonUtils
 import com.blankj.utilcode.util.ToastUtils
 import com.develop.base.ext.*
 import com.develop.base.util.MMkvUtils
@@ -633,6 +634,7 @@ class CookDetailActivity : CommonBVMActivity<ActivityCookDetailBinding, CookDeta
             withInt("stepIndex", step)
             if (viewModel.isTuyaStep){
                 withString("tuya_step",stepJson)
+                withString("tuya_recipe",viewModel.tuyaRecipe)
             }
         }
     }

+ 2 - 1
BusinessStep/src/main/java/com/develop/step/viewmodel/CookDetailViewModel.kt

@@ -52,6 +52,7 @@ class CookDetailViewModel : BaseViewModel() {
 
     var recipeNumber: String? = null
     private var mRecipeUrl: String? = null
+    var tuyaRecipe = ""
 
     //是否线上菜谱
     var isRemote = false
@@ -93,7 +94,7 @@ class CookDetailViewModel : BaseViewModel() {
 
                         //食谱
                         val detailInfo = getTuyaRecipes(t,number, lang)
-
+                        tuyaRecipe = GsonUtils.toJson(detailInfo.recipe)
                         stepLiveDataString.postValue(GsonUtils.toJson(devRecipeCookingStep))
                         portionSizeLiveData.postValue(detailInfo.portionSize.firstOrNull())
                         recipeLiveData.postValue(detailInfo)

+ 6 - 1
BusinessStep/src/main/java/com/develop/step/viewmodel/CookStepViewModel.kt

@@ -29,6 +29,7 @@ class CookStepViewModel : BaseViewModel() {
 
     var stepIndex = 0
     var tuyaStepJson = ""
+    var tuyaRecipeJson = ""
     // 默认属性, 只读
     val dataCopy = mutableListOf<CookStepUiData>()
     val allSteps = CopyOnWriteArrayList<CookStepStatus>()
@@ -40,7 +41,11 @@ class CookStepViewModel : BaseViewModel() {
     fun queryRecipeCookStep(number: String, currentStepIndex: Int = 0) {
         FoodDataProvider.getDatabase().runInTransaction {
             allSteps.clear()
-            recipe =  FoodDataProvider.getDatabase().recipeDao().queryRecipe(number)
+            recipe = if (tuyaRecipeJson == ""){
+                FoodDataProvider.getDatabase().recipeDao().queryRecipe(number)
+            }else{
+                GsonUtils.GsonToBean<DevRecipe>(tuyaRecipeJson,DevRecipe::class.java)
+            }
             recipe?.apply {
                 recipeLiveData.postValue(this)
             }

BIN
app/src/main/jniLibs/arm64-v8a/libtuya_api.so


BIN
app/src/main/jniLibs/armeabi-v7a/libtuya_api.so