Browse Source

A-Z需求,鸡蛋需求,和其他bug,wifiBug修复提交

zhangshenjie 1 year ago
parent
commit
15fad94e0d
29 changed files with 698 additions and 297 deletions
  1. 10 0
      BusinessAirFryer/src/main/assets/tuya_config.json
  2. 157 152
      BusinessAuth/src/main/res/layout/fragment_member_profile.xml
  3. 59 61
      BusinessAuth/src/main/res/layout/fragment_member_register.xml
  4. 34 0
      BusinessCommon/src/main/java/com/develop/common/data_repo/db/DataFactory.kt
  5. 1 1
      BusinessCommon/src/main/java/com/develop/common/food_sdk/GlobalDevEvent.kt
  6. 1 1
      BusinessCommon/src/main/java/com/develop/common/widget/LinearPositionObserver.kt
  7. 12 6
      BusinessCommon/src/main/java/com/develop/common/widget/TimePickerView.kt
  8. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_icon_1_002d.png
  9. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_icon_2_002d.png
  10. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_icon_3_002d.png
  11. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/entrance_icon_4_002d.png
  12. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/home_entrance_bg_002d.png
  13. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_more_002d.png
  14. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/pot_clover_ele_lock.png
  15. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/pot_clover_ele_unlock.png
  16. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/v.webp
  17. 7 0
      BusinessCommon/src/main/res/drawable/shape_25pxffffff_corners.xml
  18. 89 0
      BusinessMain/src/main/java/com/develop/main/ui/ModeEntranceActivity.kt
  19. 1 0
      BusinessMain/src/main/res/layout/activity_mode_entrance.xml
  20. 27 0
      BusinessMain/src/main/res/layout/item_entrance_002d.xml
  21. 101 18
      BusinessStep/src/main/java/com/develop/step/ui/ModesDetailActivity.kt
  22. 125 50
      BusinessStep/src/main/java/com/develop/step/ui/cook_step/CookStepActivity.kt
  23. 5 1
      BusinessStep/src/main/java/com/develop/step/ui/recipes_detail/CookDetailActivity.kt
  24. 24 0
      BusinessStep/src/main/res/layout/activity_cook_step_base.xml
  25. 21 2
      BusinessStep/src/main/res/layout/activity_mode_detail.xml
  26. BIN
      app/brand000A/debug/cofar-cooking_1039.010D.231124171-brand000A-debug.apk
  27. 18 0
      app/brand000A/debug/output-metadata.json
  28. 6 5
      app/build.gradle
  29. BIN
      libThirdPart/libs/cofar-cooking-device-sdk-0.0.1-SNAPSHOT.jar

+ 10 - 0
BusinessAirFryer/src/main/assets/tuya_config.json

@@ -269,6 +269,16 @@
       "pid": "clcfnrsqntjkon45",
       "uid": "uuid471d364a7052a30b",
       "ak": "nckm4kCq7pV5fOuVzQuMKzPKENDfAFGg"
+    },
+    "036I21060020123010190005": {
+      "pid": "dquk8axtyy72c1ap",
+      "uid": "uuid43fc31bb1d0f6fea",
+      "ak": "PXmdFKCBhhR8OowVAl8JU7r738Msn6ci"
+    },
+    "036I21060020123010190006": {
+      "pid": "dquk8axtyy72c1ap",
+      "uid": "uuidee8bc3caaedcdf0d",
+      "ak": "Zx5aVFFJMRKmaHvz7FetQHiHM47qWRqm"
     }
   }
 }

+ 157 - 152
BusinessAuth/src/main/res/layout/fragment_member_profile.xml

@@ -1,159 +1,164 @@
 <?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:background="#fff"
-    android:focusable="true"
-    android:focusableInTouchMode="true"
-    android:orientation="vertical">
+    android:overScrollMode="never"
+    android:scrollbars="none">
 
-    <ImageView
-        android:id="@+id/iv_member"
-        android:layout_width="@dimen/convert_146px"
-        android:layout_height="@dimen/convert_146px"
-        android:layout_marginTop="@dimen/convert_60px"
-        android:background="@drawable/ic_icon1"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
-
-    <View
-        android:layout_width="@dimen/convert_40px"
-        android:layout_height="@dimen/convert_40px"
-        android:background="@drawable/ic_member_select"
-        app:layout_constraintBottom_toBottomOf="@+id/iv_member"
-        app:layout_constraintEnd_toEndOf="@+id/iv_member" />
-
-    <TextView
-        android:id="@+id/tv_title"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="@dimen/convert_80px"
-        android:layout_marginTop="@dimen/convert_213px"
-        android:text="@string/nickname"
-        android:textColor="#1A1A1A"
-        android:textSize="@dimen/convert_36px"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
-
-    <EditText
-        android:id="@+id/et_nickname"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/convert_88px"
-        android:layout_gravity="center_horizontal"
-        android:layout_marginHorizontal="@dimen/convert_40px"
-        android:layout_marginTop="@dimen/convert_12px"
-        android:background="@drawable/bg_edit_input"
-        android:hint="@string/enter_nickname"
-        android:paddingHorizontal="@dimen/convert_40px"
-        android:singleLine="true"
-        android:textSize="@dimen/convert_30px"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/tv_title" />
-
-    <TextView
-        android:id="@+id/tv_sex"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="@dimen/convert_80px"
-        android:layout_marginTop="@dimen/convert_25px"
-        android:text="@string/sex"
-        android:textColor="#1A1A1A"
-        android:textSize="@dimen/convert_36px"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/et_nickname" />
-
-    <TextView
-        android:id="@+id/tv_choose_sex"
-        android:layout_width="0dp"
-        android:layout_height="@dimen/convert_88px"
-        android:layout_gravity="center_horizontal"
-        android:layout_marginStart="@dimen/convert_40px"
-        android:layout_marginTop="@dimen/convert_12px"
-        android:layout_marginEnd="@dimen/convert_53px"
-        android:background="@drawable/bg_edit_input"
-        android:gravity="center_vertical"
-        android:paddingHorizontal="@dimen/convert_66px"
-        android:text="@string/none"
-        android:textColor="#B1B2B2"
-        android:textSize="@dimen/convert_30px"
-        app:layout_constraintEnd_toStartOf="@+id/tv_choose_age"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/tv_sex" />
-
-    <TextView
-        android:id="@+id/tv_choose_age"
-        android:layout_width="0dp"
-        android:layout_height="@dimen/convert_88px"
-        android:layout_gravity="center_horizontal"
-        android:layout_marginEnd="@dimen/convert_40px"
-        android:background="@drawable/bg_edit_input"
-        android:gravity="center_vertical"
-        android:paddingHorizontal="@dimen/convert_66px"
-        android:text="0"
-        android:textColor="#B1B2B2"
-        android:textSize="@dimen/convert_30px"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toEndOf="@+id/tv_choose_sex"
-        app:layout_constraintTop_toTopOf="@+id/tv_choose_sex" />
-
-    <TextView
-        android:id="@+id/tv_age"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="@dimen/convert_40px"
-        android:text="@string/age"
-        android:textColor="#1a1a1a"
-        android:textSize="@dimen/convert_36px"
-        app:layout_constraintStart_toStartOf="@+id/tv_choose_age"
-        app:layout_constraintTop_toTopOf="@+id/tv_sex" />
-
-    <TextView
-        android:id="@+id/tv_save"
+    <androidx.constraintlayout.widget.ConstraintLayout
         android:layout_width="match_parent"
