diff --git a/app/src/main/java/com/casic/br/extensions/String.kt b/app/src/main/java/com/casic/br/extensions/String.kt index dd3ff27..bd2b798 100644 --- a/app/src/main/java/com/casic/br/extensions/String.kt +++ b/app/src/main/java/com/casic/br/extensions/String.kt @@ -1,20 +1,29 @@ package com.casic.br.extensions import android.content.Context +import android.util.Log import com.casic.smarttube.callback.OnImageCompressListener import com.pengxh.kt.lite.extensions.createCompressImageDir +import com.pengxh.kt.lite.extensions.toJson import top.zibin.luban.Luban import top.zibin.luban.OnCompressListener import java.io.File import java.text.ParseException import java.text.SimpleDateFormat import java.util.* -import java.util.regex.Pattern import kotlin.math.abs /** * String扩展方法 */ +fun String.createCommand(value: Any): String { + val map = HashMap() + map[this] = value + val command = map.toJson() + Log.d("kTag", "createCommand: $command") + return command +} + fun String.compressImage(context: Context, listener: OnImageCompressListener) { Luban.with(context) .load(this) @@ -45,10 +54,8 @@ if (this.isBlank()) { return 0 } - val dateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA) try { - val timestamp = dateFormat.parse(this)!!.time - val diff = abs(System.currentTimeMillis() - timestamp) + val diff = abs(System.currentTimeMillis() - this.toLong() * 1000L) return (diff / (86400000)).toInt() } catch (e: ParseException) { e.printStackTrace() diff --git a/app/src/main/java/com/casic/br/extensions/String.kt b/app/src/main/java/com/casic/br/extensions/String.kt index dd3ff27..bd2b798 100644 --- a/app/src/main/java/com/casic/br/extensions/String.kt +++ b/app/src/main/java/com/casic/br/extensions/String.kt @@ -1,20 +1,29 @@ package com.casic.br.extensions import android.content.Context +import android.util.Log import com.casic.smarttube.callback.OnImageCompressListener import com.pengxh.kt.lite.extensions.createCompressImageDir +import com.pengxh.kt.lite.extensions.toJson import top.zibin.luban.Luban import top.zibin.luban.OnCompressListener import java.io.File import java.text.ParseException import java.text.SimpleDateFormat import java.util.* -import java.util.regex.Pattern import kotlin.math.abs /** * String扩展方法 */ +fun String.createCommand(value: Any): String { + val map = HashMap() + map[this] = value + val command = map.toJson() + Log.d("kTag", "createCommand: $command") + return command +} + fun String.compressImage(context: Context, listener: OnImageCompressListener) { Luban.with(context) .load(this) @@ -45,10 +54,8 @@ if (this.isBlank()) { return 0 } - val dateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA) try { - val timestamp = dateFormat.parse(this)!!.time - val diff = abs(System.currentTimeMillis() - timestamp) + val diff = abs(System.currentTimeMillis() - this.toLong() * 1000L) return (diff / (86400000)).toInt() } catch (e: ParseException) { e.printStackTrace() diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index e6c37c6..1f91a88 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -91,8 +91,6 @@ val deviceModels = ArrayList() deviceList.forEach { - Log.d(kTag, "dps: ${it.dps}") - val model = AddedDeviceModel() model.deviceId = it.devId when (it.deviceCategory) { diff --git a/app/src/main/java/com/casic/br/extensions/String.kt b/app/src/main/java/com/casic/br/extensions/String.kt index dd3ff27..bd2b798 100644 --- a/app/src/main/java/com/casic/br/extensions/String.kt +++ b/app/src/main/java/com/casic/br/extensions/String.kt @@ -1,20 +1,29 @@ package com.casic.br.extensions import android.content.Context +import android.util.Log import com.casic.smarttube.callback.OnImageCompressListener import com.pengxh.kt.lite.extensions.createCompressImageDir +import com.pengxh.kt.lite.extensions.toJson import top.zibin.luban.Luban import top.zibin.luban.OnCompressListener import java.io.File import java.text.ParseException import java.text.SimpleDateFormat import java.util.* -import java.util.regex.Pattern import kotlin.math.abs /** * String扩展方法 */ +fun String.createCommand(value: Any): String { + val map = HashMap() + map[this] = value + val command = map.toJson() + Log.d("kTag", "createCommand: $command") + return command +} + fun String.compressImage(context: Context, listener: OnImageCompressListener) { Luban.with(context) .load(this) @@ -45,10 +54,8 @@ if (this.isBlank()) { return 0 } - val dateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA) try { - val timestamp = dateFormat.parse(this)!!.time - val diff = abs(System.currentTimeMillis() - timestamp) + val diff = abs(System.currentTimeMillis() - this.toLong() * 1000L) return (diff / (86400000)).toInt() } catch (e: ParseException) { e.printStackTrace() diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index e6c37c6..1f91a88 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -91,8 +91,6 @@ val deviceModels = ArrayList() deviceList.forEach { - Log.d(kTag, "dps: ${it.dps}") - val model = AddedDeviceModel() model.deviceId = it.devId when (it.deviceCategory) { diff --git a/app/src/main/java/com/casic/br/utils/CommandManager.kt b/app/src/main/java/com/casic/br/utils/CommandManager.kt index 9cb8058..c2e436b 100644 --- a/app/src/main/java/com/casic/br/utils/CommandManager.kt +++ b/app/src/main/java/com/casic/br/utils/CommandManager.kt @@ -4,24 +4,6 @@ import com.tuya.smart.sdk.api.IResultCallback import com.tuya.smart.sdk.api.ITuyaDevice -/** - * 油烟机 - * - * 设备开关 => 1 - * 延时开关 => 2 - * 延时倒计时 => 105 - * 设备状态 => 11 - * 灯光开关 => 4 - * 风速 => 10 - * 清洁开关 => 101 - * TODO XX开关 => 102 - * TODO XXXXX => 103 - * 巡航开关 => 104 - * TODO XXXXX => 106 - * TODO XXXXX => 107 - * TODO XXXXX => 108 - */ - object CommandManager { private const val kTag = "CommandManager" diff --git a/app/src/main/java/com/casic/br/extensions/String.kt b/app/src/main/java/com/casic/br/extensions/String.kt index dd3ff27..bd2b798 100644 --- a/app/src/main/java/com/casic/br/extensions/String.kt +++ b/app/src/main/java/com/casic/br/extensions/String.kt @@ -1,20 +1,29 @@ package com.casic.br.extensions import android.content.Context +import android.util.Log import com.casic.smarttube.callback.OnImageCompressListener import com.pengxh.kt.lite.extensions.createCompressImageDir +import com.pengxh.kt.lite.extensions.toJson import top.zibin.luban.Luban import top.zibin.luban.OnCompressListener import java.io.File import java.text.ParseException import java.text.SimpleDateFormat import java.util.* -import java.util.regex.Pattern import kotlin.math.abs /** * String扩展方法 */ +fun String.createCommand(value: Any): String { + val map = HashMap() + map[this] = value + val command = map.toJson() + Log.d("kTag", "createCommand: $command") + return command +} + fun String.compressImage(context: Context, listener: OnImageCompressListener) { Luban.with(context) .load(this) @@ -45,10 +54,8 @@ if (this.isBlank()) { return 0 } - val dateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA) try { - val timestamp = dateFormat.parse(this)!!.time - val diff = abs(System.currentTimeMillis() - timestamp) + val diff = abs(System.currentTimeMillis() - this.toLong() * 1000L) return (diff / (86400000)).toInt() } catch (e: ParseException) { e.printStackTrace() diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index e6c37c6..1f91a88 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -91,8 +91,6 @@ val deviceModels = ArrayList() deviceList.forEach { - Log.d(kTag, "dps: ${it.dps}") - val model = AddedDeviceModel() model.deviceId = it.devId when (it.deviceCategory) { diff --git a/app/src/main/java/com/casic/br/utils/CommandManager.kt b/app/src/main/java/com/casic/br/utils/CommandManager.kt index 9cb8058..c2e436b 100644 --- a/app/src/main/java/com/casic/br/utils/CommandManager.kt +++ b/app/src/main/java/com/casic/br/utils/CommandManager.kt @@ -4,24 +4,6 @@ import com.tuya.smart.sdk.api.IResultCallback import com.tuya.smart.sdk.api.ITuyaDevice -/** - * 油烟机 - * - * 设备开关 => 1 - * 延时开关 => 2 - * 延时倒计时 => 105 - * 设备状态 => 11 - * 灯光开关 => 4 - * 风速 => 10 - * 清洁开关 => 101 - * TODO XX开关 => 102 - * TODO XXXXX => 103 - * 巡航开关 => 104 - * TODO XXXXX => 106 - * TODO XXXXX => 107 - * TODO XXXXX => 108 - */ - object CommandManager { private const val kTag = "CommandManager" diff --git a/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt b/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt index 5d1b8b2..075a6de 100644 --- a/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt +++ b/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt @@ -1,9 +1,11 @@ package com.casic.br.view.device +import android.graphics.Color import android.util.Log import com.alibaba.fastjson.JSONObject import com.bumptech.glide.Glide import com.casic.br.R +import com.casic.br.extensions.createCommand import com.casic.br.extensions.initLayoutImmersionBar import com.casic.br.utils.CommandManager import com.google.gson.Gson @@ -11,6 +13,7 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.widget.dialog.BottomActionSheet import com.tuya.smart.home.sdk.TuyaHomeSdk import com.tuya.smart.sdk.api.IDevListener import com.tuya.smart.sdk.api.ITuyaDevice @@ -79,86 +82,70 @@ //开关机 switchButton.setOnClickListener { - val command = if (isDeviceWorking) { - "{\"1\": false}" - } else { - "{\"1\": true}" - } - CommandManager.sendTuyaDp(deviceInstance, command) + CommandManager.sendTuyaDp(deviceInstance, "1".createCommand(!isDeviceWorking)) } //低速 lowSpeedView.setOnClickListener { - CommandManager.sendTuyaDp(deviceInstance, "{\"10\": \"low\"}") + CommandManager.sendTuyaDp(deviceInstance, "10".createCommand("low")) } //高速 highSpeedView.setOnClickListener { - CommandManager.sendTuyaDp(deviceInstance, "{\"10\": \"high\"}") + CommandManager.sendTuyaDp(deviceInstance, "10".createCommand("high")) } //爆炒 maxSpeedView.setOnClickListener { - CommandManager.sendTuyaDp(deviceInstance, "{\"10\": \"strong\"}") + CommandManager.sendTuyaDp(deviceInstance, "10".createCommand("strong")) } //清洁 cleanSwitch.setOnCheckedChangeListener { _, isChecked -> - if (isChecked) { - CommandManager.sendTuyaDp(deviceInstance, "{\"101\": true}") - } else { - CommandManager.sendTuyaDp(deviceInstance, "{\"101\": false}") - } + CommandManager.sendTuyaDp(deviceInstance, "101".createCommand(isChecked)) } //照明 lightSwitch.setOnCheckedChangeListener { _, isChecked -> - if (isChecked) { - CommandManager.sendTuyaDp(deviceInstance, "{\"4\": true}") - } else { - CommandManager.sendTuyaDp(deviceInstance, "{\"4\": false}") - } + CommandManager.sendTuyaDp(deviceInstance, "4".createCommand(isChecked)) } //巡航 cruiseSwitch.setOnCheckedChangeListener { _, isChecked -> - if (isChecked) { - CommandManager.sendTuyaDp(deviceInstance, "{\"104\": true}") - } else { - CommandManager.sendTuyaDp(deviceInstance, "{\"104\": false}") - } + CommandManager.sendTuyaDp(deviceInstance, "104".createCommand(isChecked)) } //延时开关 delayTurnOffSwitch.setOnCheckedChangeListener { _, isChecked -> - if (isChecked) { - CommandManager.sendTuyaDp(deviceInstance, "{\"2\": true}") - } else { - CommandManager.sendTuyaDp(deviceInstance, "{\"2\": false}") - } + CommandManager.sendTuyaDp(deviceInstance, "2".createCommand(isChecked)) } //假日通风 ventilateSwitch.setOnCheckedChangeListener { _, isChecked -> - if (isChecked) { - - } else { - - } + CommandManager.sendTuyaDp(deviceInstance, "102".createCommand(isChecked)) } //假日通风时长 + val timeArray = arrayListOf( + "10", "20", "30", "40", "50", "60", "70", "80", "90", "100", "110", "120" + ) ventilateTimeLayout.setOnClickListener { - + BottomActionSheet.Builder() + .setContext(this) + .setActionItemTitle(timeArray) + .setItemTextColor(Color.BLUE) + .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { + override fun onActionItemClick(position: Int) { + CommandManager.sendTuyaDp( + deviceInstance, "103".createCommand(timeArray[position].toInt()) + ) + } + }).build().show() } //防倒灌 antiPourDownSwitch.setOnCheckedChangeListener { _, isChecked -> - if (isChecked) { - - } else { - - } + CommandManager.sendTuyaDp(deviceInstance, "108".createCommand(isChecked)) } deviceInstance.registerDevListener(object : IDevListener { @@ -178,11 +165,9 @@ isDeviceWorking = parseObject[it] as Boolean if (isDeviceWorking) { //工作中 - deviceStateView.text = "已开机" deviceStateButton.text = "关机" } else { //未工作 - deviceStateView.text = "已关机" deviceStateButton.text = "开机" } } @@ -197,9 +182,17 @@ val isLighting = parseObject[it] as Boolean lightSwitch.isChecked = isLighting } - "11" -> {//设备状态,[off, low, middle, high, strong] + "10" -> {//风速 } + "11" -> {//设备状态,[off, low, high, strong, air, fangdaoguan, wash, delay, xunhang] + val status = parseObject[it] as String + deviceStateView.text = if (status == "off") { + "已关机" + } else { + "工作中" + } + } "12" -> {//累计工作时间 workingTimeView.text = if (isDeviceWorking) { "${parseObject[it]}分" @@ -211,12 +204,45 @@ val isCleaning = parseObject[it] as Boolean cleanSwitch.isChecked = isCleaning } + "102" -> {//假日通风 + val isVentilating = parseObject[it] as Boolean + ventilateSwitch.isChecked = isVentilating + } + "103" -> {//通风时长 + ventilateTimeView.text = + String.format("${parseObject[it].toString()}min") + } "104" -> {//巡航 val isCruising = parseObject[it] as Boolean cruiseSwitch.isChecked = isCruising } - "105" -> { - delayTimeView.text = String.format("${parseObject[it].toString()}s") + "105" -> {//延时关机倒计时 + delayTimeView.text = + if (isDeviceWorking && delayTurnOffSwitch.isChecked) { + String.format("${parseObject[it].toString()}s") + } else { + "0s" + } + } + "106" -> {//烟灶联动 + val isLinkage = parseObject[it] as Boolean + linkageView.text = if (isLinkage) { + "开" + } else { + "关" + } + } + "107" -> {//倒油提醒 + val isPourOil = parseObject[it] as Boolean + pourOilView.text = if (isPourOil) { + "开" + } else { + "关" + } + } + "108" -> {//防倒灌 + val isAntiPourDown = parseObject[it] as Boolean + antiPourDownSwitch.isChecked = isAntiPourDown } } } diff --git a/app/src/main/java/com/casic/br/extensions/String.kt b/app/src/main/java/com/casic/br/extensions/String.kt index dd3ff27..bd2b798 100644 --- a/app/src/main/java/com/casic/br/extensions/String.kt +++ b/app/src/main/java/com/casic/br/extensions/String.kt @@ -1,20 +1,29 @@ package com.casic.br.extensions import android.content.Context +import android.util.Log import com.casic.smarttube.callback.OnImageCompressListener import com.pengxh.kt.lite.extensions.createCompressImageDir +import com.pengxh.kt.lite.extensions.toJson import top.zibin.luban.Luban import top.zibin.luban.OnCompressListener import java.io.File import java.text.ParseException import java.text.SimpleDateFormat import java.util.* -import java.util.regex.Pattern import kotlin.math.abs /** * String扩展方法 */ +fun String.createCommand(value: Any): String { + val map = HashMap() + map[this] = value + val command = map.toJson() + Log.d("kTag", "createCommand: $command") + return command +} + fun String.compressImage(context: Context, listener: OnImageCompressListener) { Luban.with(context) .load(this) @@ -45,10 +54,8 @@ if (this.isBlank()) { return 0 } - val dateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA) try { - val timestamp = dateFormat.parse(this)!!.time - val diff = abs(System.currentTimeMillis() - timestamp) + val diff = abs(System.currentTimeMillis() - this.toLong() * 1000L) return (diff / (86400000)).toInt() } catch (e: ParseException) { e.printStackTrace() diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index e6c37c6..1f91a88 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -91,8 +91,6 @@ val deviceModels = ArrayList() deviceList.forEach { - Log.d(kTag, "dps: ${it.dps}") - val model = AddedDeviceModel() model.deviceId = it.devId when (it.deviceCategory) { diff --git a/app/src/main/java/com/casic/br/utils/CommandManager.kt b/app/src/main/java/com/casic/br/utils/CommandManager.kt index 9cb8058..c2e436b 100644 --- a/app/src/main/java/com/casic/br/utils/CommandManager.kt +++ b/app/src/main/java/com/casic/br/utils/CommandManager.kt @@ -4,24 +4,6 @@ import com.tuya.smart.sdk.api.IResultCallback import com.tuya.smart.sdk.api.ITuyaDevice -/** - * 油烟机 - * - * 设备开关 => 1 - * 延时开关 => 2 - * 延时倒计时 => 105 - * 设备状态 => 11 - * 灯光开关 => 4 - * 风速 => 10 - * 清洁开关 => 101 - * TODO XX开关 => 102 - * TODO XXXXX => 103 - * 巡航开关 => 104 - * TODO XXXXX => 106 - * TODO XXXXX => 107 - * TODO XXXXX => 108 - */ - object CommandManager { private const val kTag = "CommandManager" diff --git a/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt b/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt index 5d1b8b2..075a6de 100644 --- a/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt +++ b/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt @@ -1,9 +1,11 @@ package com.casic.br.view.device +import android.graphics.Color import android.util.Log import com.alibaba.fastjson.JSONObject import com.bumptech.glide.Glide import com.casic.br.R +import com.casic.br.extensions.createCommand import com.casic.br.extensions.initLayoutImmersionBar import com.casic.br.utils.CommandManager import com.google.gson.Gson @@ -11,6 +13,7 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.widget.dialog.BottomActionSheet import com.tuya.smart.home.sdk.TuyaHomeSdk import com.tuya.smart.sdk.api.IDevListener import com.tuya.smart.sdk.api.ITuyaDevice @@ -79,86 +82,70 @@ //开关机 switchButton.setOnClickListener { - val command = if (isDeviceWorking) { - "{\"1\": false}" - } else { - "{\"1\": true}" - } - CommandManager.sendTuyaDp(deviceInstance, command) + CommandManager.sendTuyaDp(deviceInstance, "1".createCommand(!isDeviceWorking)) } //低速 lowSpeedView.setOnClickListener { - CommandManager.sendTuyaDp(deviceInstance, "{\"10\": \"low\"}") + CommandManager.sendTuyaDp(deviceInstance, "10".createCommand("low")) } //高速 highSpeedView.setOnClickListener { - CommandManager.sendTuyaDp(deviceInstance, "{\"10\": \"high\"}") + CommandManager.sendTuyaDp(deviceInstance, "10".createCommand("high")) } //爆炒 maxSpeedView.setOnClickListener { - CommandManager.sendTuyaDp(deviceInstance, "{\"10\": \"strong\"}") + CommandManager.sendTuyaDp(deviceInstance, "10".createCommand("strong")) } //清洁 cleanSwitch.setOnCheckedChangeListener { _, isChecked -> - if (isChecked) { - CommandManager.sendTuyaDp(deviceInstance, "{\"101\": true}") - } else { - CommandManager.sendTuyaDp(deviceInstance, "{\"101\": false}") - } + CommandManager.sendTuyaDp(deviceInstance, "101".createCommand(isChecked)) } //照明 lightSwitch.setOnCheckedChangeListener { _, isChecked -> - if (isChecked) { - CommandManager.sendTuyaDp(deviceInstance, "{\"4\": true}") - } else { - CommandManager.sendTuyaDp(deviceInstance, "{\"4\": false}") - } + CommandManager.sendTuyaDp(deviceInstance, "4".createCommand(isChecked)) } //巡航 cruiseSwitch.setOnCheckedChangeListener { _, isChecked -> - if (isChecked) { - CommandManager.sendTuyaDp(deviceInstance, "{\"104\": true}") - } else { - CommandManager.sendTuyaDp(deviceInstance, "{\"104\": false}") - } + CommandManager.sendTuyaDp(deviceInstance, "104".createCommand(isChecked)) } //延时开关 delayTurnOffSwitch.setOnCheckedChangeListener { _, isChecked -> - if (isChecked) { - CommandManager.sendTuyaDp(deviceInstance, "{\"2\": true}") - } else { - CommandManager.sendTuyaDp(deviceInstance, "{\"2\": false}") - } + CommandManager.sendTuyaDp(deviceInstance, "2".createCommand(isChecked)) } //假日通风 ventilateSwitch.setOnCheckedChangeListener { _, isChecked -> - if (isChecked) { - - } else { - - } + CommandManager.sendTuyaDp(deviceInstance, "102".createCommand(isChecked)) } //假日通风时长 + val timeArray = arrayListOf( + "10", "20", "30", "40", "50", "60", "70", "80", "90", "100", "110", "120" + ) ventilateTimeLayout.setOnClickListener { - + BottomActionSheet.Builder() + .setContext(this) + .setActionItemTitle(timeArray) + .setItemTextColor(Color.BLUE) + .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { + override fun onActionItemClick(position: Int) { + CommandManager.sendTuyaDp( + deviceInstance, "103".createCommand(timeArray[position].toInt()) + ) + } + }).build().show() } //防倒灌 antiPourDownSwitch.setOnCheckedChangeListener { _, isChecked -> - if (isChecked) { - - } else { - - } + CommandManager.sendTuyaDp(deviceInstance, "108".createCommand(isChecked)) } deviceInstance.registerDevListener(object : IDevListener { @@ -178,11 +165,9 @@ isDeviceWorking = parseObject[it] as Boolean if (isDeviceWorking) { //工作中 - deviceStateView.text = "已开机" deviceStateButton.text = "关机" } else { //未工作 - deviceStateView.text = "已关机" deviceStateButton.text = "开机" } } @@ -197,9 +182,17 @@ val isLighting = parseObject[it] as Boolean lightSwitch.isChecked = isLighting } - "11" -> {//设备状态,[off, low, middle, high, strong] + "10" -> {//风速 } + "11" -> {//设备状态,[off, low, high, strong, air, fangdaoguan, wash, delay, xunhang] + val status = parseObject[it] as String + deviceStateView.text = if (status == "off") { + "已关机" + } else { + "工作中" + } + } "12" -> {//累计工作时间 workingTimeView.text = if (isDeviceWorking) { "${parseObject[it]}分" @@ -211,12 +204,45 @@ val isCleaning = parseObject[it] as Boolean cleanSwitch.isChecked = isCleaning } + "102" -> {//假日通风 + val isVentilating = parseObject[it] as Boolean + ventilateSwitch.isChecked = isVentilating + } + "103" -> {//通风时长 + ventilateTimeView.text = + String.format("${parseObject[it].toString()}min") + } "104" -> {//巡航 val isCruising = parseObject[it] as Boolean cruiseSwitch.isChecked = isCruising } - "105" -> { - delayTimeView.text = String.format("${parseObject[it].toString()}s") + "105" -> {//延时关机倒计时 + delayTimeView.text = + if (isDeviceWorking && delayTurnOffSwitch.isChecked) { + String.format("${parseObject[it].toString()}s") + } else { + "0s" + } + } + "106" -> {//烟灶联动 + val isLinkage = parseObject[it] as Boolean + linkageView.text = if (isLinkage) { + "开" + } else { + "关" + } + } + "107" -> {//倒油提醒 + val isPourOil = parseObject[it] as Boolean + pourOilView.text = if (isPourOil) { + "开" + } else { + "关" + } + } + "108" -> {//防倒灌 + val isAntiPourDown = parseObject[it] as Boolean + antiPourDownSwitch.isChecked = isAntiPourDown } } } diff --git a/app/src/main/res/layout/activity_range_hood.xml b/app/src/main/res/layout/activity_range_hood.xml index 3f7bdaa..6d6eec2 100644 --- a/app/src/main/res/layout/activity_range_hood.xml +++ b/app/src/main/res/layout/activity_range_hood.xml @@ -23,8 +23,7 @@ + android:layout_height="wrap_content" /> @@ -94,6 +94,7 @@ android:text="烟灶联动" /> @@ -428,7 +429,6 @@ android:layout_marginHorizontal="@dimen/dp_5" android:layout_weight="1" android:gravity="right" - android:text="通风时长" android:textColor="@color/hintTextColor" android:textSize="@dimen/sp_14" /> @@ -480,7 +480,6 @@ android:id="@+id/antiPourDownSwitch" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:checked="true" android:thumb="@drawable/select_switch_circle" android:track="@drawable/select_switch_background" tools:ignore="UseSwitchCompatOrMaterialXml" />