Explorar el Código

处理058代码上传

zhangshenjie hace 1 mes
padre
commit
7471eec321
Se han modificado 27 ficheros con 1560 adiciones y 55 borrados
  1. 11 0
      BusinessMain/src/main/java/com/develop/main/init/ui/HomeActivity.kt
  2. 62 6
      BusinessMain/src/main/java/com/develop/main/init/ui/ModesFragment.kt
  3. 76 25
      BusinessMain/src/main/res/layout/activity_home.xml
  4. 3 1
      BusinessSetting/src/main/AndroidManifest.xml
  5. 48 0
      BusinessSetting/src/main/java/com/develop/setting/init/ui/HelpDocsActivity.kt
  6. 4 4
      BusinessSetting/src/main/java/com/develop/setting/init/ui/LanguageActivity.kt
  7. 19 0
      BusinessSetting/src/main/res/layout/activity_help_docs.xml
  8. 154 0
      BusinessStep/src/main/assets/config_058.json
  9. 195 0
      BusinessStep/src/main/assets/lang_config_058.json
  10. 9 2
      BusinessStep/src/main/res/layout/activity_cook_detail.xml
  11. 1 1
      BusinessStep/src/main/res/layout/activity_food_step.xml
  12. 1 1
      BusinessStep/src/main/res/layout/activity_mode_detail.xml
  13. 26 11
      app/build.gradle
  14. 255 0
      app/src/brand058A/res/values-tr/strings.xml
  15. 217 0
      app/src/main/assets/help/TR/help.html
  16. 71 0
      app/src/main/assets/help/TR/privacy.html
  17. 1 0
      libBase/src/main/java/com/develop/food/base/common/CommonTag.kt
  18. 113 0
      libBase/src/main/java/com/develop/food/base/data/DataFactory.kt
  19. 1 1
      libBase/src/main/java/com/develop/food/base/data/model/ModelsModel.kt
  20. 1 0
      libBase/src/main/java/com/develop/food/base/router/Screens.kt
  21. 31 0
      libBase/src/main/java/com/develop/food/base/utils/ConfigUtils.kt
  22. 3 2
      libBase/src/main/java/com/develop/food/base/utils/GlobalExt.kt
  23. 1 1
      libBase/src/main/java/com/develop/food/base/utils/WorkMode.kt
  24. BIN
      libBase/src/main/res/drawable-xxxhdpi/ic_help.webp
  25. BIN
      libBase/src/main/res/drawable/icon_lang_tr.png
  26. 256 0
      libBase/src/main/res/values-tr/strings.xml
  27. 1 0
      libBase/src/main/res/values/strings.xml

+ 11 - 0
BusinessMain/src/main/java/com/develop/main/init/ui/HomeActivity.kt

@@ -6,6 +6,7 @@ import android.util.Log
 import android.view.Gravity
 import android.view.KeyEvent
 import android.view.LayoutInflater
+import android.view.View
 import android.widget.LinearLayout
 import androidx.databinding.ViewDataBinding
 import androidx.lifecycle.MutableLiveData
@@ -40,6 +41,7 @@ import com.develop.food.base.utils.GlobalToast
 import com.develop.food.base.utils.MmkvUtils
 import com.develop.food.base.utils.NetWorkManager
 import com.develop.food.base.utils.ResDimension
+import com.develop.food.base.utils.getSN
 import com.develop.food.base.widgets.CommonPopupWindow
 import com.develop.food.base.widgets.DirectionView
 import com.develop.food.base.widgets.HomeFunctionTopBar
@@ -291,6 +293,15 @@ class HomeActivity : BaseActivity<ActivityHomeBinding>(), NetWorkManager.OnSysCh
             }
         }
 