-        android:layout_height="@dimen/convert_98px"
-        android:layout_gravity="center_horizontal"
-        android:layout_marginHorizontal="@dimen/convert_40px"
-        android:layout_marginTop="@dimen/convert_40px"
-        android:background="@drawable/language_conner"
-        android:gravity="center"
-        android:text="@string/save"
-        android:textColor="#fff"
-        android:textSize="@dimen/convert_36px"
-        app:layout_constraintTop_toBottomOf="@+id/tv_choose_sex" />
-
-
-
-
-
-    <TextView
-        android:layout_marginLeft="@dimen/convert_50px"
-        android:id="@+id/tv_skip_for_now"
-        android:layout_width="0dp"
         android:layout_height="wrap_content"
-        android:gravity="center"
-        android:paddingTop="@dimen/convert_20px"
-        android:paddingBottom="@dimen/convert_20px"
-        android:text="@string/skip_for_now"
-        android:textColor="@color/skin_for_now"
-        android:textSize="@dimen/convert_30px"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/tv_save" />
-
-    <TextView
-        android:layout_marginRight="@dimen/convert_50px"
-        android:id="@+id/tv_destroy_account"
-        android:layout_width="0dp"
-        android:layout_height="wrap_content"
-        android:gravity="center"
-        android:paddingTop="@dimen/convert_20px"
-        android:paddingBottom="@dimen/convert_20px"
-        android:text="@string/cancellation_of_account"
-        android:textColor="#E60012"
-        android:textSize="@dimen/convert_30px"
-        android:visibility="gone"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/tv_save" />
-
-</androidx.constraintlayout.widget.ConstraintLayout>
+        android:background="#fff"
+        android:paddingBottom="@dimen/convert_30px"
+        android:focusable="true"
+        android:focusableInTouchMode="true"
+        android:orientation="vertical">
+
+        <ImageView
+            android:id="@+id/iv_member"
+            android:layout_width="@dimen/convert_146px"
+            android:layout_height="@dimen/convert_146px"
+            android:layout_marginTop="@dimen/convert_60px"
+            android:background="@drawable/ic_icon1"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <View
+            android:layout_width="@dimen/convert_40px"
+            android:layout_height="@dimen/convert_40px"
+            android:background="@drawable/ic_member_select"
+            app:layout_constraintBottom_toBottomOf="@+id/iv_member"
+            app:layout_constraintEnd_toEndOf="@+id/iv_member" />
+
+        <TextView
+            android:id="@+id/tv_title"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/convert_80px"
+            android:layout_marginTop="@dimen/convert_213px"
+            android:text="@string/nickname"
+            android:textColor="#1A1A1A"
+            android:textSize="@dimen/convert_36px"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <EditText
+            android:id="@+id/et_nickname"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/convert_88px"
+            android:layout_gravity="center_horizontal"
+            android:layout_marginHorizontal="@dimen/convert_40px"
+            android:layout_marginTop="@dimen/convert_12px"
+            android:background="@drawable/bg_edit_input"
+            android:hint="@string/enter_nickname"
+            android:paddingHorizontal="@dimen/convert_40px"
+            android:singleLine="true"
+            android:textSize="@dimen/convert_30px"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/tv_title" />
+
+        <TextView
+            android:id="@+id/tv_sex"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/convert_80px"
+            android:layout_marginTop="@dimen/convert_25px"
+            android:text="@string/sex"
+            android:textColor="#1A1A1A"
+            android:textSize="@dimen/convert_36px"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/et_nickname" />
+
+        <TextView
+            android:id="@+id/tv_choose_sex"
+            android:layout_width="0dp"
+            android:layout_height="@dimen/convert_88px"
+            android:layout_gravity="center_horizontal"
+            android:layout_marginStart="@dimen/convert_40px"
+            android:layout_marginTop="@dimen/convert_12px"
+            android:layout_marginEnd="@dimen/convert_53px"
+            android:background="@drawable/bg_edit_input"
+            android:gravity="center_vertical"
+            android:paddingHorizontal="@dimen/convert_66px"
+            android:text="@string/none"
+            android:textColor="#B1B2B2"
+            android:textSize="@dimen/convert_30px"
+            app:layout_constraintEnd_toStartOf="@+id/tv_choose_age"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/tv_sex" />
+
+        <TextView
+            android:id="@+id/tv_choose_age"
+            android:layout_width="0dp"
+            android:layout_height="@dimen/convert_88px"
+            android:layout_gravity="center_horizontal"
+            android:layout_marginEnd="@dimen/convert_40px"
+            android:background="@drawable/bg_edit_input"
+            android:gravity="center_vertical"
+            android:paddingHorizontal="@dimen/convert_66px"
+            android:text="0"
+            android:textColor="#B1B2B2"
+            android:textSize="@dimen/convert_30px"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toEndOf="@+id/tv_choose_sex"
+            app:layout_constraintTop_toTopOf="@+id/tv_choose_sex" />
+
+        <TextView
+            android:id="@+id/tv_age"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/convert_40px"
+            android:text="@string/age"
+            android:textColor="#1a1a1a"
+            android:textSize="@dimen/convert_36px"
+            app:layout_constraintStart_toStartOf="@+id/tv_choose_age"
+            app:layout_constraintTop_toTopOf="@+id/tv_sex" />
+
+        <TextView
+            android:id="@+id/tv_save"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/convert_98px"
+            android:layout_gravity="center_horizontal"
+            android:layout_marginHorizontal="@dimen/convert_40px"
+            android:layout_marginTop="@dimen/convert_40px"
+            android:background="@drawable/language_conner"
+            android:gravity="center"
+            android:text="@string/save"
+            android:textColor="#fff"
+            android:textSize="@dimen/convert_36px"
+            app:layout_constraintTop_toBottomOf="@+id/tv_choose_sex" />
+
+
+        <TextView
+            android:id="@+id/tv_skip_for_now"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="@dimen/convert_50px"
+            android:gravity="center"
+            android:paddingTop="@dimen/convert_20px"
+            android:paddingBottom="@dimen/convert_20px"
+            android:text="@string/skip_for_now"
+            android:textColor="@color/skin_for_now"
+            android:textSize="@dimen/convert_30px"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/tv_save" />
+
+        <TextView
+            android:id="@+id/tv_destroy_account"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginRight="@dimen/convert_50px"
+            android:gravity="center"
+            android:paddingTop="@dimen/convert_20px"
+            android:paddingBottom="@dimen/convert_20px"
+            android:text="@string/cancellation_of_account"
+            android:textColor="#E60012"
+            android:textSize="@dimen/convert_30px"
+            android:visibility="gone"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/tv_save" />
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+</ScrollView>

+ 59 - 61
BusinessAuth/src/main/res/layout/fragment_member_register.xml

@@ -1,105 +1,103 @@
 <?xml version="1.0" encoding="utf-8"?>
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:background="#fff"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+    android:background="#fff">
 
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:orientation="vertical"
         android:focusable="true"
-        android:focusableInTouchMode="true">
+        android:focusableInTouchMode="true"
+        android:orientation="vertical">
 
         <TextView
             android:id="@+id/tv_title"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/convert_80px"
+            android:layout_marginTop="@dimen/convert_104px"
             android:text="@string/sign_up_it_s_free"
             android:textColor="@color/profile_title"
