Browse Source

提交人:jtm
提交内容:bug fixed

江天明 1 year ago
parent
commit
c9bf2912b8
24 changed files with 382 additions and 92 deletions
  1. 0 3
      BusinessCommon/src/main/java/com/develop/common/data_repo/db/DataFactory.kt
  2. 2 2
      BusinessCommon/src/main/java/com/develop/common/data_repo/db/FoodDatabase.kt
  3. 4 0
      BusinessCommon/src/main/java/com/develop/common/data_repo/db/dao/UserInfoDao.kt
  4. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_delete_all.png
  5. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/splash_logo.png
  6. 2 2
      BusinessCommon/src/main/res/values/themes.xml
  7. 1 0
      BusinessSetting/src/main/java/com/develop/setting/ui/AboutActivity.kt
  8. 6 1
      BusinessSetting/src/main/java/com/develop/setting/ui/HelpDocsActivity.kt
  9. 2 1
      BusinessSetting/src/main/java/com/develop/setting/ui/LanguageActivity.kt
  10. 3 9
      BusinessSetting/src/main/java/com/develop/setting/ui/PowerAnimationActivity.kt
  11. 10 4
      BusinessSetting/src/main/java/com/develop/setting/ui/PrivacyPolicyActivity.kt
  12. 2 2
      BusinessSetting/src/main/res/layout/activity_help_docs.xml
  13. 20 0
      BusinessStep/src/main/java/com/develop/step/ui/FoodListActivity.kt
  14. 6 0
      BusinessStep/src/main/java/com/develop/step/ui/ModesDetailActivity.kt
  15. 2 0
      BusinessStep/src/main/java/com/develop/step/ui/cook_step/CookStepActivity.kt
  16. 12 48
      BusinessStep/src/main/java/com/develop/step/ui/cook_step/CookStepBaseActivity.kt
  17. 1 5
      BusinessStep/src/main/java/com/develop/step/ui/recipes_detail/CookDetailActivity.kt
  18. 10 0
      BusinessStep/src/main/res/layout/activity_food_list.xml
  19. 2 2
      app/src/main/AndroidManifest.xml
  20. 2 2
      app/src/main/assets/help.html
  21. 208 0
      app/src/main/assets/help_night.html
  22. 2 2
      app/src/main/assets/privacy.html
  23. 76 0
      app/src/main/assets/privacy_night.html
  24. 9 9
      app/src/main/java/com/develop/foodcooking/FoodCookingApp.kt

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

@@ -28,7 +28,6 @@ object DataFactory {
             mutableListOf<String>(
                 resource.getString(R.string.english),
 //            resource.getString(R.string.chinese),
-                resource.getString(R.string.france),
 //            resource.getString(R.string.japan)
             )
         }
@@ -42,7 +41,6 @@ object DataFactory {
             mutableListOf<Int>(
                 R.drawable.ic_english,
 //            R.drawable.ic_chinese,
-                R.drawable.ic_france,
 //            R.drawable.ic_japan
             )
         }
@@ -56,7 +54,6 @@ object DataFactory {
             mutableListOf<LanguageType>(
                 LanguageType.English,
 //            LanguageType.Chinese,
-                LanguageType.France,
 //            LanguageType.Japan
             )
         }

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

@@ -11,7 +11,7 @@ import com.develop.common.data_repo.db.entity.*
 val FOOD_MIGRATION_1_2: Migration = object : Migration(1, 2) {
     override fun migrate(database: SupportSQLiteDatabase) {
         // 这里是您的迁移代码,用于处理从版本1到版本2的架构变更。
-        database.execSQL("ALTER TABLE cc_dev_recipe ADD COLUMN editionCode TEXT ")
+      //  database.execSQL("ALTER TABLE cc_dev_recipe ADD COLUMN editionCode TEXT ")
     }
 }
 