+        binding.helpLayout.setOnClickListener {
+            binding.contentView.closeDrawers()
+            navigateTo(Screens.Setting.HELP)
+        }
+
+        if (!getSN().startsWith("034")){
+            binding.helpLayout.visibility = View.VISIBLE
+        }
+
         homeViewModel.apply {
             netFoodLiveData.observe(this@HomeActivity) {
                 binding.functionTopBar.updateNetFunType()

+ 62 - 6
BusinessMain/src/main/java/com/develop/main/init/ui/ModesFragment.kt

@@ -1,16 +1,13 @@
 package com.develop.main.init.ui
 
-import android.app.Activity
 import android.graphics.Rect
 import android.os.Bundle
-import android.view.KeyEvent
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
 import androidx.recyclerview.widget.GridLayoutManager
 import androidx.recyclerview.widget.LinearSnapHelper
 import androidx.recyclerview.widget.RecyclerView
-import com.blankj.utilcode.util.KeyboardUtils
 import com.develop.food.base.common.MODE_TYPE
 import com.develop.food.base.data.DataFactory
 import com.develop.food.base.data.model.ModelsModel
@@ -18,8 +15,11 @@ import com.develop.food.base.ext.background_drawable
 import com.develop.food.base.router.Screens
 import com.develop.food.base.router.navigateTo
 import com.develop.food.base.ui.ViewBindingFragment
+import com.develop.food.base.utils.ConfigUtils
 import com.develop.food.base.utils.ResDimension
 import com.develop.food.base.utils.TopResumedActivityHolder
+import com.develop.food.base.utils.WorkMode
+import com.develop.food.base.utils.getSN
 import com.develop.food.base.utils.isNightTheme
 import com.develop.food.base.utils.setGone
 import com.develop.food.base.utils.setVisible
@@ -66,7 +66,7 @@ class ModesFragment : ViewBindingFragment<FragmentModesBinding>() {
 
         binding.modeLayout034.setOnClickListener {
             isGrid = !isGrid
-            if (isGrid){
+            if (isGrid) {
                 binding.ivIcon2.background_drawable = R.drawable.icon_v
             } else {
                 binding.ivIcon2.background_drawable = R.drawable.ic_grid
@@ -112,7 +112,12 @@ class ModesFragment : ViewBindingFragment<FragmentModesBinding>() {
                 }
             })
         }
-        dataList = DataFactory.genGridModesList(resources)
+
+        dataList =
+            if (getSN().startsWith("058")) getConfigGridList() else DataFactory.genGridModesList(
+                resources
+            )
+
         modesGridAdapter.setList(dataList)
 
         binding.galleryRecycle.apply {
@@ -158,7 +163,11 @@ class ModesFragment : ViewBindingFragment<FragmentModesBinding>() {
                 }
             })
         }
-        modesGalleryAdapter.setList(DataFactory.genGalleryModesList(resources))
+        modesGalleryAdapter.setList(
+            if (getSN().startsWith("058")) getConfigList() else DataFactory.genGalleryModesList(
+                resources
+            )
+        )
 
         modesGridAdapter.setOnItemClickListener { adapter, view, position ->
             run {
@@ -197,6 +206,53 @@ class ModesFragment : ViewBindingFragment<FragmentModesBinding>() {
 
     }
 
+    private fun getConfigList(): MutableList<ModelsModel> {
+        //兼容处理竖屏数据
+        val configJson = ConfigUtils.loadConfigList()
+        var modelsModelList = mutableListOf<ModelsModel>()
+        if (configJson?.workModes?.size == 0) {
+            return modelsModelList
+        }
+
+        var filterCondition = { it: WorkMode -> it.devMode == "SOUP" && it.listShow == true }
+        var list = configJson?.workModes?.filter(filterCondition)
+        list?.forEach { modes ->
+            var modelsModel = ModelsModel(
+                DataFactory.getConfigListIcon(modes.icon),
+                modes.name!!,
+                DataFactory.getModeType(modes.type)
+            )
+            modelsModelList.add(modelsModel)
+        }
+
+
+        return modelsModelList
+    }
+
+    private fun getConfigGridList(): MutableList<ModelsModel> {
+        //兼容处理竖屏数据
+        val configJson = ConfigUtils.loadConfigList()
+        var modelsModelList = mutableListOf<ModelsModel>()
+        if (configJson?.workModes?.size == 0) {
+            return modelsModelList
+        }
+
+        var filterCondition = { it: WorkMode -> it.devMode == "SOUP" && it.listShow == true }
+        var list = configJson?.workModes?.filter(filterCondition)
+        list?.forEach { modes ->
+            var modelsModel = ModelsModel(
+                DataFactory.getConfigGridListIcon(modes.gv),
+                modes.name!!,
+                DataFactory.getModeType(modes.type)
+            )
+            modelsModelList.add(modelsModel)
+        }
+
+
+        return modelsModelList
+    }
+
+
     private val runningTipsDialog: CancelConfirmDialog = CancelConfirmDialog()
 
     fun runningWeightTips() {

+ 76 - 25
BusinessMain/src/main/res/layout/activity_home.xml

@@ -41,14 +41,29 @@
             android:layout_centerHorizontal="true"
             android:layout_marginTop="@dimen/convert_183px"
             android:background="@drawable/ic_icon1" />
-
+        <androidx.appcompat.widget.AppCompatTextView
+            android:id="@+id/tv_user_name"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/iv_avatar"
+            android:layout_centerHorizontal="true"
+            android:layout_marginStart="40dp"
+            android:layout_marginTop="@dimen/convert_35px"
+            android:layout_marginEnd="40dp"
+            android:ellipsize="end"
+            android:gravity="center"
+            android:includeFontPadding="false"
+            android:singleLine="true"
+            android:text="@string/login"
+            android:textColor="@color/login_color"
+            android:textSize="@dimen/convert_45px" />
         <LinearLayout
             android:id="@+id/history_layout"
             android:layout_width="match_parent"
             android:layout_height="@dimen/convert_120px"
             android:layout_below="@id/tv_user_name"
             android:layout_marginStart="@dimen/convert_77px"
-            android:layout_marginTop="@dimen/convert_140px"
+            android:layout_marginTop="@dimen/convert_100px"
             android:background="@drawable/shape_60pxf4a12e_left_corners"
             android:gravity="center_vertical"
             android:orientation="horizontal">
@@ -59,12 +74,17 @@
                 android:layout_marginStart="@dimen/convert_60px"
                 android:background="@drawable/ic_history" />
 
-            <androidx.appcompat.widget.AppCompatTextView
+            <com.develop.food.base.widgets.MarqueeTextView
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_marginStart="@dimen/convert_32px"
                 android:text="@string/cook_history"
                 android:textColor="@color/color_fff"
+                android:ellipsize="marquee"
+                android:focusable="true"
+                android:focusableInTouchMode="true"
+                android:marqueeRepeatLimit="marquee_forever"
+                android:singleLine="true"
                 android:textSize="@dimen/convert_45px" />
         </LinearLayout>
 
@@ -74,7 +94,7 @@
             android:layout_height="@dimen/convert_120px"
             android:layout_below="@id/history_layout"
             android:layout_marginStart="@dimen/convert_77px"
-            android:layout_marginTop="@dimen/convert_89px"
+            android:layout_marginTop="@dimen/convert_80px"
             android:background="@drawable/shape_60pxf4a12e_left_corners"
             android:gravity="center_vertical"
             android:orientation="horizontal">
@@ -85,12 +105,17 @@
                 android:layout_marginStart="@dimen/convert_60px"
                 android:background="@drawable/ic_favourite" />
 
-            <androidx.appcompat.widget.AppCompatTextView
+            <com.develop.food.base.widgets.MarqueeTextView
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_marginStart="@dimen/convert_32px"
                 android:text="@string/favourite_recipes"
                 android:textColor="@color/color_fff"
+                android:ellipsize="marquee"
+                android:focusable="true"
+                android:focusableInTouchMode="true"
+                android:marqueeRepeatLimit="marquee_forever"
+                android:singleLine="true"
                 android:textSize="@dimen/convert_45px" />
         </LinearLayout>
 
@@ -100,7 +125,7 @@
             android:layout_height="@dimen/convert_120px"
             android:layout_below="@id/favourite_layout"
             android:layout_marginStart="@dimen/convert_77px"
-            android:layout_marginTop="@dimen/convert_89px"
+            android:layout_marginTop="@dimen/convert_80px"
             android:background="@drawable/shape_60pxf4a12e_left_corners"
             android:gravity="center_vertical"
             android:orientation="horizontal">
@@ -111,11 +136,16 @@
                 android:layout_marginStart="@dimen/convert_60px"
                 android:background="@drawable/ic_setting" />
 
-            <androidx.appcompat.widget.AppCompatTextView
+            <com.develop.food.base.widgets.MarqueeTextView
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_marginStart="@dimen/convert_32px"
                 android:text="@string/settings"
+                android:ellipsize="marquee"
+                android:focusable="true"
+                android:focusableInTouchMode="true"
+                android:marqueeRepeatLimit="marquee_forever"
+                android:singleLine="true"
                 android:textColor="@color/color_fff"
                 android:textSize="@dimen/convert_45px" />
         </LinearLayout>
@@ -126,7 +156,7 @@
             android:layout_height="@dimen/convert_120px"
             android:layout_below="@id/setting_layout"
             android:layout_marginStart="@dimen/convert_77px"
-            android:layout_marginTop="@dimen/convert_89px"
+            android:layout_marginTop="@dimen/convert_80px"
             android:background="@drawable/shape_60pxf4a12e_left_corners"
             android:gravity="center_vertical"
             android:orientation="horizontal">
@@ -137,31 +167,52 @@
                 android:layout_marginStart="@dimen/convert_60px"
                 android:background="@drawable/ic_policy" />
 
-            <androidx.appcompat.widget.AppCompatTextView
+            <com.develop.food.base.widgets.MarqueeTextView
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_marginStart="@dimen/convert_32px"
                 android:text="@string/privacy_policy"
                 android:textColor="@color/color_fff"
+                android:ellipsize="marquee"
+                android:focusable="true"
+                android:focusableInTouchMode="true"
+                android:marqueeRepeatLimit="marquee_forever"
+                android:singleLine="true"
                 android:textSize="@dimen/convert_45px" />
         </LinearLayout>
-
-        <androidx.appcompat.widget.AppCompatTextView
-            android:id="@+id/tv_user_name"
+        <LinearLayout
+            android:id="@+id/help_layout"
+            android:visibility="gone"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_below="@id/iv_avatar"
-            android:layout_centerHorizontal="true"
-            android:layout_marginStart="40dp"
-            android:layout_marginTop="@dimen/convert_35px"
-            android:layout_marginEnd="40dp"
-            android:ellipsize="end"
-            android:gravity="center"
-            android:includeFontPadding="false"
-            android:singleLine="true"
-            android:text="@string/login"
-            android:textColor="@color/login_color"
-            android:textSize="@dimen/convert_45px" />
+            android:layout_height="@dimen/convert_120px"
+            android:layout_below="@id/policy_layout"
+            android:layout_marginStart="@dimen/convert_77px"
+            android:layout_marginTop="@dimen/convert_80px"
+            android:background="@drawable/shape_60pxf4a12e_left_corners"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <ImageView
+                android:layout_width="@dimen/convert_75px"
+                android:layout_height="@dimen/convert_75px"
+                android:layout_marginStart="@dimen/convert_60px"
+                android:background="@drawable/ic_help" />
+
+            <com.develop.food.base.widgets.MarqueeTextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/convert_32px"
+                android:text="@string/help"
+                android:textColor="@color/color_fff"
+                android:ellipsize="marquee"
+                android:focusable="true"
+                android:focusableInTouchMode="true"
+                android:marqueeRepeatLimit="marquee_forever"
+                android:singleLine="true"
+                android:textSize="@dimen/convert_45px" />
+        </LinearLayout>
+
+
     </RelativeLayout>
 
 </androidx.drawerlayout.widget.DrawerLayout>

+ 3 - 1
BusinessSetting/src/main/AndroidManifest.xml

@@ -17,7 +17,9 @@
 
     <application>
         <activity
-            android:name=".init.ui.TextWebViewActivity" />
+            android:name=".init.ui.HelpDocsActivity"
+            android:exported="false" />
+        <activity android:name=".init.ui.TextWebViewActivity" />
         <activity android:name=".init.ui.PowerAnimationActivity" />
         <activity android:name=".init.ui.LanguageActivity" />
         <activity

+ 48 - 0
BusinessSetting/src/main/java/com/develop/setting/init/ui/HelpDocsActivity.kt

@@ -0,0 +1,48 @@
+package com.develop.setting.init.ui
+
+import android.annotation.SuppressLint
+import androidx.appcompat.app.AppCompatActivity
+import android.os.Bundle
+import android.util.Log
+import android.webkit.WebView
+import android.webkit.WebViewClient
+import com.alibaba.android.arouter.facade.annotation.Route
+import com.develop.food.base.router.Screens
+import com.develop.food.base.utils.CURRENT_LANGUAGE
+import com.develop.food.base.utils.MmkvUtils
+import com.develop.food.base.utils.getSN
+import com.develop.setting.R
+import com.develop.food.base.utils.CURRENT_LANGUAGE
+import com.develop.food.base.widgets.TopTitleView
+@Route(path = Screens.Setting. HELP)
+class HelpDocsActivity : AppCompatActivity() {
+    @SuppressLint("MissingInflatedId")
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        setContentView(R.layout.activity_help_docs)
+        val topBar = findViewById<TopTitleView>(R.id.top_bar)
+        topBar.listenBackClick {
+            finish()
+        }
+        topBar.setTopBarTitle(R.string.help)
+
+
+        val webView = findViewById<WebView>(R.id.help_webview)
+        webView.getSettings().setJavaScriptEnabled(true);
+        webView.webViewClient = object : WebViewClient() {
+            override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
+                // 在WebView中加载链接
+                view.loadUrl(url)
+                return true
+            }
+        }
+        var language = MmkvUtils.getString(CURRENT_LANGUAGE)
+        if (language == null) {
+            language = "EN"
+        }
+        var url = "file:///android_asset/help/${language}/help.html"
+        webView.loadUrl(url)
+
+
+    }
+}

+ 4 - 4
BusinessSetting/src/main/java/com/develop/setting/init/ui/LanguageActivity.kt

@@ -188,15 +188,15 @@ class LanguageActivity : BaseActivity<ActivityLanguageBinding>() {
             languageAdapter1.data[selectPosition].apply {
 //                updateLanguage(Locale(this.value.lowercase(), this.value.uppercase()))
                 MmkvUtils.save(CURRENT_LANGUAGE, this.value)
-                setLanguage(this.value.lowercase())
-//                LanguageUtils.applyLanguage(Locale(this.value.lowercase(), this.value.uppercase()))
+//                setLanguage(this.value.lowercase())
+                LanguageUtils.applyLanguage(Locale(this.value.lowercase(), this.value.uppercase()))
             }
         } else {
             languageAdapter.data[selectPosition].apply {
 //                updateLanguage(Locale(this.value.lowercase(), this.value.uppercase()))
                 MmkvUtils.save(CURRENT_LANGUAGE, this.value)
-                setLanguage(this.value.lowercase())
-//                LanguageUtils.applyLanguage(Locale(this.value.lowercase(), this.value.uppercase()))
+//                setLanguage(this.value.lowercase())
+                LanguageUtils.applyLanguage(Locale(this.value.lowercase(), this.value.uppercase()))
             }
         }
     }

+ 19 - 0
BusinessSetting/src/main/res/layout/activity_help_docs.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".init.ui.HelpDocsActivity"
+    android:orientation="vertical"
+    >
+    <com.develop.food.base.widgets.TopTitleView
+        android:id="@+id/top_bar"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/convert_134px" />
+    <WebView
+        android:id="@+id/help_webview"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_margin="@dimen/convert_10px"/>
+</LinearLayout>

+ 154 - 0
BusinessStep/src/main/assets/config_058.json

@@ -0,0 +1,154 @@
+{
+  "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",
+      "gv":"ic_adapted_cooking",
+      "listShow": false
+    },
+    {
+      "type": "KNEAD_TOUGH",
+      "name": "knead_dough",
+      "bg": "ic_mode_knead_dough",
+      "icon": "ic_grid_knead_dough",
+      "devMode": "SOUP",
+      "gv":"ic_knead_dough",
+      "listShow": true
+    },
+    {
+      "type": "STEAM",
+      "name": "steam",
+      "bg": "ic_mode_steam",
+      "icon": "ic_grid_steam",
+      "devMode": "SOUP",
+      "gv":"ic_steam",
+      "listShow": true
+    },
+    {
+      "type": "SLOW_COOK",
+      "name": "slow_cook",
+      "bg": "ic_mode_slow_cook",
+      "icon": "ic_grid_slow_cook",
+      "devMode": "SOUP",
+      "gv":"ic_slow_cook",
+      "listShow": true
+    },
+    {
+      "type": "BOIL_WATER",
+      "name": "boil_water",
+      "bg": "ic_mode_boil_water",
+      "icon": "ic_grid_boil_water",
+      "devMode": "SOUP",
+      "gv":"ic_boil_water",
+      "listShow": true
+    },
+    {
+      "type": "FOOD_PROCESSOR",
+      "name": "food_processor",
+      "bg": "ic_mode_food_processor",
+      "icon": "ic_grid_food_processor",
+      "devMode": "SOUP",
+      "gv":"ic_food_processor",
+      "listShow": true
+    },
+    {
+      "type": "CHOP",
+      "name": "chop",
+      "bg": "ic_mode_chop",
+      "icon": "ic_grid_chop",
+      "devMode": "SOUP",
+      "gv":"ic_chop",
+      "listShow": true
+    },
+    {
+      "type": "BROWN",
+      "name": "brown",
+      "bg": "cm_icon_roast",
+      "icon": "cm_icon_roast",
+      "devMode": "SOUP",
+      "gv":"ic_adapted_cooking",
+      "listShow": false
+    },
+    {
+      "type": "ROAST",
+      "name": "roast",
+      "bg": "cm_icon_roast",
+      "icon": "cm_icon_roast",
+      "devMode": "SOUP",
+      "gv":"ic_adapted_cooking",
+      "listShow": false
+    },
+
+    {
+      "type": "COOK_EGGS",
+      "name": "cook_eggs",
+      "bg": "cm_icon_cook_eggs_bg",
+      "icon": "cm_icon_cook_eggs",
+      "devMode": "SOUP",
+      "gv":"ic_adapted_cooking",
+      "listShow": false
+    },
+    {
+      "type": "TURBO",
+      "name": "turbo",
+      "bg": "ic_mode_turbo",
+      "icon": "ic_grid_turbo",
+      "devMode": "SOUP",
+      "gv":"ic_night_turbo",
+      "listShow": true
+    },
+    {
+      "type": "WIGHT",
+      "name": "wight",
+      "bg": "ic_mode_weight",
+      "icon": "ic_grid_weight",
+      "devMode": "SOUP",
+      "gv":"ic_scales",
+      "listShow": true
+    },
+
+
+    {
+      "type": "ROAST",
+      "name": "roast",
+      "bg": "cm_icon_roast",
+      "icon": "cm_icon_roast",
+      "devMode": "SOUP",
+      "gv":"ic_adapted_cooking",
+      "listShow": false
+    },
+    {
+      "type": "CITRUS_JUICER",
+      "name": "citrus_juicer",
+      "bg": "ic_mode_citrus_juicer",
+      "icon": "ic_grid_citrus_juicer",
+      "devMode": "SOUP",
+      "gv":"ic_adapted_cooking",
+      "listShow": false
+    },
+    {
+      "type": "DICING",
+      "name": "dicing",
+      "bg": "ic_mode_dicing",
+      "icon": "ic_grid_dicing",
+      "devMode": "SOUP",
+      "gv":"ic_adapted_cooking",
+      "listShow": false
+    },
+
+    {
+      "type": "POTATO_PEELER",
+      "name": "potato_peeler",
+      "bg": "ic_mode_potato_peeler",
+      "icon": "ic_grid_potato_peeler",
+      "devMode": "SOUP",
+      "gv":"ic_adapted_cooking",
+      "listShow": false
+    }
+
+  ]
+}