-            android:textSize="@dimen/convert_30px"
-            android:layout_marginTop="@dimen/convert_104px"
-            android:layout_marginStart="@dimen/convert_80px"/>
+            android:textSize="@dimen/convert_30px" />
 
         <EditText
             android:id="@+id/et_email_id"
             android:layout_width="match_parent"
             android:layout_height="@dimen/convert_88px"
-            android:hint="@string/enter_email_id"
-            android:textSize="@dimen/convert_30px"
-            android:singleLine="true"
-            android:background="@drawable/forgot_input_stroke"
-            android:layout_marginTop="@dimen/convert_24px"
             android:layout_gravity="center_horizontal"
             android:layout_marginHorizontal="@dimen/convert_40px"
-            android:paddingHorizontal="@dimen/convert_40px"/>
+            android:layout_marginTop="@dimen/convert_24px"
+            android:background="@drawable/forgot_input_stroke"
+            android:hint="@string/enter_email_id"
+            android:paddingHorizontal="@dimen/convert_40px"
+            android:singleLine="true"
+            android:textSize="@dimen/convert_30px" />
 
         <EditText
             android:id="@+id/et_password"
             android:layout_width="match_parent"
             android:layout_height="@dimen/convert_88px"
-            android:hint="@string/enter_password"
-            android:textSize="@dimen/convert_30px"
-            android:singleLine="true"
-            android:digits="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
-            android:inputType="textPassword"
-            android:background="@drawable/forgot_input_stroke"
-            android:layout_marginTop="@dimen/convert_24px"
             android:layout_gravity="center_horizontal"
             android:layout_marginHorizontal="@dimen/convert_40px"
-            android:paddingHorizontal="@dimen/convert_40px"/>
+            android:layout_marginTop="@dimen/convert_24px"
+            android:background="@drawable/forgot_input_stroke"
+            android:digits="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
+            android:hint="@string/enter_password"
+            android:inputType="textPassword"
+            android:paddingHorizontal="@dimen/convert_40px"
+            android:singleLine="true"
+            android:textSize="@dimen/convert_30px" />
 
         <EditText
             android:id="@+id/et_password_again"
             android:layout_width="match_parent"
             android:layout_height="@dimen/convert_88px"
-            android:inputType="textPassword"
-            android:hint="@string/enter_password_again"
-            android:textSize="@dimen/convert_30px"
-            android:singleLine="true"
-            android:digits="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
-            android:background="@drawable/forgot_input_stroke"
-            android:layout_marginTop="@dimen/convert_24px"
             android:layout_gravity="center_horizontal"
             android:layout_marginHorizontal="@dimen/convert_40px"
-            android:paddingHorizontal="@dimen/convert_40px"/>
+            android:layout_marginTop="@dimen/convert_24px"
+            android:background="@drawable/forgot_input_stroke"
+            android:digits="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
+            android:hint="@string/enter_password_again"
+            android:inputType="textPassword"
+            android:paddingHorizontal="@dimen/convert_40px"
+            android:singleLine="true"
+            android:textSize="@dimen/convert_30px" />
 
         <TextView
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:textColor="@color/register_tip"
-            android:textSize="@dimen/convert_22px"
-            android:text="@string/pwd_requirement"
-            android:layout_marginTop="@dimen/convert_12px"
             android:layout_marginHorizontal="@dimen/convert_48px"
-            android:lineSpacingExtra="@dimen/convert_20px"/>
+            android:layout_marginTop="@dimen/convert_12px"
+            android:lineSpacingExtra="@dimen/convert_20px"
+            android:text="@string/pwd_requirement"
+            android:textColor="@color/register_tip"
+            android:textSize="@dimen/convert_22px" />
 
-    </LinearLayout>
+        <TextView
+            android:id="@+id/tv_register"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/convert_98px"
+            android:layout_marginHorizontal="@dimen/convert_40px"
+            android:layout_marginTop="@dimen/convert_23px"
+            android:background="@drawable/language_conner"
+            android:gravity="center"
+            android:text="@string/register"
+            android:textColor="@color/language_next"
+            android:textSize="@dimen/convert_36px" />
 
-    <TextView
-        android:id="@+id/tv_register"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/convert_98px"
-        android:textColor="@color/language_next"
-        android:textSize="@dimen/convert_36px"
-        android:text="@string/register"
-        android:gravity="center"
-        android:layout_marginHorizontal="@dimen/convert_40px"
-        android:layout_gravity="center_horizontal|bottom"
-        android:background="@drawable/language_conner"
-        android:layout_marginBottom="@dimen/convert_130px"/>
+        <TextView
+            android:id="@+id/tv_login"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/convert_23px"
+            android:gravity="center"
+            android:paddingTop="@dimen/convert_40px"
+            android:paddingBottom="@dimen/convert_50px"
+            android:text="@string/login"
+            android:textColor="@color/login"
+            android:textSize="@dimen/convert_30px" />
+    </LinearLayout>
 
-    <TextView
-        android:id="@+id/tv_login"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:textColor="@color/login"
-        android:textSize="@dimen/convert_30px"
-        android:text="@string/login"
-        android:gravity="center"
-        android:paddingTop="@dimen/convert_40px"
-        android:paddingBottom="@dimen/convert_50px"
-        android:layout_gravity="center_horizontal|bottom"/>
 
-</FrameLayout>
+</ScrollView>

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

@@ -418,12 +418,26 @@ object DataFactory {
         R.drawable.entrance_icon_3,
         R.drawable.entrance_icon_4
     )
+
+    private var icon002DResIds = arrayListOf<Int>(
+        R.drawable.entrance_icon_2_002d,
+        R.drawable.entrance_icon_1_002d,
+        R.drawable.entrance_icon_3_002d,
+        R.drawable.entrance_icon_4_002d
+    )
     private var titleStrIds = mutableListOf<Int>(
         R.string.automatic_recipes,
         R.string.automatic_programmes,
         R.string.manual_cooking,
         R.string.download_new_recipes
     )
