Browse Source

合并文件上传

zhangshenjie 3 weeks ago
parent
commit
6f3ec3159a
100 changed files with 3335 additions and 145 deletions
  1. 8 0
      BusinessAirFryer/src/main/assets/config.json
  2. 326 0
      BusinessAirFryer/src/main/assets/config_000B.json
  3. 212 0
      BusinessAirFryer/src/main/assets/config_010IH.json
  4. 2 2
      BusinessAirFryer/src/main/assets/config_011.json
  5. 259 0
      BusinessAirFryer/src/main/assets/config_011F.json
  6. 326 0
      BusinessAirFryer/src/main/assets/config_050.json
  7. 4 4
      BusinessAirFryer/src/main/assets/config_054.json
  8. 1 2
      BusinessAirFryer/src/main/assets/config_063.json
  9. 3 3
      BusinessAirFryer/src/main/assets/config_077.json
  10. 212 0
      BusinessAirFryer/src/main/assets/config_083.json
  11. 332 0
      BusinessAirFryer/src/main/assets/config_084.json
  12. 335 0
      BusinessAirFryer/src/main/assets/config_085.json
  13. 18 15
      BusinessAirFryer/src/main/assets/lang_config_000.json
  14. 182 0
      BusinessAirFryer/src/main/assets/lang_config_050.json
  15. 1 1
      BusinessAirFryer/src/main/assets/lang_config_077.json
  16. 180 0
      BusinessAirFryer/src/main/assets/lang_config_083.json
  17. 182 0
      BusinessAirFryer/src/main/assets/lang_config_084.json
  18. 196 0
      BusinessAirFryer/src/main/assets/lang_config_085.json
  19. BIN
      BusinessAirFryer/src/main/res/drawable-xxxhdpi/icon_lang_fa.png
  20. 13 2
      BusinessAuth/src/main/java/com/develop/auth/ui/MemberAuthActivity.kt
  21. 2 1
      BusinessAuth/src/main/java/com/develop/auth/ui/MemberForgotFragment.kt
  22. 1 0
      BusinessAuth/src/main/res/layout/activity_member_auth.xml
  23. 1 0
      BusinessAuth/src/main/res/layout/fragment_member_forgot.xml
  24. 1 0
      BusinessAuth/src/main/res/layout/fragment_member_launch.xml
  25. 3 1
      BusinessAuth/src/main/res/layout/fragment_member_login.xml
  26. 3 1
      BusinessAuth/src/main/res/layout/fragment_member_profile.xml
  27. 3 1
      BusinessAuth/src/main/res/layout/fragment_member_register.xml
  28. 29 0
      BusinessCommon/src/main/java/com/develop/common/bean/TranslateBean.java
  29. 176 2
      BusinessCommon/src/main/java/com/develop/common/data_repo/db/DataFactory.kt
  30. 3 0
      BusinessCommon/src/main/java/com/develop/common/data_repo/db/dao/UserInfoDao.kt
  31. 5 5
      BusinessCommon/src/main/java/com/develop/common/data_repo/db/entity/DevRecipe.kt
  32. 1 1
      BusinessCommon/src/main/java/com/develop/common/data_repo/db/entity/DevRecipeFood.kt
  33. 3 0
      BusinessCommon/src/main/java/com/develop/common/data_repo/net/Api.kt
  34. 79 0
      BusinessCommon/src/main/java/com/develop/common/dialog/LanguageSelectDialog.kt
  35. 99 77
      BusinessCommon/src/main/java/com/develop/common/food_sdk/GlobalDevEvent.kt
  36. 6 2
      BusinessCommon/src/main/java/com/develop/common/food_sdk/TextMcu2DevEventListener.java
  37. 3 0
      BusinessCommon/src/main/java/com/develop/common/food_sdk/ZeroMcu2DevEventListener.java
  38. 2 0
      BusinessCommon/src/main/java/com/develop/common/tag/CommonTag.kt
  39. 4 0
      BusinessCommon/src/main/java/com/develop/common/utils/AppVersionUtil.kt
  40. 41 7
      BusinessCommon/src/main/java/com/develop/common/utils/ConfigUtils.kt
  41. 1 2
      BusinessCommon/src/main/java/com/develop/common/utils/StringUtils.java
  42. 2 0
      BusinessCommon/src/main/java/com/develop/common/utils/TuyaUtils.java
  43. 13 4
      BusinessCommon/src/main/java/com/develop/common/widget/DirectionView.kt
  44. 6 3
      BusinessCommon/src/main/java/com/develop/common/widget/FoodContentView.kt
  45. 22 4
      BusinessCommon/src/main/java/com/develop/common/widget/HomeFilterSortSearchView.kt
  46. 20 3
      BusinessCommon/src/main/java/com/develop/common/widget/HomeFunctionTopBar.kt
  47. 6 1
      BusinessCommon/src/main/java/com/develop/common/widget/RingControlView.kt
  48. 2 0
      BusinessCommon/src/main/java/com/develop/common/widget/TimePickerView.kt
  49. 6 1
      BusinessCommon/src/main/java/com/develop/common/widget/WeightView.kt
  50. BIN
      BusinessCommon/src/main/res/drawable-xhdpi/ic_screensaver_011a.png
  51. BIN
      BusinessCommon/src/main/res/drawable-xhdpi/ic_screensaver_011a_app.png
  52. BIN
      BusinessCommon/src/main/res/drawable-xhdpi/ic_screensaver_011d_app.png
  53. BIN
      BusinessCommon/src/main/res/drawable-xhdpi/ic_screensaver_011e_app.png
  54. BIN
      BusinessCommon/src/main/res/drawable-xxhdpi/ic_screensaver_011a.png
  55. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/account_background_010h.png
  56. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/account_background_010i.png
  57. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/account_background_011a.png
  58. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/account_background_011e_5037.jpg
  59. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/account_background_011e_5037.png
  60. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/account_background_083.png
  61. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/cm_icon_mulsify_054.png
  62. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/connect_tuya.webp
  63. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_011f_bg_1.png
  64. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_011f_bg_2.png
  65. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_011f_bg_3.png
  66. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_011f_bg_4.png
  67. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_bg_000_1.webp
  68. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_bg_000_2.webp
  69. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_bg_000_3.webp
  70. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_bg_000_4.webp
  71. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_bg_011g_1.jpg
  72. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_bg_011g_2.jpg
  73. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_bg_011g_3.jpg
  74. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_bg_011g_4.jpg
  75. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_bg_1.webp
  76. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_bg_2.webp
  77. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_bg_3.webp
  78. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_bg_4.webp
  79. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/guide_bg_011f.png
  80. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/home_bg_011_f.png
  81. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_auto_clean_011_f.png
  82. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_auto_clean_bg_011_f.png
  83. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_boil_water_011_f.png
  84. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_boil_water_bg_011_f.png
  85. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_chop_011_f.png
  86. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_chop_bg_011_f.png
  87. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_citrus_juicer_011_f.png
  88. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_citrus_juicer_bg_011_f.jpg
  89. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_cook_rice_011_f.png
  90. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_cook_rice_bg_011_f.png
  91. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_food_processor_011_f.png
  92. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_food_processor_bg_011_f.png
  93. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_knead_dough_011_f.png
  94. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_knead_dough_bg_011_f.png
  95. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_potato_peeler_011_f.png
  96. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_potato_peeler_bg_011_f.jpg
  97. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_smoothie_011_f.png
  98. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_smoothie_bg_011_f.png
  99. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_sovs_vide_011_f.png
  100. 0 0
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_sovs_vide_bg_011_f.png

+ 8 - 0
BusinessAirFryer/src/main/assets/config.json

@@ -148,6 +148,14 @@
       "devMode": "SOUP",
       "listShow": true
     },