+ 195 - 0
BusinessStep/src/main/assets/lang_config_058.json

@@ -0,0 +1,195 @@
+{
+  "baseQrUrl": "https://icook.cofarcn.com/h5/index.html",
+  "langs": [
+    {
+      "name": "Turkey(土耳其)",
+      "value": "TR",
+      "icon": "icon_lang_tr",
+      "showName": "Turkish",
+      "show": true
+    },
+    {
+      "name": "English(英语)",
+      "value": "EN",
+      "icon": "icon_lang_en",
+      "showName": "English",
+      "show": false
+    },
+    {
+      "name": "Polish(波兰语)",
+      "value": "PL",
+      "icon": "icon_lang_pl",
+      "showName": "Polski",
+      "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": "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": "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": "Bulgaria(保加利亚语)",
+      "value": "BG",
+      "icon": "icon_lang_bg",
+      "showName": "Български език",
+      "show": false
+    },
+    {
+      "name": "Hungarian(匈牙利语)",
+      "value": "HU",
+      "icon": "icon_lang_hu",
+      "showName": "Magyar nyelv",
+      "show": false
+    }
+  ]
+}

+ 9 - 2
BusinessStep/src/main/res/layout/activity_cook_detail.xml

@@ -89,9 +89,9 @@
         app:layout_constraintTop_toBottomOf="@+id/view_back"
         app:layout_constraintStart_toStartOf="parent"/>
 
-    <TextView
+    <com.develop.food.base.widgets.MarqueeTextView
         android:id="@+id/tv_food_name"
-        android:layout_width="wrap_content"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
         tools:text="Guacamole"
         android:textColor="#ffffff"
@@ -99,6 +99,13 @@
         android:textStyle="bold"
         android:layout_marginTop="@dimen/convert_150px"
         android:layout_marginStart="@dimen/convert_47px"
+        android:layout_marginEnd="@dimen/convert_47px"
+        android:ellipsize="marquee"
+        android:focusable="true"
+        android:focusableInTouchMode="true"
+        android:marqueeRepeatLimit="marquee_forever"
+        android:singleLine="true"
+
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/view_back"/>
 

+ 1 - 1
BusinessStep/src/main/res/layout/activity_food_step.xml

@@ -136,7 +136,7 @@
             android:layout_height="wrap_content"
             android:textColor="#ffffff"
             android:textSize="@dimen/convert_180px"
-            android:text="50g"
+            android:text="0g"
             android:layout_marginBottom="@dimen/convert_80px"
             android:includeFontPadding="false"
             android:layout_gravity="center_horizontal"

+ 1 - 1
BusinessStep/src/main/res/layout/activity_mode_detail.xml

@@ -311,7 +311,7 @@
             android:layout_height="wrap_content"
             android:textColor="#fff"
             android:textSize="@dimen/convert_180px"
-            android:text="50g"
+            android:text="0g"
             android:layout_marginBottom="@dimen/convert_80px"
             android:includeFontPadding="false"
             android:layout_gravity="center_horizontal"

+ 26 - 11
app/build.gradle

