Browse Source

提交人:jtm
提交内容:同步竖版模式

江天明 2 years ago
parent
commit
c19d016bbe
1 changed files with 118 additions and 65 deletions
  1. 118 65
      BusinessStep/src/main/java/com/develop/step/ui/ModesDetailActivity.kt

+ 118 - 65
BusinessStep/src/main/java/com/develop/step/ui/ModesDetailActivity.kt

@@ -3,10 +3,7 @@ package com.develop.step.ui
 import android.annotation.SuppressLint
 import android.os.Bundle
 import android.util.Log
-import android.view.KeyEvent
-import android.view.LayoutInflater
-import android.view.MotionEvent
-import android.view.View
+import android.view.*
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.develop.base.util.ThreadUtils
 import com.develop.common.data_repo.db.ModesType
@@ -109,7 +106,7 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
     var lastKeyTime = 0L
     override fun dispatchKeyEvent(event: KeyEvent): Boolean {
         val spend = (System.currentTimeMillis() - lastKeyTime);
-        if( spend < 10){
+        if (spend < 10) {
             return super.dispatchKeyEvent(event);
         }
         lastKeyTime = System.currentTimeMillis();
@@ -329,7 +326,7 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
                     isTempChange
                 )
                 updateTimeUI(
-                    if(currDevInfo.status == DevStatus.STOP.toInt() || userChanging) minTime else 0,
+                    if (currDevInfo.status == DevStatus.STOP.toInt() || userChanging) minTime else 0,
                     maxTime,
                     if (currDevInfo.status == DevStatus.STOP.toInt()) currDevInfo.targetTime
                     else currDevInfo.remainTime,
@@ -389,57 +386,92 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
         }
     }
 