+    {
+      "type": "FERMENT",
+      "name": "ferment",
+      "bg": "ic_mode_ferment",
+      "icon": "ic_grid_ferment",
+      "devMode": "SOUP",
+      "listShow": true
+    },
     {
       "type": "AUTO_CLEAN",
       "name": "auto_clean",

+ 326 - 0
BusinessAirFryer/src/main/assets/config_000B.json

@@ -0,0 +1,326 @@
+{
+  "baseQrUrl": "https://icook.cofarcn.com/h5/index.html",
+  "workModes": [
+    {
+      "type": "ADAPTED_COOKING",
+      "name": "adapted_cooking",
+      "bg": "ic_mode_diy_054",
+      "icon": "ic_grid_adapted_cooking_054",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "BROWN",
+      "name": "brown",
+      "bg": "cm_icon_roast",
+      "icon": "cm_icon_roast",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+    {
+      "type": "ROAST",
+      "name": "roast",
+      "bg": "cm_icon_roast",
+      "icon": "cm_icon_roast",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+
+    {
+      "type": "COOK_EGGS",
+      "name": "cook_eggs",
+      "bg": "cm_icon_cook_eggs_bg",
+      "icon": "cm_icon_cook_eggs",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+    {
+      "type": "WIGHT",
+      "name": "wight",
+      "bg": "ic_mode_weight_054",
+      "icon": "ic_grid_weight_054",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "BOIL_WATER",
+      "name": "boil_water",
+      "bg": "ic_mode_boil_water_054",
+      "icon": "ic_grid_boil_water_054",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "CHOP",
+      "name": "chop",
+      "bg": "ic_mode_chop_054",
+      "icon": "ic_grid_chop_054",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "SLOW_COOK",
+      "name": "slow_cook",
+      "bg": "ic_mode_slow_cook_054",
+      "icon": "ic_grid_slow_cook_054",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "KNEAD_TOUGH",
+      "name": "knead_dough",
+      "bg": "ic_mode_knead_dough_054",
+      "icon": "ic_grid_knead_dough_054",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "STEAM",
+      "name": "steam",
+      "bg": "ic_mode_steam_054",
+      "icon": "ic_grid_steam_054",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "FOOD_PROCESSOR",
+      "name": "food_processor",
+      "bg": "ic_mode_food_processor_054",
+      "icon": "ic_grid_food_processor_054",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "TURBO",
+      "name": "turbo",
+      "bg": "ic_mode_turbo_054",
+      "icon": "ic_grid_turbo_054",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "CITRUS_JUICER",
+      "name": "citrus_juicer",
+      "bg": "ic_mode_citrus_juicer",
+      "icon": "ic_grid_citrus_juicer",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+    {
+      "type": "DICING",
+      "name": "dicing",
+      "bg": "ic_mode_dicing",
+      "icon": "ic_grid_dicing",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+
+    {
+      "type": "POTATO_PEELER",
+      "name": "potato_peeler",
+      "bg": "ic_mode_potato_peeler",
+      "icon": "ic_grid_potato_peeler",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+
+
+
+    {
+      "type": "AF_DIY",
+      "name": "af_diy",
+      "bg": "af_diy_bg",
+      "icon": "af_diy",
+      "devMode": "AIR_FRYER",
+      "listShow": false
+    },
+    {
+      "type": "AF_AIR_FRYER",
+      "name": "af_air_fryer",
+       "bg": "af_air_fryer_bg",
+      "icon": "af_air_fryer",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "WIGHT",
+      "name": "wight",
+      "bg": "ic_mode_weight_054",
+      "icon": "ic_grid_weight_054",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_BAKE",
+      "name": "af_bake",
+      "bg": "af_bake_bg",
+      "icon": "af_bake",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_DRUMSTICKS",
+      "name": "af_drumsticks",
+      "bg": "af_drumsticks_bg",
+      "icon": "af_drumsticks",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_EGG_TART",
+      "name": "af_egg_tart",
+      "bg": "af_egg_tart_bg",
+      "icon": "af_egg_tart",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_PIZZA",
+      "name": "af_pizza",
+      "bg": "af_pizza_bg",
+      "icon": "af_pizza",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_DEHYDRATE",
+      "name": "af_dehydrate",
+      "bg": "af_dehydrate_bg",
+      "icon": "af_dehydrate",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_REHEAT",
+      "name": "af_reheat",
+      "bg": "af_reheat_bg",
+      "icon": "af_reheat",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_CHICKEN_WING",
+      "name": "af_chicken_wing",
+      "bg": "af_chicken_wing_bg",
+      "icon": "af_chicken_wing",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_STEAK",
+      "name": "af_steak",
+      "bg": "af_steak_bg",
+      "icon": "af_steak",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_SEA_FOOD",
+      "name": "af_sea_food",
+      "bg": "af_sea_food_bg",
+      "icon": "af_sea_food",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_VEGETABLE",
+      "name": "af_vegetable",
+      "bg": "af_vegetable_bg",
+      "icon": "af_vegetable",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_MUTTON_CHOP",
+      "name": "af_mutton_chop",
+      "bg": "af_mutton_chop_bg",
+      "icon": "af_mutton_chop",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+
+
+    {
+      "type": "SM_DIY",
+      "name": "sm_diy",
+      "bg": "ic_special_diy_mode_bg",
+      "icon": "ic_special_diy_mode",
+      "devMode": "STAND_MIXER",
+      "listShow": true
+    },
+    {
+      "type": "SM_KNEAD",
+      "name": "sm_knead",
+      "bg": "ic_sm_knead_bg",
+      "icon": "ic_sm_knead",
+      "devMode": "STAND_MIXER",
+      "listShow": true
+    },
+    {
+      "type": "SM_WHISK",
+      "name": "sm_whisk",
+      "bg": "ic_sm_whisk_bg",
+      "icon": "ic_sm_whisk",
+      "devMode": "STAND_MIXER",
+      "listShow": true
+    },
+    {
+      "type": "SM_BEATER",
+      "name": "sm_beater",
+      "bg": "ic_sm_beater_bg",
+      "icon": "ic_sm_beater",
+      "devMode": "STAND_MIXER",
+      "listShow": true
+    },
+    {
+      "type": "SM_SHREDDER",
+      "name": "sm_shredder",
+      "bg": "ic_sm_shredder_bg",
+      "icon": "ic_sm_shredder",
+      "devMode": "STAND_MIXER",
+      "listShow": false
+    },
+    {
+      "type": "SM_MEAT_GRUBDER",
+      "name": "sm_meat_grubder",
+      "bg": "ic_sm_meat_grubder_bg",
+      "icon": "ic_sm_meat_grubder",
+      "devMode": "STAND_MIXER",
+      "listShow": false
+    },
+    {
+      "type": "SM_BLENDER",
+      "name": "sm_blender",
+      "bg": "ic_sm_blender_bg",
+      "icon": "ic_sm_blender",
+      "devMode": "STAND_MIXER",
+      "listShow": false
+    },
+    {
+      "type": "SM_PASTA_MAKER",
+      "name": "sm_pasta_maker",
+      "bg": "ic_sm_pasta_maker_bg",
+      "icon": "ic_sm_pasta_maker",
+      "devMode": "STAND_MIXER",
+      "listShow": false
+    },
+    {
+      "type": "SM_TURBO",
+      "name": "turbo",
+      "bg": "ic_sm_turbo_bg",
+      "icon": "ic_sm_turbo",
+      "devMode": "STAND_MIXER",
+      "listShow": false
+    },
+    {
+      "type": "SM_WIGHT",
+      "name": "wight",
+      "bg": "ic_sm_wight_bg",
+      "icon": "ic_sm_wight",
+      "devMode": "STAND_MIXER",
+      "listShow": true
+    }
+
+
+  ]
+}

+ 212 - 0
BusinessAirFryer/src/main/assets/config_010IH.json

@@ -0,0 +1,212 @@
+{
+  "baseQrUrl": "https://icook.schneiderconsumer.com/h5/index.html",
+  "workModes": [
+    {
+      "type": "ADAPTED_COOKING",
+      "name": "adapted_cooking",
+      "bg": "ic_mode_diy",
+      "icon": "ic_grid_adapted_cooking",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+    {
+      "type": "BROWN",
+      "name": "brown",
+      "bg": "cm_icon_roast",
+      "icon": "cm_icon_roast",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+    {
+      "type": "ROAST",
+      "name": "roast",
+      "bg": "cm_icon_roast",
+      "icon": "cm_icon_roast",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+    {
+      "type": "STEAM",
+      "name": "steam_010",
+      "bg": "ic_mode_steam_054",
+      "icon": "ic_grid_steam_054",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "KNEAD_TOUGH",
+      "name": "knead_dough_010",
+      "bg": "ic_mode_knead_dough_054",
+      "icon": "ic_grid_knead_dough_054",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "SLOW_COOK",
+      "name": "slow_cook_010",
+      "bg": "ic_mode_slow_cook_054",
+      "icon": "ic_grid_slow_cook_054",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "FERMENT",
+      "name": "ferment_010",
+      "bg": "ic_mode_ferment_054",
+      "icon": "ic_grid_ferment_054",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "MULSIFY",
+      "name": "mulsify_010",
+      "bg": "cm_icon_mulsify_054",
+      "icon": "cm_icon_mulsify_054",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "FOOD_PROCESSOR",
+      "name": "food_processor_010",
+      "bg": "ic_mode_food_processor_054",
+      "icon": "ic_grid_food_processor_054",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "CHOP",
+      "name": "chop_010",
+      "bg": "ic_mode_chop_054",
+      "icon": "ic_grid_chop_054",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "WIGHT",
+      "name": "wight_010",
+      "bg": "ic_mode_weight_054",
+      "icon": "ic_grid_weight_054",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "AUTO_CLEAN",
+      "name": "auto_clean_010",
+      "bg": "ic_mode_auto_clean_063",
+      "icon": "ic_auto_clean_063",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "TURBO",
+      "name": "turbo_010",
+      "bg": "ic_mode_turbo_054",
+      "icon": "ic_grid_turbo_054",
+      "devMode": "SOUP",
+      "listShow": true
+    },{
+      "type": "AF_DIY",
+      "name": "af_diy",
+      "bg": "af_diy_bg",
+      "icon": "af_diy",
+      "devMode": "AIR_FRYER",
+      "listShow": false
+    },
+    {
+      "type": "AF_AIR_FRYER",
+      "name": "af_air_fryer",
+      "bg": "af_air_fryer_bg",
+      "icon": "af_air_fryer",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_BAKE",
+      "name": "af_bake",
+      "bg": "af_bake_bg",
+      "icon": "af_bake",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_DRUMSTICKS",
+      "name": "af_drumsticks",
+      "bg": "af_drumsticks_bg",
+      "icon": "af_drumsticks",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_EGG_TART",
+      "name": "af_egg_tart",
+      "bg": "af_egg_tart_bg",
+      "icon": "af_egg_tart",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_PIZZA",
+      "name": "af_pizza",
+      "bg": "af_pizza_bg",
+      "icon": "af_pizza",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_DEHYDRATE",
+      "name": "af_dehydrate",
+      "bg": "af_dehydrate_bg",
+      "icon": "af_dehydrate",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_REHEAT",
+      "name": "af_reheat",
+      "bg": "af_reheat_bg",
+      "icon": "af_reheat",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_CHICKEN_WING",
+      "name": "af_chicken_wing",
+      "bg": "af_chicken_wing_bg",
+      "icon": "af_chicken_wing",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_STEAK",
+      "name": "af_steak",
+      "bg": "af_steak_bg",
+      "icon": "af_steak",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_SEA_FOOD",
+      "name": "af_sea_food",
+      "bg": "af_sea_food_bg",
+      "icon": "af_sea_food",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_VEGETABLE",
+      "name": "af_vegetable",
+      "bg": "af_vegetable_bg",
+      "icon": "af_vegetable",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_MUTTON_CHOP",
+      "name": "af_mutton_chop",
+      "bg": "af_mutton_chop_bg",
+      "icon": "af_mutton_chop",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    }
+  ]
+}

+ 2 - 2
BusinessAirFryer/src/main/assets/config_011.json

@@ -76,7 +76,7 @@
     {
       "type": "SMOOTHIE",
       "name": "smoothie_011",
-      "bg": "ic_a_smoothie_011",
+      "bg": "ic_a_smoothie_bg_011",
       "icon": "ic_a_smoothie_011",
       "devMode": "SOUP",
       "listShow": true
@@ -92,7 +92,7 @@
     {
       "type": "WIGHT",
       "name": "wight_011",
-      "bg": "ic_a_weight_011",
+      "bg": "ic_a_weight_bg_011",
       "icon": "ic_a_weight_011",
       "devMode": "SOUP",
       "listShow": true

+ 259 - 0
BusinessAirFryer/src/main/assets/config_011F.json

@@ -0,0 +1,259 @@
+{
+  "baseQrUrl": "https://icook.cofarcn.com/h5/index.html",
+  "workModes": [
+    {
+      "type": "ADAPTED_COOKING",
+      "name": "adapted_cooking_011",
+      "bg": "ic_mode_diy",
+      "icon": "ic_grid_adapted_cooking",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+    {
+      "type": "KNEAD_TOUGH",
+      "name": "knead_011",
+      "bg": "ic_a_knead_dough_bg_011_f",
+      "icon": "ic_a_knead_dough_011_f",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "STEAM",
+      "name": "steam_011",
+      "bg": "ic_a_steam_bg_011_f",
+      "icon": "ic_a_steam_011_f",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "BOIL_WATER",
+      "name": "boil_water_011",
+      "bg": "ic_a_boil_water_bg_011_f",
+      "icon": "ic_a_boil_water_011_f",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "SOVS_VIDE",
+      "name": "sovs_vide_011",
+      "bg": "ic_a_sovs_vide_bg_011_f",
+      "icon": "ic_a_sovs_vide_011_f",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "COOK_RICE",
+      "name": "cook_rice_011",
+      "bg": "ic_a_cook_rice_bg_011_f",
+      "icon": "ic_a_cook_rice_011_f",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "FOOD_PROCESSOR",
+      "name": "food_processor_011",
+      "bg": "ic_a_food_processor_bg_011_f",
+      "icon": "ic_a_food_processor_011_f",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "CHOP",
+      "name": "chop_011",
+      "bg": "ic_a_chop_bg_011_f",
+      "icon": "ic_a_chop_011_f",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "TURBO",
+      "name": "turbo_011",
+      "bg": "ic_a_turbo_bg_011_f",
+      "icon": "ic_a_turbo_011_f",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "SMOOTHIE",
+      "name": "smoothie_011",
+      "bg": "ic_a_smoothie_bg_011_f",
+      "icon": "ic_a_smoothie_011_f",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "AUTO_CLEAN",
+      "name": "auto_clean_011",
+      "bg": "ic_a_auto_clean_bg_011_f",
+      "icon": "ic_a_auto_clean_011_f",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "WIGHT",
+      "name": "wight_011",
+      "bg": "ic_a_weight_bg_011_f",
+      "icon": "ic_a_weight_011_f",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+
+    {
+      "type": "DICING",
+      "name": "dicing_011",
+      "bg": "ic_a_dicing_bg_011",
+      "icon": "ic_a_dicing_011",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+    {
+      "type": "CITRUS_JUICER",
+      "name": "citrus_juicer_011",
+      "bg": "ic_a_citrus_juicer_bg_011_f",
+      "icon": "ic_a_citrus_juicer_011_f",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+
+    {
+      "type": "POTATO_PEELER",
+      "name": "potato_peeler_011",
+      "bg": "ic_a_potato_peeler_bg_011_f",
+      "icon": "ic_a_potato_peeler_011_f",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+
+    {
+      "type": "SLOW_COOK",
+      "name": "slow_cook",
+      "bg": "ic_a_slow_cook_bg",
+      "icon": "ic_a_slow_cook",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+    {
+      "type": "COOK_EGGS",
+      "name": "cook_eggs",
+      "bg": "cm_icon_cook_eggs",
+      "icon": "cm_icon_cook_eggs",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+
+
+
+    {
+      "type": "AF_DIY",
+      "name": "af_diy",
+      "bg": "af_diy_bg",
+      "icon": "af_diy",
+      "devMode": "AIR_FRYER",
+      "listShow": false
+    },
+    {
+      "type": "AF_AIR_FRYER",
+      "name": "af_air_fryer",
+      "bg": "af_air_fryer_bg_011",
+      "icon": "af_air_fryer_011",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_BAKE",
+      "name": "af_bake",
+      "bg": "af_bake_bg_011",
+      "icon": "af_bake_011",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_DRUMSTICKS",
+      "name": "af_drumsticks",
+      "bg": "af_drumsticks_bg_011",
+      "icon": "af_drumsticks_011",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_EGG_TART",
+      "name": "af_egg_tart",
+      "bg": "af_egg_tart_bg",
+      "icon": "af_egg_tart",
+      "devMode": "AIR_FRYER",
+      "listShow": false
+    },
+    {
+      "type": "AF_PIZZA",
+      "name": "af_pizza",
+      "bg": "af_pizza_bg_011",
+      "icon": "af_pizza_011",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_DEHYDRATE",
+      "name": "af_dehydrate",
+      "bg": "af_dehydrate_bg_011",
+      "icon": "af_dehydrate_011",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_REHEAT",
+      "name": "af_reheat",
+      "bg": "af_reheat_bg_011",
+      "icon": "af_reheat_011",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_CHICKEN_WING",
+      "name": "af_chicken_wing",
+      "bg": "af_a_chicken_wing_bg_011",
+      "icon": "af_a_chicken_wing_011",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_STEAK",
+      "name": "af_steak",
+      "bg": "af_steak_bg_011",
+      "icon": "af_steak_011",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_SEA_FOOD",
+      "name": "af_sea_food",
+      "bg": "af_sea_food_bg_011",
+      "icon": "af_sea_food_011",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_VEGETABLE",
+      "name": "af_vegetable",
+      "bg": "af_vegetable_bg_011",
+      "icon": "af_vegetable_011",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_MUTTON_CHOP",
+      "name": "af_mutton_chop",
+      "bg": "af_mutton_chop_bg",
+      "icon": "af_mutton_chop",
+      "devMode": "AIR_FRYER",
+      "listShow": false
+    },
+    {
+      "type": "WIGHT",
+      "name": "wight_011",
+      "bg": "ic_a_weight_011",
+      "icon": "ic_a_weight_011",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    }
+  ]
+}

+ 326 - 0
BusinessAirFryer/src/main/assets/config_050.json

@@ -0,0 +1,326 @@
+{
+  "baseQrUrl": "https://icook.cofarcn.com/h5/index.html",
+  "workModes": [
+    {
+      "type": "ADAPTED_COOKING",
+      "name": "adapted_cooking",
+      "bg": "ic_mode_diy",
+      "icon": "ic_grid_adapted_cooking",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "BROWN",
+      "name": "brown",
+      "bg": "cm_icon_roast",
+      "icon": "cm_icon_roast",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+    {
+      "type": "ROAST",
+      "name": "roast",
+      "bg": "cm_icon_roast",
+      "icon": "cm_icon_roast",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+
+    {
+      "type": "COOK_EGGS",
+      "name": "cook_eggs",
+      "bg": "cm_icon_cook_eggs_bg",
+      "icon": "cm_icon_cook_eggs",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+    {
+      "type": "WIGHT",
+      "name": "wight",
+      "bg": "ic_mode_weight",
+      "icon": "ic_grid_weight",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "BOIL_WATER",
+      "name": "boil_water",
+      "bg": "ic_mode_boil_water",
+      "icon": "ic_grid_boil_water",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "CHOP",
+      "name": "chop",
+      "bg": "ic_mode_chop",
+      "icon": "ic_grid_chop",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "SLOW_COOK",
+      "name": "slow_cook",
+      "bg": "ic_mode_slow_cook",
+      "icon": "ic_grid_slow_cook",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "KNEAD_TOUGH",
+      "name": "knead_dough",
+      "bg": "ic_mode_knead_dough",
+      "icon": "ic_grid_knead_dough",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "STEAM",
+      "name": "steam",
+      "bg": "ic_mode_steam",
+      "icon": "ic_grid_steam",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "FOOD_PROCESSOR",
+      "name": "food_processor",
+      "bg": "ic_mode_food_processor",
+      "icon": "ic_grid_food_processor",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "TURBO",
+      "name": "turbo",
+      "bg": "ic_mode_turbo",
+      "icon": "ic_grid_turbo",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "CITRUS_JUICER",
+      "name": "citrus_juicer",
+      "bg": "ic_mode_citrus_juicer",
+      "icon": "ic_grid_citrus_juicer",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+    {
+      "type": "DICING",
+      "name": "dicing",
+      "bg": "ic_mode_dicing",
+      "icon": "ic_grid_dicing",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+
+    {
+      "type": "POTATO_PEELER",
+      "name": "potato_peeler",
+      "bg": "ic_mode_potato_peeler",
+      "icon": "ic_grid_potato_peeler",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+
+
+
+    {
+      "type": "AF_DIY",
+      "name": "af_diy",
+      "bg": "af_diy_bg",
+      "icon": "af_diy",
+      "devMode": "AIR_FRYER",
+      "listShow": false
+    },
+    {
+      "type": "AF_AIR_FRYER",
+      "name": "af_air_fryer",
+       "bg": "af_air_fryer_bg",
+      "icon": "af_air_fryer",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "WIGHT",
+      "name": "wight",
+      "bg": "ic_mode_weight",
+      "icon": "ic_grid_weight",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_BAKE",
+      "name": "af_bake",
+      "bg": "af_bake_bg",
+      "icon": "af_bake",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_DRUMSTICKS",
+      "name": "af_drumsticks",
+      "bg": "af_drumsticks_bg",
+      "icon": "af_drumsticks",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_EGG_TART",
+      "name": "af_egg_tart",
+      "bg": "af_egg_tart_bg",
+      "icon": "af_egg_tart",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_PIZZA",
+      "name": "af_pizza",
+      "bg": "af_pizza_bg",
+      "icon": "af_pizza",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_DEHYDRATE",
+      "name": "af_dehydrate",
+      "bg": "af_dehydrate_bg",
+      "icon": "af_dehydrate",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_REHEAT",
+      "name": "af_reheat",
+      "bg": "af_reheat_bg",
+      "icon": "af_reheat",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_CHICKEN_WING",
+      "name": "af_chicken_wing",
+      "bg": "af_chicken_wing_bg",
+      "icon": "af_chicken_wing",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_STEAK",
+      "name": "af_steak",
+      "bg": "af_steak_bg",
+      "icon": "af_steak",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_SEA_FOOD",
+      "name": "af_sea_food",
+      "bg": "af_sea_food_bg",
+      "icon": "af_sea_food",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_VEGETABLE",
+      "name": "af_vegetable",
+      "bg": "af_vegetable_bg",
+      "icon": "af_vegetable",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_MUTTON_CHOP",
+      "name": "af_mutton_chop",
+      "bg": "af_mutton_chop_bg",
+      "icon": "af_mutton_chop",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+
+
+    {
+      "type": "SM_DIY",
+      "name": "sm_diy",
+      "bg": "ic_special_diy_mode_bg",
+      "icon": "ic_special_diy_mode",
+      "devMode": "STAND_MIXER",
+      "listShow": true
+    },
+    {
+      "type": "SM_KNEAD",
+      "name": "sm_knead",
+      "bg": "ic_sm_knead_bg",
+      "icon": "ic_sm_knead",
+      "devMode": "STAND_MIXER",
+      "listShow": true
+    },
+    {
+      "type": "SM_WHISK",
+      "name": "sm_whisk",
+      "bg": "ic_sm_whisk_bg",
+      "icon": "ic_sm_whisk",
+      "devMode": "STAND_MIXER",
+      "listShow": true
+    },
+    {
+      "type": "SM_BEATER",
+      "name": "sm_beater",
+      "bg": "ic_sm_beater_bg",
+      "icon": "ic_sm_beater",
+      "devMode": "STAND_MIXER",
+      "listShow": true
+    },
+    {
+      "type": "SM_SHREDDER",
+      "name": "sm_shredder",
+      "bg": "ic_sm_shredder_bg",
+      "icon": "ic_sm_shredder",
+      "devMode": "STAND_MIXER",
+      "listShow": false
+    },
+    {
+      "type": "SM_MEAT_GRUBDER",
+      "name": "sm_meat_grubder",
+      "bg": "ic_sm_meat_grubder_bg",
+      "icon": "ic_sm_meat_grubder",
+      "devMode": "STAND_MIXER",
+      "listShow": false
+    },
+    {
+      "type": "SM_BLENDER",
+      "name": "sm_blender",
+      "bg": "ic_sm_blender_bg",
+      "icon": "ic_sm_blender",
+      "devMode": "STAND_MIXER",
+      "listShow": false
+    },
+    {
+      "type": "SM_PASTA_MAKER",
+      "name": "sm_pasta_maker",
+      "bg": "ic_sm_pasta_maker_bg",
+      "icon": "ic_sm_pasta_maker",
+      "devMode": "STAND_MIXER",
+      "listShow": false
+    },
+    {
+      "type": "SM_TURBO",
+      "name": "turbo",
+      "bg": "ic_sm_turbo_bg",
+      "icon": "ic_sm_turbo",
+      "devMode": "STAND_MIXER",
+      "listShow": false
+    },
+    {
+      "type": "SM_WIGHT",
+      "name": "wight",
+      "bg": "ic_sm_wight_bg",
+      "icon": "ic_sm_wight",
+      "devMode": "STAND_MIXER",
+      "listShow": true
+    }
+
+
+  ]
+}

+ 4 - 4
BusinessAirFryer/src/main/assets/config_054.json

@@ -4,7 +4,7 @@
     {
       "type": "ADAPTED_COOKING",
       "name": "adapted_cooking",
-      "bg": "ic_mode_diy_054",
+      "bg": "ic_mode_diy_054_1",
       "icon": "ic_grid_adapted_cooking_054",
       "devMode": "SOUP",
       "listShow": true
@@ -28,8 +28,8 @@
     {
       "type": "BOIL_WATER",
       "name": "boil_water",
-      "bg": "ic_mode_boil_water_054",
-      "icon": "ic_grid_boil_water_054",
+      "bg": "ic_mode_boil_water_054_1",
+      "icon": "ic_grid_boil_water_054_1",
       "devMode": "SOUP",
       "listShow": true
     },
@@ -76,7 +76,7 @@
     {
       "type": "TURBO",
       "name": "turbo",
-      "bg": "ic_mode_turbo_054",
+      "bg": "ic_mode_turbo_054_1",
       "icon": "ic_grid_turbo_054",
       "devMode": "SOUP",
       "listShow": true

+ 1 - 2
BusinessAirFryer/src/main/assets/config_063.json

@@ -9,14 +9,13 @@
       "devMode": "SOUP",
       "listShow": true
     },
-
     {
       "type": "ADAPTED_COOKING",
       "name": "adapted_cooking",
       "bg": "ic_mode_diy",
       "icon": "ic_grid_adapted_cooking",
       "devMode": "SOUP",
-      "listShow": true
+      "listShow": false
     },
     {
       "type": "COOK_EGGS",

+ 3 - 3
BusinessAirFryer/src/main/assets/config_077.json

@@ -92,7 +92,7 @@
       "bg": "ic_a_dicing_bg_011",
       "icon": "ic_a_dicing_011",
       "devMode": "SOUP",
-      "listShow": true
+      "listShow": false
     },
     {
       "type": "CITRUS_JUICER",
@@ -100,7 +100,7 @@
       "bg": "ic_a_citrus_juicer_bg_011",
       "icon": "ic_a_citrus_juicer_011",
       "devMode": "SOUP",
-      "listShow": true
+      "listShow": false
     },
 
     {
@@ -109,7 +109,7 @@
       "bg": "ic_a_potato_peeler_bg_011",
       "icon": "ic_a_potato_peeler_011",
       "devMode": "SOUP",
-      "listShow": true
+      "listShow": false
     },
 
 

+ 212 - 0
BusinessAirFryer/src/main/assets/config_083.json

@@ -0,0 +1,212 @@
+{
+  "baseQrUrl": "https://icook.cofarcn.com/h5/index.html",
+  "workModes": [
+    {
+      "type": "ADAPTED_COOKING",
+      "name": "adapted_cooking",
+      "bg": "ic_mode_diy",
+      "icon": "ic_grid_adapted_cooking",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+    {
+      "type": "BROWN",
+      "name": "brown",
+      "bg": "cm_icon_roast",
+      "icon": "cm_icon_roast",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+    {
+      "type": "ROAST",
+      "name": "roast",
+      "bg": "cm_icon_roast",
+      "icon": "cm_icon_roast",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+    {
+      "type": "STEAM",
+      "name": "steam_010",
+      "bg": "ic_mode_steam_054",
+      "icon": "ic_grid_steam_054",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "KNEAD_TOUGH",
+      "name": "knead_dough_010",
+      "bg": "ic_mode_knead_dough_054",
+      "icon": "ic_grid_knead_dough_054",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "SLOW_COOK",
+      "name": "slow_cook_010",
+      "bg": "ic_mode_slow_cook_054",
+      "icon": "ic_grid_slow_cook_054",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "FERMENT",
+      "name": "ferment_010",
+      "bg": "ic_mode_ferment_054",
+      "icon": "ic_grid_ferment_054",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "MULSIFY",
+      "name": "mulsify_010",
+      "bg": "cm_icon_mulsify_054",
+      "icon": "cm_icon_mulsify_054",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "FOOD_PROCESSOR",
+      "name": "food_processor_010",
+      "bg": "ic_mode_food_processor_054",
+      "icon": "ic_grid_food_processor_054",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "CHOP",
+      "name": "chop_010",
+      "bg": "ic_mode_chop_054",
+      "icon": "ic_grid_chop_054",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "WIGHT",
+      "name": "wight_010",
+      "bg": "ic_mode_weight_054",
+      "icon": "ic_grid_weight_054",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "AUTO_CLEAN",
+      "name": "auto_clean_010",
+      "bg": "ic_mode_auto_clean_063",
+      "icon": "ic_auto_clean_063",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "TURBO",
+      "name": "turbo_010",
+      "bg": "ic_mode_turbo_054",
+      "icon": "ic_grid_turbo_054",
+      "devMode": "SOUP",
+      "listShow": true
+    },{
+      "type": "AF_DIY",
+      "name": "af_diy",
+      "bg": "af_diy_bg",
+      "icon": "af_diy",
+      "devMode": "AIR_FRYER",
+      "listShow": false
+    },
+    {
+      "type": "AF_AIR_FRYER",
+      "name": "af_air_fryer",
+      "bg": "af_air_fryer_bg",
+      "icon": "af_air_fryer",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_BAKE",
+      "name": "af_bake",
+      "bg": "af_bake_bg",
+      "icon": "af_bake",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_DRUMSTICKS",
+      "name": "af_drumsticks",
+      "bg": "af_drumsticks_bg",
+      "icon": "af_drumsticks",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_EGG_TART",
+      "name": "af_egg_tart",
+      "bg": "af_egg_tart_bg",
+      "icon": "af_egg_tart",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_PIZZA",
+      "name": "af_pizza",
+      "bg": "af_pizza_bg",
+      "icon": "af_pizza",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_DEHYDRATE",
+      "name": "af_dehydrate",
+      "bg": "af_dehydrate_bg",
+      "icon": "af_dehydrate",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_REHEAT",
+      "name": "af_reheat",
+      "bg": "af_reheat_bg",
+      "icon": "af_reheat",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_CHICKEN_WING",
+      "name": "af_chicken_wing",
+      "bg": "af_chicken_wing_bg",
+      "icon": "af_chicken_wing",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_STEAK",
+      "name": "af_steak",
+      "bg": "af_steak_bg",
+      "icon": "af_steak",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_SEA_FOOD",
+      "name": "af_sea_food",
+      "bg": "af_sea_food_bg",
+      "icon": "af_sea_food",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_VEGETABLE",
+      "name": "af_vegetable",
+      "bg": "af_vegetable_bg",
+      "icon": "af_vegetable",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_MUTTON_CHOP",
+      "name": "af_mutton_chop",
+      "bg": "af_mutton_chop_bg",
+      "icon": "af_mutton_chop",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    }
+  ]
+}

+ 332 - 0
BusinessAirFryer/src/main/assets/config_084.json

@@ -0,0 +1,332 @@
+{
+  "baseQrUrl": "https://icook.cofarcn.com/h5/index.html",
+  "workModes": [
+    {
+      "type": "ADAPTED_COOKING",
+      "name": "adapted_cooking",
+      "bg": "ic_mode_diy",
+      "icon": "ic_grid_adapted_cooking",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+
+    {
+      "type": "KNEAD_TOUGH",
+      "name": "knead_dough",
+      "bg": "ic_mode_knead_dough",
+      "icon": "ic_grid_knead_dough",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "STEAM",
+      "name": "steam",
+      "bg": "ic_mode_steam",
+      "icon": "ic_grid_steam",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "SLOW_COOK",
+      "name": "slow_cook",
+      "bg": "ic_mode_slow_cook",
+      "icon": "ic_grid_slow_cook",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+
+
+    {
+      "type": "BROWN",
+      "name": "brown",
+      "bg": "cm_icon_roast",
+      "icon": "cm_icon_roast",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+    {
+      "type": "ROAST",
+      "name": "roast",
+      "bg": "cm_icon_roast",
+      "icon": "cm_icon_roast",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+
+    {
+      "type": "COOK_EGGS",
+      "name": "cook_eggs",
+      "bg": "cm_icon_cook_eggs_bg",
+      "icon": "cm_icon_cook_eggs",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+
+    {
+      "type": "BOIL_WATER",
+      "name": "boil_water",
+      "bg": "ic_mode_boil_water",
+      "icon": "ic_grid_boil_water",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "FOOD_PROCESSOR",
+      "name": "food_processor",
+      "bg": "ic_mode_food_processor",
+      "icon": "ic_grid_food_processor",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "CHOP",
+      "name": "chop",
+      "bg": "ic_mode_chop",
+      "icon": "ic_grid_chop",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+
+
+
+    {
+      "type": "TURBO",
+      "name": "turbo",
+      "bg": "ic_mode_turbo",
+      "icon": "ic_grid_turbo",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "CITRUS_JUICER",
+      "name": "citrus_juicer",
+      "bg": "ic_mode_citrus_juicer",
+      "icon": "ic_grid_citrus_juicer",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+    {
+      "type": "DICING",
+      "name": "dicing",
+      "bg": "ic_mode_dicing",
+      "icon": "ic_grid_dicing",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+
+    {
+      "type": "POTATO_PEELER",
+      "name": "potato_peeler",
+      "bg": "ic_mode_potato_peeler",
+      "icon": "ic_grid_potato_peeler",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+
+    {
+      "type": "WIGHT",
+      "name": "wight",
+      "bg": "ic_mode_weight",
+      "icon": "ic_grid_weight",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+
+    {
+      "type": "AF_DIY",
+      "name": "af_diy",
+      "bg": "af_diy_bg",
+      "icon": "af_diy",
+      "devMode": "AIR_FRYER",
+      "listShow": false
+    },
+    {
+      "type": "AF_AIR_FRYER",
+      "name": "af_air_fryer",
+       "bg": "af_air_fryer_bg",
+      "icon": "af_air_fryer",
+      "devMode": "AIR_FRYER",
+      "listShow": false
+    },
+    {
+      "type": "WIGHT",
+      "name": "wight",
+      "bg": "ic_mode_weight",
+      "icon": "ic_grid_weight",
+      "devMode": "AIR_FRYER",
+      "listShow": false
+    },
+    {
+      "type": "AF_BAKE",
+      "name": "af_bake",
+      "bg": "af_bake_bg",
+      "icon": "af_bake",
+      "devMode": "AIR_FRYER",
+      "listShow": false
+    },
+    {
+      "type": "AF_DRUMSTICKS",
+      "name": "af_drumsticks",
+      "bg": "af_drumsticks_bg",
+      "icon": "af_drumsticks",
+      "devMode": "AIR_FRYER",
+      "listShow": false
+    },
+    {
+      "type": "AF_EGG_TART",
+      "name": "af_egg_tart",
+      "bg": "af_egg_tart_bg",
+      "icon": "af_egg_tart",
+      "devMode": "AIR_FRYER",
+      "listShow": false
+    },
+    {
+      "type": "AF_PIZZA",
+      "name": "af_pizza",
+      "bg": "af_pizza_bg",
+      "icon": "af_pizza",
+      "devMode": "AIR_FRYER",
+      "listShow": false
+    },
+    {
+      "type": "AF_DEHYDRATE",
+      "name": "af_dehydrate",
+      "bg": "af_dehydrate_bg",
+      "icon": "af_dehydrate",
+      "devMode": "AIR_FRYER",
+      "listShow": false
+    },
+    {
+      "type": "AF_REHEAT",
+      "name": "af_reheat",
+      "bg": "af_reheat_bg",
+      "icon": "af_reheat",
+      "devMode": "AIR_FRYER",
+      "listShow": false
+    },
+    {
+      "type": "AF_CHICKEN_WING",
+      "name": "af_chicken_wing",
+      "bg": "af_chicken_wing_bg",
+      "icon": "af_chicken_wing",
+      "devMode": "AIR_FRYER",
+      "listShow": false
+    },
+    {
+      "type": "AF_STEAK",
+      "name": "af_steak",
+      "bg": "af_steak_bg",
+      "icon": "af_steak",
+      "devMode": "AIR_FRYER",
+      "listShow": false
+    },
+    {
+      "type": "AF_SEA_FOOD",
+      "name": "af_sea_food",
+      "bg": "af_sea_food_bg",
+      "icon": "af_sea_food",
+      "devMode": "AIR_FRYER",
+      "listShow": false
+    },
+    {
+      "type": "AF_VEGETABLE",
+      "name": "af_vegetable",
+      "bg": "af_vegetable_bg",
+      "icon": "af_vegetable",
+      "devMode": "AIR_FRYER",
+      "listShow": false
+    },
+    {
+      "type": "AF_MUTTON_CHOP",
+      "name": "af_mutton_chop",
+      "bg": "af_mutton_chop_bg",
+      "icon": "af_mutton_chop",
+      "devMode": "AIR_FRYER",
+      "listShow": false
+    },
+
+
+    {
+      "type": "SM_DIY",
+      "name": "sm_diy",
+      "bg": "ic_special_diy_mode_bg",
+      "icon": "ic_special_diy_mode",
+      "devMode": "STAND_MIXER",
+      "listShow": false
+    },
+    {
+      "type": "SM_KNEAD",
+      "name": "sm_knead",
+      "bg": "ic_sm_knead_bg",
+      "icon": "ic_sm_knead",
+      "devMode": "STAND_MIXER",
+      "listShow": false
+    },
+    {
+      "type": "SM_WHISK",
+      "name": "sm_whisk",
+      "bg": "ic_sm_whisk_bg",
+      "icon": "ic_sm_whisk",
+      "devMode": "STAND_MIXER",
+      "listShow": false
+    },
+    {
+      "type": "SM_BEATER",
+      "name": "sm_beater",
+      "bg": "ic_sm_beater_bg",
+      "icon": "ic_sm_beater",
+      "devMode": "STAND_MIXER",
+      "listShow": false
+    },
+    {
+      "type": "SM_SHREDDER",
+      "name": "sm_shredder",
+      "bg": "ic_sm_shredder_bg",
+      "icon": "ic_sm_shredder",
+      "devMode": "STAND_MIXER",
+      "listShow": false
+    },
+    {
+      "type": "SM_MEAT_GRUBDER",
+      "name": "sm_meat_grubder",
+      "bg": "ic_sm_meat_grubder_bg",
+      "icon": "ic_sm_meat_grubder",
+      "devMode": "STAND_MIXER",
+      "listShow": false
+    },
+    {
+      "type": "SM_BLENDER",
+      "name": "sm_blender",
+      "bg": "ic_sm_blender_bg",
+      "icon": "ic_sm_blender",
+      "devMode": "STAND_MIXER",
+      "listShow": false
+    },
+    {
+      "type": "SM_PASTA_MAKER",
+      "name": "sm_pasta_maker",
+      "bg": "ic_sm_pasta_maker_bg",
+      "icon": "ic_sm_pasta_maker",
+      "devMode": "STAND_MIXER",
+      "listShow": false
+    },
+    {
+      "type": "SM_TURBO",
+      "name": "turbo",
+      "bg": "ic_sm_turbo_bg",
+      "icon": "ic_sm_turbo",
+      "devMode": "STAND_MIXER",
+      "listShow": false
+    },
+    {
+      "type": "SM_WIGHT",
+      "name": "wight",
+      "bg": "ic_sm_wight_bg",
+      "icon": "ic_sm_wight",
+      "devMode": "STAND_MIXER",
+      "listShow": false
+    }
+
+
+  ]
+}

+ 335 - 0
BusinessAirFryer/src/main/assets/config_085.json

@@ -0,0 +1,335 @@
+{
+  "baseQrUrl": "https://icook.cofarcn.com/h5/index.html",
+  "workModes": [
+    {
+      "type": "ADAPTED_COOKING",
+      "name": "adapted_cooking",
+      "bg": "ic_mode_diy",
+      "icon": "ic_grid_adapted_cooking",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+    {
+      "type": "BROWN",
+      "name": "brown",
+      "bg": "cm_icon_roast",
+      "icon": "cm_icon_roast",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+    {
+      "type": "ROAST",
+      "name": "roast",
+      "bg": "cm_icon_roast",
+      "icon": "cm_icon_roast",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+
+    {
+      "type": "COOK_EGGS",
+      "name": "cook_eggs",
+      "bg": "cm_icon_cook_eggs_bg",
+      "icon": "cm_icon_cook_eggs",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+
+    {
+      "type": "KNEAD_TOUGH",
+      "name": "knead_dough",
+      "bg": "ic_mode_knead_dough",
+      "icon": "ic_grid_knead_dough",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "STEAM",
+      "name": "steam",
+      "bg": "ic_mode_steam",
+      "icon": "ic_grid_steam",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "SLOW_COOK",
+      "name": "slow_cook",
+      "bg": "ic_mode_slow_cook",
+      "icon": "ic_grid_slow_cook",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "BOIL_WATER",
+      "name": "boil_water",
+      "bg": "ic_mode_boil_water",
+      "icon": "ic_grid_boil_water",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "FOOD_PROCESSOR",
+      "name": "food_processor",
+      "bg": "ic_mode_food_processor",
+      "icon": "ic_grid_food_processor",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "CHOP",
+      "name": "chop",
+      "bg": "ic_mode_chop",
+      "icon": "ic_grid_chop",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "TURBO",
+      "name": "turbo",
+      "bg": "ic_mode_turbo",
+      "icon": "ic_grid_turbo",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+
+    {
+      "type": "WIGHT",
+      "name": "wight",
+      "bg": "ic_mode_weight",
+      "icon": "ic_grid_weight",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {
+      "type": "CITRUS_JUICER",
+      "name": "citrus_juicer",
+      "bg": "ic_mode_citrus_juicer",
+      "icon": "ic_grid_citrus_juicer",
+      "devMode": "SOUP",
+      "listShow": true
+    },
+    {"type": "AUTO_CLEAN",
+    "name": "auto_clean",
+    "bg": "ic_mode_auto_clean_063",
+    "icon": "ic_auto_clean_063",
+    "devMode": "SOUP",
+    "listShow": true
+    },
+    {
+      "type": "DICING",
+      "name": "dicing",
+      "bg": "ic_mode_dicing",
+      "icon": "ic_grid_dicing",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+
+    {
+      "type": "POTATO_PEELER",
+      "name": "potato_peeler",
+      "bg": "ic_mode_potato_peeler",
+      "icon": "ic_grid_potato_peeler",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+
+
+
+    {
+      "type": "AF_DIY",
+      "name": "af_diy",
+      "bg": "af_diy_bg",
+      "icon": "af_diy",
+      "devMode": "AIR_FRYER",
+      "listShow": false
+    },
+    {
+      "type": "AF_AIR_FRYER",
+      "name": "af_air_fryer",
+       "bg": "af_air_fryer_bg",
+      "icon": "af_air_fryer",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "WIGHT",
+      "name": "wight",
+      "bg": "ic_mode_weight",
+      "icon": "ic_grid_weight",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_BAKE",
+      "name": "af_bake",
+      "bg": "af_bake_bg",
+      "icon": "af_bake",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_DRUMSTICKS",
+      "name": "af_drumsticks",
+      "bg": "af_drumsticks_bg",
+      "icon": "af_drumsticks",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_EGG_TART",
+      "name": "af_egg_tart",
+      "bg": "af_egg_tart_bg",
+      "icon": "af_egg_tart",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_PIZZA",
+      "name": "af_pizza",
+      "bg": "af_pizza_bg",
+      "icon": "af_pizza",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_DEHYDRATE",
+      "name": "af_dehydrate",
+      "bg": "af_dehydrate_bg",
+      "icon": "af_dehydrate",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_REHEAT",
+      "name": "af_reheat",
+      "bg": "af_reheat_bg",
+      "icon": "af_reheat",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_CHICKEN_WING",
+      "name": "af_chicken_wing",
+      "bg": "af_chicken_wing_bg",
+      "icon": "af_chicken_wing",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_STEAK",
+      "name": "af_steak",
+      "bg": "af_steak_bg",
+      "icon": "af_steak",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_SEA_FOOD",
+      "name": "af_sea_food",
+      "bg": "af_sea_food_bg",
+      "icon": "af_sea_food",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_VEGETABLE",
+      "name": "af_vegetable",
+      "bg": "af_vegetable_bg",
+      "icon": "af_vegetable",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+    {
+      "type": "AF_MUTTON_CHOP",
+      "name": "af_mutton_chop",
+      "bg": "af_mutton_chop_bg",
+      "icon": "af_mutton_chop",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
+
+
+    {
+      "type": "SM_DIY",
+      "name": "sm_diy",
+      "bg": "ic_special_diy_mode_bg",
+      "icon": "ic_special_diy_mode",
+      "devMode": "STAND_MIXER",
+      "listShow": true
+    },
+    {
+      "type": "SM_KNEAD",
+      "name": "sm_knead",
+      "bg": "ic_sm_knead_bg",
+      "icon": "ic_sm_knead",
+      "devMode": "STAND_MIXER",
+      "listShow": true
+    },
+    {
+      "type": "SM_WHISK",
+      "name": "sm_whisk",
+      "bg": "ic_sm_whisk_bg",
+      "icon": "ic_sm_whisk",
+      "devMode": "STAND_MIXER",
+      "listShow": true
+    },
+    {
+      "type": "SM_BEATER",
+      "name": "sm_beater",
+      "bg": "ic_sm_beater_bg",
+      "icon": "ic_sm_beater",
+      "devMode": "STAND_MIXER",
+      "listShow": true
+    },
+    {
+      "type": "SM_SHREDDER",
+      "name": "sm_shredder",
+      "bg": "ic_sm_shredder_bg",
+      "icon": "ic_sm_shredder",
+      "devMode": "STAND_MIXER",
+      "listShow": false
+    },
+    {
+      "type": "SM_MEAT_GRUBDER",
+      "name": "sm_meat_grubder",
+      "bg": "ic_sm_meat_grubder_bg",
+      "icon": "ic_sm_meat_grubder",
+      "devMode": "STAND_MIXER",
+      "listShow": false
+    },
+    {
+      "type": "SM_BLENDER",
+      "name": "sm_blender",
+      "bg": "ic_sm_blender_bg",
+      "icon": "ic_sm_blender",
+      "devMode": "STAND_MIXER",
+      "listShow": false
+    },
+    {
+      "type": "SM_PASTA_MAKER",
+      "name": "sm_pasta_maker",
+      "bg": "ic_sm_pasta_maker_bg",
+      "icon": "ic_sm_pasta_maker",
+      "devMode": "STAND_MIXER",
+      "listShow": false
+    },
+    {
+      "type": "SM_TURBO",
+      "name": "turbo",
+      "bg": "ic_sm_turbo_bg",
+      "icon": "ic_sm_turbo",
+      "devMode": "STAND_MIXER",
+      "listShow": false
+    },
+    {
+      "type": "SM_WIGHT",
+      "name": "wight",
+      "bg": "ic_sm_wight_bg",
+      "icon": "ic_sm_wight",
+      "devMode": "STAND_MIXER",
+      "listShow": true
+    }
+
+
+  ]
+}

+ 18 - 15
BusinessAirFryer/src/main/assets/lang_config_000.json

@@ -7,6 +7,13 @@
       "showName": "Polski",
       "show": false
     },
+    {
+      "name": "English(英语)",
+      "value": "EN",
+      "icon": "icon_lang_en",
+      "showName": "English",
+      "show": true
+    },
     {
       "name": "German(德语)",
       "value": "DE",
@@ -14,12 +21,20 @@
       "showName": "Deutsch",
       "show": true
     },
+
     {
       "name": "French(法语)",
       "value": "FR",
       "icon": "icon_lang_fr",
       "showName": "Français",
-      "show": false
+      "show": true
+    },
+    {
+      "name": "Spanish(西班牙语)",
+      "value": "ES",
+      "icon": "icon_lang_es",
+      "showName": "Español",
+      "show": true
     },
     {
       "name": "Dutch(荷兰语)",
@@ -35,13 +50,7 @@
       "showName": "Português",
       "show": false
     },
-    {
-      "name": "Spanish(西班牙语)",
-      "value": "ES",
-      "icon": "icon_lang_es",
-      "showName": "Español",
-      "show": false
-    },
+  
     {
       "name": "Italiano(意大利语)",
       "value": "IT",
@@ -49,13 +58,7 @@
       "showName": "Italiano",
       "show": false
     },
-    {
-      "name": "English(英语)",
-      "value": "EN",
-      "icon": "icon_lang_en",
-      "showName": "English",
-      "show": true
-    },
+
     {
       "name": "Greek(希腊语)",
       "value": "GR",

+ 182 - 0
BusinessAirFryer/src/main/assets/lang_config_050.json

@@ -0,0 +1,182 @@
+{
+  "langs": [
+    {
+      "name": "Polish(波兰语)",
+      "value": "PL",
+      "icon": "icon_lang_pl",
+      "showName": "Polski",
+      "show": false
+    },
+    {
+      "name": "English(英语)",
+      "value": "EN",
+      "icon": "icon_lang_en",
+      "showName": "English",
+      "show": true
+    },
+    {
+      "name": "German(德语)",
+      "value": "DE",
+      "icon": "icon_lang_de",
+      "showName": "Deutsch",
+      "show": false
+    },
+
+    {
+      "name": "French(法语)",
+      "value": "FR",
+      "icon": "icon_lang_fr",
+      "showName": "Français",
+      "show": false
+    },
+    {
+      "name": "Spanish(西班牙语)",
+      "value": "ES",
+      "icon": "icon_lang_es",
+      "showName": "Español",
+      "show": false
+    },
+    {
+      "name": "Dutch(荷兰语)",
+      "value": "NL",
+      "icon": "icon_lang_nl",
+      "showName": "Nederlands",
+      "show": false
+    },
+    {
+      "name": "Portuguese(葡萄牙语)",
+      "value": "PT",
+      "icon": "icon_lang_pt",
+      "showName": "Português",
+      "show": false
+    },
+  
+    {
+      "name": "Italiano(意大利语)",
+      "value": "IT",
+      "icon": "icon_lang_it",
+      "showName": "Italiano",
+      "show": false
+    },
+
+    {
+      "name": "Greek(希腊语)",
+      "value": "GR",
+      "icon": "icon_lang_gr",
+      "showName": "Ελληνικά",
+      "show": false
+    },
+    {
+      "name": "Russian(俄语)",
+      "value": "RU",
+      "icon": "icon_lang_ru",
+      "showName": "Русский",
+      "show": false
+    },
+    {
+      "name": "Romanian(罗马尼亚语)",
+      "value": "RO",
+      "icon": "icon_lang_ro",
+      "showName": "Română",
+      "show": false
+    },
+    {
+      "name": "Finnish(芬兰语)",
+      "value": "FI",
+      "icon": "icon_lang_fi",
+      "showName": "Suomi",
+      "show": false
+    },
+    {
+      "name": "Norsk(挪威语)",
+      "value": "NO",
+      "icon": "icon_lang_no",
+      "showName": "Norsk",
+      "show": false
+    },
+    {
+      "name": "Swedish(瑞典语)",
+      "value": "SE",
+      "icon": "icon_lang_se",
+      "showName": "Svenska",
+      "show": false
+    },
+    {
+      "name": "Danish(丹麦语)",
+      "value": "DK",
+      "icon": "icon_lang_dk",
+      "showName": "Dansk",
+      "show": false
+    },
+    {
+      "name": "Czech(捷克语)",
+      "value": "CZ",
+      "icon": "icon_lang_cz",
+      "showName": "Čeština",
+      "show": false
+    },
+    {
+      "name": "Estonki(爱沙尼亚语)",
+      "value": "EE",
+      "icon": "icon_lang_ee",
+      "showName": "Eesti keel",
+      "show": false
+    },
+    {
+      "name": "Slovak(斯洛伐克语)",
+      "value": "SK",
+      "icon": "icon_lang_sk",
+      "showName": "Slovenčina",
+      "show": false
+    },
+    {
+      "name": "Ukrainian(乌克兰语)",
+      "value": "UK",
+      "icon": "icon_lang_uk",
+      "showName": "Українська",
+      "show": false
+    },
+    {
+      "name": "Arabic(阿拉伯语)",
+      "value": "AR",
+      "icon": "icon_lang_ar",
+      "showName": "العربية",
+      "show": false
+    },
+    {
+      "name": "Lithuanian(立陶宛语)",
+      "value": "LT",
+      "icon": "icon_lang_lt",
+      "showName": "Lietuvių kalba",
+      "show": false
+    },
+    {
+      "name": "Farsi(波斯语)",
+      "value": "IR",
+      "icon": "icon_lang_ir",
+      "showName": "فارسی",
+      "show": false
+    },
+    {
+      "name": "Kazakh(哈萨克语)",
+      "value": "KZ",
+      "icon": "icon_lang_kz",
+      "showName": "Қазақша",
+      "show": false
+    },
+    {
+      "name": "Chinese(中文)",
+      "value": "ZH",
+      "icon": "icon_lang_zh",
+      "showName": "中文",
+      "show": false
+    },
+    {
+      "name": "Japanese(日语)",
+      "value": "JA",
+      "icon": "icon_lang_ja",
+      "showName": "日本語",
+      "show": false
+    }
+  ]
+}

+ 1 - 1
BusinessAirFryer/src/main/assets/lang_config_077.json

@@ -54,7 +54,7 @@
       "value": "EN",
       "icon": "icon_lang_en",
       "showName": "English",
-      "show": false
+      "show": true
     },
     {
       "name": "Greek(希腊语)",

+ 180 - 0
BusinessAirFryer/src/main/assets/lang_config_083.json

@@ -0,0 +1,180 @@
+{
+  "langs": [
+    {
+      "name": "Polish(波兰语)",
+      "value": "PL",
+      "icon": "icon_lang_pl",
+      "showName": "Polski",
+      "show": false
+    },
+    {
+      "name": "French(法语)",
+      "value": "FR",
+      "icon": "icon_lang_fr",
+      "showName": "Français",
+      "show": true
+    },
+    {
+      "name": "German(德语)",
+      "value": "DE",
+      "icon": "icon_lang_de",
+      "showName": "Deutsch",
+      "show": true
+    },
+    {
+      "name": "Italiano(意大利语)",
+      "value": "IT",
+      "icon": "icon_lang_it",
+      "showName": "Italiano",
+      "show": true
+    },
+    {
+      "name": "Dutch(荷兰语)",
+      "value": "NL",
+      "icon": "icon_lang_nl",
+      "showName": "Nederlands",
+      "show": false
+    },
+    {
+      "name": "Portuguese(葡萄牙语)",
+      "value": "PT",
+      "icon": "icon_lang_pt",
+      "showName": "Português",
+      "show": false
+    },
+    {
+      "name": "Spanish(西班牙语)",
+      "value": "ES",
+      "icon": "icon_lang_es",
+      "showName": "Español",
+      "show": false
+    },
+
+    {
+      "name": "English(英语)",
+      "value": "EN",
+      "icon": "icon_lang_en",
+      "showName": "English",
+      "show": false
+    },
+    {
+      "name": "Greek(希腊语)",
+      "value": "GR",
+      "icon": "icon_lang_gr",
+      "showName": "Ελληνικά",
+      "show": false
+    },
+    {
+      "name": "Russian(俄语)",
+      "value": "RU",
+      "icon": "icon_lang_ru",
+      "showName": "Русский",
+      "show": false
+    },
+    {
+      "name": "Romanian(罗马尼亚语)",
+      "value": "RO",
+      "icon": "icon_lang_ro",
+      "showName": "Română",
+      "show": false
+    },
+    {
+      "name": "Finnish(芬兰语)",
+      "value": "FI",
+      "icon": "icon_lang_fi",
+      "showName": "Suomi",
+      "show": false
+    },
+    {
+      "name": "Norsk(挪威语)",
+      "value": "NO",
+      "icon": "icon_lang_no",
+      "showName": "Norsk",
+      "show": false
+    },
+    {
+      "name": "Swedish(瑞典语)",
+      "value": "SE",
+      "icon": "icon_lang_se",
+      "showName": "Svenska",
+      "show": false
+    },
+    {
+      "name": "Danish(丹麦语)",
+      "value": "DK",
+      "icon": "icon_lang_dk",
+      "showName": "Dansk",
+      "show": false
+    },
+    {
+      "name": "Czech(捷克语)",
+      "value": "CZ",
+      "icon": "icon_lang_cz",
+      "showName": "Čeština",
+      "show": false
+    },
+    {
+      "name": "Estonki(爱沙尼亚语)",
+      "value": "EE",
+      "icon": "icon_lang_ee",
+      "showName": "Eesti keel",
+      "show": false
+    },
+    {
+      "name": "Slovak(斯洛伐克语)",
+      "value": "SK",
+      "icon": "icon_lang_sk",
+      "showName": "Slovenčina",
+      "show": false
+    },
+    {
+      "name": "Ukrainian(乌克兰语)",
+      "value": "UK",
+      "icon": "icon_lang_uk",
+      "showName": "Українська",
+      "show": false
+    },
+    {
+      "name": "Arabic(阿拉伯语)",
+      "value": "AR",
+      "icon": "icon_lang_ar",
+      "showName": "العربية",
+      "show": false
+    },
+    {
+      "name": "Lithuanian(立陶宛语)",
+      "value": "LT",
+      "icon": "icon_lang_lt",
+      "showName": "Lietuvių kalba",
+      "show": false
+    },
+    {
+      "name": "Farsi(波斯语)",
+      "value": "IR",
+      "icon": "icon_lang_ir",
+      "showName": "فارسی",
+      "show": false
+    },
+    {
+      "name": "Kazakh(哈萨克语)",
+      "value": "KZ",
+      "icon": "icon_lang_kz",
+      "showName": "Қазақша",
+      "show": false
+    },
+    {
+      "name": "Chinese(中文)",
+      "value": "ZH",
+      "icon": "icon_lang_zh",
+      "showName": "中文",
+      "show": false
+    },
+    {
+      "name": "Japanese(日语)",
+      "value": "JA",
+      "icon": "icon_lang_ja",
+      "showName": "日本語",
+      "show": false
+    }
+  ]
+}

+ 182 - 0
BusinessAirFryer/src/main/assets/lang_config_084.json

@@ -0,0 +1,182 @@
+{
+  "langs": [
+    {
+      "name": "Polish(波兰语)",
+      "value": "PL",
+      "icon": "icon_lang_pl",
+      "showName": "Polski",
+      "show": false
+    },
+    {
+      "name": "English(英语)",
+      "value": "EN",
+      "icon": "icon_lang_en",
+      "showName": "English",
+      "show": false
+    },
+    {
+      "name": "German(德语)",
+      "value": "DE",
+      "icon": "icon_lang_de",
+      "showName": "Deutsch",
+      "show": false
+    },
+
+    {
+      "name": "French(法语)",
+      "value": "FR",
+      "icon": "icon_lang_fr",
+      "showName": "Français",
+      "show": false
+    },
+    {
+      "name": "Spanish(西班牙语)",
+      "value": "ES",
+      "icon": "icon_lang_es",
+      "showName": "Español",
+      "show": false
+    },
+    {
+      "name": "Dutch(荷兰语)",
+      "value": "NL",
+      "icon": "icon_lang_nl",
+      "showName": "Nederlands",
+      "show": false
+    },
+    {
+      "name": "Portuguese(葡萄牙语)",
+      "value": "PT",
+      "icon": "icon_lang_pt",
+      "showName": "Português",
+      "show": false
+    },
+  
+    {
+      "name": "Italiano(意大利语)",
+      "value": "IT",
+      "icon": "icon_lang_it",
+      "showName": "Italiano",
+      "show": false
+    },
+
+    {
+      "name": "Greek(希腊语)",
+      "value": "GR",
+      "icon": "icon_lang_gr",
+      "showName": "Ελληνικά",
+      "show": false
+    },
+    {
+      "name": "Russian(俄语)",
+      "value": "RU",
+      "icon": "icon_lang_ru",
+      "showName": "Русский",
+      "show": true
+    },
+    {
+      "name": "Romanian(罗马尼亚语)",
+      "value": "RO",
+      "icon": "icon_lang_ro",
+      "showName": "Română",
+      "show": false
+    },
+    {
+      "name": "Finnish(芬兰语)",
+      "value": "FI",
+      "icon": "icon_lang_fi",
+      "showName": "Suomi",
+      "show": false
+    },
+    {
+      "name": "Norsk(挪威语)",
+      "value": "NO",
+      "icon": "icon_lang_no",
+      "showName": "Norsk",
+      "show": false
+    },
+    {
+      "name": "Swedish(瑞典语)",
+      "value": "SE",
+      "icon": "icon_lang_se",
+      "showName": "Svenska",
+      "show": false
+    },
+    {
+      "name": "Danish(丹麦语)",
+      "value": "DK",
+      "icon": "icon_lang_dk",
+      "showName": "Dansk",
+      "show": false
+    },
+    {
+      "name": "Czech(捷克语)",
+      "value": "CZ",
+      "icon": "icon_lang_cz",
+      "showName": "Čeština",
+      "show": false
+    },
+    {
+      "name": "Estonki(爱沙尼亚语)",
+      "value": "EE",
+      "icon": "icon_lang_ee",
+      "showName": "Eesti keel",
+      "show": false
+    },
+    {
+      "name": "Slovak(斯洛伐克语)",
+      "value": "SK",
+      "icon": "icon_lang_sk",
+      "showName": "Slovenčina",
+      "show": false
+    },
+    {
+      "name": "Ukrainian(乌克兰语)",
+      "value": "UK",
+      "icon": "icon_lang_uk",
+      "showName": "Українська",
+      "show": false
+    },
+    {
+      "name": "Arabic(阿拉伯语)",
+      "value": "AR",
+      "icon": "icon_lang_ar",
+      "showName": "العربية",
+      "show": false
+    },
+    {
+      "name": "Lithuanian(立陶宛语)",
+      "value": "LT",
+      "icon": "icon_lang_lt",
+      "showName": "Lietuvių kalba",
+      "show": false
+    },
+    {
+      "name": "Farsi(波斯语)",
+      "value": "IR",
+      "icon": "icon_lang_ir",
+      "showName": "فارسی",
+      "show": false
+    },
+    {
+      "name": "Kazakh(哈萨克语)",
+      "value": "KZ",
+      "icon": "icon_lang_kz",
+      "showName": "Қазақша",
+      "show": false
+    },
+    {
+      "name": "Chinese(中文)",
+      "value": "ZH",
+      "icon": "icon_lang_zh",
+      "showName": "中文",
+      "show": false
+    },
+    {
+      "name": "Japanese(日语)",
+      "value": "JA",
+      "icon": "icon_lang_ja",
+      "showName": "日本語",
+      "show": false
+    }
+  ]
+}

+ 196 - 0
BusinessAirFryer/src/main/assets/lang_config_085.json

@@ -0,0 +1,196 @@
+{
+  "langs": [
+    {
+      "name": "Polish(波兰语)",
+      "value": "PL",
+      "icon": "icon_lang_pl",
+      "showName": "Polski",
+      "show": false
+    },
+    {
+      "name": "English(英语)",
+      "value": "EN",
+      "icon": "icon_lang_en",
+      "showName": "English",
+      "show": true
+    },
+    {
+      "name": "Arabic(阿拉伯)",
+      "value": "AR",
+      "icon": "icon_lang_ar",
+      "showName": "Arab",
+      "show": true
+    },
+    {
+      "name": "Farsi(波斯)",
+      "value": "IR",
+      "icon": "icon_lang_fa",
+      "showName": "Farsi",
+      "show": true
+    },
+    {
+      "name": "German(德语)",
+      "value": "DE",
+      "icon": "icon_lang_de",
+      "showName": "Deutsch",
+      "show": false
+    },
+
+    {
+      "name": "French(法语)",
+      "value": "FR",
+      "icon": "icon_lang_fr",
+      "showName": "Français",
+      "show": false
+    },
+    {
+      "name": "Spanish(西班牙语)",
+      "value": "ES",
+      "icon": "icon_lang_es",
+      "showName": "Español",
+      "show": false
+    },
+    {
+      "name": "Dutch(荷兰语)",
+      "value": "NL",
+      "icon": "icon_lang_nl",
+      "showName": "Nederlands",
+      "show": false
+    },
+    {
+      "name": "Portuguese(葡萄牙语)",
+      "value": "PT",
+      "icon": "icon_lang_pt",
+      "showName": "Português",
+      "show": false
+    },
+  
+    {
+      "name": "Italiano(意大利语)",
+      "value": "IT",
+      "icon": "icon_lang_it",
+      "showName": "Italiano",
+      "show": false
+    },
+
+    {
+      "name": "Greek(希腊语)",
+      "value": "GR",
+      "icon": "icon_lang_gr",
+      "showName": "Ελληνικά",
+      "show": false
+    },
+    {
+      "name": "Russian(俄语)",
+      "value": "RU",
+      "icon": "icon_lang_ru",
+      "showName": "Русский",
+      "show": false
+    },
+    {
+      "name": "Romanian(罗马尼亚语)",
+      "value": "RO",
+      "icon": "icon_lang_ro",
+      "showName": "Română",
+      "show": false
+    },
+    {
+      "name": "Finnish(芬兰语)",
+      "value": "FI",
+      "icon": "icon_lang_fi",
+      "showName": "Suomi",
+      "show": false
+    },
+    {
+      "name": "Norsk(挪威语)",
+      "value": "NO",
+      "icon": "icon_lang_no",
+      "showName": "Norsk",
+      "show": false
+    },
+    {
+      "name": "Swedish(瑞典语)",
+      "value": "SE",
+      "icon": "icon_lang_se",
+      "showName": "Svenska",
+      "show": false
+    },
+    {
+      "name": "Danish(丹麦语)",
+      "value": "DK",
+      "icon": "icon_lang_dk",
+      "showName": "Dansk",
+      "show": false
+    },
+    {
+      "name": "Czech(捷克语)",
+      "value": "CZ",
+      "icon": "icon_lang_cz",
+      "showName": "Čeština",
+      "show": false
+    },
+    {
+      "name": "Estonki(爱沙尼亚语)",
+      "value": "EE",
+      "icon": "icon_lang_ee",
+      "showName": "Eesti keel",
+      "show": false
+    },
+    {
+      "name": "Slovak(斯洛伐克语)",
+      "value": "SK",
+      "icon": "icon_lang_sk",
+      "showName": "Slovenčina",
+      "show": false
+    },
+    {
+      "name": "Ukrainian(乌克兰语)",
+      "value": "UK",
+      "icon": "icon_lang_uk",
+      "showName": "Українська",
+      "show": false
+    },
+    {
+      "name": "Arabic(阿拉伯语)",
+      "value": "AR",
+      "icon": "icon_lang_ar",
+      "showName": "العربية",
+      "show": false
+    },
+    {
+      "name": "Lithuanian(立陶宛语)",
+      "value": "LT",
+      "icon": "icon_lang_lt",
+      "showName": "Lietuvių kalba",
+      "show": false
+    },
+    {
+      "name": "Farsi(波斯语)",
+      "value": "IR",
+      "icon": "icon_lang_ir",
+      "showName": "فارسی",
+      "show": false
+    },
+    {
+      "name": "Kazakh(哈萨克语)",
+      "value": "KZ",
+      "icon": "icon_lang_kz",
+      "showName": "Қазақша",
+      "show": false
+    },
+    {
+      "name": "Chinese(中文)",
+      "value": "ZH",
+      "icon": "icon_lang_zh",
+      "showName": "中文",
+      "show": false
+    },
+    {
+      "name": "Japanese(日语)",
+      "value": "JA",
+      "icon": "icon_lang_ja",
+      "showName": "日本語",
+      "show": false
+    }
+  ]
+}

BIN
BusinessAirFryer/src/main/res/drawable-xxxhdpi/icon_lang_fa.png


+ 13 - 2
BusinessAuth/src/main/java/com/develop/auth/ui/MemberAuthActivity.kt

@@ -69,14 +69,25 @@ class MemberAuthActivity : CommonBVMActivity<ActivityMemberAuthBinding, MemberVi
             binding.ivBanner.layoutParams = params
             if (sn.startsWith("011E")){
                 binding.ivBanner.setBackgroundResource(com.develop.common.R.drawable.account_background_011e_5037)
+            }else if (sn.startsWith("011F")){
+                binding.flRoot.background = resources.getDrawable(com.develop.common.R.drawable.home_bg_011_f)
+                binding.ivBanner.setBackgroundResource(com.develop.common.R.drawable.guide_bg_011f)
             }else{
                 binding.ivBanner.setBackgroundResource(com.develop.common.R.drawable.account_background_011a)
             }
-        } else if (sn.startsWith("054")) {
+        } else if (sn.startsWith("083")){
+            binding.ivBanner.setBackgroundResource(com.develop.common.R.drawable.account_background_083)
+        }else if (sn.startsWith("054")) {
             binding.ivBanner.setImageResource(com.develop.common.R.drawable.account_background_054a)
+        } else if (sn.startsWith("010H")||sn.startsWith("010I")) {
+            if (sn.startsWith("010H")){
+                binding.ivBanner.setBackgroundResource(com.develop.common.R.drawable.account_background_010h)
+            }else{
+                binding.ivBanner.setBackgroundResource(com.develop.common.R.drawable.account_background_010i)
+            }
         }  else if (sn.startsWith("053")) {
             binding.ivBanner.setImageResource(com.develop.common.R.drawable.account_background_053a)
-        } else if (sn.startsWith("077")||sn.startsWith("025")) {
+        } else if (sn.startsWith("077")||sn.startsWith("025")||sn.startsWith("000B")) {
             binding.ivBanner.setImageResource(com.develop.common.R.drawable.guide_bg_000)
         } else if (isBrand062()) {
             binding.ivBanner.setImageResource(com.develop.common.R.drawable.account_background_062a)

+ 2 - 1
BusinessAuth/src/main/java/com/develop/auth/ui/MemberForgotFragment.kt

@@ -89,7 +89,8 @@ class MemberForgotFragment : CommonBVMFragment<FragmentMemberForgotBinding, Memb
                 showToast(this)
             }
         }
-        if (getSN().startsWith("010D")) {
+
+        if (getSN().startsWith("010D")|| getSN().startsWith("010I")|| getSN().startsWith("010H")) {
             val digits = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@#€%&-+()~`|•√π÷׶∆}{=°^¢\$¥£\\©®™℅[]¡¿.><,:;?*'!\""
             binding.etPassword.keyListener = object : DigitsKeyListener() {
                 override fun getInputType(): Int {

+ 1 - 0
BusinessAuth/src/main/res/layout/activity_member_auth.xml

@@ -5,6 +5,7 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:background="@color/white"
+    android:layoutDirection="ltr"
     xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <ImageView

+ 1 - 0
BusinessAuth/src/main/res/layout/fragment_member_forgot.xml

@@ -3,6 +3,7 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:background="#fff"
+    android:layoutDirection="ltr"
     xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout

+ 1 - 0
BusinessAuth/src/main/res/layout/fragment_member_launch.xml

@@ -4,6 +4,7 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:background="#fff"
+    android:layoutDirection="ltr"
     xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <TextView

+ 3 - 1
BusinessAuth/src/main/res/layout/fragment_member_login.xml

@@ -4,7 +4,9 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:background="#fff">
+    android:background="#fff"
+    android:layoutDirection="ltr"
+    >
 
     <androidx.constraintlayout.widget.ConstraintLayout
         android:layout_width="match_parent"

+ 3 - 1
BusinessAuth/src/main/res/layout/fragment_member_profile.xml

@@ -4,7 +4,9 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:overScrollMode="never"
-    android:scrollbars="none">
+    android:scrollbars="none"
+    android:layoutDirection="ltr"
+    >
 
     <androidx.constraintlayout.widget.ConstraintLayout
         android:layout_width="match_parent"

+ 3 - 1
BusinessAuth/src/main/res/layout/fragment_member_register.xml

@@ -2,7 +2,9 @@
 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:background="#fff">
+    android:background="#fff"
+    android:layoutDirection="ltr"
+    >
 
     <LinearLayout
         android:layout_width="match_parent"

+ 29 - 0
BusinessCommon/src/main/java/com/develop/common/bean/TranslateBean.java

@@ -0,0 +1,29 @@
+package com.develop.common.bean;
+
+public class TranslateBean {
+    private  String id;
+    private String value;
+
+    public TranslateBean(String id, String value) {
+        this.id = id;
+        this.value = value;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+
+}

+ 176 - 2
BusinessCommon/src/main/java/com/develop/common/data_repo/db/DataFactory.kt

@@ -13,7 +13,6 @@ import com.develop.common.data_repo.db.entity.UserFavoriteRecipes
 import com.develop.common.tag.CURRENT_LANGUAGE
 import com.develop.common.tag.ISTUYA
 import com.develop.common.utils.ConfigUtils
-import com.develop.common.utils.TuyaUtils
 import com.develop.common.widget.EntranceData
 import com.develop.common.widget.EntranceType
 import com.drake.brv.item.ItemHover
@@ -32,6 +31,11 @@ val dataSn = getSN()
             ?: Collections.emptyList();
     }
 
+    fun selectLanguageDataV2(resource: Resources): List<ConfigUtils.Lang> {
+        return ConfigUtils.selectLangConfig()?.langs ?: Collections.emptyList();
+    }
+
+
     fun createLanguageData(resource: Resources): MutableList<LanguageModel> {
         val languageList = mutableListOf<LanguageModel>()
         val strList = if (isNightTheme() || isBrand036I()) {
@@ -271,6 +275,65 @@ val dataSn = getSN()
         return result
     }
 
+    fun genSetting063BModesList(resource: Resources): MutableList<SettingModel> {
+        val result = mutableListOf<SettingModel>()
+        val resIdList = mutableListOf(
+            R.drawable.ic_setting_language,
+            R.drawable.ic_setting_wifi,
+//            R.drawable.ic_setting_voice,
+            R.drawable.ic_setting_brightness,
+//            R.drawable.ic_setting_user,
+//            R.drawable.ic_setting_folder,
+            R.drawable.ic_setting_reset,
+            R.drawable.ic_setting_about,
+        )
+
+        val nameList = mutableListOf(
+            resource.getString(R.string.language),
+            resource.getString(R.string.wifi),
+//            resource.getString(R.string.sound),
+            resource.getString(R.string.brightness),
+//            resource.getString(R.string.user_account),
+//            resource.getString(R.string.storage),
+            resource.getString(R.string.reset),
+            resource.getString(R.string.about)
+
+        )
+        val settingTypeList = mutableListOf(
+            SettingType.LANGUAGE,
+            SettingType.WIFI,
+//            SettingType.SOUND,
+            SettingType.BRIGHTNESS,
+//            SettingType.USER_ACCOUNT,
+//            SettingType.STORAGE,
+            SettingType.RESTORE_FACTORY_SETTINGS,
+            SettingType.ABOUT
+        )
+
+        //2024.01.10  032D客户不需要涂鸦功能
+//        var tuyaConfig =  ConfigUtils.loadTuyaConfig()
+//        if(tuyaConfig != null){
+//            settingTypeList.add(SettingType.TUYA)
+//            nameList.add(resource.getString(R.string.tuya))
+//            resIdList.add(R.drawable.ic_setting_tuya)
+//        }
+
+        // 2024.3.20 鸦图标隐藏(只针对010Dak、010Fapk、032Dapk)
+//        settingTypeList.add(SettingType.TUYA)
+//        nameList.add(resource.getString(R.string.tuya))
+//        resIdList.add(R.drawable.ic_setting_tuya)
+
+
+        for (i in resIdList.indices) {
+            result.add(SettingModel(resIdList[i], nameList[i], settingTypeList[i]))
+        }
+        return result
+    }
+
+
+
+
+
     fun genSetting011AModesList(resource: Resources): MutableList<SettingModel> {
         val result = mutableListOf<SettingModel>()
         val resIdList = mutableListOf(
@@ -321,6 +384,57 @@ val dataSn = getSN()
         }
         return result
     }
+    fun genSetting010IModesList(resource: Resources): MutableList<SettingModel> {
+        val result = mutableListOf<SettingModel>()
+        val resIdList = mutableListOf(
+            R.drawable.ic_setting_language,
+            R.drawable.ic_setting_wifi,
+//            R.drawable.ic_setting_voice,
+//            R.drawable.ic_setting_brightness,
+//            R.drawable.ic_setting_user,
+//            R.drawable.ic_setting_folder,
+            R.drawable.ic_setting_reset,
+            R.drawable.ic_setting_about,
+        )
+
+        val nameList = mutableListOf(
+            resource.getString(R.string.language), resource.getString(R.string.wifi),
+//            resource.getString(R.string.sound),
+//            resource.getString(R.string.brightness_011),
+//            resource.getString(R.string.user_account),
+//            resource.getString(R.string.storage),
+            resource.getString(R.string.reset), resource.getString(R.string.about)
+
+        )
+        val settingTypeList = mutableListOf(
+            SettingType.LANGUAGE, SettingType.WIFI,
+//            SettingType.SOUND,
+//            SettingType.BRIGHTNESS,
+//            SettingType.USER_ACCOUNT,
+//            SettingType.STORAGE,
+            SettingType.RESTORE_FACTORY_SETTINGS, SettingType.ABOUT
+        )
+
+        //2024.06.04    1039 011 不显示涂鸦功能
+        // 2024.3.20 涂鸦新需求,不管有没有涂鸦功能都显示出来
+//        settingTypeList.add(SettingType.TUYA)
+//        nameList.add(resource.getString(R.string.tuya))
+//        resIdList.add(R.drawable.ic_setting_tuya)
+
+
+//        var tuyaConfig =  ConfigUtils.loadTuyaConfig()
+//        if(tuyaConfig != null){
+//            settingTypeList.add(SettingType.TUYA)
+//            nameList.add(resource.getString(R.string.tuya))
+//            resIdList.add(R.drawable.ic_setting_tuya)
+//        }
+
+        for (i in resIdList.indices) {
+            result.add(SettingModel(resIdList[i], nameList[i], settingTypeList[i]))
+        }
+        return result
+    }
+
 
     fun genSetting030AModesList(resource: Resources): MutableList<SettingModel> {
         val result = mutableListOf<SettingModel>()
@@ -691,7 +805,12 @@ val dataSn = getSN()
         R.drawable.entrance_bg_3,
         R.drawable.entrance_bg_4
     )
-
+    private var bg000ResIds = arrayListOf<Int>(
+        R.drawable.entrance_bg_000_1,
+        R.drawable.entrance_bg_000_2,
+        R.drawable.entrance_bg_000_3,
+        R.drawable.entrance_bg_000_4
+    )
     private var bg029ResIds = arrayListOf<Int>(
         R.drawable.entrance_bg_029_1,
         R.drawable.entrance_bg_029_2,
@@ -720,6 +839,14 @@ val dataSn = getSN()
         R.drawable.entrance_011a_5037_bg_4
     )
 
+    private var bg011FAResIds = arrayListOf<Int>(
+        R.drawable.entrance_011f_bg_1,
+        R.drawable.entrance_011f_bg_2,
+        R.drawable.entrance_011f_bg_3,
+        R.drawable.entrance_011f_bg_4
+    )
+
+
     private var bg054AResIds = arrayListOf<Int>(
         R.drawable.entrance_054a_bg_1,
         R.drawable.entrance_054a_bg_2,
@@ -830,6 +957,13 @@ val dataSn = getSN()
         R.drawable.entrance_bg_025_4
     )
 
+    private var bgResIds011g = arrayListOf<Int>(
+        R.drawable.entrance_bg_011g_1,
+        R.drawable.entrance_bg_011g_2,
+        R.drawable.entrance_bg_011g_3,
+        R.drawable.entrance_bg_011g_4
+    )
+
     private var bgResIds049 = arrayListOf<Int>(
         R.drawable.mode_entrance_049_2,
         R.drawable.mode_entrance_049_1,
@@ -924,6 +1058,18 @@ val dataSn = getSN()
         return dataList
     }
 
+    fun get000BEntranceData(): MutableList<EntranceData> {
+        val dataList = mutableListOf<EntranceData>()
+        for (i in iconResIds.indices) {
+            dataList.add(
+                EntranceData(
+                    bg000ResIds[i], iconResIds[i], titleStrIds[i], title2StrIds[i], typeList[i]
+                )
+            )
+        }
+        return dataList
+    }
+
     fun get036IEntranceData(): MutableList<EntranceData> {
         val dataList = mutableListOf<EntranceData>()
         for (i in iconResIds.indices) {
@@ -1048,6 +1194,17 @@ val dataSn = getSN()
         }
         return dataList
     }
+    fun get011GNightEntranceData(): MutableList<EntranceData> {
+        val dataList = mutableListOf<EntranceData>()
+        for (i in iconResIds1.indices) {
+            dataList.add(
+                EntranceData(
+                    bgResIds011g[i], iconResIds1[i], titleStrIds1[i], title2StrIds1[i], typeList1[i]
+                )
+            )
+        }
+        return dataList
+    }
 
 
     fun get049EntranceData(): MutableList<EntranceData> {
@@ -1081,6 +1238,23 @@ val dataSn = getSN()
         }
         return dataList
     }
+    fun get011FEntranceData(): MutableList<EntranceData> {
+        val dataList = mutableListOf<EntranceData>()
+        for (i in iconResIds1.indices) {
+            dataList.add(
+                EntranceData(
+                    bg011FAResIds[i],
+                    icon032DResIds[i],
+                    titleStrIds32[i],
+                    titleStrIds32[i],
+                    typeList[i]
+                )
+            )
+        }
+        return dataList
+    }
+
+
     fun get053AEntranceData(): MutableList<EntranceData> {
         val dataList = mutableListOf<EntranceData>()
         for (i in iconResIds1.indices) {

+ 3 - 0
BusinessCommon/src/main/java/com/develop/common/data_repo/db/dao/UserInfoDao.kt

@@ -87,6 +87,9 @@ interface UserInfoDao {
         stepNumber: String
     ): UserRecipeStepRemark?
 
+    @Query("Delete from user_recipe_step_remark where userId = :userId")
+    fun  removeAllUserRecipeStepRemark(userId: Long)
+
 
     @Query("select * from user_favorite_recipes where favoriteRecipesId =:recipeId and userId =:userId")
     fun queryFavoriteRecipes(userId: Long, recipeId: String): List<UserFavoriteRecipes>

+ 5 - 5
BusinessCommon/src/main/java/com/develop/common/data_repo/db/entity/DevRecipe.kt

@@ -101,7 +101,7 @@ data class DevRecipe(
      * @see com.kuyuntech.cofarcooking.coreapi.constant.core.DifficultyLevel
      */
     @ColumnInfo(name = "difficulty_level")
-    val difficultyLevel: String?,
+    var difficultyLevel: String?,
 
     /**
      * 兼容母包版本
@@ -113,13 +113,13 @@ data class DevRecipe(
      * 名称
      */
     @ColumnInfo
-    val name: String?,
+    var name: String?,
 
     /**
      * 介绍
      */
     @ColumnInfo
-    val introduction: String?,
+    var introduction: String?,
 
 
 
@@ -148,12 +148,12 @@ data class DevRecipe(
      * 食谱描述
      * */
     @ColumnInfo(name = "food_description")
-    val  foodDescription :String?,
+    var  foodDescription :String?,
 
 
     /**
      * 厨师建议
      * */
     @ColumnInfo(name = "chef_rec")
-    val  chefRec :String?
+    var  chefRec :String?
 )

+ 1 - 1
BusinessCommon/src/main/java/com/develop/common/data_repo/db/entity/DevRecipeFood.kt

@@ -54,7 +54,7 @@ data class DevRecipeFood(
      * 食材名称
      */
     @ColumnInfo(name = "food_name")
-    val foodName: String?,
+    var foodName: String?,
 
     /**
      * 关联食谱份量

+ 3 - 0
BusinessCommon/src/main/java/com/develop/common/data_repo/net/Api.kt

@@ -7,6 +7,7 @@ object Api {
    // const val HOST = "http://nat.kuyuntech.com:19973/dev/"
     const val HOST = "https://cfdev.cofarcn.com/dev/"
 
+
     const val REGISTER = "register"
     const val LOGIN = "login"
     const val PERFECT_INFO = "perfetInfo"
@@ -22,5 +23,7 @@ object Api {
     const val GET_HOT_TAGS = "hotTags"
     const val CANCEL_ACCOUNT = "cancelAccount"
 
+    //翻译地址
+    const val  TRANSLATE = "https://icook.cofarcn.com/api/youdao/translate"
 
 }

+ 79 - 0
BusinessCommon/src/main/java/com/develop/common/dialog/LanguageSelectDialog.kt

@@ -0,0 +1,79 @@
+package com.develop.common.dialog
+
+import android.graphics.Color
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.appcompat.app.AppCompatActivity
+import com.develop.base.ext.dimenRes
+import com.develop.base.ext.globalRes
+import com.develop.base.ext.isBrand062
+import com.develop.base.mvvm.FullScreenTransparentDialog
+import com.develop.common.R
+import com.develop.common.data_repo.db.DataFactory
+import com.develop.common.databinding.DialogDataPickerBinding
+import com.develop.common.databinding.DialogLanguagePickerBinding
+
+class LanguageSelectDialog(
+    private val activity: AppCompatActivity,
+    private val onConfirm: (index: Int, values:String,change: Boolean) -> Unit
+): FullScreenTransparentDialog() {
+
+    private val binding = DialogLanguagePickerBinding.inflate(activity.layoutInflater)
+    private val initIndex = 0
+    private val listlang = DataFactory.selectLanguageDataV2(globalRes())
+    private var is062 = false
+
+    override fun onCreateView(
+        inflater: LayoutInflater,
+        container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View {
+        return binding.root
+    }
+    init {
+        is062 = isBrand062()
+        val listData = createAgeListData()
+        binding.root.setOnClickListener {
+            dismiss()
+        }
+        binding.tvYes.setOnClickListener {
+            dismiss()
+            val currentIndex = binding.wheelPicker.currentItemPosition
+            var values :String = listlang[currentIndex].value.lowercase()
+            onConfirm(currentIndex, values,true)
+        }
+        binding.tvCancel.setOnClickListener {
+            dismiss()
+        }
+
+        binding.wheelPicker.selectedItemTextColor = if (is062) activity.resources.getColor(R.color.color_5887DA) else activity.resources.getColor(R.color.color_F4A12E)
+        binding.wheelPicker.itemTextColor = 0xff000000.toInt()
+        binding.wheelPicker.itemTextSize = dimenRes(com.develop.common.R.dimen.convert_28px)
+        binding.wheelPicker.setAtmospheric(true)
+        binding.wheelPicker.isCurved = true
+        binding.wheelPicker.data = listData
+        if (initIndex >= 0 && initIndex <= listData.size - 1) {
+            binding.wheelPicker.setSelectedItemPosition(initIndex, false)
+        }
+    }
+
+    private fun createAgeListData(): List<String> {
+
+        val list = mutableListOf<String>()
+//        list.add(0,"0")
+//        for (index in 20..80) {
+//            list.add(index.toString())
+//        }
+        var size = listlang.size-1
+        for(i in 0..size){
+            var language = listlang[i]
+            list.add(i,language.name+" "+"("+language.value+")")
+        }
+
+
+
+        return list
+    }
+}

+ 99 - 77
BusinessCommon/src/main/java/com/develop/common/food_sdk/GlobalDevEvent.kt

@@ -8,6 +8,7 @@ import android.view.WindowManager
 import androidx.fragment.app.DialogFragment
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.FragmentManager
+import com.develop.base.ext.getSN
 import com.develop.base.ext.globalApp
 import com.develop.base.ext.globalRes
 import com.develop.base.ext.toJson
@@ -28,6 +29,7 @@ object GlobalDevEvent {
 
     var keepScreen = false
     var weight = false
+    var sn = getSN()
 
     private val weightAlignDialog by lazy {
         CancelConfirmDialog()
@@ -39,34 +41,28 @@ object GlobalDevEvent {
     public val msgDialog by lazy {
         CookStepMsgDialog()
     }
+
     /**处理设备合盖问题*/
     var ledLock = false;
     fun globalCoverEvent(event: DevStatusEvent, pm: PowerManager) {
         if (!ledLock) {
             ledLock = true;
-            //屏幕暗
-            if (!pm.isScreenOn) {
-                //errcode 为0得时候,是有故障
-                //合盖
-                //devInfo.potStatus 0是有锅  1是没锅
-//              //devInfo.potCloverStatus 0是合盖,1是没盒盖
-                if (event.devInfo.potStatus.toInt() == 0) {
-                    if (event.devInfo.potCloverStatus.toInt() == 0) {
-                        CofarSDK.flashWhiteRedLed()
-                    } else {
-                        CofarSDK.switchWhiteLed('0');
-                        CofarSDK.flashRedLed()
-                    }
-                } else {
+            if (sn.startsWith("063B")) {
+                //特殊处理063B 显示灯问题
+                if (event.devInfo.status == DevStatus.STOP.toInt()) {
+                    CofarSDK.switchWhiteLed('1');
+                    CofarSDK.switchRedLed('0');
+                }else{
                     CofarSDK.switchWhiteLed('0');
-                    CofarSDK.flashRedLed();
+                    CofarSDK.switchRedLed('1');
                 }
             } else {
-                //屏幕亮
-                //devInfo.potStatus 0是有锅  1是没锅
-//            //devInfo.potCloverStatus 0是合盖,1是没盒盖
-                if (event.devInfo.status == DevStatus.STOP.toInt()) {
-
+                //屏幕暗
+                if (!pm.isScreenOn) {
+                    //errcode 为0得时候,是有故障
+                    //合盖
+                    //devInfo.potStatus 0是有锅  1是没锅
+//              //devInfo.potCloverStatus 0是合盖,1是没盒盖
                     if (event.devInfo.potStatus.toInt() == 0) {
                         if (event.devInfo.potCloverStatus.toInt() == 0) {
                             CofarSDK.flashWhiteRedLed()
@@ -78,35 +74,55 @@ object GlobalDevEvent {
                         CofarSDK.switchWhiteLed('0');
                         CofarSDK.flashRedLed();
                     }
+                } else {
+                    //屏幕亮
+                    //devInfo.potStatus 0是有锅  1是没锅
+//            //devInfo.potCloverStatus 0是合盖,1是没盒盖
+                    if (event.devInfo.status == DevStatus.STOP.toInt()) {
+                        if (event.devInfo.potStatus.toInt() == 0) {
+                            if (event.devInfo.potCloverStatus.toInt() == 0) {
+                                CofarSDK.flashWhiteRedLed()
+                            } else {
+                                CofarSDK.switchWhiteLed('0');
+                                CofarSDK.flashRedLed()
+                            }
+                        } else {
+                            CofarSDK.switchWhiteLed('0');
+                            CofarSDK.flashRedLed();
+                        }
 
-                }
-
-                if (event.devInfo.status == DevStatus.RUNNING.toInt()) {
-
-                    if (event.devInfo.temp < 60) {
-                        CofarSDK.switchRedLed('0');
-                        CofarSDK.switchWhiteLed('1');
-                    } else {
-                        CofarSDK.switchRedLed('1');
-                        CofarSDK.switchWhiteLed('0');
                     }
 
-                }
+                    if (event.devInfo.status == DevStatus.RUNNING.toInt()) {
 
-                if (event.devInfo.status == DevStatus.PAUSE.toInt()) {
+                        if (event.devInfo.temp < 60) {
+                            CofarSDK.switchRedLed('0');
+                            CofarSDK.switchWhiteLed('1');
+                        } else {
+                            CofarSDK.switchRedLed('1');
+                            CofarSDK.switchWhiteLed('0');
+                        }
 
-                    //判断盖子是否打开
-                    //合盖
-                    if (event.devInfo.potCloverStatus.toInt() == 1) {
-                        CofarSDK.switchWhiteLed('0');
-                        CofarSDK.flashRedLed()
-                    } else {
-                        CofarSDK.flashWhiteRedLed()
                     }
 
+                    if (event.devInfo.status == DevStatus.PAUSE.toInt()) {
 
+                        //判断盖子是否打开
+                        //合盖
+                        if (event.devInfo.potCloverStatus.toInt() == 1) {
+                            CofarSDK.switchWhiteLed('0');
+                            CofarSDK.flashRedLed()
+                        } else {
+                            CofarSDK.flashWhiteRedLed()
+                        }
+
+
+                    }
                 }
             }
+
+
+
             ledLock = false;
         }
     }
@@ -115,78 +131,82 @@ object GlobalDevEvent {
     /**处理设备称重问题*/
     fun globalWeightEvent(event: DevStatusEvent) {
         TopResumedAtyHolder.getCurrentActivity()!!.apply {
-            if(!weight){
+            if (!weight) {
                 return;
             }
             ThreadUtils.runOnMainThread {
 
 
-
-                if(event.devInfo.weightAlignStatus == (0).toByte()){ //正在标定不是
+                if (event.devInfo.weightAlignStatus == (0).toByte()) { //正在标定不是
                     weightAlignDialog.dialog?.hide()
                     weightAlignDialog.showCancel = false;
                     weightAlignDialog.confirmStr = getString(R.string.exit_weight_align)
 
-                    if (!weightAlignDialog.isAdded){
+                    if (!weightAlignDialog.isAdded) {
                         weightAlignDialog.title = getString(R.string.weight_aligning)
-                        weightAlignDialog.showDialog(supportFragmentManager,"weight_align_dialog")
-                    } else  {
-                        if(event.devInfo.weightPol == (1).toByte()){
-                            weightAlignDialog.binding.tvTitle.text = getString(R.string.weight_one_kg_tips)
+                        weightAlignDialog.showDialog(supportFragmentManager, "weight_align_dialog")
+                    } else {
+                        if (event.devInfo.weightPol == (1).toByte()) {
+                            weightAlignDialog.binding.tvTitle.text =
+                                getString(R.string.weight_one_kg_tips)
                         }
 
-                        if(event.devInfo.weightPol == (2).toByte()){
-                            weightAlignDialog.binding.tvTitle.text = getString(R.string.weight_two_kg_tips)
+                        if (event.devInfo.weightPol == (2).toByte()) {
+                            weightAlignDialog.binding.tvTitle.text =
+                                getString(R.string.weight_two_kg_tips)
                         }
 
                         weightAlignDialog.dialog?.show()
                     }
 
-                    weightAlignDialog.onDialogClickListener = object :CancelConfirmDialog.OnDialogClickListener{
+                    weightAlignDialog.onDialogClickListener =
+                        object : CancelConfirmDialog.OnDialogClickListener {
 
-                        override fun onConfirm() {
-                            exitWeightAlign()
-                            weight = false;
-                        }
+                            override fun onConfirm() {
+                                exitWeightAlign()
+                                weight = false;
+                            }
 
-                        override fun onCancel() {
-                            exitWeightAlign()
-                            weight = false
-                        }
+                            override fun onCancel() {
+                                exitWeightAlign()
+                                weight = false
+                            }
 
-                        override fun onKey() {
+                            override fun onKey() {
+                            }
                         }
-                    }
                 }
 
-                if(event.devInfo.weightAlignStatus == (2).toByte()){ //正在标定不是
+                if (event.devInfo.weightAlignStatus == (2).toByte()) { //正在标定不是
 //                CofarSDK.unregister(this)
                     weightAlignDialog.dialog?.hide()
                     weightAlignDialog.showCancel = false;
                     weightAlignDialog.confirmStr = getString(R.string.exit_weight_align)
 
-                    if (!weightAlignDialog.isAdded){
+                    if (!weightAlignDialog.isAdded) {
                         weightAlignDialog.title = getString(R.string.weight_align_success)
-                        weightAlignDialog.showDialog(supportFragmentManager,"weight_align_dialog")
-                    } else  {
-                        weightAlignDialog.binding.tvTitle.text =  getString(R.string.weight_align_success)
+                        weightAlignDialog.showDialog(supportFragmentManager, "weight_align_dialog")
+                    } else {
+                        weightAlignDialog.binding.tvTitle.text =
+                            getString(R.string.weight_align_success)
                         weightAlignDialog.dialog?.show()
                     }
 
-                    weightAlignDialog.onDialogClickListener = object :CancelConfirmDialog.OnDialogClickListener{
+                    weightAlignDialog.onDialogClickListener =
+                        object : CancelConfirmDialog.OnDialogClickListener {
 
-                        override fun onConfirm() {
-                            exitWeightAlign()
-                        }
+                            override fun onConfirm() {
+                                exitWeightAlign()
+                            }
 
-                        override fun onCancel() {
-                            exitWeightAlign()
-                        }
+                            override fun onCancel() {
+                                exitWeightAlign()
+                            }
 
-                        override fun onKey() {
-                        }
+                            override fun onKey() {
+                            }
 
-                    }
+                        }
 
                     exitWeightAlign()
                 }
@@ -242,7 +262,8 @@ object GlobalDevEvent {
     /**处理设备提示弹窗*/
     fun msgDilaog(
         fragmentManager: FragmentManager,
-        titles:String,confirmStrs:String,workModes :String?) {
+        titles: String, confirmStrs: String, workModes: String?
+    ) {
         ThreadUtils.runOnMainThread {
             msgDialog.onDialogClickListener =
                 object : CookStepMsgDialog.OnDialogClickListener {
@@ -259,12 +280,13 @@ object GlobalDevEvent {
                 cancelStr = ""
                 confirmStr = confirmStrs
                 title = titles
-                workMode = workModes ?:"SOUP"
+                workMode = workModes ?: "SOUP"
 
             }
             msgDialog.showDialog(fragmentManager, "msgDialog")
         }
     }
+
     private fun hasDialogFragment(fragmentManager: FragmentManager): Boolean {
         if (fragmentManager.fragments.find {
                 it is DialogFragment

+ 6 - 2
BusinessCommon/src/main/java/com/develop/common/food_sdk/TextMcu2DevEventListener.java

@@ -31,7 +31,7 @@ public class TextMcu2DevEventListener {
         try {
             BaseDecoder baseDecoder = new BaseDecoder(event.getData());
 
-
+            Log.e("TAG MCUDEV","event :"+event.getData());
             if (CmdTypes.SHAKE_HANDS.equals(baseDecoder.getProtocol())) {
                 ShakeHandsResp shakeHandsResp = new ShakeHandsResp();
                 CofarSDK.post2Mcu(shakeHandsResp);
@@ -67,7 +67,11 @@ public class TextMcu2DevEventListener {
                 }
                 devInfo.setTemp(CofarSDK.parseTemp(temp));
                 devInfo.setRealTemp(Converter.hexToShort(heartbeatCmd.getTemp()));
-                devInfo.setTargetTemp(CofarSDK.parseTemp(Converter.hexToShort(heartbeatCmd.getTargetTemp())));
+                if (devInfo.getMode().isResetTempSetting()){
+                    devInfo.setTargetTemp(CofarSDK.parseTemp(Converter.hexToShort(heartbeatCmd.getTargetTemp())));
+                }else {
+                    devInfo.setTargetTemp((short) devInfo.getMode().getResetTargetTemp());
+                }
 //                devInfo.setRemainTime(Converter.hexToShort(heartbeatCmd.getRemainTime()));
 //                devInfo.setTargetTime(Converter.hexToShort(heartbeatCmd.getTargetTime()));
                 devInfo.setPotStatus(Converter.hexToByte(heartbeatCmd.getPotStatus()));

+ 3 - 0
BusinessCommon/src/main/java/com/develop/common/food_sdk/ZeroMcu2DevEventListener.java

@@ -1,5 +1,7 @@
 package com.develop.common.food_sdk;
 
+import android.util.Log;
+
 import com.kuyuntech.cofarcooking.device.sdk.eventbus.core.DevInfo;
 import com.kuyuntech.cofarcooking.device.sdk.eventbus.event.Mcu2DevEvent;
 import com.kuyuntech.cofarcooking.device.sdk.eventbus.listener.Mcu2DevEventListener;
@@ -24,6 +26,7 @@ public class ZeroMcu2DevEventListener extends Mcu2DevEventListener {
     public void onMcu2DevEvent(Mcu2DevEvent event) {
         try {
             BaseDecoder baseDecoder = new BaseDecoder(event.getData());
+            Log.e("TAG mcu",event.getData());
             if ("0001".equals(baseDecoder.getProtocol())) {
                 ShakeHandsResp shakeHandsResp = new ShakeHandsResp();
                 CofarSDK.post2Mcu(shakeHandsResp);

+ 2 - 0
BusinessCommon/src/main/java/com/develop/common/tag/CommonTag.kt

@@ -14,6 +14,8 @@ const val HOME_TITLE = "HOME_TITLE"
 const val MODE_TYPE = "mode_type"
 const val LANGUAGE_FROM_SETTING = "LANGUAGE_FROM_SETTING"
 const val SCREENSAVER = "ScreenSaver"
+const val BRIGHTNESS = "Brightness"
+
 const val SOURCE_TAG = "source"
 const val NUMBER_TAG = "number"
 const val IS_LIKE_TAG = "isLike"

+ 4 - 0
BusinessCommon/src/main/java/com/develop/common/utils/AppVersionUtil.kt

@@ -506,6 +506,10 @@ object AppVersionUtil {
                     )
                 }
             }.catch {
+                Log.e("TAG 下载失败11",it.message.toString())
+                it.localizedMessage?.let { it1 -> Log.e("TAG 下载失败22", it1) }
+                Log.e("TAG 下载失败33",it.cause?.message.toString())
+                Log.e("TAG 下载失败444",it.cause?.localizedMessage.toString())
 //                ToastUtils.showShort("下载失败 :" + it.toString())
                 ToastUtils.showShort("Download failed")
 

+ 41 - 7
BusinessCommon/src/main/java/com/develop/common/utils/ConfigUtils.kt

@@ -36,11 +36,21 @@ object ConfigUtils {
             val fileList = GlobalApp().assets.list("") ?: arrayOf()
             var inputStream: InputStream? = null
 
-            if (fileList.contains("config_${brandNum}.json")) {
-                inputStream = GlobalApp().assets.open("config_${brandNum}.json")
-            } else {
-                inputStream = GlobalApp().assets.open("config.json")
+            if (sn.startsWith("000B")) {
+                //由于000B 是要黑色风格,因为皮肤包问题,估在这添加多000B配置
+                inputStream = GlobalApp().assets.open("config_000B.json")
+            }else if (sn.startsWith("010I")||sn.startsWith("010H")){
+                inputStream = GlobalApp().assets.open("config_010IH.json")
+            } else if (sn.startsWith("011F")){
+                inputStream = GlobalApp().assets.open("config_011F.json")
+            }else {
+                if (fileList.contains("config_${brandNum}.json")) {
+                    inputStream = GlobalApp().assets.open("config_${brandNum}.json")
+                } else {
+                    inputStream = GlobalApp().assets.open("config.json")
+                }
             }
+
 //            inputStream = GlobalApp().assets.open("config_036.json")
 
             val size = inputStream.available()
@@ -51,12 +61,14 @@ object ConfigUtils {
             val jsonString = String(buffer, Charset.defaultCharset())
             val gson = Gson()
             var cfConfig = gson.fromJson(jsonString, CfConfig::class.java)
-            if (sn.startsWith("033I")||sn.startsWith("033K")){
+            if (sn.startsWith("033I") || sn.startsWith("033K")) {
                 /**
                  * 由于config_033的json配置没有扭橙,但是033I的客户需要添加一个,估在这做判断
                  * */
-                var workMode = WorkMode("citrus_juicer","CITRUS_JUICER",
-                    "ic_grid_citrus_juicer","ic_mode_citrus_juicer","SOUP",true);
+                var workMode = WorkMode(
+                    "citrus_juicer", "CITRUS_JUICER",
+                    "ic_grid_citrus_juicer", "ic_mode_citrus_juicer", "SOUP", true
+                );
                 cfConfig.workModes.add(workMode)
             }
             return cfConfig
@@ -127,6 +139,28 @@ object ConfigUtils {
         }
     }
 
+    fun selectLangConfig(): LangConfig? {
+        return try {
+
+
+            var inputStream: InputStream? = null
+            inputStream = GlobalApp().assets.open("lang_config.json")
+            val size = inputStream.available()
+            val buffer = ByteArray(size)
+            inputStream.read(buffer)
+            inputStream.close()
+
+            val jsonString = String(buffer, Charset.defaultCharset())
+            val gson = Gson()
+            val cfConfig = gson.fromJson(jsonString, LangConfig::class.java)
+            return cfConfig
+        } catch (ex: IOException) {
+            ex.printStackTrace()
+            null
+        }
+    }
+
+
     fun loadTuyaConfig(): Map<String, String>? {
         return try {
             var sn = getSN()

+ 1 - 2
BusinessCommon/src/main/java/com/develop/common/utils/StringUtils.java

@@ -1,7 +1,6 @@
 package com.develop.common.utils;
 
 import static com.develop.base.ext.GlobaExtKt.dimenRes;
-import static com.develop.common.utils.TuyaUtils.TAG;
 
 import android.app.Activity;
 import android.app.ActivityManager;
@@ -518,7 +517,7 @@ public class StringUtils {
                     , new String[]{tableName, "%" + columnName + "%"});
             result = null != cursor && cursor.moveToFirst();
         } catch (Exception e) {
-            Log.e(TAG, "checkColumnExists..." + e.getMessage());
+            Log.e("TAG", "checkColumnExists..." + e.getMessage());
         } finally {
             if (null != cursor && !cursor.isClosed()) {
                 cursor.close();

+ 2 - 0
BusinessCommon/src/main/java/com/develop/common/utils/TuyaUtils.java

@@ -154,6 +154,8 @@ public class TuyaUtils {
                         EventBus.getDefault().post(a);
 
                         if (event != null) {
+
+
                             output("收到 dp: " + event);
 
                             if(event.dpid == TuyaDps.RECIPE_NUM){

+ 13 - 4
BusinessCommon/src/main/java/com/develop/common/widget/DirectionView.kt

@@ -14,6 +14,8 @@ class DirectionView : FrameLayout {
     private var binding: DirectionViewBinding
     var onDirectionClickListener: OnDirectionClickListener? = null
     private var sn = getSN()
+    private var isTrueColor = 0
+    private var isFalseColor = 0
 
     constructor(context: Context) : super(context) {}
     constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
@@ -31,6 +33,13 @@ class DirectionView : FrameLayout {
     init {
         val root = View.inflate(context, R.layout.direction_view, this)
         binding = DirectionViewBinding.bind(root)
+        isFalseColor = 0xffffffff.toInt()
+
+        isTrueColor = if (sn.startsWith("011F")){
+            0xffAECA06.toInt()
+        }else{
+            0xffE60012.toInt()
+        }
         binding.tvTurnLeft.setOnClickListener {
             updateDirectionView(Direction.RIGHT)
             onDirectionClickListener?.onDirectionClick(Direction.RIGHT)
@@ -51,13 +60,13 @@ class DirectionView : FrameLayout {
     fun updateDirectionView(direction: Direction) {
         if (direction == Direction.RIGHT) {
             binding.ivDirection.rotationY = 180f
-            binding.tvTurnRight.setTextColor(0xffffffff.toInt())
-            binding.tvTurnLeft.setTextColor(0xffE60012.toInt())
+            binding.tvTurnRight.setTextColor(isFalseColor)
+            binding.tvTurnLeft.setTextColor(isTrueColor)
 
         } else {
             binding.ivDirection.rotationY = 0f
-            binding.tvTurnRight.setTextColor(0xffE60012.toInt())
-            binding.tvTurnLeft.setTextColor(0xffffffff.toInt())
+            binding.tvTurnRight.setTextColor(isTrueColor)
+            binding.tvTurnLeft.setTextColor(isFalseColor)
         }
     }
 

+ 6 - 3
BusinessCommon/src/main/java/com/develop/common/widget/FoodContentView.kt

@@ -16,6 +16,7 @@ import com.bumptech.glide.load.engine.GlideException
 import com.bumptech.glide.request.RequestListener
 import com.bumptech.glide.request.target.Target
 import com.develop.base.ext.background_drawable
+import com.develop.base.ext.getGoneScore
 import com.develop.base.ext.getSN
 import com.develop.base.ext.isRecipesList
 import com.develop.base.ext.load
@@ -70,7 +71,6 @@ class FoodContentView : ConstraintLayout {
 
     init {
         val root = View.inflate(context, R.layout.food_content_view, this)
-        is033 = foodSn.startsWith("033")
         binding = FoodContentViewBinding.bind(root)
         binding.contentLayout.skinBackground(R.drawable.food_content_conner)
         binding.likeLayout.skinBackground(R.drawable.white_circle)
@@ -267,7 +267,7 @@ class FoodContentView : ConstraintLayout {
 
 
             starView.apply {
-                if (is033 || foodSn.startsWith("011")) {
+                if (getGoneScore()) {
                     starView.visibility = View.GONE
                 } else {
                     starView.visibility = View.VISIBLE
@@ -276,7 +276,10 @@ class FoodContentView : ConstraintLayout {
                 }
 
             }
-            if (foodSn.startsWith("011")) {
+            if (foodSn.startsWith("011")){
+                if (foodSn.startsWith("011F")){
+                    binding.tvEasy.setTextColor(resources.getColor(R.color.color_A3A3A2))
+                }
                 binding.easyLayout.visibility = View.VISIBLE
                 content.level.let {
 

+ 22 - 4
BusinessCommon/src/main/java/com/develop/common/widget/HomeFilterSortSearchView.kt

@@ -2,19 +2,20 @@ package com.develop.common.widget
 
 import android.app.Activity
 import android.content.Context
+import android.text.InputType
 import android.util.AttributeSet
 import android.util.Log
+import android.view.KeyEvent
 import android.view.View
 import android.widget.RelativeLayout
 import com.blankj.utilcode.util.KeyboardUtils
+import com.develop.base.ext.getGoneRecipes
 import com.develop.base.ext.getSN
 import com.develop.base.ext.isFrLanguage
-import com.develop.base.ext.isNightTheme
 import com.develop.base.ext.resId2Dimension
 import com.develop.base.ext.setGone
 import com.develop.base.ext.setVisible
 import com.develop.common.R
-
 import com.develop.common.databinding.HomeSortFilterSearchViewBinding
 
 
@@ -35,7 +36,10 @@ class HomeFilterSortSearchView : RelativeLayout {
     init {
         val root = View.inflate(context, R.layout.home_sort_filter_search_view, this)
         binding = HomeSortFilterSearchViewBinding.bind(root)
-        if (sn.startsWith("011")){
+        if (getGoneRecipes()){
+            if (sn.startsWith("011F")){
+                binding.homeSortLayout.background = null
+            }
             binding.downloadLayout.visibility = View.INVISIBLE
             binding.onlineLayout.visibility = View.INVISIBLE
         }else{
@@ -83,6 +87,20 @@ class HomeFilterSortSearchView : RelativeLayout {
         binding.etSearch.setOnFocusChangeListener { view, b ->
             Log.d("TAG dddddd", " binding.etSearch :{$b}")
         }
+
+       binding.etSearch.setOnKeyListener { view, i, keyEvent ->
+           if (i == KeyEvent.KEYCODE_ENTER){
+               KeyboardUtils.hideSoftInput(context as Activity)
+               val content = binding.etSearch.text.toString()
+               if (content.isNotEmpty()) {
+                   onFunctionCallback?.onInputSearch(content)
+               }
+           }
+           return@setOnKeyListener false
+       }
+
+        //系统自动完成填补功能
+//     binding.etSearch.inputType = InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
     }
 
     fun resetView() {
@@ -121,7 +139,7 @@ class HomeFilterSortSearchView : RelativeLayout {
     }
 
     fun onLineState(isOnLineState: Boolean){
-        if (sn.startsWith("011")){
+        if (getGoneRecipes()){
             binding.onlineLayout.setGone()
             binding.recipesLayout.setGone()
         }else{

+ 20 - 3
BusinessCommon/src/main/java/com/develop/common/widget/HomeFunctionTopBar.kt

@@ -47,11 +47,21 @@ class HomeFunctionTopBar : RelativeLayout, View.OnClickListener {
         binding.ivTab.setOnClickListener(this)
         binding.ivWifi.setOnClickListener(this)
         if (sn.startsWith("011")){
-            binding.homeTopLayout.background = resources.getDrawable(R.color.black)
-            binding.modeLayout.background = resources.getDrawable(R.color.black)
+            var id = 0
+            if (sn.startsWith("011F")){
+                id = R.drawable.ic_tab_011f
+                //011F 背景需要透明
+                binding.homeTopLayout.background = resources.getDrawable(R.color.color_00000000)
+                binding.modeLayout.background = resources.getDrawable(R.color.color_00000000)
+            }else{
+                id = R.drawable.ic_tab_011
+                binding.homeTopLayout.background = resources.getDrawable(R.color.black)
+                binding.modeLayout.background = resources.getDrawable(R.color.black)
+            }
+
             binding.ivWifi.src = R.drawable.icon_wifi_act_signal_level_011
             binding.ivFunction.background_drawable = R.drawable.ic_home_011
-            binding.ivTab.src = R.drawable.ic_tab_011
+            binding.ivTab.src = id
             binding.ivNotify.src = R.drawable.ic_notify_011
 
 
@@ -151,6 +161,13 @@ class HomeFunctionTopBar : RelativeLayout, View.OnClickListener {
         binding.tvTitle.updateText(title)
     }
 
+    fun setTuyaType(type: Int) {
+        if (type == binding.ivTuya.visibility){
+            return
+        }
+        binding.ivTuya.visibility = type
+    }
+
     fun setUserName(userName: String) {
         binding.tvState.text = userName
     }

+ 6 - 1
BusinessCommon/src/main/java/com/develop/common/widget/RingControlView.kt

@@ -8,6 +8,7 @@ import android.util.AttributeSet
 import android.util.TypedValue
 import android.view.MotionEvent
 import android.view.View
+import com.develop.base.ext.getSN
 import com.develop.base.ext.isBrand011A
 import com.develop.base.ext.isBrand062
 import com.develop.base.ext.isNightTheme
@@ -22,6 +23,7 @@ class RingControlView @JvmOverloads constructor(
     private val extraPaint = Paint(Paint.ANTI_ALIAS_FLAG) //圆弧
     private val is062 = isBrand062()
     private val is011 = isBrand011A()
+    private val sn = getSN()
     private val ringStrokeWidth = TypedValue.applyDimension(
         TypedValue.COMPLEX_UNIT_DIP, 7f, context.resources.displayMetrics
     )
@@ -78,12 +80,15 @@ class RingControlView @JvmOverloads constructor(
         } else {
             if (is062){
                 ringPaint.color = 0xffDAE343.toInt()
+            }else if (sn.startsWith("011F")){
+                ringPaint.color = 0xff211D6D.toInt()
             }else{
                 ringPaint.color = 0xffE60012.toInt()
             }
         }
         canvas.drawPath(fillPath, ringPaint)
-        extraPaint.color = if (nightTheme) if (is011) 0xffD51317.toInt() else 0xffDF3F54.toInt() else if (is062) 0xffDAE343.toInt() else 0xffFFA627.toInt()
+        extraPaint.color = if (nightTheme) if (is011) 0xffD51317.toInt() else 0xffDF3F54.toInt()
+        else if (is062) 0xffDAE343.toInt()else if (sn.startsWith("011F")) 0xff60F262.toInt() else 0xffFFA627.toInt()
 
         // -150 ~ 150
         val angle = 300.0 * progress - 150.0

+ 2 - 0
BusinessCommon/src/main/java/com/develop/common/widget/TimePickerView.kt

@@ -64,6 +64,7 @@ class TimePickerView : ConstraintLayout {
         val root = View.inflate(context, R.layout.time_picker_view, this)
         binding = TimePickerViewBinding.bind(root)
         is062 = isBrand062()
+
         repeat(60) { idx ->
             if (idx < 10) {
                 firstData.add("0$idx")
@@ -93,6 +94,7 @@ class TimePickerView : ConstraintLayout {
             timeColor = getColor(R.styleable.TimePickerView_time_color, Color.WHITE)
         }.recycle()
         if (is062) timeColor = Color.WHITE
+        if (sn.startsWith("011F")) timeColor = resources.getColor(R.color.color_AECA06)
         binding.tvDotTime.setTextColor(timeColor)
         binding.tvFirstBottom.setTextColor(timeColor)
         binding.tvSecondBottom.setTextColor(timeColor)

+ 6 - 1
BusinessCommon/src/main/java/com/develop/common/widget/WeightView.kt

@@ -12,6 +12,7 @@ import android.view.View
 import android.widget.Scroller
 import com.develop.base.ext.dimenRes
 import com.develop.base.R
+import com.develop.base.ext.getSN
 import com.develop.base.ext.isBrand062
 
 
@@ -34,6 +35,7 @@ class WeightView @JvmOverloads constructor(
     private val scroller = Scroller(context)
     private val gapCount = 20
     private val is062 = isBrand062()
+    private val sn = getSN()
     init {
         paint.strokeWidth = outlineStrokeWidth
         textPaint.textSize = TypedValue.applyDimension(
@@ -62,7 +64,10 @@ class WeightView @JvmOverloads constructor(
     override fun onDraw(canvas: Canvas) {
         super.onDraw(canvas)
 
-        paint.color = if (is062) 0xffDAE343.toInt() else 0xffe60012.toInt() // 三角形指示器
+        paint.color = if (is062) 0xffDAE343.toInt()
+        else if (sn.startsWith("011F")) 0xff60F262.toInt()
+        else 0xffe60012.toInt() // 三角形指示器
+
         canvas.drawPath(path, paint)
 
         paint.style = Paint.Style.STROKE

BIN
BusinessCommon/src/main/res/drawable-xhdpi/ic_screensaver_011a.png


BIN
BusinessCommon/src/main/res/drawable-xhdpi/ic_screensaver_011a_app.png


BIN
BusinessCommon/src/main/res/drawable-xhdpi/ic_screensaver_011d_app.png


BIN
BusinessCommon/src/main/res/drawable-xhdpi/ic_screensaver_011e_app.png


BIN
BusinessCommon/src/main/res/drawable-xxhdpi/ic_screensaver_011a.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/account_background_010h.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/account_background_010i.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/account_background_011a.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/account_background_011e_5037.jpg


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/account_background_011e_5037.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/account_background_083.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/cm_icon_mulsify_054.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/connect_tuya.webp


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_011f_bg_1.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_011f_bg_2.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_011f_bg_3.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_011f_bg_4.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_bg_000_1.webp


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_bg_000_2.webp


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_bg_000_3.webp


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_bg_000_4.webp


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_bg_011g_1.jpg


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_bg_011g_2.jpg


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_bg_011g_3.jpg


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_bg_011g_4.jpg


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_bg_1.webp


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_bg_2.webp


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_bg_3.webp


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_bg_4.webp


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/guide_bg_011f.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/home_bg_011_f.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_auto_clean_011_f.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_auto_clean_bg_011_f.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_boil_water_011_f.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_boil_water_bg_011_f.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_chop_011_f.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_chop_bg_011_f.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_citrus_juicer_011_f.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_citrus_juicer_bg_011_f.jpg


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_cook_rice_011_f.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_cook_rice_bg_011_f.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_food_processor_011_f.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_food_processor_bg_011_f.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_knead_dough_011_f.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_knead_dough_bg_011_f.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_potato_peeler_011_f.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_potato_peeler_bg_011_f.jpg


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_smoothie_011_f.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_smoothie_bg_011_f.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_sovs_vide_011_f.png


+ 0 - 0
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_a_sovs_vide_bg_011_f.png


Some files were not shown because too many files changed in this diff