@@ -23,7 +23,7 @@ static  int formatTime() {
 
 ext{
      versionCode=Integer.parseInt(new SimpleDateFormat("yyMMddHH").format(new Date()) + 1)
-     brandCode="034A"
+     brandCode="000A"
      brandVersionCode=versionCode
      model="3015"
 }
@@ -81,6 +81,16 @@ android {
         }
 
         brand000ATuya {
+            manifestPlaceholders = [channelName: "brand000ATuya"]
+            dimension "platform"
+            applicationId "com.develop.foodcooking"
+            buildConfigField("String", "UpdatePlatform", "\"normal\"")
+            resValue("string", "app_theme", "@style/SplashTheme")
+            buildConfigField("String", "model", "\"3015\"")
+            buildConfigField("String", "brandCode", "\"000A\"")
+        }
+        brand058A {
+            manifestPlaceholders = [channelName: "brand058A"]
             dimension "platform"
             applicationId "com.develop.foodcooking"
             buildConfigField("String", "UpdatePlatform", "\"normal\"")
@@ -88,7 +98,6 @@ android {
             buildConfigField("String", "model", "\"3015\"")
             buildConfigField("String", "brandCode", "\"000A\"")
         }
-        
 
 
 
@@ -152,17 +161,23 @@ android {
 //            buildConfigField("String", "model", "\"3015\"")
 //            buildConfigField("String", "brandCode", "\"034A\"")
 //
-//            buildConfigField("String", "UpdatePlatform", "\"normal\"")
-//            resValue("string", "app_theme", "@style/SplashTheme")
-//            buildConfigField("String", "model", "\"3015\"")
-//            buildConfigField("String", "brandCode", "\"000A\"")
-
-            manifestPlaceholders = [channelName: "brand034"]
-            buildConfigField("String", "UpdatePlatform", "\"night\"")
-            resValue("string", "app_theme", "@style/Splash034Theme")
+//            manifestPlaceholders = [channelName: "brand000ATuya"]
+            buildConfigField("String", "UpdatePlatform", "\"normal\"")
+            resValue("string", "app_theme", "@style/SplashTheme")
             buildConfigField("String", "model", "\"3015\"")
-            buildConfigField("String", "brandCode", "\"034A\"")
+            buildConfigField("String", "brandCode", "\"000A\"")
+
+//            manifestPlaceholders = [channelName: "brand034"]
+//            buildConfigField("String", "UpdatePlatform", "\"night\"")
+//            resValue("string", "app_theme", "@style/Splash034Theme")
+//            buildConfigField("String", "model", "\"3015\"")
+//            buildConfigField("String", "brandCode", "\"034A\"")
 
+//            manifestPlaceholders = [channelName: "brand058A"]
+//                        buildConfigField("String", "UpdatePlatform", "\"normal\"")
+//            resValue("string", "app_theme", "@style/SplashTheme")
+//            buildConfigField("String", "model", "\"3015\"")
+//            buildConfigField("String", "brandCode", "\"058A\"")
 
         }
         //输出类型

+ 255 - 0
app/src/brand058A/res/values-tr/strings.xml

@@ -0,0 +1,255 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+    <string name="not_a_member_yet">Henüz üye değil misiniz?</string>
+    <string name="member">üye</string>
+    <string name="select_language">Dil Seçimi</string>
+    <string name="next">SONRAKİ</string>
+    <string name="english">İngilizce</string>
+    <string name="chinese">Çince</string>
+    <string name="france">Fransızca</string>
+    <string name="japan">Japonca</string>
+    <string name="skip"><![CDATA[SKIP >>]]></string>
+    <string name="recipes">TARİFLER</string>
+    <string name="mode">MOD</string>
+    <string name="sunday">Pazar</string>
+    <string name="monday">Pazartesi</string>
+    <string name="tuesday">Salı</string>
+    <string name="wednesday">Çarşamba</string>
+    <string name="thursday">Perşembe</string>
+    <string name="friday">Cuma</string>
+    <string name="saturday">Cumartesi</string>
+    <string name="resume">DEVAM ET</string>
+    <string name="privacy_policy">Gizlilik Politikası</string>
+    <string name="privacy_policy_content">1. Kişisel bilgilerinizi nasıl topluyor ve kullanıyoruz
+Nanfang Plus Client, Guangdong Nanfang Newspaper Mobile Media Co, Ltd (bundan böyle "biz" olarak anılacaktır) tarafından geliştirilen ve işletilen çevrimiçi bir bilgi platformudur. Southern Plus Client hizmetini kullanırken, bize aktif olarak sunduğunuz veya bu hizmeti kullanmanız neticesinde ortaya çıkan verileri, size hizmet sunmak, hizmetlerimizi daha iyi hale getirmek ve hesabınızın güvenliğini sağlamak için aşağıda belirtilen şekillerde toplayacağız.</string>
+    <string name="i_agree">Kabul Ediyorum</string>
+    <string name="i_have_read_the_privacy_policy">Gizlilik Politikasını okudum</string>
+    <string name="second">İkinci</string>
+    <string name="wifi">Wi-Fi</string>
+    <string name="off_line">ÇEVRİMDIŞI</string>
+    <string name="ok">TAMAM</string>
+    <string name="on_line">ÇEVRİMİÇİ</string>
+    <string name="pwd_can_not_be_empty">Bu alanlar boş bırakılamaz!</string>
+    <string name="skin_for_now">Şimdilik atla</string>
+    <string name="login">Giriş Yap</string>
+    <string name="online_recipes">Online Tarifler</string>
+    <string name="cook_history">Yemek pişirme geçmişi</string>
+    <string name="favourite_recipes">Favori tarifleriniz</string>
+    <string name="settings">Ayarlar</string>
+    <string name="grid_view">Izgara görünümü</string>
+    <string name="list_view">Liste görünümü</string>
+    <string name="adapted_cooking">MANUEL PİŞİRME</string>
+    <string name="scales">ÖLÇEKLER</string>
+    <string name="boil_water">SU KAYNAT</string>
+    <string name="chop">DOĞRA</string>
+    <string name="ferment">FERMENTE</string>
+    <string name="slow_cook">YAVAŞ PİŞİRME</string>
+    <string name="knead_dough">HAMUR YOĞURMA</string>
+    <string name="steam">BUHARDA PİŞİRME</string>
+    <string name="food_processor">MUTFAK ROBOTU</string>
+    <string name="turbo">ÖĞÜTME</string>
+    <string name="language">DİL</string>
+    <string name="sound">SES</string>
+    <string name="brightness">PARLAKLIK</string>
+    <string name="user_account">KULLANICI HESABI</string>
+    <string name="storage">BELLEK</string>
+    <string name="reset">FABRİKA AYARLARINA GERİ DÖN</string>
+    <string name="about">HAKKINDA</string>
+    <string name="tuya">FAKİR HOME</string>
+    <string name="weight">TARTI</string>
+    <string name="local_recipes">Yöresel tarifler</string>
+    <string name="download">İndir</string>
+    <string name="downloading">İndiriliyor</string>
+    <string name="enter_search">Arama terimi gir</string>
+    <string name="search">Ara</string>
+    <string name="most_popular"> En popüler</string>
+    <string name="newest">En yeniler</string>
+    <string name="the_most_commonly_searched">En sık arananlar</string>
+    <string name="notice">Bildirimler</string>
+    <string name="all">TÜMÜ</string>
+    <string name="Recipes">Tarifler</string>
+    <string name="ingredients">Malzemeler</string>
+    <string name="Brightness">Parlaklık</string>
+    <string name="screen_lock_time">Ekran kapanma süresi</string>
+    <string name="time_3min">3Dk</string>
+    <string name="time_5min">5Dk</string>
+    <string name="time_10min">10Dk</string>
+    <string name="time_20min">20Dk</string>
+    <string name="time_30min">30Dk</string>
+    <string name="Sound">Ses</string>
+    <string name="text_to_speech">Metin okuma</string>
+    <string name="Language">Dil</string>
+    <string name="Continue">DEVAM ET</string>
+    <string name="start_cooking">PİŞİRMEYE BAŞLA</string>
+    <string name="off">KAPALI</string>
+    <string name="on">AÇIK</string>
+    <string name="update_the_recipes">Tarifleri güncelle</string>
+    <string name="apk">APK</string>
+    <string name="mcu">MCU</string>
+    <string name="tp">FW</string>
+    <string name="serial_number">SN</string>
+    <string name="standby_time">MODEL</string>
+    <string name="update">Güncelle</string>
+    <string name="About">Hakkında</string>
+    <string name="are_you_sure_to_restore_factory_settings">Fabrika ayarlarına geri dönmek istediğinizden emin misiniz?</string>
+    <string name="yes">EVET</string>
+    <string name="restore_factory_settings">Fabrika ayarlarına geri dön</string>
+    <string name="connected_successfully">Bağlantı başarılı</string>
+    <string name="wifi_loading_text">Bağlanma…</string>
+    <string name="network_wifi_status_connected_no_internet">Bağlantı kuruldu, ancak İnternet’e erişilemiyor</string>
+    <string name="network_wifi_status_saved">Kaydedildi</string>
+    <string name="network_wifi_status_idle" />
+    <string name="network_wifi_status_disabled">"Durduruldu"</string>
+    <string name="network_wifi_status_network_failure">"IP adresi yapılandırma hatası"</string>
+    <string name="network_wifi_status_wifi_failure">"WLAN bağlantı hatası"</string>
+    <string name="network_wifi_status_password_failure">"Kimlik doğrulama ile ilgili bir sorun var"</string>
+    <string name="network_wifi_status_scanning">Taranıyor...</string>
+    <string name="network_wifi_status_connecting">Bağlantı kuruluyor…</string>
+    <string name="network_wifi_status_authenticating">Kimlik doğrulama işlemi devam ediyor…</string>
+    <string name="network_wifi_status_obtaining_ip_address">IP adresi alınıyor…</string>
+    <string name="network_wifi_status_connected">Bağlantı kuruldu</string>
+    <string name="network_wifi_status_suspended">Beklemede</string>
+    <string name="network_wifi_status_disconnecting">Bağlantı kesiliyor…</string>
+    <string name="network_wifi_status_disconnected">Bağlantı kesildi</string>
+    <string name="network_wifi_status_failed">Başarısız oldu</string>
+    <string name="network_wifi_status_blocked">Engellendi</string>
+    <string name="network_wifi_status_verifying_poor_link">Geçici olarak kapatıldı (ağ bağlantısı kötü)</string>
+    <string name="start">BAŞLA</string>
+    <string name="pause">DURAKLAT</string>
+    <string name="cancel">İPTAL ET</string>
+    <string name="confirm">ONAYLA</string>
+    <string name="stop">DURDUR</string>
+    <string name="turn_right">SAĞA DÖNDÜR</string>
+    <string name="turn_left">SOLA DÖNDÜR</string>
+    <string name="temperature">SICAKLIK</string>
+    <string name="time">SÜRE</string>
+    <string name="speed">HIZ</string>
+    <string name="direction">YÖN</string>
+    <string name="bad">Kötü</string>
+    <string name="imperfect">Yetersiz</string>
+    <string name="ordinary">Normal</string>
+    <string name="good">İyi</string>
+    <string name="perfect">Mükemmel</string>
+    <string name="are_you_sure_to_delete">Silmek istediğinize emin misiniz?</string>
+    <string name="no">HAYIR</string>
+    <string name="easy">Kolay</string>
+
+    <string name="medium">Normal</string>
+    <string name="hard">Zor</string>
+
+    <string name="unset_param_tips">Pişirme ayarlarını yapın ( Sıcaklık, Süre  ve Hız ).</string>
+    <string name="pmpt_confirm">Onayla</string>
+    <string name="pmpt_cancel">İptal</string>
+    <string name="pmpt_msg">İpuçları</string>
+    <string name="dev_end_of_run_tips">Bitir!</string>
+    <string name="hight_temp_warning_tips">Mevcut sıcaklık 60 dereceyi geçiyor ve motor hızı üçüncü kademeyi aşıyor. Devam etmek istediğinizden emin misiniz?</string>
+    <string name="hight_temp_turbo_tips">Mevcut sıcaklık 60 dereceyi aşıyor, turbo fonksiyonu kullanılamaz</string>
+    <string name="update_msg">Sistem güncellemesi yapılıyor, lütfen bekleyin~</string>
+    <string name="update_title">En güncel versiyon mu?</string>
+    <string name="finish_download">İndirildi</string>
+    <string name="download_fail">İndirme başarısız</string>
+    <string name="start_download">İndirmeyi başlat</string>
+    <string name="weight_overload_tips">Tartıda aşırı yük var</string>
+    <string name="forgot_password">Şifremi unuttum</string>
+    <string name="enter_email_id">E-posta Kimliğinizi Girin</string>
+    <string name="enter_password">Şifrenizi Girin</string>
+    <string name="register">Kayıt Ol</string>
+    <string name="launch_detail">Hemen şimdi aramıza katılın ve muhteşem yemekler pişirerek keyifli anlar yaşayın</string>
+    <string name="login_sign_up">Giriş Yap / Kaydol</string>
+    <string name="skip_for_now">Şimdilik atla</string>
+    <string name="reset_password">Şifremi Sıfırla</string>
+    <string name="enter_captcha">Doğrulama Kodunu Girin</string>
+    <string name="send_email">E-posta Gönder</string>
+    <string name="enter_password_again">Şifreyi Tekrar Girin</string>
+    <string name="enter_the_captcha_obtained_from_the_mail">E-postanıza gönderilen doğrulama kodunu girin</string>
+    <string name="nickname">Kullanıcı Adı</string>
+    <string name="enter_nickname">Kullanıcı Adınızı Girin</string>
+    <string name="Gender">Cinsiyetiniz</string>
+    <string name="male">Erkek</string>
+    <string name="age">Yaşınız</string>
+    <string name="save">Kaydet</string>
+    <string name="cancellation_of_account">Kullanıcı Hesabı İptali</string>
+    <string name="sign_up_it_s_free">Hemen şimdi kaydolun, tamamen ÜCRETSİZ</string>
+    <string name="pwd_requirement">Şifreniz en az 8 karakterden oluşmalı ve içinde harf ve rakamlar bulunmalıdır.</string>
+    <string name="please_select_age">Lütfen yaşınızı seçiniz</string>
+    <string name="cancel_lower">İptal</string>
+    <string name="female">Kadın</string>
+    <string name="tare">DARA</string>
+    <string name="keep_cooking_in_the_background"> Arka planda pişirmeye devam edilsin mi?</string>
+    <string name="reset_button">SIFIRLA</string>
+    <string name="finish">Bitir!</string>
+    <string name="error">Hata</string>
+    <string name="download_failed">İndirme başarısız oldu</string>
+    <string name="warning">Uyarı!</string>
+    <string name="lid_unlock">Kapak kilidini aç</string>
+    <string name="share_with_more_people">Daha fazla kişiyle paylaşın</string>
+    <string name="scan_qr_code_with_camera">Kamera ile QR kodunu tarayın</string>
+    <string name="enter_what_you_want_to_say">Belirtmek istediklerinizi yazın</string>
+    <string name="note_title">NOT BAŞLIĞI</string>
+    <string name="type_your_notes_here">Notlarınızı buraya yazın</string>
+    <string name="make_1_jar">1 KAVANOZ HAZIRLA</string>
+    <string name="make_n_jars">1%s KAVANOZ HAZIRLA</string>
+    <string name="per_serving">Porsiyon başına</string>
+    <string name="preparation">Yiyecek Hazırlama:</string>
+    <string name="hours">sa</string>
+    <string name="min">dk</string>
+
+
+
+    <string name="ready_in">Hazır:</string>
+    <string name="jar">KİŞİLİK</string>
+    <string name="serving_sizes">Porsiyon büyüklüğü</string>
+    <string name="score">Puan</string>
+    <string name="share">Paylaş</string>
+    <string name="delete">Sil</string>
+    <string name="recipe_update_tips">Toplam {{num}} tarif bulundu. Bunları indirmek istiyor musunuz?</string>
+    <string name="no_recipe_update_tips">Yeni tarifler için kullanılabilir güncelleme dosyası yok \n En güncel versiyon</string>
+    <string name="recipe_update_process_tips">({{progress}})Tarif güncelleme dosyaları indiriliyor...</string>
+    <string name="recipe_update_finish">Tarif güncellemesi tamamlandı</string>
+    <string name="update_recipe_title">Tarif güncelleme</string>
+    <string name="restore_confirm_tips">Fabrika ayarlarına geri dönmek istediğinizden emin misiniz?</string>
+    <string name="change_lang_tips">Program hala çalışıyor, bu işlemi tekrar gerçekleştirmek için lütfen programı kapatın!</string>
+    <string name="exit_weight_align">Kalibrasyon ayarından çık</string>
+    <string name="weight_aligning">Kalibrasyon işlemi devam ediyor..</string>
+    <string name="weight_one_kg_tips">Lütfen 1 KGS ağırlık koyun</string>
+    <string name="weight_two_kg_tips">Lütfen 2 KGS ağırlık koyun</string>
+    <string name="weight_align_success">Kalibrasyon başarıyla yapıldı!</string>
+    <string name="change_lang_tips2">Dili değiştirdikten sonra, tariflerin dili de aynı anda değişecek ve sistem yeniden başlatılacaktır. Dili değiştirmek istediğinizden emin misiniz?</string>
+    <string name="pot_clover_not_clost_tips">Kapak kilidi açık. Lütfen önce kapağı kilitledikten sonra çalıştırın.</string>
+    <string name="screen_saver_title">Ekran koruyucusunu açmak ister misiniz?</string>
+    <string name="sex">Cinsiyet</string>
+    <string name="wight">TARTI</string>
+    <string name="running_block_tips">Lütfen çalışan programı durdurun ve başka programları başlatın.</string>
+    <string name="unset_target_time">Süre ayarlanmadı.</string>
+    <string name="recipe_complete">PİŞİRME TAMAMLANDI</string>
+    <string name="engjoy_your_meal">AFİYET OLSUN!</string>
+    <string name="gan_sao_yi_chan">Dikkat\n- Yüksek sıcaklık\n- Isıtma işlemi yapılırken haznede malzeme yok\n- Malzemeleri, sıvı maddeleri ekleyin</string>
+
+    <string name="zhuan_su_fan_kui_yi_chan">Uyarı\n- Hazne kapağı tam yerine oturmamış\n- Motor aşırı yük altında, makinenin soğumasını bekleyin, hazneye daha az malzeme koyarak yeniden başlatın.</string>
+    <string name="dian_zi_cheng_tong_xin_yi_chan">Dikkat\n- Ağırlık ölçülmedi, tartı hatası\n- Tartı arızalı</string>
+    <string name="ntc_yi_chan">Dikkat! Sıcaklık sensörü (NTC) düzgün çalışmıyor, lütfen teknik servisle iletişime geçin.</string>
+    <string name="mei_fang_guo_yi_chan">Dikkat\n- Karıştırma haznesi tam yerine oturmamış, hazneyi yeniden yerleştirin</string>
+
+    <string name="empty_notice">Boş Bildirim</string>
+    <string name="please_fill_in">Lütfen doldurun</string>
+    <string name="historical_search">Geçmiş arama</string>
+
+
+
+    <!-- 空炸模式 -->
+    <string name="apk_version_latest">Uygulama versiyonu güncel durumda.</string>
+    <string name="installing">Yükleniyor...</string>
+    <string name="evaluate_successfully">Değerlendirme başarılı</string>
+    <string name="rating">değerlendirme</string>
+
+
+    <string name="reset_password_success">Şifre başarılı bir şekilde sıfırlandı!</string>
+    <string name="email_send">E-posta gönderildi</string>
+    <string name="please_fill_in_your_email">Lütfen e-posta adresinizi girin</string>
+    <string name="please_fill_in_the_password">Lütfen şifreyi girin</string>
+    <string name="login_expire_tips">Giriş yapılamadı, lütfen tekrar deneyin</string>
+
+
+
+</resources>

+ 217 - 0
app/src/main/assets/help/TR/help.html

@@ -0,0 +1,217 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+  <meta charset="UTF-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <title>The FAQ's</title>
+</head>
+
+<style>
+  * {
+    margin: 0;
+    padding: 0;
+  }
+
+  body {
+    background-color: #ffffff;
+    height: 100vh;
+    color: #000000;
+    padding: 12px;
+  }
+
+  p {
+    font-size: 14px;
+  }
+
+  .item {
+    margin-top: 14px;
+  }
+
+  .item h3 {
+    position: relative;
+  }
+
+  .item h3::after {
+    content: "";
+    display: inline-block;
+    width: 12px;
+    height: 12px;
+    border-top: 2px solid #000000;
+    border-right: 2px solid #000000;
+    transform: rotate(136deg);
+    margin-left: 14px;
+  }
+
+  .item p,
+  .item ul {
+    display: none;
+    margin-top: 8px;
+  }
+
+  .item:hover p,
+  .item:hover ul {
+    display: block;
+  }
+</style>
+
+<body>
+<h2>Sıkça Sorulan Sorular</h2>
+<div class="item">
+  <h3>Bıçak ilk kullanım sonrasında eğrildi.</h3>
+  <p>Bıçak herhangi bir hasar görmemiştir, bıçağın kullanım kılavuzundaki spesifik şekline bakarak
+    bunu açıkça görebilirsiniz, malzemeleri daha iyi karıştırmak için bıçağın biraz daha kavisli
+    bir yapısı vardır.</p>
+</div>
+
+<div class="item">
+  <h3>İlk kullanım sırasında cihazın arkasından duman çıkıyor.</h3>
+  <p>Bu durum normaldir, duman motorun bobinlerinden gelmektedir ve cihaz yeni olduğu için ilk
+    kullanımda duman ve hafif bir “yanık plastik” kokusu yayabilir. Bu durum zamanla azalacak ve
+    cihaz kullanıldıkça ortadan kalkacaktır. </p>
+</div>
+
+<div class="item">
+  <h3>Robotum artık ısınmıyor veya istenen sıcaklığa ulaşmıyor.</h3>
+  <p>Hazırladığınız karışımı ayırdıktan ve hazneyi soğuttuktan sonra, haznenin altına
+    yerleştirilen termal probu "klik" sesi duyana kadar parmağınızla bastırarak sıfırlamanız
+    yeterlidir.</p>
+</div>
+
+<div class="item">
+  <h3>Tarifi uygularken ekranda hata mesajı çıkıyor.</h3>
+  <p>Robot, motorun aşırı yüklenme riskini (taşma veya gereğinden fazla hazırlanan karışım) en aza
+    indirmek için güvenlik cihazlarıyla donatılmıştır. Bu sorunu çözmek için lütfen cihazı
+    kapatın ve yaklaşık 20 ila 30 dakika soğumasını bekleyin. Sonrasında sorun çözülecektir.
+    Robot pişirici hala açılamıyorsa, lütfen soğutma işlemini tekrarlayın. Diğer yöntemler işe
+    yaramazsa, lütfen satış sonrası servis departmanıyla iletişime geçin.</p>
+</div>
+
+<div class="item">
+  <h3>Hazne tabana tam olarak yerleştirilmemiş veya kapak kilitli değil.</h3>
+  <p>Motor milinin tam olarak kilitlenip kilitlenmediğini kontrol edin (haznenin üst
+    kısmındadır).</p>
+</div>
+
+<div class="item">
+  <h3>Aksesuarlar: Buhar geçirmez kapağı, itme kolunu kaybettim ve çırpma telini kırdım.</h3>
+  <p>Müşterilerimiz yedek parça için doğrudan Fakir yetkili servisleri ile iletişim kurabilirler.
+  </p>
+</div>
+
+<div class="item">
+  <h3>Kapağı kapatmakta zorlanıyorum.</h3>
+  <p>Her temizlikten sonra kapak contasını yağlayın (örn. parmaklarınızı bitkisel yağ ile yağlayın
+    ve contaya tatbik edin).</p>
+</div>
+
+<div class="item">
+  <h3>WiFi'ye bağlanamıyorum: girdiğim şifre doğru ve cihaz modemin yakınında.</h3>
+  <p>Bu sorun, modemin WiFi güvenlik protokolünden kaynaklanmaktadır. Modem en güncel protokolü
+    (WPA2) kullanıyor olmalı ve modemin yazılımını güncellemelisiniz.</p>
+</div>
+
+<div class="item">
+  <h3>Bir tarif oluşturmak için WiFi bağlantısına ihtiyacım var mı?</h3>
+  <p>Hayır, WiFi bağlantısı yalnızca tarif güncellemeleri için kullanılır.</p>
+</div>
+
+<div class="item">
+  <h3>Robotum kaç dereceye kadar ısınabilir?</h3>
+  <p>Manuel modda, robot 37 ° C ila 130 ° C arasında ısınabilir ve sıcaklığı 5 ° C'lik aralıklarla
+    değiştirebilirsiniz. Sıcaklık kadranı yalnızca 37 ° C'nin üzerindeki karışımın sıcaklığını
+    gösterir.</p>
+  <p>*Bazı otomatik tarifler 160 ° C'de pişirilebilir, ancak manuel mod 130 ° C ile
+    sınırlıdır.</p>
+</div>
+
+<div class="item">
+  <h3>Motor hızı kaçtır?</h3>
+  <p>Motor hızı 1'den 12'ye kadar ayarlanabilir.</p>
+  <p>Güvenlik nedeniyle robot, pişirme işlemleri sırasında hızı 3 olarak sınırlandırır.</p>
+</div>
+
+
+<div class="item">
+  <h3>Robotumu nasıl temizleyebilirim?</h3>
+  <p>Robotu kapatıp güç kablosunu çıkardıktan sonra, hemen akabinde hazneyi ve aksesuarları sıcak
+    su ile durulamanız tavsiye edilir.</p>
+  <p>Haznenin dibinde yanık izleri varsa, haznenin içine su doldurmak ve ara sıra haznenin dibini
+    bir süngerle ovarak yiyeceklerin çıkmasını sağlamak en iyi yöntemdir.</p>
+  <p>Ayrıca temizleme programını da kullanabilirsiniz. </p>
+</div>
+
+<div class="item">
+  <h3>Tüm aksesuarlar bulaşık makinesinde yıkanabilir mi?</h3>
+  <p>Robotun tüm aksesuarları bulaşık makinesine yerleştirilebilir (motor bloğu hariç).</p>
+</div>
+
+<div class="item">
+  <h3>Bazı gıdalar plastiğin renk değiştirmesine neden olabilir. Nasıl temizlenmeli?</h3>
+  <p>Köri, domates, havuç vb. gibi bazı renkli malzemeler plastik parçaları kirletebilir ve bu
+    parçalarda kaçınılmaz şekilde renk değişimi meydana gelebilir. Renk değişiminin sağlığınız
+    veya aksesuarın işlevselliği üzerinde hiçbir etkisi yoktur.</p>
+  <p>Renk değişimini gidermek için lekeli bölgeyi yemeklik yağa batırılmış bir bez veya mendille
+    silin ve akabinde rutin temizliğinizi yapın.</p>
+  <p>Lekelenmeyi azaltmak için kullanımdan hemen sonra temizlik yapılmalıdır.</p>
+  <p>Not: Bu sorun arıza değil estetik bir sorun olduğu için garanti kapsamında değildir.</p>
+</div>
+
+<div class="item">
+  <h3>Hazne kapağında beyaz lekeler oluştu. Bu lekeleri nasıl çıkarabilirim?</h3>
+  <p>Bu lekeler, pişirme sırasında kireçli su kullanımından kaynaklanan kireç tortularıdır. Kireç
+    önleyici solüsyon kullanılmalı ve lekeleri yumuşatmak için kapak belli bir süre boyunca suda
+    bekletilmelidir.</p>
+  <p>Lütfen bu lekelerin ne kadar uzun süre pişirme yapılırsa o kadar sertleşeceğini ve
+    çıkarılmasının da bir o kadar zorlaşacağını unutmayın. Bu nedenle, lekeleri tespit ettikten
+    hemen sonra temizlemenizi öneririz.</p>
+</div>
+
+<div class="item">
+  <h3>Yanan ve haznenin dibine yapışan yiyecekler nasıl temizlenir?</h3>
+  <p>Bu sorunun birkaç çözümü vardır; örneğin, haznenin dibine su koyup kabartma tozu, limon veya
+    bulaşık deterjanı da ekleyerek ıslatabilirsiniz.</p>
+  <p>Ayrıca hazne içerisinde biraz beyaz sirkeli su ve birkaç damla bulaşık deterjanını ısıtabilir
+    ve temizlemeden önce bir süre bekletebilirsiniz. Eğer yapışan yiyecekler kaybolmazsa işlemi
+    tekrarlayın.</p>
+  <p>Size verebileceğimiz bilhassa etkili tüyolardan biri de bulaşık makinesi tableti ve biraz
+    sıcak su koyup bir süre hazne içerisinde bekletmektir.
+  </p>
+</div>
+
+<div class="item">
+  <h3>Pişirilmesi gereken karışımlarda yiyeceklerin hazneye yapışmasını nasıl önleyebilirim?</h3>
+  <p>Tarifi pişirmeye başlamadan önce, haznenin tabanını yağlamak için pişirme kağıdı (yağlı
+    kağıt) kullanmanızı öneririz. Bu şekilde yapılan muntazam bakım, yiyeceklerin hazneye
+    yapışmasını önleyecektir. Şekerli karışımlar için yağ yerine biraz limon suyu kullanın.</p>
+</div>
+
+
+<div class="item">
+  <h3>Malzemelerin yanlış karıştırılması veya yeterince pişirilmemesi</h3>
+  <p>Bunun nedeni, söz konusu tarifin pişirme süresinin daha uzun olması olabilir.
+    Teorik olarak tarifte yemek için net bir pişirme süresi belirlenmiş olsa da bu süre aşağıda
+    belirtilen çeşitli faktörlere göre değişebilir:</p>
+  <ul>
+    <li>Tarif uygulanırken yiyeceklerin sıcaklığı;</li>
+    <li>Malzemeleri buzdolabından çıkarmazsanız ve oda sıcaklığında değillerse;
+    </li>
+    <li>Malzemelerin türü ve olgunluğu.</li>
+  </ul>
+</div>
+
+<div class="item">
+  <h3>Hazır yemekleri nasıl ısıtacağımı bilmiyorum.</h3>
+  <p>Çözüm: Manuel moda geçmeli ve ön ısıtma yapılacak malzemeye göre sıcaklık, süre vb.
+    seçmelisiniz.</p>
+</div>
+
+<div class="item">
+  <h3>Pişirme işlemi sırasında yemek taşıyor.</h3>
+  <p>Çözüm: Bu durum, haznedeki sıvı ve yiyeceğin yüksek sıcaklıkta olmasından kaynaklanır, bu da
+    hazne içindeki basıncı artırır ve taşmaya neden olur. Bu durumu önlemek için sıcaklığı
+    düşürün veya pişirme kapağı yerine cam kapaklı büyük bir buhar önleyici kapak kullanın.</p>
+</div>
+</body>
+
+</html>

+ 71 - 0
app/src/main/assets/help/TR/privacy.html

@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>MENTION INFORMATION</title>
+</head>
+<style>
+  body {
+    background-color: #ffffff;
+    height: 100vh;
+    color: #000000;
+  }
+
+  h3 {
+    font-size: 26px;
+  }
+
+  p {
+    font-size: 16px;
+  }
+</style>
+
+<body>
+
+<div>
+
+    <h3>Hesap oluşturma formunda yer alması gereken bilgileri belirtin: </h3>
+    <p>Verileriniz, e-posta yoluyla haber bültenleri almanız ve uygulamamızda bir hesap oluşturmanız
+        için işlenir. </p>
+    <p>Bu işlemler sizin izninize tabi olup istediğiniz zaman bu izninizi geri çekebilirsiniz, ancak
+        bu durum izninizi geri çekmeden önce yapılan işlemlerin hukuki açıdan meşruluğunu etkilemez.
+        Doldurulması zorunlu alanlardaki bilgileri (yıldız işaretli) doldurmazsanız, hesap
+        oluşturamazsınız. Alt yüklenicilerimiz haricinde, kişisel verileriniz üçüncü taraflara
+        aktarılmayacaktır.</p>
+    <p>Kişisel verilerinize erişim, düzeltme, aktarma ve/veya silme talebinde bulunma hakkına
+        sahipsiniz ve bunların işlenmesini kısıtlama, reddetme, otomatik veri işleme prosedürüne
+        tabi olmama ve vefat sonrası verilerinizin akıbetini belirleme hakkına sahipsiniz.</p>
+
+    <h3>Şifre sıfırlama formunda yer alması gereken bilgileri belirtin: </h3>
+    <p>Verileriniz şifrenizi sıfırlamak için işlenir. </p>
+    <p>Verilerinizin işlenmesi, verilerinizin güvenliğini sağlamaya yönelik yasal yükümlülüğümüz
+        uyarınca gerçekleşmektedir. Doldurulması zorunlu alanlardaki bilgileri (yıldız işaretli)
+        doldurmazsanız, şifrenizi sıfırlayamazsınız. Alt yüklenicilerimiz haricinde, kişisel
+        verileriniz üçüncü taraflara aktarılmayacaktır.</p>
+    <p>Kişisel verilerinize erişim, düzeltme, aktarma ve/veya silme talebinde bulunma hakkına
+        sahipsiniz ve bunların işlenmesini kısıtlama, reddetme, otomatik veri işleme prosedürüne
+        tabi olmama ve vefat sonrası verilerinizin akıbetini belirleme hakkına sahipsiniz.</p>
+
+
+    <h3>Çevrimiçi İletişim Formunda yer alacak bilgileri belirtiniz: </h3>
+    <p>Verileriniz, yorumlarınızı paylaşmanız için işlenir.</p>
+    <p>Bu işlemler sizin izninize tabi olup istediğiniz zaman bu izninizi geri çekebilirsiniz, ancak
+        bu durum izninizi geri çekmeden önce yapılan işlemlerin hukuki açıdan meşruluğunu etkilemez.
+        Doldurulması zorunlu alanlardaki bilgileri (yıldız işaretli) doldurmazsanız, yorum
+        yapamazsınız. Alt yüklenicilerimiz hariç olmak üzere, hiçbir kişisel veriniz üçüncü
+        taraflara aktarılmayacaktır.
+    </p>
+    <p>Kullanıcıların okuyabileceği herhangi bir yorumda hassas ve kişisel bilgilerden bahsetmemeniz
+        gereğini önemle hatırlatırız.
+    </p>
+    <p>Kişisel verilerinize erişim, düzeltme, aktarma ve/veya silme talebinde bulunma hakkına
+        sahipsiniz ve bunların işlenmesini kısıtlama, reddetme, otomatik veri işleme prosedürüne
+        tabi olmama ve vefat sonrası verilerinizin akıbetini belirleme hakkına sahipsiniz.</p>
+
+</div>
+
+</body>
+
+</html>

+ 1 - 0
libBase/src/main/java/com/develop/food/base/common/CommonTag.kt

@@ -4,6 +4,7 @@ const val FOOL_LIST_TITLE = "FOOL_LIST_TITLE"
 const val FOOD_LIST_TYPE = "FOOD_LIST_TYPE"
 const val WIFI_FROM_MAIN_SETTING = "WIFI_FROM_MAIN_SETTING"
 const val POLICY_FROM_MAIN_SETTING = "POLICY_FROM_MAIN_SETTING"
+const val HELP = "HELP"
 const val MODE_ENTRANCE = "MODE_ENTRANCE"
 const val MODE_TYPE = "mode_type"
 const val LANGUAGE_FROM_SETTING = "LANGUAGE_FROM_SETTING"

+ 113 - 0
libBase/src/main/java/com/develop/food/base/data/DataFactory.kt

@@ -436,6 +436,119 @@ object DataFactory {
         }
         return "$hourStr$minuteStr"
     }
+
+    fun  getModeType(type :String?) : ModesType{
+        return when (type) {
+           "FERMENT"-> {
+               ModesType.FERMENT
+            }
+            "CHOP" -> {
+                ModesType.CHOP
+            }
+            "STEAM" -> {
+                ModesType.STEAM
+            }
+            "FOOD_PROCESSOR" -> {
+                ModesType.FOOD_PROCESSOR
+            }
+            "BOIL_WATER" -> {
+                ModesType.BOIL_WATER
+            }
+            "ADAPTED_COOKING" -> {
+                ModesType.ADAPTED_COOKING
+            }
+            "WIGHT" -> {
+                ModesType.WIGHT
+            }
+            "SLOW_COOK" -> {
+                ModesType.SLOW_COOK
+            }
+           "KNEAD_TOUGH" -> {
+                ModesType.KNEAD_TOUGH
+            }
+            "TURBO" -> {
+                ModesType.TURBO
+            }
+            else -> {
+                ModesType.ADAPTED_COOKING
+            }
+        }
+
+    }
+
+    fun getConfigListIcon(icon: String?): Int {
+        return when (icon) {
+            "ic_grid_adapted_cooking" -> {
+                R.drawable.ic_grid_adapted_cooking
+            }
+
+            "ic_grid_knead_dough" -> {
+                R.drawable.ic_grid_knead_dough
+            }
+            "ic_grid_steam" -> {
+                R.drawable.ic_grid_steam
+            }
+            "ic_grid_slow_cook" -> {
+                R.drawable.ic_grid_slow_cook
+            }
+            "ic_grid_boil_water" -> {
+                R.drawable.ic_grid_boil_water
+            }
+            "ic_grid_food_processor" -> {
+                R.drawable.ic_grid_food_processor
+            }
+            "ic_grid_chop" -> {
+                R.drawable.ic_grid_chop
+            }
+            "ic_grid_turbo" -> {
+                R.drawable.ic_grid_turbo
+            }
+           "ic_grid_weight" -> {
+                R.drawable.ic_grid_weight
+            }
+
+            else -> {
+                R.drawable.ic_grid_adapted_cooking
+            }
+        }
+    }
+    fun getConfigGridListIcon(icon: String?): Int {
+        return when (icon) {
+            "ic_adapted_cooking" -> {
+                R.drawable.ic_adapted_cooking
+            }
+
+            "ic_knead_dough" -> {
+                R.drawable.ic_knead_dough
+            }
+            "ic_steam" -> {
+                R.drawable.ic_steam
+            }
+            "ic_slow_cook" -> {
+                R.drawable.ic_slow_cook
+            }
+            "ic_boil_water" -> {
+                R.drawable.ic_boil_water
+            }
+            "ic_food_processor" -> {
+                R.drawable.ic_food_processor
+            }
+            "ic_chop" -> {
+                R.drawable.ic_chop
+            }
+            "ic_night_turbo" -> {
+                R.drawable.ic_night_turbo
+            }
+            "ic_scales" -> {
+                R.drawable.ic_scales
+            }
+
+            else -> {
+                R.drawable.ic_grid_adapted_cooking
+            }
+        }
+    }
+
 }
 
 