-    private fun initModeData() {
+    var turboLock = false;
+    private fun initModeData(keep: Boolean = false) {
+        userChanging = false
         viewModel.modeType.apply {
             val baseMode = CofarSDK.devMode(this)
             //显示对应模式UI
             if (this == ModesType.WIGHT.name) {
+                CofarSDK.recordConfig()
                 //称重模式
                 viewModel.changeStep(CookSettingType.WEIGHT)
-                CofarSDK.changeMode(baseMode)
-            } else if (this == ModesType.TURBO.name) {
-                viewModel.changeStep(CookSettingType.TURBO)
-                CofarSDK.changeMode(baseMode)
+                window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
+//                CofarSDK.changeMode(baseMode)
             } else {
-                //其他模式
+                window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
                 changeCommonStep()
-                viewModel.changeStep(CookSettingType.TEMP_SETTING)
-                CofarSDK.changeMode(this, baseMode)
-                currDevInfo.apply {
-                    targetTemp = baseMode.maxTemp.toShort()
-                    motorDirection = baseMode.motorDirection.toByte()
-                    motorGear = baseMode.defaultMotorGear.toByte()
-                    targetTime = baseMode.defaultTime.toInt()
-                }
-
-                baseMode.apply {
-                    currentTemp = defaultTemp
-                    updateTempUI(
-                        minTemp.toFloat(),
-                        maxTemp.toFloat(),
-                        defaultTemp,
-                        defaultTemp.toString(),
-                        isTempChange,
-                        true
-                    )
-
-                    currTime = defaultTime.toLong()
-                    updateTimeUI(
-                        minTime, maxTime, defaultTime, defaultTime.toLong(), isTimeChange, true
-                    )
-
-                    currentMotorGer = defaultMotorGear
-                    updateMotorGearUI(
-                        minMotorGear.toFloat(),
-                        maxMotorGear.toFloat(),
-                        defaultMotorGear,
-                        isMotorGearChange
-                    )
-
-                    updateMotorDirectionUI(motorDirection, isMotorDirectionChange)
+                if (CofarSDK.devInfo().status != DevStatus.PAUSE.toInt()) {
+                    var targetTemp = baseMode.defaultTemp.toShort()
+                    var motorDirection = baseMode.motorDirection.toByte()
+                    var motorGear = baseMode.defaultMotorGear.toByte()
+                    var targetTime = baseMode.defaultTime.toInt()
+
+                    var restoreConfig: DevInfo? = null
+
+                    if (this == ModesType.TURBO.name) {
+                        CofarSDK.recordConfig()
+                        changeSpeedSettingStep()
+                        CofarSDK.changeMode(baseMode)
+                    } else {
+                        //其他模式
+                        turboLock = false;
+                        viewModel.changeStep(CookSettingType.TEMP_SETTING)
+                        if (keep) {
+                            restoreConfig = CofarSDK.changeMode(this, baseMode, true)
+
+                            if (restoreConfig != null) {
+                                targetTemp = restoreConfig.targetTemp;
+                                motorDirection = restoreConfig.motorDirection;
+                                motorGear = restoreConfig.motorGear;
+                                targetTime = restoreConfig.targetTime;
+                            }
+                        } else {
+                            CofarSDK.changeMode(this, baseMode)
+                        }
+                    }
+                    currDevInfo.apply {
+                        targetTemp = baseMode.defaultTemp.toShort()
+                        motorDirection = baseMode.motorDirection.toByte()
+                        motorGear = baseMode.defaultMotorGear.toByte()
+                        targetTime = baseMode.defaultTime.toInt()
+                    }
 
-                    updateWeightUI(currDevInfo.weight.toFloat())
+                    baseMode.apply {
+                        currentTemp = CofarSDK.devInfo().targetTemp.toInt()
+                        updateTempUI(
+                            minTemp.toFloat(),
+                            maxTemp.toFloat(),
+                            CofarSDK.devInfo().temp.toInt(),
+                            targetTemp.toString(),
+                            isTempChange,
+                            true
+                        )
+
+                        currTime = defaultTime.toLong()
+                        updateTimeUI(
+                            minTime,
+                            maxTime,
+                            defaultTime,
+                            targetTime.toLong(),
+                            isTimeChange,
+                            true
+                        )
+
+                        currentMotorGer = defaultMotorGear
+                        updateMotorGearUI(
+                            minMotorGear.toFloat(),
+                            maxMotorGear.toFloat(),
+                            motorGear.toInt(),
+                            isMotorGearChange
+                        )
+
+                        updateMotorDirectionUI(motorDirection.toInt(), isMotorDirectionChange)
+
+                        updateWeightUI(currDevInfo.weight.toFloat())
+                    }
                 }
+
             }
             initModeData = true
         }
@@ -738,14 +770,24 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
     private fun handleRotateTimeChange(c: Int) {
         ThreadUtils.runOnMainThread {
             //当前调节时间
-            var targetTime = currDevInfo.targetTime
-            if (currDevInfo.remainTime != 0) {
-                targetTime = currDevInfo.remainTime
+            var targetTime = currDevInfo.targetTime.toInt()
+            if (currDevInfo.remainTime.toInt() != 0) {
+                targetTime = currDevInfo.remainTime.toInt()
             }
-            if (currDevInfo.targetTimeBuffer != -1) {
-                targetTime = currDevInfo.targetTimeBuffer
+            if (currDevInfo.targetTimeBuffer.toInt() != -1) {
+                targetTime = currDevInfo.targetTimeBuffer.toInt()
             }
             targetTime += c
+
+
+            if (targetTime < currDevInfo.mode.minTime) { //处理边界
+                targetTime = currDevInfo.mode.minTime
+            }
+
+            if (targetTime > currDevInfo.mode.maxTime) { //处理边界
+                targetTime = currDevInfo.mode.maxTime
+            }
+
             if (targetTime < 0) {
                 targetTime = 0;
             }
@@ -779,22 +821,20 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
                 }
             }
             rollTimeEvent(hour, min, sec, time, setByUser = true)
+
             currDevInfo.apply {
                 updateTimeUI(
                     mode.minTime,
                     mode.maxTime,
-                    remainTime,
+                    remainTime.toInt(),
                     targetTime.toLong(),
                     true
                 )
+                binding.apply {
+                    clSetTime.setTimeInternal(hour, min, sec, true, true)
+                }
+
             }
-            binding.clSetTime.setTimeInternal(
-                hour,
-                min,
-                sec,
-                changeSetting = true,
-                setByUser = true
-            )
         }
     }
 
@@ -866,9 +906,9 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
             var hours = 0
             var minute = 0
             var sec = 0
-            if (remainTime > 3600) {
+            if (remainTime > ( 91 * 60)) {
                 hours = remainTime / 3600
-                minute = remainTime % 3600 / 60
+                minute = remainTime % 3600  / 60
             } else {
                 minute = remainTime / 60
                 sec = remainTime % 60
@@ -1114,7 +1154,7 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
      * 点击称重操作
      */
     private fun weightClick() {
-       // CofarSDK.stop(false)
+        // CofarSDK.stop(false)
         modeChange = true
         viewModel.modeType = ModesType.WIGHT.name
         initModeData()
@@ -1155,13 +1195,26 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
      * 点击返回按钮操作
      */
     private fun backClick() {
+        val devInfo = CofarSDK.devInfo();
+
         if (modeChange) {
+            if(viewModel.modeType == ModesType.TURBO.name){ //TURBO未停止之前不能退出
+                CofarSDK.stop(false)
+                if(DevStatus.STOP != devInfo.status.toByte()){
+                    return
+                }
+
+                //先注释掉,忘记有什么用了
+//                turboLock = true
+//                ThreadUtils.runOnMainThread({turboLock = false},2000);
+            }
+            var cm = viewModel.modeType;
             viewModel.modeType = viewModel.lastModeType
             binding.tvModeName.text = viewModel.getModeTitle(resources)
             binding.ivBanner.setBackgroundResource(viewModel.getBanner())
             modeChange = false
-            binding.llTurboView.visibility = View.GONE
-            initModeData()
+            binding.ivTurboView.visibility = View.GONE
+            initModeData(cm == ModesType.WIGHT.name || cm == ModesType.TURBO.name)
             changeCommonStep()
         } else if (mRunningState != 0 && viewModel.modeType != ModesType.WIGHT.name && viewModel.modeType != ModesType.TURBO.name) {
             if (CofarSDK.devInfo().runningInstId == viewModel.modeType) backRequestDialog.show(