+
+    private var title002dStrIds = mutableListOf<Int>(
+        R.string.automatic_programmes,
+        R.string.manual_cooking,
+        R.string.automatic_recipes,
+        R.string.download_new_recipes
+    )
     private var title2StrIds = mutableListOf<Int>(
         R.string.Automatic_recipes,
         R.string.Automatic_programmes,
@@ -440,6 +454,13 @@ object DataFactory {
     )
 
 
+    private var type2List = mutableListOf<EntranceType>(
+        EntranceType.automatic_programmes,
+        EntranceType.manual_cooking,
+        EntranceType.automatic_recipes,
+        EntranceType.download_new_recipes
+    )
+
     private var bgResIds1 = arrayListOf<Int>(
         R.drawable.entrance_bg_1,
         R.drawable.entrance_bg_3,
@@ -498,6 +519,19 @@ object DataFactory {
     }
 
 
+    fun get002DEntranceData(): MutableList<EntranceData> {
+        val dataList = mutableListOf<EntranceData>()
+        for (i in iconResIds.indices) {
+            dataList.add(
+                EntranceData(
+                    bg036IResIds[i], icon002DResIds[i], titleStrIds[i], titleStrIds[i], typeList[i]
+                )
+            )
+        }
+        return dataList
+    }
+
+
     fun getNightEntranceData(): MutableList<EntranceData> {
         val dataList = mutableListOf<EntranceData>()
         for (i in iconResIds1.indices) {

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

@@ -91,8 +91,8 @@ object GlobalDevEvent {
 
 
                 }
-                ledLock = false
             }
+            ledLock = false;
         }
     }
 

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

@@ -13,7 +13,7 @@ class LinearPositionObserver(
         super.onScrollStateChanged(recyclerView, newState)
         if (newState == RecyclerView.SCROLL_STATE_IDLE) {
             val layoutManager = recyclerView.layoutManager as LinearLayoutManager
-            val position = layoutManager.findFirstVisibleItemPosition()
+            val position = layoutManager.findFirstCompletelyVisibleItemPosition()
             if (position < 0) {
                 return
             }

+ 12 - 6
BusinessCommon/src/main/java/com/develop/common/widget/TimePickerView.kt

@@ -28,12 +28,13 @@ class TimePickerView : ConstraintLayout {
 
     private var firstTimePos = 0
     private var secondTimePos = 0
+    private var currentTotalSecond = 0
 
     private var maxTime = 8 * 60 * 60
     private var minTime = 0
 
-    private var firstUnit:String? = null
-    private var secondUnit:String? = null
+    private var firstUnit: String? = null
+    private var secondUnit: String? = null
 
     var onTimePickerCallback: OnTimePickerCallback? = null
     private var firstManager: ScrollLinearManager
@@ -165,7 +166,7 @@ class TimePickerView : ConstraintLayout {
         }
 
         this.firstUnit = firstUnit;
-        this.secondUnit =  secondUnit;
+        this.secondUnit = secondUnit;
     }
 
     private fun updateDisplayTime() {
@@ -257,10 +258,15 @@ class TimePickerView : ConstraintLayout {
         val maxMinutes = (maxTime / 60 % 60)
         val maxHours = (maxTime / 3600)
         val maxSeconds = maxTime % 60
-        val currentSeconds: Int =  if(firstUnit === "hour"){
-            val hours = firstTimePos
+        val currentSeconds: Int = if (firstUnit === "hour") {
+            val indexRe = firstData[firstTimePos]
+            val hours = if (indexRe.startsWith("0")) {
+                indexRe.substring(1, 2).toInt()
+            } else {
+                indexRe.toInt()
+            }
             hours * 60 * 60 + secondTimePos * 60
-        }else{
+        } else {
             firstTimePos * 60 + secondTimePos
         }
         if (currentSeconds < minTime) {

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


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


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


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


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


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


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


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


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


+ 7 - 0
BusinessCommon/src/main/res/drawable/shape_25pxffffff_corners.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <corners android:radius="@dimen/convert_25px" />
+    <solid android:color="@color/color_fff" />
+
+</shape>

+ 89 - 0
BusinessMain/src/main/java/com/develop/main/ui/ModeEntranceActivity.kt

@@ -9,6 +9,7 @@ import androidx.lifecycle.MutableLiveData
 import androidx.recyclerview.widget.RecyclerView
 import androidx.room.Update
 import com.alibaba.android.arouter.facade.annotation.Route
+import com.develop.base.ext.getSN
 import com.develop.base.ext.isBrand036I
 import com.develop.base.ext.isFrLanguage
 import com.develop.base.ext.isNightTheme
@@ -76,6 +77,11 @@ class ModeEntranceActivity : CommonBindingActivity<ActivityModeEntranceBinding>(
 //            }
         }
 
+        if (getSN().startsWith("002D")){
+            binding.ivTab.setImageResource(com.develop.common.R.drawable.ic_more_002d)
+            binding.homeLayout.setBackgroundResource(com.develop.common.R.drawable.home_entrance_bg_002d)
+        }
+
         if (isNightTheme()) {
             binding.entranceRecycle.apply {
                 linear(RecyclerView.HORIZONTAL)
@@ -156,6 +162,89 @@ class ModeEntranceActivity : CommonBindingActivity<ActivityModeEntranceBinding>(
                     }
                 }
             }.models = DataFactory.getNightEntranceData()
+        } else if (getSN().startsWith("002D")){
+            binding.entranceRecycle.apply {
+                grid(2)
+                setup {
+                    addType<EntranceData>(R.layout.item_entrance_002d)
+                    onBind {
+                        val model = getModel<EntranceData>()
+                        findView<AppCompatTextView>(R.id.tv_entrance_name).updateText(
+                            getString(
+                                model.titleStrId
+                            )
+                        )
+                        findView<ImageView>(R.id.iv_icon).setBackgroundResource(model.iconResId)
+                    }
+                    R.id.entrance_item.onClick {
+                        val clickModel = getModel<EntranceData>()
+                        title = getString(clickModel.title2StrId)
+                        when (clickModel.type) {
+                            EntranceType.automatic_recipes -> {
+                                if (FoodDataProvider.checkDataExit()) {
+                                    val bundle = Bundle()
+                                    bundle.putInt(MODE_ENTRANCE, Recipes)
+                                    bundle.putInt(RECIPES_TYPE, LocalFood)
+                                    bundle.putString(HOME_TITLE, title)
+                                    navigateTo(Screens.Main.HOME) {
+                                        with(bundle)
+                                    }
+                                } else {
+                                    showLoading()
+                                }
+                            }
+
+                            EntranceType.automatic_programmes -> {
+                                if (FoodDataProvider.checkDataExit()) {
+                                    val bundle = Bundle()
+                                    bundle.putInt(MODE_ENTRANCE, Mode)
+                                    bundle.putString(HOME_TITLE, title)
+                                    navigateTo(Screens.Main.HOME) {
+                                        with(bundle)
+                                    }
+                                } else {
+                                    showLoading()
+                                }
+
+                            }
+
+                            EntranceType.manual_cooking -> {
+                                if (FoodDataProvider.checkDataExit()) {
+                                    navigateTo(Screens.Cook.COOK_MODES) {
+                                        if(DevModes.SOUP == CofarSDK.devInfo().devMode){
+                                            val bundle = Bundle()
+                                            bundle.putString(MODE_TYPE, WorkModes.ADAPTED_COOKING)
+                                            bundle.putString("mode_name",resources.getString(com.develop.common.R.string.adapted_cooking))
+                                            with(bundle)
+                                        }else{
+                                            val bundle = Bundle()
+                                            bundle.putString(MODE_TYPE, WorkModes.AF_DIY)
+                                            with(bundle)
+                                        }
+                                    }
+                                } else {
+                                    showLoading()
+                                }
+                            }
+
+                            EntranceType.download_new_recipes -> {
+                                if (FoodDataProvider.checkDataExit()) {
+                                    val bundle = Bundle()
+                                    bundle.putInt(MODE_ENTRANCE, Recipes)
+                                    bundle.putInt(RECIPES_TYPE, NetFood)
+                                    bundle.putString(HOME_TITLE, title)
+                                    navigateTo(Screens.Main.HOME) {
+                                        with(bundle)
+                                    }
+                                } else {
+                                    showLoading()
+                                }
+
+                            }
+                        }
+                    }
+                }
+            }.models = DataFactory.get002DEntranceData()
         } else {
             binding.entranceRecycle.apply {
                 grid(2)

+ 1 - 0
BusinessMain/src/main/res/layout/activity_mode_entrance.xml

@@ -5,6 +5,7 @@
     android:layout_height="match_parent">
 
     <FrameLayout
+        android:id="@+id/home_layout"
         android:layout_width="match_parent"
         android:layout_height="match_parent">
 

+ 27 - 0
BusinessMain/src/main/res/layout/item_entrance_002d.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/entrance_item"
+    android:layout_width="@dimen/convert_460px"
+    android:layout_height="@dimen/convert_300px"
+    android:layout_marginStart="@dimen/convert_100px"
+    android:layout_marginEnd="@dimen/convert_40px"
+    android:layout_marginTop="@dimen/convert_70px"
+    android:background="@drawable/shape_25pxffffff_corners">
+
+    <androidx.appcompat.widget.AppCompatTextView
+        android:id="@+id/tv_entrance_name"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="@dimen/convert_36px"
+        android:layout_marginTop="@dimen/convert_36px"
+        android:textColor="@color/black"
+        android:textSize="@dimen/convert_36px" />
+
+    <ImageView
+        android:id="@+id/iv_icon"
+        android:layout_width="@dimen/convert_134px"
+        android:layout_height="@dimen/convert_134px"
+        android:layout_alignParentBottom="true"
+        android:layout_marginStart="@dimen/convert_24px"
+        android:layout_marginBottom="@dimen/convert_24px" />
+</RelativeLayout>

+ 101 - 18
BusinessStep/src/main/java/com/develop/step/ui/ModesDetailActivity.kt

@@ -2,14 +2,12 @@ package com.develop.step.ui
 
 import android.annotation.SuppressLint
 import android.content.Context
-import android.graphics.BitmapFactory
 import android.os.Bundle
 import android.os.Handler
 import android.util.Log
 import android.view.Gravity
 import android.view.KeyEvent
 import android.view.KeyEvent.ACTION_DOWN
-import android.view.KeyEvent.ACTION_UP
 import android.view.LayoutInflater
 import android.view.MotionEvent
 import android.view.View
@@ -20,12 +18,13 @@ import androidx.core.graphics.drawable.DrawableCompat
 import androidx.databinding.ViewDataBinding
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.bumptech.glide.Glide
-import com.develop.base.ext.background_drawable
+import com.develop.base.ext.getSN
 import com.develop.base.ext.isNightTheme
 import com.develop.base.ext.runOnMainThread
 import com.develop.base.ext.setGone
 import com.develop.base.ext.setVisible
 import com.develop.base.ext.src
+import com.develop.base.ext.updateText
 import com.develop.base.util.ThreadUtils
 import com.develop.base.widgets.CommonPopupWindow
 import com.develop.common.bean.TuyaEvent
@@ -56,6 +55,7 @@ import com.develop.step.viewmodel.ModesViewMode
 import com.drake.brv.utils.linear
 import com.drake.brv.utils.models
 import com.drake.brv.utils.setup
+import com.drake.net.time.Interval
 import com.kuyuntech.cofarcooking.device.sdk.constant.core.CommonEventTypes
 import com.kuyuntech.cofarcooking.device.sdk.constant.core.DevModes
 import com.kuyuntech.cofarcooking.device.sdk.constant.core.DevStatus
@@ -68,6 +68,7 @@ import com.kuyuntech.cofarcooking.device.sdk.util.core.CofarSDK
 import org.greenrobot.eventbus.EventBus
 import org.greenrobot.eventbus.Subscribe
 import java.util.Objects
+import java.util.concurrent.TimeUnit
 
 /**
  * 模式详情页
@@ -112,6 +113,7 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
     lateinit var ctx: Context
     private var confirmType: Boolean = false
     private var eggConfirm: AppCompatTextView? = null
+    private var potCloverInterval: Interval? = null
     private val backRequestDialog by lazy {
         CancelConfirmDialog()
     }
@@ -161,7 +163,6 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
              * */
             if (lastModeType == "AF_AIR_FRYER") binding.clCookWater.visibility =
                 View.GONE else binding.clCookWater.visibility = View.VISIBLE
-
 //            binding.clCookWater.visibility = View.VISIBLE
             binding.ivTurbo.visibility = View.GONE
 
@@ -202,6 +203,11 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
             }
         }
 
+        if (!getSN().startsWith("000")) {
+            binding.tvCount.setGone()
+            binding.ivPotCover.setGone()
+        }
+
         turnDevModeUI();
         viewModel.modeType = intent.extras?.getString(MODE_TYPE, ModesType.CHOP.name) ?: ""
         modeName = intent.extras?.getString("mode_name", "") ?: ""
@@ -400,7 +406,9 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
      * 物理键长按事件
      */
     override fun onKeyLongPress(keyCode: Int, event: KeyEvent?): Boolean {
-        if (mRunningState == DevStatus.RUNNING.toInt() || currDevInfo.status == DevStatus.PAUSE.toInt()) {
+        if (CofarSDK.devInfo().isWeightStatus) {
+            weightClearClick()
+        } else if (mRunningState == DevStatus.RUNNING.toInt() || currDevInfo.status == DevStatus.PAUSE.toInt()) {
             stopClick()
         } else if (mRunningState == DevStatus.STOP.toInt()) {
             startClick()
@@ -421,7 +429,7 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
         }
         pressStartTime = -1L
 
-        if (viewModel.modeType != ModesType.WIGHT.name && viewModel.modeType != ModesType.TURBO.name && event.keyCode == PRESS_DOWN_KEY_CODE && canStart) {
+        if (!CofarSDK.devInfo().isWeightStatus && viewModel.modeType != ModesType.TURBO.name && event.keyCode == PRESS_DOWN_KEY_CODE && canStart) {
             //非turbo模式
             if (userChanging && currDevInfo.status.toByte() != DevStatus.STOP) {
                 //用户调节中
@@ -436,7 +444,7 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
                 }
             }
         }
-        if (viewModel.modeType == ModesType.WIGHT.name) {
+        if (CofarSDK.devInfo().isWeightStatus) {
             weightClearClick();
         }
         canStart = true
@@ -613,17 +621,64 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
         }, 500)
     }
 
+    private var potCloverEleStatus = 0
+
+    private var currentBgId = com.develop.common.R.drawable.pot_clover_ele_unlock //0是开锁图,1上锁图
+
     @Subscribe
     fun onDevStateEvent(event: DevStatusEvent) {
         if (!initModeData) {
             return
         }
+        Log.d(
+            "dddddddd", "targetTime==${event.devInfo.targetTime}" +
+                    "==remainTime==${event.devInfo.remainTime}==targetTimeBuffer==${event.devInfo.targetTimeBuffer}" +
+                    "==minTime==${event.devInfo.mode.minTime}==maxTime==${event.devInfo.mode.maxTime}===potCloverEleStatus==${currDevInfo.potCloverEleStatus}"
+        )
         ThreadUtils.runOnMainThread {
             currDevInfo = event.devInfo
             mRunningState = currDevInfo.runningStatus.toInt()
             mRunningInstId = currDevInfo.runningInstId
             mSettingInstId = currDevInfo.settingInstId
             updateStatusBtn(currDevInfo.status.toByte())
+            if (getSN().startsWith("000")) {
+                if (!CofarSDK.devInfo().isWeightStatus && currDevInfo.mode.mode != "TURBO") {
+                    //电磁阀在非称重/切碎下显示开锁和上锁
+                    if (currDevInfo.potCloverEleStatus.toInt() == 0 && potCloverEleStatus != 0) {
+                        potCloverEleStatus = 0
+                        potCloverInterval?.cancel()
+                        if (currentBgId == com.develop.common.R.drawable.pot_clover_ele_unlock) {
+                            binding.tvCount.setGone()
+                        } else {
+                            binding.tvCount.setVisible()
+                            potCloverInterval = Interval(0, 1, TimeUnit.SECONDS, 5).life(this)
+                                .subscribe {
+                                    binding.tvCount.updateText(it.toString())
+                                }.finish {
+                                    binding.tvCount.setGone()
+                                    currentBgId =
+                                        com.develop.common.R.drawable.pot_clover_ele_unlock
+                                    binding.ivPotCover.setBackgroundResource(com.develop.common.R.drawable.pot_clover_ele_unlock)
+                                }
+                                .start()
+                        }
+                    } else if (currDevInfo.potCloverEleStatus.toInt() == 1 && potCloverEleStatus != 1) {
+                        potCloverEleStatus = 1
+                        potCloverInterval?.cancel()
+                        if (currentBgId == com.develop.common.R.drawable.pot_clover_ele_lock) {
+                            binding.tvCount.setGone()
+                        } else {
+                            binding.tvCount.setGone()
+                            currentBgId = com.develop.common.R.drawable.pot_clover_ele_lock
+                            binding.ivPotCover.setBackgroundResource(com.develop.common.R.drawable.pot_clover_ele_lock)
+                        }
+
+                    } else if (currDevInfo.potCloverEleStatus.toInt() == 2 && potCloverEleStatus != 2) {
+                        potCloverEleStatus = 2
+                        binding.tvCount.setGone()
+                    }
+                }
+            }
             currDevInfo.mode.apply {
                 updateTempUI(
                     minTemp.toFloat(),
@@ -1095,6 +1150,9 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
         binding.clSetTime.stopAlphaAnim()
         binding.functionLayout.visibility = View.VISIBLE
         binding.llWeightView.visibility = View.GONE
+        if (getSN().startsWith("000")){
+            binding.ivPotCover.setVisible()
+        }
         if (viewModel.modeType == ModesType.WIGHT.name || viewModel.modeType == ModesType.TURBO.name) {
             binding.ivWeight.visibility = View.GONE
             binding.ivTurbo.visibility = View.GONE
@@ -1313,9 +1371,9 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
             }
             var step = 0
             if (whereIndex == 1) {
-                step += 60
+                step += rotateMinOrHourStep()
             } else {
-                step = rotateStep()
+                step = rotateSecOrMinStep()
             }
             if (increase) {
                 targetTime += step
@@ -1383,17 +1441,38 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
         }
     }
 
-    /**旋转按钮步进*/
-    private fun rotateStep(): Int {
-        if (currDevInfo.targetTime >= 60) {
-            return 10;
+    /**旋转按钮步进
+     * 右边分/秒的步进
+     * */
+    private fun rotateSecOrMinStep(): Int {
+        if (currDevInfo.targetTime in 0..59) {
+            return 1
         }
-        if (currDevInfo.targetTime >= 10 * 60) {
-            return 30;
+        if (currDevInfo.targetTime >= 60 && currDevInfo.targetTime < 10 * 60) {
+            return 10
+        }
+        if (currDevInfo.targetTime >= 10 * 60 && currDevInfo.targetTime < 60 * 60) {
+            return 30
+        }
+        if (currDevInfo.targetTime >= 60 * 60) {
+            return 60
         }
         return 1
     }
 
+    /**旋转按钮步进
+     * 左边边分/时的步进
+     * */
+    private fun rotateMinOrHourStep(): Int {
+        if (currDevInfo.targetTime >= 60 && currDevInfo.targetTime < 60 * 60) {
+            return 60
+        }
+        if (currDevInfo.targetTime >= 60 * 60) {
+            return 60 * 60
+        }
+        return 60
+    }
+
     /**
      * 更新温度相关的UI
      * @param minTemp 最小温度
@@ -1733,7 +1812,6 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
             CofarSDK.devInfo().runningRecipeId = null
             var startConfig = HashMap<String, Any>()
             startConfig.put("stopTips", showStopTips)
-            Log.e("TAG startClick", " viewModel.modeType:" + viewModel.modeType)
             CofarSDK.startWithConfig(viewModel.modeType, startConfig)
             whereIndex = -1
             binding.clSetTime.stopAlphaAnim()
@@ -1830,8 +1908,11 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
         viewModel.changeStep(CookSettingType.WEIGHT)
         binding.ivTurbo.visibility = View.GONE
         visibilityEgg(View.GONE)
+        binding.ivTurbo.visibility = View.INVISIBLE
+        binding.ivPotCover.setGone()
+        binding.tvCount.setGone()
         isWidget = false
-        binding.ivWeight.visibility = View.GONE
+        binding.ivWeight.visibility = View.INVISIBLE
         binding.tvModeName.text = viewModel.getModeTitle(resources)
 
     }
@@ -1840,6 +1921,8 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
      * 点击turbo操作
      */
     private fun turboClick() {
+        binding.ivPotCover.setGone()
+        binding.tvCount.setGone()
         CofarSDK.stop(false)
         whereIndex = -1
         binding.clSetTime.stopAlphaAnim()
@@ -1852,7 +1935,7 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
         binding.ivTurbo.visibility = View.GONE
         visibilityEgg(View.GONE)
         isWidget = false
-        binding.ivWeight.visibility = View.GONE
+        binding.ivWeight.visibility = View.INVISIBLE
         Log.d("dddddd", "llTurboView===VISIBLE")
         binding.llTurboView.visibility = View.VISIBLE
     }

+ 125 - 50
BusinessStep/src/main/java/com/develop/step/ui/cook_step/CookStepActivity.kt

@@ -14,6 +14,7 @@ import com.alibaba.android.arouter.facade.annotation.Route
 import com.blankj.utilcode.util.LogUtils
 import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions
 import com.develop.base.ext.background_drawable
+import com.develop.base.ext.getSN
 import com.develop.base.ext.isNightTheme
 import com.develop.base.ext.navigateTo
 import com.develop.base.ext.setGone
@@ -46,6 +47,7 @@ import com.develop.common.utils.CofarUtils
 import com.develop.common.utils.TimeUtil
 import com.develop.step.ui.cook_step.model.CookStepStatus
 import com.develop.step.ui.cook_step.model.CookStepUiData
+import com.drake.net.time.Interval
 import com.kuyuntech.cofarcooking.device.sdk.constant.core.*
 import com.kuyuntech.cofarcooking.device.sdk.eventbus.core.DevInfo
 import com.kuyuntech.cofarcooking.device.sdk.eventbus.event.DevCommonEvent
@@ -55,6 +57,7 @@ import kotlinx.serialization.json.Json
 import org.greenrobot.eventbus.EventBus
 import org.greenrobot.eventbus.Subscribe
 import java.io.File
+import java.util.concurrent.TimeUnit
 
 @Route(path = Screens.Cook.COOK_STEP2)
 class CookStepActivity : CookStepBaseActivity() {
@@ -85,8 +88,10 @@ class CookStepActivity : CookStepBaseActivity() {
     private var currentMotorGer = 0
     private var currentWaterGear = 0
     private var currTime = 0
+    private var potCloverInterval: Interval? = null
+    private var potCloverEleStatus = 0
 
-
+    private var currentBgId = R.drawable.pot_clover_ele_unlock //0是开锁图,1上锁图
     private fun turnDevModeUI() {
 
         if (CofarSDK.devInfo().devMode == DevModes.AIR_FRYER) {
@@ -127,6 +132,10 @@ class CookStepActivity : CookStepBaseActivity() {
             binding.viewChangeCrush.src = R.drawable.ic_cooking_weight
             binding.viewNote.setVisible()
         }
+        if (!getSN().startsWith("000")) {
+            binding.tvCount.setGone()
+            binding.ivPotCover.setGone()
+        }
 
         binding.controller.clSetTime.onTimePickerCallback =
             object : TimePickerView.OnTimePickerCallback {
@@ -731,6 +740,51 @@ class CookStepActivity : CookStepBaseActivity() {
 
             LogUtils.d("========${devInfo.motorGearBuffer}")
 
+            if (getSN().startsWith("000")) {
+                if (!CofarSDK.devInfo().isWeightStatus && devInfo.mode.mode != "TURBO") {
+                    //电磁阀在非称重/切碎下显示开锁和上锁
+                    if (devInfo.potCloverEleStatus.toInt() == 0 && potCloverEleStatus != 0) {
+                        potCloverEleStatus = 0
+                        potCloverInterval?.cancel()
+                        if (currentBgId == R.drawable.pot_clover_ele_unlock) {
+                            binding.tvCount.setGone()
+                        } else {
+                            binding.tvCount.setVisible()
+                            potCloverInterval = Interval(0, 1, TimeUnit.SECONDS, 5).life(this)
+                                .subscribe {
+                                    binding.tvCount.updateText(it.toString())
+                                }.finish {
+                                    binding.tvCount.setGone()
+                                    currentBgId = R.drawable.pot_clover_ele_unlock
+                                    binding.ivPotCover.setBackgroundResource(R.drawable.pot_clover_ele_unlock)
+                                }
+                                .start()
+                        }
+                    } else if (devInfo.potCloverEleStatus.toInt() == 1 && potCloverEleStatus != 1) {
+                        potCloverEleStatus = 1
+                        potCloverInterval?.cancel()
+                        if (currentBgId == com.develop.common.R.drawable.pot_clover_ele_lock) {
+                            binding.tvCount.setGone()
+                        } else {
+                            binding.tvCount.setVisible()
+                            potCloverInterval = Interval(0, 1, TimeUnit.SECONDS, 5).life(this)
+                                .subscribe {
+                                    binding.tvCount.updateText(it.toString())
+                                }.finish {
+                                    binding.tvCount.setGone()
+                                    currentBgId = com.develop.common.R.drawable.pot_clover_ele_lock
+                                    binding.ivPotCover.setBackgroundResource(com.develop.common.R.drawable.pot_clover_ele_lock)
+                                }
+                                .start()
+                        }
+
+                    } else if (devInfo.potCloverEleStatus.toInt() == 2 && potCloverEleStatus != 2) {
+                        potCloverEleStatus = 2
+                        binding.tvCount.setGone()
+                    }
+                }
+            }
+
             if (!it.hasStarted && devInfo.status == DevStatus.RUNNING.toInt()) {
                 // 标记这个步骤曾经开始过了
                 it.hasStarted = true
@@ -829,23 +883,41 @@ class CookStepActivity : CookStepBaseActivity() {
     }
 
 
-    private fun rotateStep(): Int {
-
-        viewModel.cookingStep?.let {
-            if (it.uiData.targetTime >= 60) {
-                return 10;
-            }
-
-            if (it.uiData.targetTime >= 10 * 60) {
-                return 30;
-            }
+    /**旋转按钮步进
+     * 右边分/秒的步进
+     * */
+    private fun rotateSecOrMinStep(): Int {
+        val currDevInfo = viewModel.cookingStep?.uiData ?: return 1
+        if (currDevInfo.targetTime in 0..59) {
+            return 1
+        }
+        if (currDevInfo.targetTime >= 60 && currDevInfo.targetTime < 10 * 60) {
+            return 10
+        }
+        if (currDevInfo.targetTime >= 10 * 60 && currDevInfo.targetTime < 60 * 60) {
+            return 30
+        }
+        if (currDevInfo.targetTime >= 60 * 60) {
+            return 60
         }
-
-
-
         return 1
     }
 
+    /**旋转按钮步进
+     * 左边边分/时的步进
+     * */
+    private fun rotateMinOrHourStep(): Int {
+        val currDevInfo = viewModel.cookingStep?.uiData ?: return 60
+        if (currDevInfo.targetTime >= 60 && currDevInfo.targetTime < 60 * 60) {
+            return 60
+        }
+        if (currDevInfo.targetTime >= 60 * 60) {
+            return 60 * 60
+        }
+        return 60
+    }
+
+
     private fun operateByPhysical(increase: Boolean) {
         val cookStep = viewModel.displayStep()
         val tabType = getSelectedTabType()
@@ -953,9 +1025,9 @@ class CookStepActivity : CookStepBaseActivity() {
 //        }
         var step = 0
         if (whereIndex == 1) {
-            step += 60
+            step += rotateMinOrHourStep()
         } else {
-            step = rotateStep()
+            step = rotateSecOrMinStep()
         }
         if (increase) {
             currTime += step
@@ -1015,8 +1087,9 @@ class CookStepActivity : CookStepBaseActivity() {
     }
 
     override fun onKeyLongPress(keyCode: Int, event: KeyEvent?): Boolean {
-
-        if (CofarSDK.devInfo().status == DevStatus.RUNNING.toInt() || CofarSDK.devInfo().status == DevStatus.PAUSE.toInt()) {
+        if (CofarSDK.devInfo().isWeightStatus) {
+            CofarSDK.clearWeight()
+        } else if (CofarSDK.devInfo().status == DevStatus.RUNNING.toInt() || CofarSDK.devInfo().status == DevStatus.PAUSE.toInt()) {
             viewModel.stepUiData.doingModify = false
             clickFirstButton(BUTTON_TAG_STOP)
             Log.d("QQQQ", "click stop")
@@ -1034,42 +1107,44 @@ class CookStepActivity : CookStepBaseActivity() {
             Log.d("QQQQ", "catch key down")
             //当前是turbo模式下
             if (viewModel.cookingStep?.isTurboMode() != true) {
-
-                if (canStart) {
-                    //非turbo模式
-                    if (viewModel.stepUiData.doingModify && CofarSDK.devInfo().status.toByte() != DevStatus.STOP) {
-                        //用户调节中
-                        viewModel.stepUiData.doingModify = false
-                        clickFirstButton(BUTTON_TAG_CONFIRM)
-                        Log.d("QQQQ", "click confirm")
-                    } else {
-                        when (CofarSDK.devInfo().status) {
-                            DevStatus.RUNNING.toInt() -> {
-                                viewModel.stepUiData.doingModify = false
-                                clickFirstButton(BUTTON_TAG_PAUSE)
-                                Log.d("QQQQ", "click stop")
-                            }
-
-                            DevStatus.PAUSE.toInt() -> {
-                                viewModel.stepUiData.doingModify = false
-                                clickFirstButton(BUTTON_TAG_RESUME)
-                                Log.d("QQQQ", "click stop")
-                            }
-
-                            DevStatus.STOP.toInt() -> {
-                                viewModel.stepUiData.doingModify = false
-                                clickFirstButton(BUTTON_TAG_START)
-                                Log.d("QQQQ", "click start")
-                            }
-
-                            else -> {
-                                Log.d("QQQQ", "nothing to do")
+                if (!CofarSDK.devInfo().isWeightStatus) {
+                    //非称重模式下
+                    if (canStart) {
+                        //非turbo模式
+                        if (viewModel.stepUiData.doingModify && CofarSDK.devInfo().status.toByte() != DevStatus.STOP) {
+                            //用户调节中
+                            viewModel.stepUiData.doingModify = false
+                            clickFirstButton(BUTTON_TAG_CONFIRM)
+                            Log.d("QQQQ", "click confirm")
+                        } else {
+                            when (CofarSDK.devInfo().status) {
+                                DevStatus.RUNNING.toInt() -> {
+                                    viewModel.stepUiData.doingModify = false
+                                    clickFirstButton(BUTTON_TAG_PAUSE)
+                                    Log.d("QQQQ", "click stop")
+                                }
+
+                                DevStatus.PAUSE.toInt() -> {
+                                    viewModel.stepUiData.doingModify = false
+                                    clickFirstButton(BUTTON_TAG_RESUME)
+                                    Log.d("QQQQ", "click stop")
+                                }
+
+                                DevStatus.STOP.toInt() -> {
+                                    viewModel.stepUiData.doingModify = false
+                                    clickFirstButton(BUTTON_TAG_START)
+                                    Log.d("QQQQ", "click start")
+                                }
+
+                                else -> {
+                                    Log.d("QQQQ", "nothing to do")
+                                }
                             }
                         }
                     }
+                } else {
+                    CofarSDK.clearWeight()
                 }
-
-
             } else {
                 turboUpEvent();
             }

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

@@ -126,7 +126,11 @@ class CookDetailActivity : CommonBVMActivity<ActivityCookDetailBinding, CookDeta
     }
 
     private fun initView() {
-        binding.tvJarCount.visibility = View.INVISIBLE
+        if (getSN().startsWith("017A")){
+            binding.tvJarCount.visibility = View.VISIBLE
+        } else {
+            binding.tvJarCount.visibility = View.INVISIBLE
+        }
         if (isNightTheme()){
             val tintList =
                 resources.getColorStateList(com.develop.common.R.color.color_night_cook_tab_tint)

+ 24 - 0
BusinessStep/src/main/res/layout/activity_cook_step_base.xml

@@ -264,6 +264,30 @@
                 app:layout_constraintEnd_toStartOf="@+id/view_change_weight"
                 app:layout_constraintTop_toTopOf="parent" />
 
+            <ImageView
+                app:layout_constraintEnd_toStartOf="@id/view_remark"
+                app:layout_constraintTop_toTopOf="parent"
+                android:visibility="visible"
+                android:id="@+id/iv_pot_cover"
+                android:layout_width="@dimen/convert_70px"
+                android:layout_height="@dimen/convert_70px"
+                android:layout_marginTop="@dimen/convert_138px"
+                android:layout_marginEnd="@dimen/convert_40px"
+                android:layout_alignParentEnd="true"
+                android:background="@drawable/pot_clover_ele_unlock" />
+
+            <androidx.appcompat.widget.AppCompatTextView
+                app:layout_constraintTop_toTopOf="parent"
+                android:id="@+id/tv_count"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/convert_134px"
+                app:layout_constraintEnd_toStartOf="@id/iv_pot_cover"
+                android:layout_toStartOf="@id/iv_pot_cover"
+                android:textColor="@color/color_92cf40"
+                android:textSize="@dimen/convert_50px"
+                android:visibility="invisible" />
+
             <LinearLayout
                 android:id="@+id/ll_step_finish"
                 android:layout_width="match_parent"

+ 21 - 2
BusinessStep/src/main/res/layout/activity_mode_detail.xml

@@ -59,8 +59,8 @@
             android:layout_width="@dimen/convert_60px"
             android:layout_height="@dimen/convert_60px"
             android:layout_marginTop="@dimen/convert_28px"
-            android:layout_marginEnd="@dimen/convert_40px"
-            android:layout_toStartOf="@id/iv_weight"
+            android:layout_marginEnd="@dimen/convert_150px"
+            android:layout_alignParentEnd="true"
             android:background="@drawable/ic_turbo" />
         <ImageView
             android:id="@+id/iv_eggs"
@@ -71,6 +71,25 @@
             android:layout_toStartOf="@id/iv_turbo"
             android:background="@drawable/ic_egg" />
 
+        <ImageView
+            android:visibility="visible"
+            android:id="@+id/iv_pot_cover"
+            android:layout_width="@dimen/convert_70px"
+            android:layout_height="@dimen/convert_70px"
+            android:layout_marginTop="@dimen/convert_24px"
+            android:layout_marginEnd="@dimen/convert_250px"
+            android:layout_alignParentEnd="true"
+            android:background="@drawable/pot_clover_ele_unlock" />
+
+        <androidx.appcompat.widget.AppCompatTextView
+            android:id="@+id/tv_count"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/convert_24px"
+            android:layout_toStartOf="@id/iv_pot_cover"
+            android:textColor="@color/color_92cf40"
+            android:textSize="@dimen/convert_50px"
+            android:visibility="invisible" />
 
     </RelativeLayout>
 

BIN
app/brand000A/debug/cofar-cooking_1039.010D.231124171-brand000A-debug.apk


+ 18 - 0
app/brand000A/debug/output-metadata.json

@@ -0,0 +1,18 @@
+{
+  "version": 2,
+  "artifactType": {
+    "type": "APK",
+    "kind": "Directory"
+  },
+  "applicationId": "com.develop.foodcooking",
+  "variantName": "brand000ADebug",
+  "elements": [
+    {
+      "type": "SINGLE",
+      "filters": [],
+      "versionCode": 231124171,
+      "versionName": "1039.010D.231124171",
+      "outputFile": "cofar-cooking_1039.010D.231124171-brand000A-debug.apk"
+    }
+  ]
+}

+ 6 - 5
app/build.gradle

@@ -12,7 +12,7 @@ ext{
 
     versionCode=Integer.parseInt(new SimpleDateFormat("yyMMddHH").format(new Date()) + 1)
 //    versionCode=230617180
-    brandCode="010D"
+    brandCode="036I"
     model="1039"
 
 }
@@ -114,15 +114,15 @@ android {
         brand036I {
             dimension "platform"
             applicationId "com.develop.foodcooking"
-            buildConfigField("String", "UpdatePlatform", "\"night\"")
-            resValue("string", "app_theme", "@style/SplashTheme")
+            buildConfigField("String", "UpdatePlatform", "\"036I\"")
+            resValue("string", "app_theme", "@style/Splash036IDTheme")
         }
 
         brand036ITuya {
             dimension "platform"
             applicationId "com.develop.foodcooking"
-            buildConfigField("String", "UpdatePlatform", "\"night\"")
-            resValue("string", "app_theme", "@style/SplashTheme")
+            buildConfigField("String", "UpdatePlatform", "\"036I\"")
+            resValue("string", "app_theme", "@style/Splash036IDTheme")
         }
 
         brand000A {
@@ -192,6 +192,7 @@ android {
     buildTypes {
         release {
             minifyEnabled false
+            debuggable true
             productFlavors.brand010D.signingConfig signingConfigs.release
             productFlavors.brand029CTuya.signingConfig signingConfigs.release
             productFlavors.brand000ATuya.signingConfig signingConfigs.release

BIN
libThirdPart/libs/cofar-cooking-device-sdk-0.0.1-SNAPSHOT.jar