+ 1 - 1
libBase/src/main/java/com/develop/food/base/data/model/ModelsModel.kt

@@ -2,5 +2,5 @@ package com.develop.food.base.data.model
 
 import com.develop.food.base.data.ModesType
 
-data class ModelsModel(var resId:Int,var modeName:String,var modesType: ModesType) {
+data class ModelsModel(var resId: Int, var modeName:String, var modesType: ModesType) {
 }

+ 1 - 0
libBase/src/main/java/com/develop/food/base/router/Screens.kt

@@ -12,6 +12,7 @@ object Screens {
         const val ANIMATION = "$SCHEMA/animation"
         const val LANGUAGE = "$SCHEMA/language"
         const val POLICY = "$SCHEMA/policy"
+        const val HELP = "$SCHEMA/help"
         const val WIFI = "$SCHEMA/wifi"
         const val SCREEN_SAVER="$SCHEMA/screen_saver"
         const val MAIN_SETTING = "$SCHEMA/main_setting"

+ 31 - 0
libBase/src/main/java/com/develop/food/base/utils/ConfigUtils.kt

@@ -16,6 +16,37 @@ object ConfigUtils {
 
     data class LangConfig(var langs: ArrayList<Lang>)
 
+    fun loadConfigList(): CfConfig? {
+        return try {
+            var sn = getSN()
+            var brandNum = sn.substring(0, 3)
+
+            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")
+            }
+//            inputStream = GlobalApp().assets.open("config_036.json")
+
+            val size = inputStream.available()
+            val buffer = ByteArray(size)
+            inputStream.read(buffer)
+            inputStream.close()
+
+            val jsonString = String(buffer, Charset.defaultCharset())
+            val gson = Gson()
+            var cfConfig = gson.fromJson(jsonString, CfConfig::class.java)
+            return cfConfig
+        } catch (ex: IOException) {
+            ex.printStackTrace()
+            null
+        }
+    }
+
+
 
     fun loadConfig(): CfConfig? {
         return try {

+ 3 - 2
libBase/src/main/java/com/develop/food/base/utils/GlobalExt.kt

@@ -278,8 +278,9 @@ fun getSN(): String {
     //通过反射获取sn号
     var serial: String
     if (BuildConfig.DEBUG) {
-        return "034A30150020123010165431"
-//      return "000A30150020123010190001"
+//        return "034A30150020123010165431"
+      return "000A30150020123010190001"
+//        return "058A30150020123010190001"
     } else {
         try {
             val c = Class.forName("android.os.SystemProperties")

+ 1 - 1
libBase/src/main/java/com/develop/food/base/utils/WorkMode.kt

@@ -1,3 +1,3 @@
 package com.develop.food.base.utils
 
-data class WorkMode(val name: String?, val type: String, val icon: String?,val bg: String?,val devMode:String?,val listShow:Boolean?)
+data class WorkMode(val name: String?, val type: String?, val icon: String?,val bg: String?,val devMode:String?, val gv: String?,val listShow:Boolean?)

BIN
libBase/src/main/res/drawable-xxxhdpi/ic_help.webp


BIN
libBase/src/main/res/drawable/icon_lang_tr.png


+ 256 - 0
libBase/src/main/res/values-tr/strings.xml

@@ -0,0 +1,256 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+    <string name="not_a_member_yet">Henüz üye değil misiniz?</string>
+    <string name="member">üye</string>
+    <string name="select_language">Dil Seçimi</string>
+    <string name="next">SONRAKİ</string>
+    <string name="english">İngilizce</string>
+    <string name="chinese">Çince</string>
+    <string name="france">Fransızca</string>
+    <string name="japan">Japonca</string>
+    <string name="skip"><![CDATA[SKIP >>]]></string>
+    <string name="recipes">TARİFLER</string>
+    <string name="mode">MOD</string>
+    <string name="sunday">Pazar</string>
+    <string name="monday">Pazartesi</string>
+    <string name="tuesday">Salı</string>
+    <string name="wednesday">Çarşamba</string>
+    <string name="thursday">Perşembe</string>
+    <string name="friday">Cuma</string>
+    <string name="saturday">Cumartesi</string>
+    <string name="resume">DEVAM ET</string>
+    <string name="help">Yardım</string>
+    <string name="privacy_policy">Gizlilik Politikası</string>
+    <string name="privacy_policy_content">1. Kişisel bilgilerinizi nasıl topluyor ve kullanıyoruz
+Nanfang Plus Client, Guangdong Nanfang Newspaper Mobile Media Co, Ltd (bundan böyle "biz" olarak anılacaktır) tarafından geliştirilen ve işletilen çevrimiçi bir bilgi platformudur. Southern Plus Client hizmetini kullanırken, bize aktif olarak sunduğunuz veya bu hizmeti kullanmanız neticesinde ortaya çıkan verileri, size hizmet sunmak, hizmetlerimizi daha iyi hale getirmek ve hesabınızın güvenliğini sağlamak için aşağıda belirtilen şekillerde toplayacağız.</string>
+    <string name="i_agree">Kabul Ediyorum</string>
+    <string name="i_have_read_the_privacy_policy">Gizlilik Politikasını okudum</string>
+    <string name="second">İkinci</string>
+    <string name="wifi">Wi-Fi</string>
+    <string name="off_line">ÇEVRİMDIŞI</string>
+    <string name="ok">TAMAM</string>
+    <string name="on_line">ÇEVRİMİÇİ</string>
+    <string name="pwd_can_not_be_empty">Bu alanlar boş bırakılamaz!</string>
+    <string name="skin_for_now">Şimdilik atla</string>
+    <string name="login">Giriş Yap</string>
+    <string name="online_recipes">Online Tarifler</string>
+    <string name="cook_history">Yemek pişirme geçmişi</string>
+    <string name="favourite_recipes">Favori tarifleriniz</string>
+    <string name="settings">Ayarlar</string>
+    <string name="grid_view">Izgara görünümü</string>
+    <string name="list_view">Liste görünümü</string>
+    <string name="adapted_cooking">MANUEL PİŞİRME</string>
+    <string name="scales">ÖLÇEKLER</string>
+    <string name="boil_water">SU KAYNAT</string>
+    <string name="chop">DOĞRA</string>
+    <string name="ferment">FERMENTE</string>
+    <string name="slow_cook">YAVAŞ PİŞİRME</string>
+    <string name="knead_dough">HAMUR YOĞURMA</string>
+    <string name="steam">BUHARDA PİŞİRME</string>
+    <string name="food_processor">MUTFAK ROBOTU</string>
+    <string name="turbo">ÖĞÜTME</string>
+    <string name="language">DİL</string>
+    <string name="sound">SES</string>
+    <string name="brightness">PARLAKLIK</string>
+    <string name="user_account">KULLANICI HESABI</string>
+    <string name="storage">BELLEK</string>
+    <string name="reset">FABRİKA AYARLARINA GERİ DÖN</string>
+    <string name="about">HAKKINDA</string>
+    <string name="tuya">FAKİR HOME</string>
+    <string name="weight">TARTI</string>
+    <string name="local_recipes">Yöresel tarifler</string>
+    <string name="download">İndir</string>
+    <string name="downloading">İndiriliyor</string>
+    <string name="enter_search">Arama terimi gir</string>
+    <string name="search">Ara</string>
+    <string name="most_popular"> En popüler</string>
+    <string name="newest">En yeniler</string>
+    <string name="the_most_commonly_searched">En sık arananlar</string>
+    <string name="notice">Bildirimler</string>
+    <string name="all">TÜMÜ</string>
+    <string name="Recipes">Tarifler</string>
+    <string name="ingredients">Malzemeler</string>
+    <string name="Brightness">Parlaklık</string>
+    <string name="screen_lock_time">Ekran kapanma süresi</string>
+    <string name="time_3min">3Dk</string>
+    <string name="time_5min">5Dk</string>
+    <string name="time_10min">10Dk</string>
+    <string name="time_20min">20Dk</string>
+    <string name="time_30min">30Dk</string>
+    <string name="Sound">Ses</string>
+    <string name="text_to_speech">Metin okuma</string>
+    <string name="Language">Dil</string>
+    <string name="Continue">DEVAM ET</string>
+    <string name="start_cooking">PİŞİRMEYE BAŞLA</string>
+    <string name="off">KAPALI</string>
+    <string name="on">AÇIK</string>
+    <string name="update_the_recipes">Tarifleri güncelle</string>
+    <string name="apk">APK</string>
+    <string name="mcu">MCU</string>
+    <string name="tp">FW</string>
+    <string name="serial_number">SN</string>
+    <string name="standby_time">MODEL</string>
+    <string name="update">Güncelle</string>
+    <string name="About">Hakkında</string>
+    <string name="are_you_sure_to_restore_factory_settings">Fabrika ayarlarına geri dönmek istediğinizden emin misiniz?</string>
+    <string name="yes">EVET</string>
+    <string name="restore_factory_settings">Fabrika ayarlarına geri dön</string>
+    <string name="connected_successfully">Bağlantı başarılı</string>
+    <string name="wifi_loading_text">Bağlanma…</string>
+    <string name="network_wifi_status_connected_no_internet">Bağlantı kuruldu, ancak İnternet’e erişilemiyor</string>
+    <string name="network_wifi_status_saved">Kaydedildi</string>
+    <string name="network_wifi_status_idle" />
+    <string name="network_wifi_status_disabled">"Durduruldu"</string>
+    <string name="network_wifi_status_network_failure">"IP adresi yapılandırma hatası"</string>
+    <string name="network_wifi_status_wifi_failure">"WLAN bağlantı hatası"</string>
+    <string name="network_wifi_status_password_failure">"Kimlik doğrulama ile ilgili bir sorun var"</string>
+    <string name="network_wifi_status_scanning">Taranıyor...</string>
+    <string name="network_wifi_status_connecting">Bağlantı kuruluyor…</string>
+    <string name="network_wifi_status_authenticating">Kimlik doğrulama işlemi devam ediyor…</string>
+    <string name="network_wifi_status_obtaining_ip_address">IP adresi alınıyor…</string>
+    <string name="network_wifi_status_connected">Bağlantı kuruldu</string>
+    <string name="network_wifi_status_suspended">Beklemede</string>
+    <string name="network_wifi_status_disconnecting">Bağlantı kesiliyor…</string>
+    <string name="network_wifi_status_disconnected">Bağlantı kesildi</string>
+    <string name="network_wifi_status_failed">Başarısız oldu</string>
+    <string name="network_wifi_status_blocked">Engellendi</string>
+    <string name="network_wifi_status_verifying_poor_link">Geçici olarak kapatıldı (ağ bağlantısı kötü)</string>
+    <string name="start">BAŞLA</string>
+    <string name="pause">DURAKLAT</string>
+    <string name="cancel">İPTAL ET</string>
+    <string name="confirm">ONAYLA</string>
+    <string name="stop">DURDUR</string>
+    <string name="turn_right">SAĞA DÖNDÜR</string>
+    <string name="turn_left">SOLA DÖNDÜR</string>
+    <string name="temperature">SICAKLIK</string>
+    <string name="time">SÜRE</string>
+    <string name="speed">HIZ</string>
+    <string name="direction">YÖN</string>
+    <string name="bad">Kötü</string>
+    <string name="imperfect">Yetersiz</string>
+    <string name="ordinary">Normal</string>
+    <string name="good">İyi</string>
+    <string name="perfect">Mükemmel</string>
+    <string name="are_you_sure_to_delete">Silmek istediğinize emin misiniz?</string>
+    <string name="no">HAYIR</string>
+    <string name="easy">Kolay</string>
+
+    <string name="medium">Normal</string>
+    <string name="hard">Zor</string>
+
+    <string name="unset_param_tips">Pişirme ayarlarını yapın ( Sıcaklık, Süre  ve Hız ).</string>
+    <string name="pmpt_confirm">Onayla</string>
+    <string name="pmpt_cancel">İptal</string>
+    <string name="pmpt_msg">İpuçları</string>
+    <string name="dev_end_of_run_tips">Bitir!</string>
+    <string name="hight_temp_warning_tips">Mevcut sıcaklık 60 dereceyi geçiyor ve motor hızı üçüncü kademeyi aşıyor. Devam etmek istediğinizden emin misiniz?</string>
+    <string name="hight_temp_turbo_tips">Mevcut sıcaklık 60 dereceyi aşıyor, turbo fonksiyonu kullanılamaz</string>
+    <string name="update_msg">Sistem güncellemesi yapılıyor, lütfen bekleyin~</string>
+    <string name="update_title">En güncel versiyon mu?</string>
+    <string name="finish_download">İndirildi</string>
+    <string name="download_fail">İndirme başarısız</string>
+    <string name="start_download">İndirmeyi başlat</string>
+    <string name="weight_overload_tips">Tartıda aşırı yük var</string>
+    <string name="forgot_password">Şifremi unuttum</string>
+    <string name="enter_email_id">E-posta Kimliğinizi Girin</string>
+    <string name="enter_password">Şifrenizi Girin</string>
+    <string name="register">Kayıt Ol</string>
+    <string name="launch_detail">Hemen şimdi aramıza katılın ve muhteşem yemekler pişirerek keyifli anlar yaşayın</string>
+    <string name="login_sign_up">Giriş Yap / Kaydol</string>
+    <string name="skip_for_now">Şimdilik atla</string>
+    <string name="reset_password">Şifremi Sıfırla</string>
+    <string name="enter_captcha">Doğrulama Kodunu Girin</string>
+    <string name="send_email">E-posta Gönder</string>
+    <string name="enter_password_again">Şifreyi Tekrar Girin</string>
+    <string name="enter_the_captcha_obtained_from_the_mail">E-postanıza gönderilen doğrulama kodunu girin</string>
+    <string name="nickname">Kullanıcı Adı</string>
+    <string name="enter_nickname">Kullanıcı Adınızı Girin</string>
+    <string name="Gender">Cinsiyetiniz</string>
+    <string name="male">Erkek</string>
+    <string name="age">Yaşınız</string>
+    <string name="save">Kaydet</string>
+    <string name="cancellation_of_account">Kullanıcı Hesabı İptali</string>
+    <string name="sign_up_it_s_free">Hemen şimdi kaydolun, tamamen ÜCRETSİZ</string>
+    <string name="pwd_requirement">Şifreniz en az 8 karakterden oluşmalı ve içinde harf ve rakamlar bulunmalıdır.</string>
+    <string name="please_select_age">Lütfen yaşınızı seçiniz</string>
+    <string name="cancel_lower">İptal</string>
+    <string name="female">Kadın</string>
+    <string name="tare">DARA</string>
+    <string name="keep_cooking_in_the_background"> Arka planda pişirmeye devam edilsin mi?</string>
+    <string name="reset_button">SIFIRLA</string>
+    <string name="finish">Bitir!</string>
+    <string name="error">Hata</string>
+    <string name="download_failed">İndirme başarısız oldu</string>
+    <string name="warning">Uyarı!</string>
+    <string name="lid_unlock">Kapak kilidini aç</string>
+    <string name="share_with_more_people">Daha fazla kişiyle paylaşın</string>
+    <string name="scan_qr_code_with_camera">Kamera ile QR kodunu tarayın</string>
+    <string name="enter_what_you_want_to_say">Belirtmek istediklerinizi yazın</string>
+    <string name="note_title">NOT BAŞLIĞI</string>
+    <string name="type_your_notes_here">Notlarınızı buraya yazın</string>
+    <string name="make_1_jar">1 KAVANOZ HAZIRLA</string>
+    <string name="make_n_jars">1%s KAVANOZ HAZIRLA</string>
+    <string name="per_serving">Porsiyon başına</string>
+    <string name="preparation">Yiyecek Hazırlama:</string>
+    <string name="hours">sa</string>
+    <string name="min">dk</string>
+
+
+
+    <string name="ready_in">Hazır:</string>
+    <string name="jar">KİŞİLİK</string>
+    <string name="serving_sizes">Porsiyon büyüklüğü</string>
+    <string name="score">Puan</string>
+    <string name="share">Paylaş</string>
+    <string name="delete">Sil</string>
+    <string name="recipe_update_tips">Toplam {{num}} tarif bulundu. Bunları indirmek istiyor musunuz?</string>
+    <string name="no_recipe_update_tips">Yeni tarifler için kullanılabilir güncelleme dosyası yok \n En güncel versiyon</string>
+    <string name="recipe_update_process_tips">({{progress}})Tarif güncelleme dosyaları indiriliyor...</string>
+    <string name="recipe_update_finish">Tarif güncellemesi tamamlandı</string>
+    <string name="update_recipe_title">Tarif güncelleme</string>
+    <string name="restore_confirm_tips">Fabrika ayarlarına geri dönmek istediğinizden emin misiniz?</string>
+    <string name="change_lang_tips">Program hala çalışıyor, bu işlemi tekrar gerçekleştirmek için lütfen programı kapatın!</string>
+    <string name="exit_weight_align">Kalibrasyon ayarından çık</string>
+    <string name="weight_aligning">Kalibrasyon işlemi devam ediyor..</string>
+    <string name="weight_one_kg_tips">Lütfen 1 KGS ağırlık koyun</string>
+    <string name="weight_two_kg_tips">Lütfen 2 KGS ağırlık koyun</string>
+    <string name="weight_align_success">Kalibrasyon başarıyla yapıldı!</string>
+    <string name="change_lang_tips2">Dili değiştirdikten sonra, tariflerin dili de aynı anda değişecek ve sistem yeniden başlatılacaktır. Dili değiştirmek istediğinizden emin misiniz?</string>
+    <string name="pot_clover_not_clost_tips">Kapak kilidi açık. Lütfen önce kapağı kilitledikten sonra çalıştırın.</string>
+    <string name="screen_saver_title">Ekran koruyucusunu açmak ister misiniz?</string>
+    <string name="sex">Cinsiyet</string>
+    <string name="wight">TARTI</string>
+    <string name="running_block_tips">Lütfen çalışan programı durdurun ve başka programları başlatın.</string>
+    <string name="unset_target_time">Süre ayarlanmadı.</string>
+    <string name="recipe_complete">PİŞİRME TAMAMLANDI</string>
+    <string name="engjoy_your_meal">AFİYET OLSUN!</string>
+    <string name="gan_sao_yi_chan">Dikkat\n- Yüksek sıcaklık\n- Isıtma işlemi yapılırken haznede malzeme yok\n- Malzemeleri, sıvı maddeleri ekleyin</string>
+
+    <string name="zhuan_su_fan_kui_yi_chan">Uyarı\n- Hazne kapağı tam yerine oturmamış\n- Motor aşırı yük altında, makinenin soğumasını bekleyin, hazneye daha az malzeme koyarak yeniden başlatın.</string>
+    <string name="dian_zi_cheng_tong_xin_yi_chan">Dikkat\n- Ağırlık ölçülmedi, tartı hatası\n- Tartı arızalı</string>
+    <string name="ntc_yi_chan">Dikkat! Sıcaklık sensörü (NTC) düzgün çalışmıyor, lütfen teknik servisle iletişime geçin.</string>
+    <string name="mei_fang_guo_yi_chan">Dikkat\n- Karıştırma haznesi tam yerine oturmamış, hazneyi yeniden yerleştirin</string>
+
+    <string name="empty_notice">Boş Bildirim</string>
+    <string name="please_fill_in">Lütfen doldurun</string>
+    <string name="historical_search">Geçmiş arama</string>
+
+
+
+    <!-- 空炸模式 -->
+    <string name="apk_version_latest">Uygulama versiyonu güncel durumda.</string>
+    <string name="installing">Yükleniyor...</string>
+    <string name="evaluate_successfully">Değerlendirme başarılı</string>
+    <string name="rating">değerlendirme</string>
+
+
+    <string name="reset_password_success">Şifre başarılı bir şekilde sıfırlandı!</string>
+    <string name="email_send">E-posta gönderildi</string>
+    <string name="please_fill_in_your_email">Lütfen e-posta adresinizi girin</string>
+    <string name="please_fill_in_the_password">Lütfen şifreyi girin</string>
+    <string name="login_expire_tips">Giriş yapılamadı, lütfen tekrar deneyin</string>
+
+
+
+</resources>

+ 1 - 0
libBase/src/main/res/values/strings.xml

@@ -21,6 +21,7 @@
     <string name="friday">Friday</string>
     <string name="saturday">Saturday</string>
     <string name="resume">RESUME</string>
+    <string name="help">Help</string>
     <string name="privacy_policy">Privacy policy</string>
     <string name="privacy_policy_content">1.How do we collect and use your personal information
 Nanfang plus client is an online information platform developed and operated by Guangdong Nanfang newspaper mobile media Co.,Ltd.(hereinafter referred to as"we").In theprocess of using the southern plus client service,we will collect the information you actively provide when using the service or arising from using the service in the following ways to provide you with services,optimize our services and ensure the security of your account.</string>