@@ -29,7 +29,7 @@ val FOOD_MIGRATION_1_2: Migration = object : Migration(1, 2) {
         DevRecipePortionSize::class,
         DevRecipeRelTag::class,
         DevRecipeTag::class
-    ], version = 2, exportSchema = false
+    ], version = 1, exportSchema = false
 )
 abstract class FoodDatabase : RoomDatabase() {
 

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

@@ -27,6 +27,10 @@ interface UserInfoDao {
     @Query("select * from user_favorite_recipes where userId =:userId")
     fun queryFavoriteRecipes(userId: Long): List<UserFavoriteRecipes>
 
+    @Query("delete  from user_history_recipes where userId =:userId")
+    fun deleteAllHistoryRecipes(userId: Long)
+
+
     @Insert
     fun insertHistoryRecipe(historyRecipes: UserHistoryRecipes)
 

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


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


+ 2 - 2
BusinessCommon/src/main/res/values/themes.xml

@@ -18,7 +18,7 @@
 
     <style name="SplashTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
         <!-- 这里的trans自己写一个#00000000即可-->
-        <item name="android:windowBackground">@color/bg_color</item>
+        <item name="android:windowBackground">@drawable/splash_logo</item>
         <item name="windowNoTitle">true</item>
         <item name="windowActionBar">false</item>
         <item name="android:windowFullscreen">true</item>
@@ -26,7 +26,7 @@
 
     <style name="SplashNightTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
         <!-- 这里的trans自己写一个#00000000即可-->
-        <item name="android:windowBackground">@drawable/splash_logo</item>
+        <item name="android:windowBackground">@drawable/splash_logo_010</item>
         <item name="windowNoTitle">true</item>
         <item name="windowActionBar">false</item>
         <item name="android:windowFullscreen">true</item>

+ 1 - 0
BusinessSetting/src/main/java/com/develop/setting/ui/AboutActivity.kt

@@ -99,6 +99,7 @@ class AboutActivity : CommonBVMActivity<ActivityAboutBinding, AboutViewModel>()
             }
             binding.tvAppName.visibility = View.INVISIBLE
         } else {
+            binding.tvAppName.visibility = View.VISIBLE
             ivLogoParam.apply {
                 width = dimenRes(com.develop.common.R.dimen.convert_180px)
                 height = dimenRes(com.develop.common.R.dimen.convert_180px)

+ 6 - 1
BusinessSetting/src/main/java/com/develop/setting/ui/HelpDocsActivity.kt

@@ -6,6 +6,7 @@ import android.webkit.WebViewClient
 import android.widget.ImageView
 import androidx.appcompat.app.AppCompatActivity
 import com.alibaba.android.arouter.facade.annotation.Route
+import com.develop.base.ext.isNightTheme
 import com.develop.common.router.Screens
 import com.develop.setting.R
 
@@ -25,7 +26,11 @@ class HelpDocsActivity : AppCompatActivity() {
                 return true
             }
         }
-        webView.loadUrl("file:///android_asset/help.html")
+        if (isNightTheme()) {
+            webView.loadUrl("file:///android_asset/help_night.html")
+        } else {
+            webView.loadUrl("file:///android_asset/help.html")
+        }
 
         findViewById<ImageView>(R.id.iv_close).setOnClickListener {
             finish()

+ 2 - 1
BusinessSetting/src/main/java/com/develop/setting/ui/LanguageActivity.kt

@@ -165,7 +165,8 @@ class LanguageActivity : BaseBindingActivity<ActivityLanguageBinding>() {
                     MMkvUtils.save(CURRENT_LANGUAGE, FR)
                     LanguageUtils.applyLanguage(Locale.FRANCE)
                 } else {
-                    updateLanguage()
+                    MMkvUtils.save(CURRENT_LANGUAGE, EN)
+                    LanguageUtils.applyLanguage(Locale.ENGLISH)
                 }
                 navigateTo(Screens.Setting.POLICY)
             }

+ 3 - 9
BusinessSetting/src/main/java/com/develop/setting/ui/PowerAnimationActivity.kt

@@ -41,15 +41,9 @@ class PowerAnimationActivity : BaseBindingActivity<ActivityPowerAnimationBinding
             start()
             mainHandler.post(runnable)
             setOnCompletionListener {
-                if (isNightTheme()) {
-                    binding.tvSkin.visibility = View.VISIBLE
-                    binding.maskView.visibility = View.GONE
-                    binding.functionLayout.visibility = View.INVISIBLE
-                } else {
-                    binding.tvSkin.visibility = View.GONE
-                    binding.maskView.visibility = View.VISIBLE
-                    binding.functionLayout.visibility = View.VISIBLE
-                }
+                binding.tvSkin.visibility = View.VISIBLE
+                binding.maskView.visibility = View.GONE
+                binding.functionLayout.visibility = View.INVISIBLE
                 binding.fullVideoView.isClickable = false
             }
             setOnPreparedListener {

+ 10 - 4
BusinessSetting/src/main/java/com/develop/setting/ui/PrivacyPolicyActivity.kt

@@ -7,6 +7,7 @@ import android.webkit.WebView
 import android.webkit.WebViewClient
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.develop.base.ext.background_drawable
+import com.develop.base.ext.isNightTheme
 import com.develop.base.ext.navigateTo
 import com.develop.base.mvvm.BaseBindingActivity
 import com.develop.base.scop.runOnMainThread
@@ -30,7 +31,7 @@ class PrivacyPolicyActivity : BaseBindingActivity<ActivityPrivacePolicyBinding>(
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
-        
+
         if (intent.extras?.getBoolean(POLICY_FROM_MAIN_SETTING) == true) {
             binding.ivSelected.visibility = View.GONE
             binding.tvAgree.visibility = View.GONE
@@ -63,7 +64,11 @@ class PrivacyPolicyActivity : BaseBindingActivity<ActivityPrivacePolicyBinding>(
                 return true
             }
         }
-        binding.webview.loadUrl("file:///android_asset/privacy.html")
+        if (isNightTheme()) {
+            binding.webview.loadUrl("file:///android_asset/privacy_night.html")
+        } else {
+            binding.webview.loadUrl("file:///android_asset/privacy.html")
+        }
 
     }
 
@@ -81,7 +86,8 @@ class PrivacyPolicyActivity : BaseBindingActivity<ActivityPrivacePolicyBinding>(
             override fun onFinish() {
                 isFinish = true
                 runOnMainThread {
-                    binding.tvAgree.background_drawable = com.develop.common.R.drawable.language_conner
+                    binding.tvAgree.background_drawable =
+                        com.develop.common.R.drawable.language_conner
                     binding.tvAgree.text = getString(com.develop.common.R.string.i_agree)
                 }
             }
@@ -92,7 +98,7 @@ class PrivacyPolicyActivity : BaseBindingActivity<ActivityPrivacePolicyBinding>(
     override fun onDestroy() {
         super.onDestroy()
         timeDownUtil?.cancel()
-        
+
     }
 
     @Subscribe

+ 2 - 2
BusinessSetting/src/main/res/layout/activity_help_docs.xml

@@ -4,7 +4,7 @@
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:background="#000"
+    android:background="@color/bg_color"
     tools:context=".ui.HelpDocsActivity">
 
     <ImageView
@@ -23,7 +23,7 @@
         android:layout_centerHorizontal="true"
         android:text="@string/help"
         android:layout_marginTop="@dimen/convert_28px"
-        android:textColor="@color/white"
+        android:textColor="@color/common_title"
         android:textSize="@dimen/convert_36px" />
 
     <WebView

+ 20 - 0
BusinessStep/src/main/java/com/develop/step/ui/FoodListActivity.kt

@@ -5,13 +5,17 @@ import android.os.Bundle
 import android.view.LayoutInflater
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.develop.base.ext.resId2Dimension
+import com.develop.base.ext.setGone
+import com.develop.base.ext.setVisible
 import com.develop.base.ext.updateText
+import com.develop.base.scop.safeGlobalScope
 import com.develop.common.data_repo.db.FoodContentModel
 import com.develop.common.event.RefreshDataEvent
 import com.develop.common.router.Screens
 import com.develop.common.ui.CommonBVMActivity
 import com.develop.common.widget.FoodContentView
 import com.develop.common.R
+import com.develop.common.data_repo.FoodDataProvider
 import com.develop.common.dialog.LoadingDialog
 import com.develop.common.tag.*
 import com.develop.step.databinding.ActivityFoodListBinding
@@ -19,6 +23,9 @@ import com.develop.step.viewmodel.FoodListViewModel
 import com.drake.brv.utils.grid
 import com.drake.brv.utils.models
 import com.drake.brv.utils.setup
+import com.drake.net.utils.scopeLife
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
 import org.greenrobot.eventbus.EventBus
 import org.greenrobot.eventbus.Subscribe
 
@@ -47,6 +54,11 @@ class FoodListActivity : CommonBVMActivity<ActivityFoodListBinding, FoodListView
         }
         loadingDialog.showDialog(supportFragmentManager, "loadingDialog")
         viewModel.foodListType = bundle?.getInt(FOOD_LIST_TYPE) ?: Favourite
+        if (viewModel.foodListType == History) {
+            binding.ivDelete.setVisible()
+        } else {
+            binding.ivDelete.setGone()
+        }
         title = bundle?.getString(FOOL_LIST_TITLE) ?: ""
         binding.tvTitle.updateText(title)
         binding.foodListRecycler.apply {
@@ -69,6 +81,14 @@ class FoodListActivity : CommonBVMActivity<ActivityFoodListBinding, FoodListView
                 binding.tvTitle.updateText("$title(${it.size})")
             }
         }
+
+        binding.ivDelete.setOnClickListener {
+            safeGlobalScope.launch(Dispatchers.IO) {
+                FoodDataProvider.getUserDatabase().userInfoDao()
+                    .deleteAllHistoryRecipes(CURRENT_USER_ID)
+                viewModel.refreshData()
+            }
+        }
     }
 
     @Subscribe

+ 6 - 0
BusinessStep/src/main/java/com/develop/step/ui/ModesDetailActivity.kt

@@ -12,6 +12,7 @@ import android.view.LayoutInflater
 import android.view.MotionEvent
 import android.view.View
 import android.widget.ImageView
+import androidx.core.graphics.drawable.DrawableCompat
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.develop.base.ext.background_drawable
 import com.develop.base.ext.isNightTheme
@@ -133,6 +134,11 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
         super.onCreate(savedInstanceState)
         hasShowScreenSaver = true
         configLock = true
+
+        binding.ivBack.drawable?.apply {
+            DrawableCompat.setTint(this, resources.getColor(com.develop.common.R.color.view_change))
+        }
+
         turnDevModeUI();
         viewModel.modeType = intent.extras?.getString(MODE_TYPE, ModesType.CHOP.name) ?: ""
         modeName = intent.extras?.getString("mode_name", "") ?: ""

+ 2 - 0
BusinessStep/src/main/java/com/develop/step/ui/cook_step/CookStepActivity.kt

@@ -103,6 +103,8 @@ class CookStepActivity : CookStepBaseActivity() {
         if (!isNightTheme()){
             binding.viewChangeCrush.setBgColor(R.color.view_change)
             binding.viewChangeWeight.setBgColor(R.color.view_change)
+            binding.viewRemark.setBgColor(R.color.view_change)
+            binding.viewNote.setVisible()
         } else {
             binding.viewChangeCrush.setBgColor(R.color.white)
             binding.viewChangeWeight.setBgColor(R.color.white)

+ 12 - 48
BusinessStep/src/main/java/com/develop/step/ui/cook_step/CookStepBaseActivity.kt

@@ -118,11 +118,11 @@ abstract class CookStepBaseActivity :
             viewIconSpeed.background_drawable = R.drawable.cook_speed_selector
         }
         binding.viewProgress.background = cookProgressDrawable
-        binding.tvTitleStep.setOnClickListener {
-            if (!isNightTheme()){
-                showCookDetailDialog()
-            }
-        }
+//        binding.tvTitleStep.setOnClickListener {
+//            if (!isNightTheme()){
+//                showCookDetailDialog()
+//            }
+//        }
         binding.viewRemark.setOnClickListener {
             Log.i(
                 "dd",
@@ -174,51 +174,15 @@ abstract class CookStepBaseActivity :
             binding.viewRemark.drawable?.apply {
                 DrawableCompat.setTint(this, resources.getColor(R.color.black))
             }
+        } else {
+            binding.viewRemark.src = R.drawable.ic_cooking_remark
+            binding.viewRemark.drawable?.apply {
+                DrawableCompat.setTint(this, resources.getColor(R.color.white))
+            }
+            binding.viewNote.src = R.drawable.ic_cookint_note
         }
         binding.viewNote.setOnClickListener {
-            if (isNightTheme()){
-                showCookDetailDialog()
-                return@setOnClickListener
-            }
-            Log.i(
-                "dd",
-                CURRENT_USER_ID.toString() + recipeNumber.toString() + currentStepIndex.toString()
-            );
-            var data = FoodDataProvider.getUserDatabase().userInfoDao().queryUserRecipeStepRemark(
-                CURRENT_USER_ID, recipeNumber.toString(), viewModel.stepIndex.toString()
-            );
-            var dialog = NoteEditDialog();
-            dialog.text = data?.remark
-            dialog.listener = object : NoteEditDialog.OnDialogClickListener {
-                override fun onComplete(remark: String) {
-                    viewModel.recipe?.let {
-
-
-                        if (data == null) {
-                            data = UserRecipeStepRemark(
-                                recipeNumber = it.number.toString(),
-                                stepNumber = viewModel.stepIndex.toString(),
-                                userId = CURRENT_USER_ID,
-                                remark = remark
-                            )
-                        } else {
-                            data!!.remark = remark;
-                        }
-
-                        FoodDataProvider.getUserDatabase().userInfoDao().insertUserRecipeStepRemark(
-                            data!!
-                        );
-
-
-                    }
-
-                }
-
-                override fun onClear() {
-                }
-
-            };
-            dialog.showDialog(supportFragmentManager, "NoteEditDialog")
+            showCookDetailDialog()
 
         }
         binding.ivNextStep.setOnClickListener {

+ 1 - 5
BusinessStep/src/main/java/com/develop/step/ui/recipes_detail/CookDetailActivity.kt

@@ -176,11 +176,7 @@ class CookDetailActivity : CommonBVMActivity<ActivityCookDetailBinding, CookDeta
         allTabViews.add(binding.ivTab1)
         allTabViews.add(binding.ivTab2)
         allTabViews.add(binding.ivTab3)
-        if (!isNightTheme()) {
-            allTabViews.add(binding.ivTab4)
-        } else {
-            binding.ivTab4.setGone()
-        }
+        binding.ivTab4.setGone()
         selectTab(TAB_SOURCE)
         binding.tvMoreDelete.setGone()
     }

+ 10 - 0
BusinessStep/src/main/res/layout/activity_food_list.xml

@@ -13,6 +13,16 @@
         android:padding="@dimen/convert_15px"
         android:src="@drawable/ic_close" />
 
+    <ImageView
+        android:visibility="invisible"
+        android:background="@drawable/ic_delete_all"
+        android:layout_alignParentEnd="true"
+        android:layout_marginTop="@dimen/convert_10px"
+        android:id="@+id/iv_delete"
+        android:layout_marginEnd="@dimen/convert_20px"
+        android:layout_width="@dimen/convert_60px"
+        android:layout_height="@dimen/convert_60px"/>
+
     <androidx.appcompat.widget.AppCompatTextView
         android:id="@+id/tv_title"
         android:layout_width="wrap_content"

+ 2 - 2
app/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
-    android:sharedUserId="android.uid.system"
+
     package="com.develop.foodcooking">
 
     <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
@@ -42,7 +42,7 @@
         android:requestLegacyExternalStorage="true"
         android:roundIcon="@mipmap/ic_launcher_round"
         android:supportsRtl="true"
-        android:theme="@style/SplashTheme"
+        android:theme="@style/Theme.FoodCooking"
         android:largeHeap="true"
         tools:targetApi="31">
         <activity

+ 2 - 2
app/src/main/assets/help.html

@@ -14,9 +14,9 @@
   }
 
   body {
-    background-color: #000000;
+    background-color: #ffffff;
     height: 100vh;
-    color: #ffffff;
+    color: #000000;
     padding: 12px;
   }
 

+ 208 - 0
app/src/main/assets/help_night.html

@@ -0,0 +1,208 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+  <meta charset="UTF-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <title>帮助文件</title>
+</head>
+
+<style>
+  * {
+    margin: 0;
+    padding: 0;
+  }
+
+  body {
+    background-color: #000000;
+    height: 100vh;
+    color: #ffffff;
+    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 #ffffff;
+    border-right: 2px solid #ffffff;
+    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>LES FAQ</h2>
+  <div class="item">
+    <h3>La lame s’est tordue dès ma première préparation.</h3>
+    <p>Le couteau n’est pas endommagé, vous pouvez le constater en regardant sa forme spécifique dans votre manuel, il
+      a une lame plus incourbée afin de mieux mélanger les ingrédients.</p>
+  </div>
+
+  <div class="item">
+    <h3>De la fumée sort de l'arrière de l'appareil lors des premières utilisations.</h3>
+    <p>Ce phénomène est normal, la fumée provient des bobinages du moteur qui, étant neufs, peuvent dégager de la fumée
+      et une légère odeur de "plastique chaud" lors des premières utilisations. Ce phénomène sera atténué et disparaîtra
+      à l'usage.</p>
+  </div>
+
+  <div class="item">
+    <h3>Mon robot ne chauffe plus ou ne monte pas à la température demandée.</h3>
+    <p>Après avoir réservé la préparation et refroidi le bol, il suffit de réinitialiser la sonde thermique placée sous
+      le bol en appuyant avec le doigt jusqu’à entendre un « clic ».</p>
+  </div>
+
+  <div class="item">
+    <h3>Un message d'erreur est apparu à l'écran pendant la recette.</h3>
+    <p>Le robot est équipé d’une sécurité qui minimise les risques de surcharge du moteur (trop-plein ou préparation
+      trop épaisse). Pour y remédier, il faut éteindre l’appareil et le laisser refroidir environ 20 à 30 minutes. Après
+      ça, le problème devrait être réglé. Si vous constatez toujours que le robot cuiseur ne parvient pas à s’allumer,
+      répétez la procédure de refroidissement. Si rien d’autre ne fonctionne, contactez le SAV.</p>
+  </div>
+
+  <div class="item">
+    <h3>Le bol ne rentre complètement dans la base, ou le couvercle ne se met pas en position verrouillée.</h3>
+    <p>Vérifiez que l'arbre d’entrainement des accessoires est totalement verrouillé (sur le dessus du bol).</p>
+  </div>
+
+  <div class="item">
+    <h3>Accessoires : J’ai égaré le panier à vapeur, j’ai perdu le poussoir, j’ai cassé mon fouet.</h3>
+    <p>Le client peut acheter la pièce directement sur le site www.expercare.fr, ou le PDV peut passer la commande
+      directement à l'adresse électronique p.blanc@schneiderconsumer.com</p>
+  </div>
+
+  <div class="item">
+    <h3>Le couvercle est difficile à mettre.</h3>
+    <p>Huilez le joint du couvercle après chaque lavage (par exemple, graissez votre doigt avec de l'huile végétale et
+      appliquez-le sur joint).</p>
+  </div>
+
+  <div class="item">
+    <h3>Je ne parviens pas à me connecter en Wifi : mot de passe correct, proche de la box.</h3>
+    <p>Ce problème provient du protocole de sécurité Wifi que la box utilise. La box doit fonctionner avec le dernier
+      protocole (WPA2), vous devez effectuer une mise à jour du logiciel de la box.</p>
+  </div>
+
+  <div class="item">
+    <h3>Ai-je besoin de la connexion Wifi pour réaliser les recettes ?</h3>
+    <p>Non, la connexion Wifi est uniquement requise pour les mises à jour des recettes.</p>
+  </div>
+
+  <div class="item">
+    <h3>Jusqu'à quelle température chauffe mon robot ?</h3>
+    <p>En mode manuel, le robot peut chauffer de 37°C jusqu’à 130°C, et vous avez la possibilité de modifier la
+      température par palier de 5°C. Le cadran de la température n'indique la température de la préparation que
+      lorsqu'elle est supérieure à 37°C.</p>
+    <p>*Certaines recettes automatiques du PowerChef Max peuvent cuire jusqu'à 160°C, mais le mode manuel est limité à
+      130°C.</p>
+  </div>
+
+  <div class="item">
+    <h3>Quelles sont les vitesses du moteur ?</h3>
+    <p>Les vitesses sont réglables de 1 à 12.</p>
+    <p>Pour des raisons de sécurité, lorsque la cuisson est active, le robot limite sa vitesse à 3.</p>
+  </div>
+
+  <div class="item">
+    <h3>Comment nettoyer mon robot ?</h3>
+    <p>Après avoir éteint et débranché le cordon d’alimentation, il est recommandé de rincer l’intérieur du bol à l’eau
+      chaude et les accessoires immédiatement après avoir utilisé le robot.
+      Si une marque de brûlure est présente sur le fond du bol, privilégier de faire tremper l’intérieur du bol et
+      frottez avec une éponge de temps en temps le fond du bol jusqu’au décollement des aliments.
+      Vous pouvez également lancer le programme de nettoyage. </p>
+  </div>
+
+  <div class="item">
+    <h3>Tous les accessoires vont-ils au lave-vaisselle ?</h3>
+    <p>Tous les accessoires de votre robot vont au lave-vaisselle (à l'exception du bloc moteur).</p>
+  </div>
+
+  <div class="item">
+    <h3>Certains aliments peuvent colorer le plastique. Comment le nettoyer ?</h3>
+    <p>Certains ingrédients colorés comme le curry, la tomate, la carotte, etc. peuvent tacher les composants
+      plastiques, et cet effet de coloration ne peut pas toujours être évité. Cette coloration n’a aucun effet sur votre
+      santé ni sur le fonctionnement des accessoires.</p>
+    <p>Afin d'atténuer la coloration, frottez les zones tachées avec un chiffon ou un essuie-tout imbibé d'huile
+      alimentaire puis procédez au nettoyage habituel.</p>
+    <p>Il est indispensable de procéder à ce nettoyage immédiatement après utilisation pour atténuer la coloration.
+      Remarque : Ce problème n'est pas couvert par la garantie, car il s'agit d'un problème esthétique et non d'un
+      dysfonctionnement.</p>
+  </div>
+
+  <div class="item">
+    <h3>Des taches blanches sont apparues sur le couvercle de cuisson. Comment les enlever ?</h3>
+    <p>Ces marques sont des dépôts de tartre, généré par l'utilisation d'eau calcaire avec les cuissons. Il faut
+      utiliser une solution anticalcaire et laissez le couvercle tremper assez longtemps pour adoucir les marques.
+      À noter que plus ces taches sont soumises à des cuissons, plus ils durcissent, et plus il est difficile de les
+      retirer, nous conseillons donc de les enlever dès qu'ils sont détectés.</p>
+  </div>
+
+  <div class="item">
+    <h3>La nourriture a brûlé au fond du bol et s'est attachée, comment le nettoyer ?</h3>
+    <p>Il y a plusieurs solutions, vous pouvez, par exemple, mettre un fond d'eau et laisser tremper avec du bicarbonate
+      de soude, ou du citron, ou du liquide vaisselle.</p>
+    <p>Vous pouvez aussi faire chauffer dans le bol, de l'eau avec du vinaigre blanc et quelques gouttes de liquide
+      vaisselle, et ensuite laissez reposer un peu avant de le nettoyer. Si tout n'est pas parti, recommencez
+      l'opération.
+      Une astuce particulièrement efficace consiste à mettre une pastille de lave-vaisselle et un peu d'eau chaude et
+      laisser tremper un moment.</p>
+  </div>
+
+  <div class="item">
+    <h3>Comment éviter, sur les préparations qui doivent être cuites, que la nourriture reste attachée au bol ?</h3>
+    <p>Avant de commencer une recette où il y aura une cuisson, nous conseillons d’huiler le fond du bol avec un papier
+      absorbant imbibé. Cet entretien régulier permettra aux aliments de ne pas adhérer au bol. Pour les préparations
+      sucrées, utilisez un peu de jus de citron à la place de l'huile.</p>
+  </div>
+
+  <div class="item">
+    <h3>Le mélange ne s'effectue pas correctement, ou les ingrédients ne sont pas complètement cuits</h3>
+    <p>Cela peut provenir du fait que la recette en question peut nécessiter un peu plus de temps de cuisson.
+      Bien que théoriquement les aliments ont un temps de cuisson défini dans les recettes, celui-ci peut varier en
+      fonction de plusieurs facteurs :</p>
+    <ul>
+      <li>Température de l'aliment au moment de la recette ;</li>
+      <li>Si vous ne sortez pas les ingrédients du réfrigérateur et qu'ils ne sont pas à température ambiante ;</li>
+      <li>Origine et état de maturité des ingrédients.</li>
+    </ul>
+  </div>
+
+  <div class="item">
+    <h3>Je ne trouve pas comment réchauffer un plat préparé à l'avance.</h3>
+    <p>R : Vous devez passer en mode manuel et choisir la température, la durée, etc. selon la préparation que vous
+      souhaitez réchauffer.</p>
+  </div>
+
+  <div class="item">
+    <h3>L'appareil déborde pendant la cuisson.</h3>
+    <p>R : Ce phénomène est dû à une température trop élevée pour la quantité de liquide et d'aliments dans le bol, ce
+      qui augmente la pression à l'intérieur du bol et crée un débordement. Pour éviter ce phénomène, réduisez la
+      température ou utilisez le grand panier vapeur avec le couvercle en verre au lieu du couvercle de cuisson.</p>
+  </div>
+</body>
+
+</html>

+ 2 - 2
app/src/main/assets/privacy.html

@@ -8,9 +8,9 @@
 </head>
 <style>
   body {
-    background-color: #000000;
+    background-color: #ffffff;
     height: 100vh;
-    color: #ffffff;
+    color: #000000;
   }
 
   h3 {

+ 76 - 0
app/src/main/assets/privacy_night.html

@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+  <meta charset="UTF-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <title>隐私条款</title>
+</head>
+<style>
+  body {
+    background-color: #000000;
+    height: 100vh;
+    color: #ffffff;
+  }
+
+  h3 {
+    font-size: 26px;
+  }
+
+  p {
+    font-size: 16px;
+  }
+</style>
+
+<body>
+
+  <div>
+    <!-- 段落1 -->
+    <h3>Mention d’information à intégrer sous le formulaire de création de compte : </h3>
+    <p>Vos données font l’objet d’un traitement sous la responsabilité de SCHNEIDER CONSUMER GROUP, destiné à créer un
+      compte sur notre application afin pouvoir recevoir des newsletters par email. </p>
+    <p>Ces traitements reposent sur votre consentement que vous pouvez retirer à tout moment, sans que cela ne porte
+      atteinte à la licéité du traitement effectué avant ce retrait. Si vous faites le choix de ne pas renseigner les
+      données obligatoires (avec un astérisque), vous ne serez pas en mesure de créer un compte. Aucune de vos données
+      personnelles n’est transmise à des tiers, à l’exclusion nos sous-traitants.
+      Vous disposez du droit de demander à SCHNEIDER CONSUMER GROUP l’accès, la rectification, la portabilité et/ou
+      l’effacement de vos données à caractère personnel, ainsi que de limiter le traitement de ces dernières, de vous
+      opposer à leur traitement, de ne pas faire l’objet d’une décision automatisée et du droit de définir le sort de
+      vos données post-mortem. </p>
+    <p>Vous disposez également du droit d’introduire une réclamation auprès de la CNIL https://www.cnil.fr/.</p>
+
+    <!-- 段落2 -->
+    <h3>Mention d’information à intégrer sous le formulaire de réinitialisation du mot de passe : </h3>
+    <p>Vos données font l’objet d’un traitement sous la responsabilité de SCHNEIDER CONSUMER GROUP, destiné à
+      réinitialiser votre mot de passe. </p>
+    <p>Ce traitement repose sur notre obligation légale pour assurer la sécurité de vos données. Si vous faites le choix
+      de ne pas renseigner les données obligatoires (avec un astérisque), vous ne serez pas en mesure de réinitialiser
+      votre mot de passe. Aucune de vos données personnelles n’est transmise à des tiers, à l’exclusion nos
+      sous-traitants.</p>
+    <p>Vous disposez du droit de demander à SCHNEIDER CONSUMER GROUP l’accès, la rectification, la portabilité et/ou
+      l’effacement de vos données à caractère personnel, ainsi que de limiter le traitement de ces dernières, de vous
+      opposer à leur traitement, de ne pas faire l’objet d’une décision automatisée et du droit de définir le sort de
+      vos données post-mortem. </p>
+    <p>Vous disposez également du droit d’introduire une réclamation auprès de la CNIL https://www.cnil.fr/.</p>
+
+    <!-- 段落3 -->
+    <h3>Mention d’information à intégrer sous le formulaire de mise en ligne d’un commentaire : </h3>
+    <p>Vos données font l’objet d’un traitement sous la responsabilité de SCHNEIDER CONSUMER GROUP, destiné à publier
+      vos commentaires. </p>
+    <p>Ce traitement repose sur votre consentement que vous pouvez retirer à tout moment, sans que cela ne porte
+      atteinte à la licéité du traitement effectué avant ce retrait. Si vous faites le choix de ne pas donner votre
+      consentement pour la collecte des données obligatoires (avec un astérisque), vous ne serez pas en mesure de
+      publier un commentaire. Aucune de vos données personnelles n’est transmise à des tiers, à l’exclusion nos
+      sous-traitants.</p>
+    <p>Nous attirons votre attention sur le fait que vous ne devez pas mentionner d’information personnelle sensible
+      dans vos commentaires susceptibles d’être lus par l’ensemble des utilisateurs. </p>
+    <p>Vous disposez du droit de demander à SCHNEIDER CONSUMER GROUP l’accès, la rectification, la portabilité et/ou
+      l’effacement de vos données à caractère personnel, ainsi que de limiter le traitement de ces dernières, de vous
+      opposer à leur traitement, de ne pas faire l’objet d’une décision automatisée et du droit de définir le sort de
+      vos données post-mortem. </p>
+    <p>Vous disposez également du droit d’introduire une réclamation auprès de la CNIL https://www.cnil.fr/.</p>
+  </div>
+
+</body>
+
+</html>

+ 9 - 9
app/src/main/java/com/develop/foodcooking/FoodCookingApp.kt

@@ -71,8 +71,8 @@ class FoodCookingApp : BaseApp() {
         WindowManager.getInstance().init(this, OptionFactory())
         val isNight = !isNightTheme()
         //切换主题,theme=0 night= false 是0000的主题,而且需要AndroidManifest.xml主题设置为  android:theme="@style/SplashTheme"
-        ThemeSkinService.getInstance().switchThemeSkin(1)
-        setNightTheme(true)
+        ThemeSkinService.getInstance().switchThemeSkin(0)
+        setNightTheme(false)
         SerialPortUtils.init()
         CofarSDK.register(this)
         CofarSDK.stopNative()
@@ -86,13 +86,13 @@ class FoodCookingApp : BaseApp() {
         if (minute == 0) {
             minute = 5
         }
-        Settings.System.putInt(
-            contentResolver,
-            Settings.System.SCREEN_OFF_TIMEOUT,
-            (1000 * 60 * minute).toInt()
-        )
-
-        Settings.Secure.putInt(contentResolver, Settings.Secure.INSTALL_NON_MARKET_APPS, 1)
+//        Settings.System.putInt(
+//            contentResolver,
+//            Settings.System.SCREEN_OFF_TIMEOUT,
+//            (1000 * 60 * minute).toInt()
+//        )
+//
+//        Settings.Secure.putInt(contentResolver, Settings.Secure.INSTALL_NON_MARKET_APPS, 1)
 
         val uri: Uri = Settings.System
             .getUriFor(Settings.System.SCREEN_OFF_TIMEOUT)