diff --git a/app/src/main/java/com/casic/br/extensions/View.kt b/app/src/main/java/com/casic/br/extensions/View.kt
new file mode 100644
index 0000000..d6723b6
--- /dev/null
+++ b/app/src/main/java/com/casic/br/extensions/View.kt
@@ -0,0 +1,20 @@
+package com.casic.br.extensions
+
+import android.view.View
+import com.casic.br.utils.LocaleConstant
+
+fun View.disableView(vararg view: View?) {
+ this.alpha = LocaleConstant.VIEW_DISABLE
+ this.isEnabled = false
+ view.forEach {
+ it?.isEnabled = false
+ }
+}
+
+fun View.enableView(vararg view: View?) {
+ this.alpha = LocaleConstant.VIEW_ENABLE
+ this.isEnabled = true
+ view.forEach {
+ it?.isEnabled = true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/extensions/View.kt b/app/src/main/java/com/casic/br/extensions/View.kt
new file mode 100644
index 0000000..d6723b6
--- /dev/null
+++ b/app/src/main/java/com/casic/br/extensions/View.kt
@@ -0,0 +1,20 @@
+package com.casic.br.extensions
+
+import android.view.View
+import com.casic.br.utils.LocaleConstant
+
+fun View.disableView(vararg view: View?) {
+ this.alpha = LocaleConstant.VIEW_DISABLE
+ this.isEnabled = false
+ view.forEach {
+ it?.isEnabled = false
+ }
+}
+
+fun View.enableView(vararg view: View?) {
+ this.alpha = LocaleConstant.VIEW_ENABLE
+ this.isEnabled = true
+ view.forEach {
+ it?.isEnabled = true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/extensions/ViewGroup.kt b/app/src/main/java/com/casic/br/extensions/ViewGroup.kt
index 1bb5d99..e5ff21e 100644
--- a/app/src/main/java/com/casic/br/extensions/ViewGroup.kt
+++ b/app/src/main/java/com/casic/br/extensions/ViewGroup.kt
@@ -4,6 +4,7 @@
import android.view.ViewGroup
import com.casic.br.utils.LocaleConstant
+//TODO 后期整合到View扩展函数去
fun ViewGroup.disableLayout(vararg view: View) {
this.alpha = LocaleConstant.VIEW_DISABLE
this.isEnabled = false
@@ -18,12 +19,4 @@
view.forEach {
it.isEnabled = true
}
-}
-
-fun ViewGroup.disableView() {
- this.isEnabled = false
-}
-
-fun ViewGroup.enableView() {
- this.isEnabled = true
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/extensions/View.kt b/app/src/main/java/com/casic/br/extensions/View.kt
new file mode 100644
index 0000000..d6723b6
--- /dev/null
+++ b/app/src/main/java/com/casic/br/extensions/View.kt
@@ -0,0 +1,20 @@
+package com.casic.br.extensions
+
+import android.view.View
+import com.casic.br.utils.LocaleConstant
+
+fun View.disableView(vararg view: View?) {
+ this.alpha = LocaleConstant.VIEW_DISABLE
+ this.isEnabled = false
+ view.forEach {
+ it?.isEnabled = false
+ }
+}
+
+fun View.enableView(vararg view: View?) {
+ this.alpha = LocaleConstant.VIEW_ENABLE
+ this.isEnabled = true
+ view.forEach {
+ it?.isEnabled = true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/extensions/ViewGroup.kt b/app/src/main/java/com/casic/br/extensions/ViewGroup.kt
index 1bb5d99..e5ff21e 100644
--- a/app/src/main/java/com/casic/br/extensions/ViewGroup.kt
+++ b/app/src/main/java/com/casic/br/extensions/ViewGroup.kt
@@ -4,6 +4,7 @@
import android.view.ViewGroup
import com.casic.br.utils.LocaleConstant
+//TODO 后期整合到View扩展函数去
fun ViewGroup.disableLayout(vararg view: View) {
this.alpha = LocaleConstant.VIEW_DISABLE
this.isEnabled = false
@@ -18,12 +19,4 @@
view.forEach {
it.isEnabled = true
}
-}
-
-fun ViewGroup.disableView() {
- this.isEnabled = false
-}
-
-fun ViewGroup.enableView() {
- this.isEnabled = true
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/view/device/AirCleanerActivity.kt b/app/src/main/java/com/casic/br/view/device/AirCleanerActivity.kt
index 90c0880..1d2618f 100644
--- a/app/src/main/java/com/casic/br/view/device/AirCleanerActivity.kt
+++ b/app/src/main/java/com/casic/br/view/device/AirCleanerActivity.kt
@@ -3,15 +3,16 @@
import android.content.Context
import android.graphics.Color
import android.util.Log
+import com.alibaba.fastjson.JSONObject
import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
import com.casic.br.R
-import com.casic.br.extensions.initLayoutImmersionBar
-import com.casic.br.extensions.toChineseTypeName
+import com.casic.br.extensions.*
import com.casic.br.utils.CommandManager
import com.casic.br.utils.TuyaDeviceListener
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
@@ -23,6 +24,14 @@
import com.tuya.smart.sdk.api.ITuyaDevice
import com.tuya.smart.sdk.api.ITuyaOta
import kotlinx.android.synthetic.main.activity_air_cleaner.*
+import kotlinx.android.synthetic.main.activity_air_cleaner.deviceLogoView
+import kotlinx.android.synthetic.main.activity_air_cleaner.highSpeedRadioButton
+import kotlinx.android.synthetic.main.activity_air_cleaner.lowSpeedRadioButton
+import kotlinx.android.synthetic.main.activity_air_cleaner.modeRadioGroup
+import kotlinx.android.synthetic.main.activity_air_cleaner.rootView
+import kotlinx.android.synthetic.main.activity_air_cleaner.turnOffRadioButton
+import kotlinx.android.synthetic.main.activity_water_dispenser.*
+import kotlinx.android.synthetic.main.fragment_device_rangehood_control.*
import kotlinx.android.synthetic.main.include_device_title.*
/**
@@ -32,7 +41,6 @@
class AirCleanerActivity : KotlinBaseActivity() {
private val context: Context = this@AirCleanerActivity
- private lateinit var deviceId: String
private lateinit var tuyaOTA: ITuyaOta
private lateinit var deviceInstance: ITuyaDevice
@@ -50,7 +58,7 @@
}
override fun initData() {
- deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!!
+ val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!!
tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId)
//控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。
deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId)
@@ -71,7 +79,120 @@
override fun onDpUpdate(devId: String?, dpStr: String?) {
Log.d("Casic", "AirCleanerActivity => onDpUpdate: $dpStr")
//{"1":true,"11":false,"19":"cancle","2":6,"20":0,"22":"1","3":"1","4":"1","5":99,"6":true,"7":false}
- //{"1":true,"19":"cancle","2":6,"20":0,"22":"1","3":"1","4":"1","5":99,"6":true,"7":false}
+ val parseObject = JSONObject.parseObject(dpStr)
+ parseObject.keys.forEach {
+ when (it) {
+ "1" -> {
+ //设备开关
+ turnOffRadioButton.isChecked = parseObject[it] as Boolean
+ }
+ "2" -> {
+ //pm2.5
+ particulateView.text = parseObject[it].toString()
+ }
+ "3" -> {
+ //模式
+ when (parseObject[it]) {
+ "0" -> manualRadioButton.isChecked = true
+ "1" -> autoRadioButton.isChecked = true
+ "2" -> sleepRadioButton.isChecked = true
+ "3" -> potentRadioButton.isChecked = true
+ }
+ }
+ "4" -> {
+ //风速
+ when (parseObject[it]) {
+ "1" -> lowSpeedRadioButton.isChecked = true
+ "2" -> mediumSpeedRadioButton.isChecked = true
+ "3" -> highSpeedRadioButton.isChecked = true
+ }
+ }
+ "5" -> {
+ //滤芯剩余量
+ filterElementView.text = "${parseObject[it]}%"
+ }
+ "6" -> {
+ //负离子
+ anionStatusSwitch.isChecked = parseObject[it] as Boolean
+ }
+ "7" -> {
+ //童锁
+ val c = parseObject[it] as Boolean
+ childStatusSwitch.isChecked = c
+ if (c) {
+ turnOffRadioButton.disableView()
+ modeRadioGroup.disableView(
+ normalRadioButton,
+ autoRadioButton,
+ sleepRadioButton,
+ potentRadioButton
+ )
+ speedRadioGroup.disableView(
+ lowSpeedRadioButton,
+ mediumSpeedRadioButton,
+ highSpeedRadioButton
+ )
+ anionLayout.disableView(anionStatusSwitch)
+ countDownLayout.disableView()
+ resetFilterLayout.disableView()
+ } else {
+ turnOffRadioButton.enableView()
+ modeRadioGroup.enableView(
+ normalRadioButton,
+ autoRadioButton,
+ sleepRadioButton,
+ potentRadioButton
+ )
+ speedRadioGroup.enableView(
+ lowSpeedRadioButton,
+ mediumSpeedRadioButton,
+ highSpeedRadioButton
+ )
+ anionLayout.enableView(anionStatusSwitch)
+ countDownLayout.enableView()
+ resetFilterLayout.enableView()
+ }
+ }
+ "11" -> {
+ //滤芯复位
+ }
+ "19" -> {
+ //倒计时
+ }
+ "20" -> {
+ //倒计时剩余
+ }
+ "22" -> {
+ //空气质量
+ when (parseObject[it]) {
+ "1" -> {
+ airQualityView.text = "优"
+ airQualityView.setTextColor(
+ R.color.greenColor.convertColor(
+ context
+ )
+ )
+ }
+ "2" -> {
+ airQualityView.text = "良"
+ airQualityView.setTextColor(
+ R.color.mainThemeColor.convertColor(
+ context
+ )
+ )
+ }
+ else -> {
+ airQualityView.text = "差"
+ airQualityView.setTextColor(
+ R.color.redTextColor.convertColor(
+ context
+ )
+ )
+ }
+ }
+ }
+ }
+ }
}
})
}
@@ -129,6 +250,103 @@
})
.build().show()
}
+
+ turnOffRadioButton.setOnClickListener {
+ if (turnOffRadioButton.isChecked) {
+ CommandManager.sendTuyaDp(deviceInstance, "1".createCommand(true))
+ } else {
+ CommandManager.sendTuyaDp(deviceInstance, "1".createCommand(false))
+ }
+ }
+
+ modeRadioGroup.setOnCheckedChangeListener { _, checkedId ->
+ when (checkedId) {
+ R.id.manualRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("0"))
+ }
+ R.id.autoRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("1"))
+ }
+ R.id.sleepRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("2"))
+ }
+ R.id.potentRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("3"))
+ }
+ }
+ }
+
+ speedRadioGroup.setOnCheckedChangeListener { _, checkedId ->
+ when (checkedId) {
+ R.id.lowSpeedRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "4".createCommand("1"))
+ }
+ R.id.mediumSpeedRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "4".createCommand("2"))
+ }
+ R.id.highSpeedRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "4".createCommand("3"))
+ }
+ }
+ }
+
+ anionStatusSwitch.setOnClickListener {
+ if (anionStatusSwitch.isChecked) {
+ CommandManager.sendTuyaDp(deviceInstance, "6".createCommand(true))
+ } else {
+ CommandManager.sendTuyaDp(deviceInstance, "6".createCommand(false))
+ }
+ }
+
+ childStatusSwitch.setOnClickListener {
+ if (childStatusSwitch.isChecked) {
+ CommandManager.sendTuyaDp(deviceInstance, "7".createCommand(true))
+ } else {
+ CommandManager.sendTuyaDp(deviceInstance, "7".createCommand(false))
+ }
+ }
+
+ countDownLayout.setOnClickListener {
+ BottomActionSheet.Builder()
+ .setContext(this)
+ .setActionItemTitle(arrayListOf("不设置定时", "1h", "2h", "4h", "8h"))
+ .setItemTextColor(Color.BLUE)
+ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
+ override fun onActionItemClick(position: Int) {
+ //cancle,1,2,3,4
+ val value = when (position) {
+ 0 -> "cancle"
+ 1 -> "1"
+ 2 -> "2"
+ 3 -> "3"
+ 4 -> "4"
+ else -> "cancle"
+ }
+ CommandManager.sendTuyaDp(deviceInstance, "19".createCommand(value))
+ }
+ })
+ .build().show()
+ }
+
+ resetFilterLayout.setOnClickListener {
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("滤芯复位")
+ .setMessage("确定要复位滤芯么?")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onCancelClick() {
+
+ }
+
+ override fun onConfirmClick() {
+ CommandManager.sendTuyaDp(deviceInstance, "11".createCommand(true))
+ }
+ })
+ .build().show()
+ }
}
override fun onResume() {
diff --git a/app/src/main/java/com/casic/br/extensions/View.kt b/app/src/main/java/com/casic/br/extensions/View.kt
new file mode 100644
index 0000000..d6723b6
--- /dev/null
+++ b/app/src/main/java/com/casic/br/extensions/View.kt
@@ -0,0 +1,20 @@
+package com.casic.br.extensions
+
+import android.view.View
+import com.casic.br.utils.LocaleConstant
+
+fun View.disableView(vararg view: View?) {
+ this.alpha = LocaleConstant.VIEW_DISABLE
+ this.isEnabled = false
+ view.forEach {
+ it?.isEnabled = false
+ }
+}
+
+fun View.enableView(vararg view: View?) {
+ this.alpha = LocaleConstant.VIEW_ENABLE
+ this.isEnabled = true
+ view.forEach {
+ it?.isEnabled = true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/extensions/ViewGroup.kt b/app/src/main/java/com/casic/br/extensions/ViewGroup.kt
index 1bb5d99..e5ff21e 100644
--- a/app/src/main/java/com/casic/br/extensions/ViewGroup.kt
+++ b/app/src/main/java/com/casic/br/extensions/ViewGroup.kt
@@ -4,6 +4,7 @@
import android.view.ViewGroup
import com.casic.br.utils.LocaleConstant
+//TODO 后期整合到View扩展函数去
fun ViewGroup.disableLayout(vararg view: View) {
this.alpha = LocaleConstant.VIEW_DISABLE
this.isEnabled = false
@@ -18,12 +19,4 @@
view.forEach {
it.isEnabled = true
}
-}
-
-fun ViewGroup.disableView() {
- this.isEnabled = false
-}
-
-fun ViewGroup.enableView() {
- this.isEnabled = true
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/view/device/AirCleanerActivity.kt b/app/src/main/java/com/casic/br/view/device/AirCleanerActivity.kt
index 90c0880..1d2618f 100644
--- a/app/src/main/java/com/casic/br/view/device/AirCleanerActivity.kt
+++ b/app/src/main/java/com/casic/br/view/device/AirCleanerActivity.kt
@@ -3,15 +3,16 @@
import android.content.Context
import android.graphics.Color
import android.util.Log
+import com.alibaba.fastjson.JSONObject
import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
import com.casic.br.R
-import com.casic.br.extensions.initLayoutImmersionBar
-import com.casic.br.extensions.toChineseTypeName
+import com.casic.br.extensions.*
import com.casic.br.utils.CommandManager
import com.casic.br.utils.TuyaDeviceListener
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
@@ -23,6 +24,14 @@
import com.tuya.smart.sdk.api.ITuyaDevice
import com.tuya.smart.sdk.api.ITuyaOta
import kotlinx.android.synthetic.main.activity_air_cleaner.*
+import kotlinx.android.synthetic.main.activity_air_cleaner.deviceLogoView
+import kotlinx.android.synthetic.main.activity_air_cleaner.highSpeedRadioButton
+import kotlinx.android.synthetic.main.activity_air_cleaner.lowSpeedRadioButton
+import kotlinx.android.synthetic.main.activity_air_cleaner.modeRadioGroup
+import kotlinx.android.synthetic.main.activity_air_cleaner.rootView
+import kotlinx.android.synthetic.main.activity_air_cleaner.turnOffRadioButton
+import kotlinx.android.synthetic.main.activity_water_dispenser.*
+import kotlinx.android.synthetic.main.fragment_device_rangehood_control.*
import kotlinx.android.synthetic.main.include_device_title.*
/**
@@ -32,7 +41,6 @@
class AirCleanerActivity : KotlinBaseActivity() {
private val context: Context = this@AirCleanerActivity
- private lateinit var deviceId: String
private lateinit var tuyaOTA: ITuyaOta
private lateinit var deviceInstance: ITuyaDevice
@@ -50,7 +58,7 @@
}
override fun initData() {
- deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!!
+ val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!!
tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId)
//控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。
deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId)
@@ -71,7 +79,120 @@
override fun onDpUpdate(devId: String?, dpStr: String?) {
Log.d("Casic", "AirCleanerActivity => onDpUpdate: $dpStr")
//{"1":true,"11":false,"19":"cancle","2":6,"20":0,"22":"1","3":"1","4":"1","5":99,"6":true,"7":false}
- //{"1":true,"19":"cancle","2":6,"20":0,"22":"1","3":"1","4":"1","5":99,"6":true,"7":false}
+ val parseObject = JSONObject.parseObject(dpStr)
+ parseObject.keys.forEach {
+ when (it) {
+ "1" -> {
+ //设备开关
+ turnOffRadioButton.isChecked = parseObject[it] as Boolean
+ }
+ "2" -> {
+ //pm2.5
+ particulateView.text = parseObject[it].toString()
+ }
+ "3" -> {
+ //模式
+ when (parseObject[it]) {
+ "0" -> manualRadioButton.isChecked = true
+ "1" -> autoRadioButton.isChecked = true
+ "2" -> sleepRadioButton.isChecked = true
+ "3" -> potentRadioButton.isChecked = true
+ }
+ }
+ "4" -> {
+ //风速
+ when (parseObject[it]) {
+ "1" -> lowSpeedRadioButton.isChecked = true
+ "2" -> mediumSpeedRadioButton.isChecked = true
+ "3" -> highSpeedRadioButton.isChecked = true
+ }
+ }
+ "5" -> {
+ //滤芯剩余量
+ filterElementView.text = "${parseObject[it]}%"
+ }
+ "6" -> {
+ //负离子
+ anionStatusSwitch.isChecked = parseObject[it] as Boolean
+ }
+ "7" -> {
+ //童锁
+ val c = parseObject[it] as Boolean
+ childStatusSwitch.isChecked = c
+ if (c) {
+ turnOffRadioButton.disableView()
+ modeRadioGroup.disableView(
+ normalRadioButton,
+ autoRadioButton,
+ sleepRadioButton,
+ potentRadioButton
+ )
+ speedRadioGroup.disableView(
+ lowSpeedRadioButton,
+ mediumSpeedRadioButton,
+ highSpeedRadioButton
+ )
+ anionLayout.disableView(anionStatusSwitch)
+ countDownLayout.disableView()
+ resetFilterLayout.disableView()
+ } else {
+ turnOffRadioButton.enableView()
+ modeRadioGroup.enableView(
+ normalRadioButton,
+ autoRadioButton,
+ sleepRadioButton,
+ potentRadioButton
+ )
+ speedRadioGroup.enableView(
+ lowSpeedRadioButton,
+ mediumSpeedRadioButton,
+ highSpeedRadioButton
+ )
+ anionLayout.enableView(anionStatusSwitch)
+ countDownLayout.enableView()
+ resetFilterLayout.enableView()
+ }
+ }
+ "11" -> {
+ //滤芯复位
+ }
+ "19" -> {
+ //倒计时
+ }
+ "20" -> {
+ //倒计时剩余
+ }
+ "22" -> {
+ //空气质量
+ when (parseObject[it]) {
+ "1" -> {
+ airQualityView.text = "优"
+ airQualityView.setTextColor(
+ R.color.greenColor.convertColor(
+ context
+ )
+ )
+ }
+ "2" -> {
+ airQualityView.text = "良"
+ airQualityView.setTextColor(
+ R.color.mainThemeColor.convertColor(
+ context
+ )
+ )
+ }
+ else -> {
+ airQualityView.text = "差"
+ airQualityView.setTextColor(
+ R.color.redTextColor.convertColor(
+ context
+ )
+ )
+ }
+ }
+ }
+ }
+ }
}
})
}
@@ -129,6 +250,103 @@
})
.build().show()
}
+
+ turnOffRadioButton.setOnClickListener {
+ if (turnOffRadioButton.isChecked) {
+ CommandManager.sendTuyaDp(deviceInstance, "1".createCommand(true))
+ } else {
+ CommandManager.sendTuyaDp(deviceInstance, "1".createCommand(false))
+ }
+ }
+
+ modeRadioGroup.setOnCheckedChangeListener { _, checkedId ->
+ when (checkedId) {
+ R.id.manualRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("0"))
+ }
+ R.id.autoRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("1"))
+ }
+ R.id.sleepRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("2"))
+ }
+ R.id.potentRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("3"))
+ }
+ }
+ }
+
+ speedRadioGroup.setOnCheckedChangeListener { _, checkedId ->
+ when (checkedId) {
+ R.id.lowSpeedRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "4".createCommand("1"))
+ }
+ R.id.mediumSpeedRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "4".createCommand("2"))
+ }
+ R.id.highSpeedRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "4".createCommand("3"))
+ }
+ }
+ }
+
+ anionStatusSwitch.setOnClickListener {
+ if (anionStatusSwitch.isChecked) {
+ CommandManager.sendTuyaDp(deviceInstance, "6".createCommand(true))
+ } else {
+ CommandManager.sendTuyaDp(deviceInstance, "6".createCommand(false))
+ }
+ }
+
+ childStatusSwitch.setOnClickListener {
+ if (childStatusSwitch.isChecked) {
+ CommandManager.sendTuyaDp(deviceInstance, "7".createCommand(true))
+ } else {
+ CommandManager.sendTuyaDp(deviceInstance, "7".createCommand(false))
+ }
+ }
+
+ countDownLayout.setOnClickListener {
+ BottomActionSheet.Builder()
+ .setContext(this)
+ .setActionItemTitle(arrayListOf("不设置定时", "1h", "2h", "4h", "8h"))
+ .setItemTextColor(Color.BLUE)
+ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
+ override fun onActionItemClick(position: Int) {
+ //cancle,1,2,3,4
+ val value = when (position) {
+ 0 -> "cancle"
+ 1 -> "1"
+ 2 -> "2"
+ 3 -> "3"
+ 4 -> "4"
+ else -> "cancle"
+ }
+ CommandManager.sendTuyaDp(deviceInstance, "19".createCommand(value))
+ }
+ })
+ .build().show()
+ }
+
+ resetFilterLayout.setOnClickListener {
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("滤芯复位")
+ .setMessage("确定要复位滤芯么?")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onCancelClick() {
+
+ }
+
+ override fun onConfirmClick() {
+ CommandManager.sendTuyaDp(deviceInstance, "11".createCommand(true))
+ }
+ })
+ .build().show()
+ }
}
override fun onResume() {
diff --git a/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt b/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt
index 5185a18..68de8bf 100644
--- a/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt
+++ b/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt
@@ -99,8 +99,7 @@
"102" -> {}
"103" -> {
//出水开关
- val switchState = parseObject[it] as Boolean
- switchCheckBox.isChecked = switchState
+ switchCheckBox.isChecked = parseObject[it] as Boolean
}
"104" -> {
//出水量
diff --git a/app/src/main/java/com/casic/br/extensions/View.kt b/app/src/main/java/com/casic/br/extensions/View.kt
new file mode 100644
index 0000000..d6723b6
--- /dev/null
+++ b/app/src/main/java/com/casic/br/extensions/View.kt
@@ -0,0 +1,20 @@
+package com.casic.br.extensions
+
+import android.view.View
+import com.casic.br.utils.LocaleConstant
+
+fun View.disableView(vararg view: View?) {
+ this.alpha = LocaleConstant.VIEW_DISABLE
+ this.isEnabled = false
+ view.forEach {
+ it?.isEnabled = false
+ }
+}
+
+fun View.enableView(vararg view: View?) {
+ this.alpha = LocaleConstant.VIEW_ENABLE
+ this.isEnabled = true
+ view.forEach {
+ it?.isEnabled = true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/extensions/ViewGroup.kt b/app/src/main/java/com/casic/br/extensions/ViewGroup.kt
index 1bb5d99..e5ff21e 100644
--- a/app/src/main/java/com/casic/br/extensions/ViewGroup.kt
+++ b/app/src/main/java/com/casic/br/extensions/ViewGroup.kt
@@ -4,6 +4,7 @@
import android.view.ViewGroup
import com.casic.br.utils.LocaleConstant
+//TODO 后期整合到View扩展函数去
fun ViewGroup.disableLayout(vararg view: View) {
this.alpha = LocaleConstant.VIEW_DISABLE
this.isEnabled = false
@@ -18,12 +19,4 @@
view.forEach {
it.isEnabled = true
}
-}
-
-fun ViewGroup.disableView() {
- this.isEnabled = false
-}
-
-fun ViewGroup.enableView() {
- this.isEnabled = true
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/view/device/AirCleanerActivity.kt b/app/src/main/java/com/casic/br/view/device/AirCleanerActivity.kt
index 90c0880..1d2618f 100644
--- a/app/src/main/java/com/casic/br/view/device/AirCleanerActivity.kt
+++ b/app/src/main/java/com/casic/br/view/device/AirCleanerActivity.kt
@@ -3,15 +3,16 @@
import android.content.Context
import android.graphics.Color
import android.util.Log
+import com.alibaba.fastjson.JSONObject
import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
import com.casic.br.R
-import com.casic.br.extensions.initLayoutImmersionBar
-import com.casic.br.extensions.toChineseTypeName
+import com.casic.br.extensions.*
import com.casic.br.utils.CommandManager
import com.casic.br.utils.TuyaDeviceListener
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
@@ -23,6 +24,14 @@
import com.tuya.smart.sdk.api.ITuyaDevice
import com.tuya.smart.sdk.api.ITuyaOta
import kotlinx.android.synthetic.main.activity_air_cleaner.*
+import kotlinx.android.synthetic.main.activity_air_cleaner.deviceLogoView
+import kotlinx.android.synthetic.main.activity_air_cleaner.highSpeedRadioButton
+import kotlinx.android.synthetic.main.activity_air_cleaner.lowSpeedRadioButton
+import kotlinx.android.synthetic.main.activity_air_cleaner.modeRadioGroup
+import kotlinx.android.synthetic.main.activity_air_cleaner.rootView
+import kotlinx.android.synthetic.main.activity_air_cleaner.turnOffRadioButton
+import kotlinx.android.synthetic.main.activity_water_dispenser.*
+import kotlinx.android.synthetic.main.fragment_device_rangehood_control.*
import kotlinx.android.synthetic.main.include_device_title.*
/**
@@ -32,7 +41,6 @@
class AirCleanerActivity : KotlinBaseActivity() {
private val context: Context = this@AirCleanerActivity
- private lateinit var deviceId: String
private lateinit var tuyaOTA: ITuyaOta
private lateinit var deviceInstance: ITuyaDevice
@@ -50,7 +58,7 @@
}
override fun initData() {
- deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!!
+ val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!!
tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId)
//控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。
deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId)
@@ -71,7 +79,120 @@
override fun onDpUpdate(devId: String?, dpStr: String?) {
Log.d("Casic", "AirCleanerActivity => onDpUpdate: $dpStr")
//{"1":true,"11":false,"19":"cancle","2":6,"20":0,"22":"1","3":"1","4":"1","5":99,"6":true,"7":false}
- //{"1":true,"19":"cancle","2":6,"20":0,"22":"1","3":"1","4":"1","5":99,"6":true,"7":false}
+ val parseObject = JSONObject.parseObject(dpStr)
+ parseObject.keys.forEach {
+ when (it) {
+ "1" -> {
+ //设备开关
+ turnOffRadioButton.isChecked = parseObject[it] as Boolean
+ }
+ "2" -> {
+ //pm2.5
+ particulateView.text = parseObject[it].toString()
+ }
+ "3" -> {
+ //模式
+ when (parseObject[it]) {
+ "0" -> manualRadioButton.isChecked = true
+ "1" -> autoRadioButton.isChecked = true
+ "2" -> sleepRadioButton.isChecked = true
+ "3" -> potentRadioButton.isChecked = true
+ }
+ }
+ "4" -> {
+ //风速
+ when (parseObject[it]) {
+ "1" -> lowSpeedRadioButton.isChecked = true
+ "2" -> mediumSpeedRadioButton.isChecked = true
+ "3" -> highSpeedRadioButton.isChecked = true
+ }
+ }
+ "5" -> {
+ //滤芯剩余量
+ filterElementView.text = "${parseObject[it]}%"
+ }
+ "6" -> {
+ //负离子
+ anionStatusSwitch.isChecked = parseObject[it] as Boolean
+ }
+ "7" -> {
+ //童锁
+ val c = parseObject[it] as Boolean
+ childStatusSwitch.isChecked = c
+ if (c) {
+ turnOffRadioButton.disableView()
+ modeRadioGroup.disableView(
+ normalRadioButton,
+ autoRadioButton,
+ sleepRadioButton,
+ potentRadioButton
+ )
+ speedRadioGroup.disableView(
+ lowSpeedRadioButton,
+ mediumSpeedRadioButton,
+ highSpeedRadioButton
+ )
+ anionLayout.disableView(anionStatusSwitch)
+ countDownLayout.disableView()
+ resetFilterLayout.disableView()
+ } else {
+ turnOffRadioButton.enableView()
+ modeRadioGroup.enableView(
+ normalRadioButton,
+ autoRadioButton,
+ sleepRadioButton,
+ potentRadioButton
+ )
+ speedRadioGroup.enableView(
+ lowSpeedRadioButton,
+ mediumSpeedRadioButton,
+ highSpeedRadioButton
+ )
+ anionLayout.enableView(anionStatusSwitch)
+ countDownLayout.enableView()
+ resetFilterLayout.enableView()
+ }
+ }
+ "11" -> {
+ //滤芯复位
+ }
+ "19" -> {
+ //倒计时
+ }
+ "20" -> {
+ //倒计时剩余
+ }
+ "22" -> {
+ //空气质量
+ when (parseObject[it]) {
+ "1" -> {
+ airQualityView.text = "优"
+ airQualityView.setTextColor(
+ R.color.greenColor.convertColor(
+ context
+ )
+ )
+ }
+ "2" -> {
+ airQualityView.text = "良"
+ airQualityView.setTextColor(
+ R.color.mainThemeColor.convertColor(
+ context
+ )
+ )
+ }
+ else -> {
+ airQualityView.text = "差"
+ airQualityView.setTextColor(
+ R.color.redTextColor.convertColor(
+ context
+ )
+ )
+ }
+ }
+ }
+ }
+ }
}
})
}
@@ -129,6 +250,103 @@
})
.build().show()
}
+
+ turnOffRadioButton.setOnClickListener {
+ if (turnOffRadioButton.isChecked) {
+ CommandManager.sendTuyaDp(deviceInstance, "1".createCommand(true))
+ } else {
+ CommandManager.sendTuyaDp(deviceInstance, "1".createCommand(false))
+ }
+ }
+
+ modeRadioGroup.setOnCheckedChangeListener { _, checkedId ->
+ when (checkedId) {
+ R.id.manualRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("0"))
+ }
+ R.id.autoRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("1"))
+ }
+ R.id.sleepRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("2"))
+ }
+ R.id.potentRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("3"))
+ }
+ }
+ }
+
+ speedRadioGroup.setOnCheckedChangeListener { _, checkedId ->
+ when (checkedId) {
+ R.id.lowSpeedRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "4".createCommand("1"))
+ }
+ R.id.mediumSpeedRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "4".createCommand("2"))
+ }
+ R.id.highSpeedRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "4".createCommand("3"))
+ }
+ }
+ }
+
+ anionStatusSwitch.setOnClickListener {
+ if (anionStatusSwitch.isChecked) {
+ CommandManager.sendTuyaDp(deviceInstance, "6".createCommand(true))
+ } else {
+ CommandManager.sendTuyaDp(deviceInstance, "6".createCommand(false))
+ }
+ }
+
+ childStatusSwitch.setOnClickListener {
+ if (childStatusSwitch.isChecked) {
+ CommandManager.sendTuyaDp(deviceInstance, "7".createCommand(true))
+ } else {
+ CommandManager.sendTuyaDp(deviceInstance, "7".createCommand(false))
+ }
+ }
+
+ countDownLayout.setOnClickListener {
+ BottomActionSheet.Builder()
+ .setContext(this)
+ .setActionItemTitle(arrayListOf("不设置定时", "1h", "2h", "4h", "8h"))
+ .setItemTextColor(Color.BLUE)
+ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
+ override fun onActionItemClick(position: Int) {
+ //cancle,1,2,3,4
+ val value = when (position) {
+ 0 -> "cancle"
+ 1 -> "1"
+ 2 -> "2"
+ 3 -> "3"
+ 4 -> "4"
+ else -> "cancle"
+ }
+ CommandManager.sendTuyaDp(deviceInstance, "19".createCommand(value))
+ }
+ })
+ .build().show()
+ }
+
+ resetFilterLayout.setOnClickListener {
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("滤芯复位")
+ .setMessage("确定要复位滤芯么?")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onCancelClick() {
+
+ }
+
+ override fun onConfirmClick() {
+ CommandManager.sendTuyaDp(deviceInstance, "11".createCommand(true))
+ }
+ })
+ .build().show()
+ }
}
override fun onResume() {
diff --git a/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt b/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt
index 5185a18..68de8bf 100644
--- a/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt
+++ b/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt
@@ -99,8 +99,7 @@
"102" -> {}
"103" -> {
//出水开关
- val switchState = parseObject[it] as Boolean
- switchCheckBox.isChecked = switchState
+ switchCheckBox.isChecked = parseObject[it] as Boolean
}
"104" -> {
//出水量
diff --git a/app/src/main/res/drawable/selector_air_cleaner_high.xml b/app/src/main/res/drawable/selector_air_cleaner_high.xml
new file mode 100644
index 0000000..c31bd2e
--- /dev/null
+++ b/app/src/main/res/drawable/selector_air_cleaner_high.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/extensions/View.kt b/app/src/main/java/com/casic/br/extensions/View.kt
new file mode 100644
index 0000000..d6723b6
--- /dev/null
+++ b/app/src/main/java/com/casic/br/extensions/View.kt
@@ -0,0 +1,20 @@
+package com.casic.br.extensions
+
+import android.view.View
+import com.casic.br.utils.LocaleConstant
+
+fun View.disableView(vararg view: View?) {
+ this.alpha = LocaleConstant.VIEW_DISABLE
+ this.isEnabled = false
+ view.forEach {
+ it?.isEnabled = false
+ }
+}
+
+fun View.enableView(vararg view: View?) {
+ this.alpha = LocaleConstant.VIEW_ENABLE
+ this.isEnabled = true
+ view.forEach {
+ it?.isEnabled = true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/extensions/ViewGroup.kt b/app/src/main/java/com/casic/br/extensions/ViewGroup.kt
index 1bb5d99..e5ff21e 100644
--- a/app/src/main/java/com/casic/br/extensions/ViewGroup.kt
+++ b/app/src/main/java/com/casic/br/extensions/ViewGroup.kt
@@ -4,6 +4,7 @@
import android.view.ViewGroup
import com.casic.br.utils.LocaleConstant
+//TODO 后期整合到View扩展函数去
fun ViewGroup.disableLayout(vararg view: View) {
this.alpha = LocaleConstant.VIEW_DISABLE
this.isEnabled = false
@@ -18,12 +19,4 @@
view.forEach {
it.isEnabled = true
}
-}
-
-fun ViewGroup.disableView() {
- this.isEnabled = false
-}
-
-fun ViewGroup.enableView() {
- this.isEnabled = true
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/view/device/AirCleanerActivity.kt b/app/src/main/java/com/casic/br/view/device/AirCleanerActivity.kt
index 90c0880..1d2618f 100644
--- a/app/src/main/java/com/casic/br/view/device/AirCleanerActivity.kt
+++ b/app/src/main/java/com/casic/br/view/device/AirCleanerActivity.kt
@@ -3,15 +3,16 @@
import android.content.Context
import android.graphics.Color
import android.util.Log
+import com.alibaba.fastjson.JSONObject
import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
import com.casic.br.R
-import com.casic.br.extensions.initLayoutImmersionBar
-import com.casic.br.extensions.toChineseTypeName
+import com.casic.br.extensions.*
import com.casic.br.utils.CommandManager
import com.casic.br.utils.TuyaDeviceListener
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
@@ -23,6 +24,14 @@
import com.tuya.smart.sdk.api.ITuyaDevice
import com.tuya.smart.sdk.api.ITuyaOta
import kotlinx.android.synthetic.main.activity_air_cleaner.*
+import kotlinx.android.synthetic.main.activity_air_cleaner.deviceLogoView
+import kotlinx.android.synthetic.main.activity_air_cleaner.highSpeedRadioButton
+import kotlinx.android.synthetic.main.activity_air_cleaner.lowSpeedRadioButton
+import kotlinx.android.synthetic.main.activity_air_cleaner.modeRadioGroup
+import kotlinx.android.synthetic.main.activity_air_cleaner.rootView
+import kotlinx.android.synthetic.main.activity_air_cleaner.turnOffRadioButton
+import kotlinx.android.synthetic.main.activity_water_dispenser.*
+import kotlinx.android.synthetic.main.fragment_device_rangehood_control.*
import kotlinx.android.synthetic.main.include_device_title.*
/**
@@ -32,7 +41,6 @@
class AirCleanerActivity : KotlinBaseActivity() {
private val context: Context = this@AirCleanerActivity
- private lateinit var deviceId: String
private lateinit var tuyaOTA: ITuyaOta
private lateinit var deviceInstance: ITuyaDevice
@@ -50,7 +58,7 @@
}
override fun initData() {
- deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!!
+ val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!!
tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId)
//控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。
deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId)
@@ -71,7 +79,120 @@
override fun onDpUpdate(devId: String?, dpStr: String?) {
Log.d("Casic", "AirCleanerActivity => onDpUpdate: $dpStr")
//{"1":true,"11":false,"19":"cancle","2":6,"20":0,"22":"1","3":"1","4":"1","5":99,"6":true,"7":false}
- //{"1":true,"19":"cancle","2":6,"20":0,"22":"1","3":"1","4":"1","5":99,"6":true,"7":false}
+ val parseObject = JSONObject.parseObject(dpStr)
+ parseObject.keys.forEach {
+ when (it) {
+ "1" -> {
+ //设备开关
+ turnOffRadioButton.isChecked = parseObject[it] as Boolean
+ }
+ "2" -> {
+ //pm2.5
+ particulateView.text = parseObject[it].toString()
+ }
+ "3" -> {
+ //模式
+ when (parseObject[it]) {
+ "0" -> manualRadioButton.isChecked = true
+ "1" -> autoRadioButton.isChecked = true
+ "2" -> sleepRadioButton.isChecked = true
+ "3" -> potentRadioButton.isChecked = true
+ }
+ }
+ "4" -> {
+ //风速
+ when (parseObject[it]) {
+ "1" -> lowSpeedRadioButton.isChecked = true
+ "2" -> mediumSpeedRadioButton.isChecked = true
+ "3" -> highSpeedRadioButton.isChecked = true
+ }
+ }
+ "5" -> {
+ //滤芯剩余量
+ filterElementView.text = "${parseObject[it]}%"
+ }
+ "6" -> {
+ //负离子
+ anionStatusSwitch.isChecked = parseObject[it] as Boolean
+ }
+ "7" -> {
+ //童锁
+ val c = parseObject[it] as Boolean
+ childStatusSwitch.isChecked = c
+ if (c) {
+ turnOffRadioButton.disableView()
+ modeRadioGroup.disableView(
+ normalRadioButton,
+ autoRadioButton,
+ sleepRadioButton,
+ potentRadioButton
+ )
+ speedRadioGroup.disableView(
+ lowSpeedRadioButton,
+ mediumSpeedRadioButton,
+ highSpeedRadioButton
+ )
+ anionLayout.disableView(anionStatusSwitch)
+ countDownLayout.disableView()
+ resetFilterLayout.disableView()
+ } else {
+ turnOffRadioButton.enableView()
+ modeRadioGroup.enableView(
+ normalRadioButton,
+ autoRadioButton,
+ sleepRadioButton,
+ potentRadioButton
+ )
+ speedRadioGroup.enableView(
+ lowSpeedRadioButton,
+ mediumSpeedRadioButton,
+ highSpeedRadioButton
+ )
+ anionLayout.enableView(anionStatusSwitch)
+ countDownLayout.enableView()
+ resetFilterLayout.enableView()
+ }
+ }
+ "11" -> {
+ //滤芯复位
+ }
+ "19" -> {
+ //倒计时
+ }
+ "20" -> {
+ //倒计时剩余
+ }
+ "22" -> {
+ //空气质量
+ when (parseObject[it]) {
+ "1" -> {
+ airQualityView.text = "优"
+ airQualityView.setTextColor(
+ R.color.greenColor.convertColor(
+ context
+ )
+ )
+ }
+ "2" -> {
+ airQualityView.text = "良"
+ airQualityView.setTextColor(
+ R.color.mainThemeColor.convertColor(
+ context
+ )
+ )
+ }
+ else -> {
+ airQualityView.text = "差"
+ airQualityView.setTextColor(
+ R.color.redTextColor.convertColor(
+ context
+ )
+ )
+ }
+ }
+ }
+ }
+ }
}
})
}
@@ -129,6 +250,103 @@
})
.build().show()
}
+
+ turnOffRadioButton.setOnClickListener {
+ if (turnOffRadioButton.isChecked) {
+ CommandManager.sendTuyaDp(deviceInstance, "1".createCommand(true))
+ } else {
+ CommandManager.sendTuyaDp(deviceInstance, "1".createCommand(false))
+ }
+ }
+
+ modeRadioGroup.setOnCheckedChangeListener { _, checkedId ->
+ when (checkedId) {
+ R.id.manualRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("0"))
+ }
+ R.id.autoRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("1"))
+ }
+ R.id.sleepRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("2"))
+ }
+ R.id.potentRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("3"))
+ }
+ }
+ }
+
+ speedRadioGroup.setOnCheckedChangeListener { _, checkedId ->
+ when (checkedId) {
+ R.id.lowSpeedRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "4".createCommand("1"))
+ }
+ R.id.mediumSpeedRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "4".createCommand("2"))
+ }
+ R.id.highSpeedRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "4".createCommand("3"))
+ }
+ }
+ }
+
+ anionStatusSwitch.setOnClickListener {
+ if (anionStatusSwitch.isChecked) {
+ CommandManager.sendTuyaDp(deviceInstance, "6".createCommand(true))
+ } else {
+ CommandManager.sendTuyaDp(deviceInstance, "6".createCommand(false))
+ }
+ }
+
+ childStatusSwitch.setOnClickListener {
+ if (childStatusSwitch.isChecked) {
+ CommandManager.sendTuyaDp(deviceInstance, "7".createCommand(true))
+ } else {
+ CommandManager.sendTuyaDp(deviceInstance, "7".createCommand(false))
+ }
+ }
+
+ countDownLayout.setOnClickListener {
+ BottomActionSheet.Builder()
+ .setContext(this)
+ .setActionItemTitle(arrayListOf("不设置定时", "1h", "2h", "4h", "8h"))
+ .setItemTextColor(Color.BLUE)
+ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
+ override fun onActionItemClick(position: Int) {
+ //cancle,1,2,3,4
+ val value = when (position) {
+ 0 -> "cancle"
+ 1 -> "1"
+ 2 -> "2"
+ 3 -> "3"
+ 4 -> "4"
+ else -> "cancle"
+ }
+ CommandManager.sendTuyaDp(deviceInstance, "19".createCommand(value))
+ }
+ })
+ .build().show()
+ }
+
+ resetFilterLayout.setOnClickListener {
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("滤芯复位")
+ .setMessage("确定要复位滤芯么?")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onCancelClick() {
+
+ }
+
+ override fun onConfirmClick() {
+ CommandManager.sendTuyaDp(deviceInstance, "11".createCommand(true))
+ }
+ })
+ .build().show()
+ }
}
override fun onResume() {
diff --git a/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt b/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt
index 5185a18..68de8bf 100644
--- a/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt
+++ b/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt
@@ -99,8 +99,7 @@
"102" -> {}
"103" -> {
//出水开关
- val switchState = parseObject[it] as Boolean
- switchCheckBox.isChecked = switchState
+ switchCheckBox.isChecked = parseObject[it] as Boolean
}
"104" -> {
//出水量
diff --git a/app/src/main/res/drawable/selector_air_cleaner_high.xml b/app/src/main/res/drawable/selector_air_cleaner_high.xml
new file mode 100644
index 0000000..c31bd2e
--- /dev/null
+++ b/app/src/main/res/drawable/selector_air_cleaner_high.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/selector_air_cleaner_low.xml b/app/src/main/res/drawable/selector_air_cleaner_low.xml
new file mode 100644
index 0000000..440fe6d
--- /dev/null
+++ b/app/src/main/res/drawable/selector_air_cleaner_low.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/extensions/View.kt b/app/src/main/java/com/casic/br/extensions/View.kt
new file mode 100644
index 0000000..d6723b6
--- /dev/null
+++ b/app/src/main/java/com/casic/br/extensions/View.kt
@@ -0,0 +1,20 @@
+package com.casic.br.extensions
+
+import android.view.View
+import com.casic.br.utils.LocaleConstant
+
+fun View.disableView(vararg view: View?) {
+ this.alpha = LocaleConstant.VIEW_DISABLE
+ this.isEnabled = false
+ view.forEach {
+ it?.isEnabled = false
+ }
+}
+
+fun View.enableView(vararg view: View?) {
+ this.alpha = LocaleConstant.VIEW_ENABLE
+ this.isEnabled = true
+ view.forEach {
+ it?.isEnabled = true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/extensions/ViewGroup.kt b/app/src/main/java/com/casic/br/extensions/ViewGroup.kt
index 1bb5d99..e5ff21e 100644
--- a/app/src/main/java/com/casic/br/extensions/ViewGroup.kt
+++ b/app/src/main/java/com/casic/br/extensions/ViewGroup.kt
@@ -4,6 +4,7 @@
import android.view.ViewGroup
import com.casic.br.utils.LocaleConstant
+//TODO 后期整合到View扩展函数去
fun ViewGroup.disableLayout(vararg view: View) {
this.alpha = LocaleConstant.VIEW_DISABLE
this.isEnabled = false
@@ -18,12 +19,4 @@
view.forEach {
it.isEnabled = true
}
-}
-
-fun ViewGroup.disableView() {
- this.isEnabled = false
-}
-
-fun ViewGroup.enableView() {
- this.isEnabled = true
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/view/device/AirCleanerActivity.kt b/app/src/main/java/com/casic/br/view/device/AirCleanerActivity.kt
index 90c0880..1d2618f 100644
--- a/app/src/main/java/com/casic/br/view/device/AirCleanerActivity.kt
+++ b/app/src/main/java/com/casic/br/view/device/AirCleanerActivity.kt
@@ -3,15 +3,16 @@
import android.content.Context
import android.graphics.Color
import android.util.Log
+import com.alibaba.fastjson.JSONObject
import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
import com.casic.br.R
-import com.casic.br.extensions.initLayoutImmersionBar
-import com.casic.br.extensions.toChineseTypeName
+import com.casic.br.extensions.*
import com.casic.br.utils.CommandManager
import com.casic.br.utils.TuyaDeviceListener
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
@@ -23,6 +24,14 @@
import com.tuya.smart.sdk.api.ITuyaDevice
import com.tuya.smart.sdk.api.ITuyaOta
import kotlinx.android.synthetic.main.activity_air_cleaner.*
+import kotlinx.android.synthetic.main.activity_air_cleaner.deviceLogoView
+import kotlinx.android.synthetic.main.activity_air_cleaner.highSpeedRadioButton
+import kotlinx.android.synthetic.main.activity_air_cleaner.lowSpeedRadioButton
+import kotlinx.android.synthetic.main.activity_air_cleaner.modeRadioGroup
+import kotlinx.android.synthetic.main.activity_air_cleaner.rootView
+import kotlinx.android.synthetic.main.activity_air_cleaner.turnOffRadioButton
+import kotlinx.android.synthetic.main.activity_water_dispenser.*
+import kotlinx.android.synthetic.main.fragment_device_rangehood_control.*
import kotlinx.android.synthetic.main.include_device_title.*
/**
@@ -32,7 +41,6 @@
class AirCleanerActivity : KotlinBaseActivity() {
private val context: Context = this@AirCleanerActivity
- private lateinit var deviceId: String
private lateinit var tuyaOTA: ITuyaOta
private lateinit var deviceInstance: ITuyaDevice
@@ -50,7 +58,7 @@
}
override fun initData() {
- deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!!
+ val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!!
tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId)
//控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。
deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId)
@@ -71,7 +79,120 @@
override fun onDpUpdate(devId: String?, dpStr: String?) {
Log.d("Casic", "AirCleanerActivity => onDpUpdate: $dpStr")
//{"1":true,"11":false,"19":"cancle","2":6,"20":0,"22":"1","3":"1","4":"1","5":99,"6":true,"7":false}
- //{"1":true,"19":"cancle","2":6,"20":0,"22":"1","3":"1","4":"1","5":99,"6":true,"7":false}
+ val parseObject = JSONObject.parseObject(dpStr)
+ parseObject.keys.forEach {
+ when (it) {
+ "1" -> {
+ //设备开关
+ turnOffRadioButton.isChecked = parseObject[it] as Boolean
+ }
+ "2" -> {
+ //pm2.5
+ particulateView.text = parseObject[it].toString()
+ }
+ "3" -> {
+ //模式
+ when (parseObject[it]) {
+ "0" -> manualRadioButton.isChecked = true
+ "1" -> autoRadioButton.isChecked = true
+ "2" -> sleepRadioButton.isChecked = true
+ "3" -> potentRadioButton.isChecked = true
+ }
+ }
+ "4" -> {
+ //风速
+ when (parseObject[it]) {
+ "1" -> lowSpeedRadioButton.isChecked = true
+ "2" -> mediumSpeedRadioButton.isChecked = true
+ "3" -> highSpeedRadioButton.isChecked = true
+ }
+ }
+ "5" -> {
+ //滤芯剩余量
+ filterElementView.text = "${parseObject[it]}%"
+ }
+ "6" -> {
+ //负离子
+ anionStatusSwitch.isChecked = parseObject[it] as Boolean
+ }
+ "7" -> {
+ //童锁
+ val c = parseObject[it] as Boolean
+ childStatusSwitch.isChecked = c
+ if (c) {
+ turnOffRadioButton.disableView()
+ modeRadioGroup.disableView(
+ normalRadioButton,
+ autoRadioButton,
+ sleepRadioButton,
+ potentRadioButton
+ )
+ speedRadioGroup.disableView(
+ lowSpeedRadioButton,
+ mediumSpeedRadioButton,
+ highSpeedRadioButton
+ )
+ anionLayout.disableView(anionStatusSwitch)
+ countDownLayout.disableView()
+ resetFilterLayout.disableView()
+ } else {
+ turnOffRadioButton.enableView()
+ modeRadioGroup.enableView(
+ normalRadioButton,
+ autoRadioButton,
+ sleepRadioButton,
+ potentRadioButton
+ )
+ speedRadioGroup.enableView(
+ lowSpeedRadioButton,
+ mediumSpeedRadioButton,
+ highSpeedRadioButton
+ )
+ anionLayout.enableView(anionStatusSwitch)
+ countDownLayout.enableView()
+ resetFilterLayout.enableView()
+ }
+ }
+ "11" -> {
+ //滤芯复位
+ }
+ "19" -> {
+ //倒计时
+ }
+ "20" -> {
+ //倒计时剩余
+ }
+ "22" -> {
+ //空气质量
+ when (parseObject[it]) {
+ "1" -> {
+ airQualityView.text = "优"
+ airQualityView.setTextColor(
+ R.color.greenColor.convertColor(
+ context
+ )
+ )
+ }
+ "2" -> {
+ airQualityView.text = "良"
+ airQualityView.setTextColor(
+ R.color.mainThemeColor.convertColor(
+ context
+ )
+ )
+ }
+ else -> {
+ airQualityView.text = "差"
+ airQualityView.setTextColor(
+ R.color.redTextColor.convertColor(
+ context
+ )
+ )
+ }
+ }
+ }
+ }
+ }
}
})
}
@@ -129,6 +250,103 @@
})
.build().show()
}
+
+ turnOffRadioButton.setOnClickListener {
+ if (turnOffRadioButton.isChecked) {
+ CommandManager.sendTuyaDp(deviceInstance, "1".createCommand(true))
+ } else {
+ CommandManager.sendTuyaDp(deviceInstance, "1".createCommand(false))
+ }
+ }
+
+ modeRadioGroup.setOnCheckedChangeListener { _, checkedId ->
+ when (checkedId) {
+ R.id.manualRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("0"))
+ }
+ R.id.autoRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("1"))
+ }
+ R.id.sleepRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("2"))
+ }
+ R.id.potentRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("3"))
+ }
+ }
+ }
+
+ speedRadioGroup.setOnCheckedChangeListener { _, checkedId ->
+ when (checkedId) {
+ R.id.lowSpeedRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "4".createCommand("1"))
+ }
+ R.id.mediumSpeedRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "4".createCommand("2"))
+ }
+ R.id.highSpeedRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "4".createCommand("3"))
+ }
+ }
+ }
+
+ anionStatusSwitch.setOnClickListener {
+ if (anionStatusSwitch.isChecked) {
+ CommandManager.sendTuyaDp(deviceInstance, "6".createCommand(true))
+ } else {
+ CommandManager.sendTuyaDp(deviceInstance, "6".createCommand(false))
+ }
+ }
+
+ childStatusSwitch.setOnClickListener {
+ if (childStatusSwitch.isChecked) {
+ CommandManager.sendTuyaDp(deviceInstance, "7".createCommand(true))
+ } else {
+ CommandManager.sendTuyaDp(deviceInstance, "7".createCommand(false))
+ }
+ }
+
+ countDownLayout.setOnClickListener {
+ BottomActionSheet.Builder()
+ .setContext(this)
+ .setActionItemTitle(arrayListOf("不设置定时", "1h", "2h", "4h", "8h"))
+ .setItemTextColor(Color.BLUE)
+ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
+ override fun onActionItemClick(position: Int) {
+ //cancle,1,2,3,4
+ val value = when (position) {
+ 0 -> "cancle"
+ 1 -> "1"
+ 2 -> "2"
+ 3 -> "3"
+ 4 -> "4"
+ else -> "cancle"
+ }
+ CommandManager.sendTuyaDp(deviceInstance, "19".createCommand(value))
+ }
+ })
+ .build().show()
+ }
+
+ resetFilterLayout.setOnClickListener {
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("滤芯复位")
+ .setMessage("确定要复位滤芯么?")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onCancelClick() {
+
+ }
+
+ override fun onConfirmClick() {
+ CommandManager.sendTuyaDp(deviceInstance, "11".createCommand(true))
+ }
+ })
+ .build().show()
+ }
}
override fun onResume() {
diff --git a/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt b/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt
index 5185a18..68de8bf 100644
--- a/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt
+++ b/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt
@@ -99,8 +99,7 @@
"102" -> {}
"103" -> {
//出水开关
- val switchState = parseObject[it] as Boolean
- switchCheckBox.isChecked = switchState
+ switchCheckBox.isChecked = parseObject[it] as Boolean
}
"104" -> {
//出水量
diff --git a/app/src/main/res/drawable/selector_air_cleaner_high.xml b/app/src/main/res/drawable/selector_air_cleaner_high.xml
new file mode 100644
index 0000000..c31bd2e
--- /dev/null
+++ b/app/src/main/res/drawable/selector_air_cleaner_high.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/selector_air_cleaner_low.xml b/app/src/main/res/drawable/selector_air_cleaner_low.xml
new file mode 100644
index 0000000..440fe6d
--- /dev/null
+++ b/app/src/main/res/drawable/selector_air_cleaner_low.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/selector_air_cleaner_medium.xml b/app/src/main/res/drawable/selector_air_cleaner_medium.xml
new file mode 100644
index 0000000..8e7f40f
--- /dev/null
+++ b/app/src/main/res/drawable/selector_air_cleaner_medium.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/extensions/View.kt b/app/src/main/java/com/casic/br/extensions/View.kt
new file mode 100644
index 0000000..d6723b6
--- /dev/null
+++ b/app/src/main/java/com/casic/br/extensions/View.kt
@@ -0,0 +1,20 @@
+package com.casic.br.extensions
+
+import android.view.View
+import com.casic.br.utils.LocaleConstant
+
+fun View.disableView(vararg view: View?) {
+ this.alpha = LocaleConstant.VIEW_DISABLE
+ this.isEnabled = false
+ view.forEach {
+ it?.isEnabled = false
+ }
+}
+
+fun View.enableView(vararg view: View?) {
+ this.alpha = LocaleConstant.VIEW_ENABLE
+ this.isEnabled = true
+ view.forEach {
+ it?.isEnabled = true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/extensions/ViewGroup.kt b/app/src/main/java/com/casic/br/extensions/ViewGroup.kt
index 1bb5d99..e5ff21e 100644
--- a/app/src/main/java/com/casic/br/extensions/ViewGroup.kt
+++ b/app/src/main/java/com/casic/br/extensions/ViewGroup.kt
@@ -4,6 +4,7 @@
import android.view.ViewGroup
import com.casic.br.utils.LocaleConstant
+//TODO 后期整合到View扩展函数去
fun ViewGroup.disableLayout(vararg view: View) {
this.alpha = LocaleConstant.VIEW_DISABLE
this.isEnabled = false
@@ -18,12 +19,4 @@
view.forEach {
it.isEnabled = true
}
-}
-
-fun ViewGroup.disableView() {
- this.isEnabled = false
-}
-
-fun ViewGroup.enableView() {
- this.isEnabled = true
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/view/device/AirCleanerActivity.kt b/app/src/main/java/com/casic/br/view/device/AirCleanerActivity.kt
index 90c0880..1d2618f 100644
--- a/app/src/main/java/com/casic/br/view/device/AirCleanerActivity.kt
+++ b/app/src/main/java/com/casic/br/view/device/AirCleanerActivity.kt
@@ -3,15 +3,16 @@
import android.content.Context
import android.graphics.Color
import android.util.Log
+import com.alibaba.fastjson.JSONObject
import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
import com.casic.br.R
-import com.casic.br.extensions.initLayoutImmersionBar
-import com.casic.br.extensions.toChineseTypeName
+import com.casic.br.extensions.*
import com.casic.br.utils.CommandManager
import com.casic.br.utils.TuyaDeviceListener
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
@@ -23,6 +24,14 @@
import com.tuya.smart.sdk.api.ITuyaDevice
import com.tuya.smart.sdk.api.ITuyaOta
import kotlinx.android.synthetic.main.activity_air_cleaner.*
+import kotlinx.android.synthetic.main.activity_air_cleaner.deviceLogoView
+import kotlinx.android.synthetic.main.activity_air_cleaner.highSpeedRadioButton
+import kotlinx.android.synthetic.main.activity_air_cleaner.lowSpeedRadioButton
+import kotlinx.android.synthetic.main.activity_air_cleaner.modeRadioGroup
+import kotlinx.android.synthetic.main.activity_air_cleaner.rootView
+import kotlinx.android.synthetic.main.activity_air_cleaner.turnOffRadioButton
+import kotlinx.android.synthetic.main.activity_water_dispenser.*
+import kotlinx.android.synthetic.main.fragment_device_rangehood_control.*
import kotlinx.android.synthetic.main.include_device_title.*
/**
@@ -32,7 +41,6 @@
class AirCleanerActivity : KotlinBaseActivity() {
private val context: Context = this@AirCleanerActivity
- private lateinit var deviceId: String
private lateinit var tuyaOTA: ITuyaOta
private lateinit var deviceInstance: ITuyaDevice
@@ -50,7 +58,7 @@
}
override fun initData() {
- deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!!
+ val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!!
tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId)
//控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。
deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId)
@@ -71,7 +79,120 @@
override fun onDpUpdate(devId: String?, dpStr: String?) {
Log.d("Casic", "AirCleanerActivity => onDpUpdate: $dpStr")
//{"1":true,"11":false,"19":"cancle","2":6,"20":0,"22":"1","3":"1","4":"1","5":99,"6":true,"7":false}
- //{"1":true,"19":"cancle","2":6,"20":0,"22":"1","3":"1","4":"1","5":99,"6":true,"7":false}
+ val parseObject = JSONObject.parseObject(dpStr)
+ parseObject.keys.forEach {
+ when (it) {
+ "1" -> {
+ //设备开关
+ turnOffRadioButton.isChecked = parseObject[it] as Boolean
+ }
+ "2" -> {
+ //pm2.5
+ particulateView.text = parseObject[it].toString()
+ }
+ "3" -> {
+ //模式
+ when (parseObject[it]) {
+ "0" -> manualRadioButton.isChecked = true
+ "1" -> autoRadioButton.isChecked = true
+ "2" -> sleepRadioButton.isChecked = true
+ "3" -> potentRadioButton.isChecked = true
+ }
+ }
+ "4" -> {
+ //风速
+ when (parseObject[it]) {
+ "1" -> lowSpeedRadioButton.isChecked = true
+ "2" -> mediumSpeedRadioButton.isChecked = true
+ "3" -> highSpeedRadioButton.isChecked = true
+ }
+ }
+ "5" -> {
+ //滤芯剩余量
+ filterElementView.text = "${parseObject[it]}%"
+ }
+ "6" -> {
+ //负离子
+ anionStatusSwitch.isChecked = parseObject[it] as Boolean
+ }
+ "7" -> {
+ //童锁
+ val c = parseObject[it] as Boolean
+ childStatusSwitch.isChecked = c
+ if (c) {
+ turnOffRadioButton.disableView()
+ modeRadioGroup.disableView(
+ normalRadioButton,
+ autoRadioButton,
+ sleepRadioButton,
+ potentRadioButton
+ )
+ speedRadioGroup.disableView(
+ lowSpeedRadioButton,
+ mediumSpeedRadioButton,
+ highSpeedRadioButton
+ )
+ anionLayout.disableView(anionStatusSwitch)
+ countDownLayout.disableView()
+ resetFilterLayout.disableView()
+ } else {
+ turnOffRadioButton.enableView()
+ modeRadioGroup.enableView(
+ normalRadioButton,
+ autoRadioButton,
+ sleepRadioButton,
+ potentRadioButton
+ )
+ speedRadioGroup.enableView(
+ lowSpeedRadioButton,
+ mediumSpeedRadioButton,
+ highSpeedRadioButton
+ )
+ anionLayout.enableView(anionStatusSwitch)
+ countDownLayout.enableView()
+ resetFilterLayout.enableView()
+ }
+ }
+ "11" -> {
+ //滤芯复位
+ }
+ "19" -> {
+ //倒计时
+ }
+ "20" -> {
+ //倒计时剩余
+ }
+ "22" -> {
+ //空气质量
+ when (parseObject[it]) {
+ "1" -> {
+ airQualityView.text = "优"
+ airQualityView.setTextColor(
+ R.color.greenColor.convertColor(
+ context
+ )
+ )
+ }
+ "2" -> {
+ airQualityView.text = "良"
+ airQualityView.setTextColor(
+ R.color.mainThemeColor.convertColor(
+ context
+ )
+ )
+ }
+ else -> {
+ airQualityView.text = "差"
+ airQualityView.setTextColor(
+ R.color.redTextColor.convertColor(
+ context
+ )
+ )
+ }
+ }
+ }
+ }
+ }
}
})
}
@@ -129,6 +250,103 @@
})
.build().show()
}
+
+ turnOffRadioButton.setOnClickListener {
+ if (turnOffRadioButton.isChecked) {
+ CommandManager.sendTuyaDp(deviceInstance, "1".createCommand(true))
+ } else {
+ CommandManager.sendTuyaDp(deviceInstance, "1".createCommand(false))
+ }
+ }
+
+ modeRadioGroup.setOnCheckedChangeListener { _, checkedId ->
+ when (checkedId) {
+ R.id.manualRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("0"))
+ }
+ R.id.autoRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("1"))
+ }
+ R.id.sleepRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("2"))
+ }
+ R.id.potentRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("3"))
+ }
+ }
+ }
+
+ speedRadioGroup.setOnCheckedChangeListener { _, checkedId ->
+ when (checkedId) {
+ R.id.lowSpeedRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "4".createCommand("1"))
+ }
+ R.id.mediumSpeedRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "4".createCommand("2"))
+ }
+ R.id.highSpeedRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "4".createCommand("3"))
+ }
+ }
+ }
+
+ anionStatusSwitch.setOnClickListener {
+ if (anionStatusSwitch.isChecked) {
+ CommandManager.sendTuyaDp(deviceInstance, "6".createCommand(true))
+ } else {
+ CommandManager.sendTuyaDp(deviceInstance, "6".createCommand(false))
+ }
+ }
+
+ childStatusSwitch.setOnClickListener {
+ if (childStatusSwitch.isChecked) {
+ CommandManager.sendTuyaDp(deviceInstance, "7".createCommand(true))
+ } else {
+ CommandManager.sendTuyaDp(deviceInstance, "7".createCommand(false))
+ }
+ }
+
+ countDownLayout.setOnClickListener {
+ BottomActionSheet.Builder()
+ .setContext(this)
+ .setActionItemTitle(arrayListOf("不设置定时", "1h", "2h", "4h", "8h"))
+ .setItemTextColor(Color.BLUE)
+ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
+ override fun onActionItemClick(position: Int) {
+ //cancle,1,2,3,4
+ val value = when (position) {
+ 0 -> "cancle"
+ 1 -> "1"
+ 2 -> "2"
+ 3 -> "3"
+ 4 -> "4"
+ else -> "cancle"
+ }
+ CommandManager.sendTuyaDp(deviceInstance, "19".createCommand(value))
+ }
+ })
+ .build().show()
+ }
+
+ resetFilterLayout.setOnClickListener {
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("滤芯复位")
+ .setMessage("确定要复位滤芯么?")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onCancelClick() {
+
+ }
+
+ override fun onConfirmClick() {
+ CommandManager.sendTuyaDp(deviceInstance, "11".createCommand(true))
+ }
+ })
+ .build().show()
+ }
}
override fun onResume() {
diff --git a/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt b/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt
index 5185a18..68de8bf 100644
--- a/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt
+++ b/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt
@@ -99,8 +99,7 @@
"102" -> {}
"103" -> {
//出水开关
- val switchState = parseObject[it] as Boolean
- switchCheckBox.isChecked = switchState
+ switchCheckBox.isChecked = parseObject[it] as Boolean
}
"104" -> {
//出水量
diff --git a/app/src/main/res/drawable/selector_air_cleaner_high.xml b/app/src/main/res/drawable/selector_air_cleaner_high.xml
new file mode 100644
index 0000000..c31bd2e
--- /dev/null
+++ b/app/src/main/res/drawable/selector_air_cleaner_high.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/selector_air_cleaner_low.xml b/app/src/main/res/drawable/selector_air_cleaner_low.xml
new file mode 100644
index 0000000..440fe6d
--- /dev/null
+++ b/app/src/main/res/drawable/selector_air_cleaner_low.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/selector_air_cleaner_medium.xml b/app/src/main/res/drawable/selector_air_cleaner_medium.xml
new file mode 100644
index 0000000..8e7f40f
--- /dev/null
+++ b/app/src/main/res/drawable/selector_air_cleaner_medium.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_air_cleaner.xml b/app/src/main/res/layout/activity_air_cleaner.xml
index bb137e8..344af9a 100644
--- a/app/src/main/res/layout/activity_air_cleaner.xml
+++ b/app/src/main/res/layout/activity_air_cleaner.xml
@@ -72,7 +72,7 @@
android:textColor="@color/hintTextColor" />
@@ -222,7 +223,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
- android:drawableTop="@drawable/selector_water_heater_initiate"
+ android:drawableTop="@drawable/selector_air_cleaner_medium"
android:drawablePadding="@dimen/dp_5"
android:gravity="center"
android:text="中速" />
@@ -233,7 +234,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
- android:drawableTop="@drawable/selector_water_heater_reservation"
+ android:drawableTop="@drawable/selector_air_cleaner_high"
android:drawablePadding="@dimen/dp_5"
android:gravity="center"
android:text="高速" />
@@ -249,6 +250,7 @@
android:orientation="horizontal">
onDpUpdate: $dpStr")
//{"1":true,"11":false,"19":"cancle","2":6,"20":0,"22":"1","3":"1","4":"1","5":99,"6":true,"7":false}
- //{"1":true,"19":"cancle","2":6,"20":0,"22":"1","3":"1","4":"1","5":99,"6":true,"7":false}
+ val parseObject = JSONObject.parseObject(dpStr)
+ parseObject.keys.forEach {
+ when (it) {
+ "1" -> {
+ //设备开关
+ turnOffRadioButton.isChecked = parseObject[it] as Boolean
+ }
+ "2" -> {
+ //pm2.5
+ particulateView.text = parseObject[it].toString()
+ }
+ "3" -> {
+ //模式
+ when (parseObject[it]) {
+ "0" -> manualRadioButton.isChecked = true
+ "1" -> autoRadioButton.isChecked = true
+ "2" -> sleepRadioButton.isChecked = true
+ "3" -> potentRadioButton.isChecked = true
+ }
+ }
+ "4" -> {
+ //风速
+ when (parseObject[it]) {
+ "1" -> lowSpeedRadioButton.isChecked = true
+ "2" -> mediumSpeedRadioButton.isChecked = true
+ "3" -> highSpeedRadioButton.isChecked = true
+ }
+ }
+ "5" -> {
+ //滤芯剩余量
+ filterElementView.text = "${parseObject[it]}%"
+ }
+ "6" -> {
+ //负离子
+ anionStatusSwitch.isChecked = parseObject[it] as Boolean
+ }
+ "7" -> {
+ //童锁
+ val c = parseObject[it] as Boolean
+ childStatusSwitch.isChecked = c
+ if (c) {
+ turnOffRadioButton.disableView()
+ modeRadioGroup.disableView(
+ normalRadioButton,
+ autoRadioButton,
+ sleepRadioButton,
+ potentRadioButton
+ )
+ speedRadioGroup.disableView(
+ lowSpeedRadioButton,
+ mediumSpeedRadioButton,
+ highSpeedRadioButton
+ )
+ anionLayout.disableView(anionStatusSwitch)
+ countDownLayout.disableView()
+ resetFilterLayout.disableView()
+ } else {
+ turnOffRadioButton.enableView()
+ modeRadioGroup.enableView(
+ normalRadioButton,
+ autoRadioButton,
+ sleepRadioButton,
+ potentRadioButton
+ )
+ speedRadioGroup.enableView(
+ lowSpeedRadioButton,
+ mediumSpeedRadioButton,
+ highSpeedRadioButton
+ )
+ anionLayout.enableView(anionStatusSwitch)
+ countDownLayout.enableView()
+ resetFilterLayout.enableView()
+ }
+ }
+ "11" -> {
+ //滤芯复位
+ }
+ "19" -> {
+ //倒计时
+ }
+ "20" -> {
+ //倒计时剩余
+ }
+ "22" -> {
+ //空气质量
+ when (parseObject[it]) {
+ "1" -> {
+ airQualityView.text = "优"
+ airQualityView.setTextColor(
+ R.color.greenColor.convertColor(
+ context
+ )
+ )
+ }
+ "2" -> {
+ airQualityView.text = "良"
+ airQualityView.setTextColor(
+ R.color.mainThemeColor.convertColor(
+ context
+ )
+ )
+ }
+ else -> {
+ airQualityView.text = "差"
+ airQualityView.setTextColor(
+ R.color.redTextColor.convertColor(
+ context
+ )
+ )
+ }
+ }
+ }
+ }
+ }
}
})
}
@@ -129,6 +250,103 @@
})
.build().show()
}
+
+ turnOffRadioButton.setOnClickListener {
+ if (turnOffRadioButton.isChecked) {
+ CommandManager.sendTuyaDp(deviceInstance, "1".createCommand(true))
+ } else {
+ CommandManager.sendTuyaDp(deviceInstance, "1".createCommand(false))
+ }
+ }
+
+ modeRadioGroup.setOnCheckedChangeListener { _, checkedId ->
+ when (checkedId) {
+ R.id.manualRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("0"))
+ }
+ R.id.autoRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("1"))
+ }
+ R.id.sleepRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("2"))
+ }
+ R.id.potentRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("3"))
+ }
+ }
+ }
+
+ speedRadioGroup.setOnCheckedChangeListener { _, checkedId ->
+ when (checkedId) {
+ R.id.lowSpeedRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "4".createCommand("1"))
+ }
+ R.id.mediumSpeedRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "4".createCommand("2"))
+ }
+ R.id.highSpeedRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "4".createCommand("3"))
+ }
+ }
+ }
+
+ anionStatusSwitch.setOnClickListener {
+ if (anionStatusSwitch.isChecked) {
+ CommandManager.sendTuyaDp(deviceInstance, "6".createCommand(true))
+ } else {
+ CommandManager.sendTuyaDp(deviceInstance, "6".createCommand(false))
+ }
+ }
+
+ childStatusSwitch.setOnClickListener {
+ if (childStatusSwitch.isChecked) {
+ CommandManager.sendTuyaDp(deviceInstance, "7".createCommand(true))
+ } else {
+ CommandManager.sendTuyaDp(deviceInstance, "7".createCommand(false))
+ }
+ }
+
+ countDownLayout.setOnClickListener {
+ BottomActionSheet.Builder()
+ .setContext(this)
+ .setActionItemTitle(arrayListOf("不设置定时", "1h", "2h", "4h", "8h"))
+ .setItemTextColor(Color.BLUE)
+ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
+ override fun onActionItemClick(position: Int) {
+ //cancle,1,2,3,4
+ val value = when (position) {
+ 0 -> "cancle"
+ 1 -> "1"
+ 2 -> "2"
+ 3 -> "3"
+ 4 -> "4"
+ else -> "cancle"
+ }
+ CommandManager.sendTuyaDp(deviceInstance, "19".createCommand(value))
+ }
+ })
+ .build().show()
+ }
+
+ resetFilterLayout.setOnClickListener {
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("滤芯复位")
+ .setMessage("确定要复位滤芯么?")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onCancelClick() {
+
+ }
+
+ override fun onConfirmClick() {
+ CommandManager.sendTuyaDp(deviceInstance, "11".createCommand(true))
+ }
+ })
+ .build().show()
+ }
}
override fun onResume() {
diff --git a/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt b/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt
index 5185a18..68de8bf 100644
--- a/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt
+++ b/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt
@@ -99,8 +99,7 @@
"102" -> {}
"103" -> {
//出水开关
- val switchState = parseObject[it] as Boolean
- switchCheckBox.isChecked = switchState
+ switchCheckBox.isChecked = parseObject[it] as Boolean
}
"104" -> {
//出水量
diff --git a/app/src/main/res/drawable/selector_air_cleaner_high.xml b/app/src/main/res/drawable/selector_air_cleaner_high.xml
new file mode 100644
index 0000000..c31bd2e
--- /dev/null
+++ b/app/src/main/res/drawable/selector_air_cleaner_high.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/selector_air_cleaner_low.xml b/app/src/main/res/drawable/selector_air_cleaner_low.xml
new file mode 100644
index 0000000..440fe6d
--- /dev/null
+++ b/app/src/main/res/drawable/selector_air_cleaner_low.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/selector_air_cleaner_medium.xml b/app/src/main/res/drawable/selector_air_cleaner_medium.xml
new file mode 100644
index 0000000..8e7f40f
--- /dev/null
+++ b/app/src/main/res/drawable/selector_air_cleaner_medium.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_air_cleaner.xml b/app/src/main/res/layout/activity_air_cleaner.xml
index bb137e8..344af9a 100644
--- a/app/src/main/res/layout/activity_air_cleaner.xml
+++ b/app/src/main/res/layout/activity_air_cleaner.xml
@@ -72,7 +72,7 @@
android:textColor="@color/hintTextColor" />
@@ -222,7 +223,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
- android:drawableTop="@drawable/selector_water_heater_initiate"
+ android:drawableTop="@drawable/selector_air_cleaner_medium"
android:drawablePadding="@dimen/dp_5"
android:gravity="center"
android:text="中速" />
@@ -233,7 +234,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
- android:drawableTop="@drawable/selector_water_heater_reservation"
+ android:drawableTop="@drawable/selector_air_cleaner_high"
android:drawablePadding="@dimen/dp_5"
android:gravity="center"
android:text="高速" />
@@ -249,6 +250,7 @@
android:orientation="horizontal">
onDpUpdate: $dpStr")
//{"1":true,"11":false,"19":"cancle","2":6,"20":0,"22":"1","3":"1","4":"1","5":99,"6":true,"7":false}
- //{"1":true,"19":"cancle","2":6,"20":0,"22":"1","3":"1","4":"1","5":99,"6":true,"7":false}
+ val parseObject = JSONObject.parseObject(dpStr)
+ parseObject.keys.forEach {
+ when (it) {
+ "1" -> {
+ //设备开关
+ turnOffRadioButton.isChecked = parseObject[it] as Boolean
+ }
+ "2" -> {
+ //pm2.5
+ particulateView.text = parseObject[it].toString()
+ }
+ "3" -> {
+ //模式
+ when (parseObject[it]) {
+ "0" -> manualRadioButton.isChecked = true
+ "1" -> autoRadioButton.isChecked = true
+ "2" -> sleepRadioButton.isChecked = true
+ "3" -> potentRadioButton.isChecked = true
+ }
+ }
+ "4" -> {
+ //风速
+ when (parseObject[it]) {
+ "1" -> lowSpeedRadioButton.isChecked = true
+ "2" -> mediumSpeedRadioButton.isChecked = true
+ "3" -> highSpeedRadioButton.isChecked = true
+ }
+ }
+ "5" -> {
+ //滤芯剩余量
+ filterElementView.text = "${parseObject[it]}%"
+ }
+ "6" -> {
+ //负离子
+ anionStatusSwitch.isChecked = parseObject[it] as Boolean
+ }
+ "7" -> {
+ //童锁
+ val c = parseObject[it] as Boolean
+ childStatusSwitch.isChecked = c
+ if (c) {
+ turnOffRadioButton.disableView()
+ modeRadioGroup.disableView(
+ normalRadioButton,
+ autoRadioButton,
+ sleepRadioButton,
+ potentRadioButton
+ )
+ speedRadioGroup.disableView(
+ lowSpeedRadioButton,
+ mediumSpeedRadioButton,
+ highSpeedRadioButton
+ )
+ anionLayout.disableView(anionStatusSwitch)
+ countDownLayout.disableView()
+ resetFilterLayout.disableView()
+ } else {
+ turnOffRadioButton.enableView()
+ modeRadioGroup.enableView(
+ normalRadioButton,
+ autoRadioButton,
+ sleepRadioButton,
+ potentRadioButton
+ )
+ speedRadioGroup.enableView(
+ lowSpeedRadioButton,
+ mediumSpeedRadioButton,
+ highSpeedRadioButton
+ )
+ anionLayout.enableView(anionStatusSwitch)
+ countDownLayout.enableView()
+ resetFilterLayout.enableView()
+ }
+ }
+ "11" -> {
+ //滤芯复位
+ }
+ "19" -> {
+ //倒计时
+ }
+ "20" -> {
+ //倒计时剩余
+ }
+ "22" -> {
+ //空气质量
+ when (parseObject[it]) {
+ "1" -> {
+ airQualityView.text = "优"
+ airQualityView.setTextColor(
+ R.color.greenColor.convertColor(
+ context
+ )
+ )
+ }
+ "2" -> {
+ airQualityView.text = "良"
+ airQualityView.setTextColor(
+ R.color.mainThemeColor.convertColor(
+ context
+ )
+ )
+ }
+ else -> {
+ airQualityView.text = "差"
+ airQualityView.setTextColor(
+ R.color.redTextColor.convertColor(
+ context
+ )
+ )
+ }
+ }
+ }
+ }
+ }
}
})
}
@@ -129,6 +250,103 @@
})
.build().show()
}
+
+ turnOffRadioButton.setOnClickListener {
+ if (turnOffRadioButton.isChecked) {
+ CommandManager.sendTuyaDp(deviceInstance, "1".createCommand(true))
+ } else {
+ CommandManager.sendTuyaDp(deviceInstance, "1".createCommand(false))
+ }
+ }
+
+ modeRadioGroup.setOnCheckedChangeListener { _, checkedId ->
+ when (checkedId) {
+ R.id.manualRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("0"))
+ }
+ R.id.autoRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("1"))
+ }
+ R.id.sleepRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("2"))
+ }
+ R.id.potentRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "3".createCommand("3"))
+ }
+ }
+ }
+
+ speedRadioGroup.setOnCheckedChangeListener { _, checkedId ->
+ when (checkedId) {
+ R.id.lowSpeedRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "4".createCommand("1"))
+ }
+ R.id.mediumSpeedRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "4".createCommand("2"))
+ }
+ R.id.highSpeedRadioButton -> {
+ CommandManager.sendTuyaDp(deviceInstance, "4".createCommand("3"))
+ }
+ }
+ }
+
+ anionStatusSwitch.setOnClickListener {
+ if (anionStatusSwitch.isChecked) {
+ CommandManager.sendTuyaDp(deviceInstance, "6".createCommand(true))
+ } else {
+ CommandManager.sendTuyaDp(deviceInstance, "6".createCommand(false))
+ }
+ }
+
+ childStatusSwitch.setOnClickListener {
+ if (childStatusSwitch.isChecked) {
+ CommandManager.sendTuyaDp(deviceInstance, "7".createCommand(true))
+ } else {
+ CommandManager.sendTuyaDp(deviceInstance, "7".createCommand(false))
+ }
+ }
+
+ countDownLayout.setOnClickListener {
+ BottomActionSheet.Builder()
+ .setContext(this)
+ .setActionItemTitle(arrayListOf("不设置定时", "1h", "2h", "4h", "8h"))
+ .setItemTextColor(Color.BLUE)
+ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
+ override fun onActionItemClick(position: Int) {
+ //cancle,1,2,3,4
+ val value = when (position) {
+ 0 -> "cancle"
+ 1 -> "1"
+ 2 -> "2"
+ 3 -> "3"
+ 4 -> "4"
+ else -> "cancle"
+ }
+ CommandManager.sendTuyaDp(deviceInstance, "19".createCommand(value))
+ }
+ })
+ .build().show()
+ }
+
+ resetFilterLayout.setOnClickListener {
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("滤芯复位")
+ .setMessage("确定要复位滤芯么?")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onCancelClick() {
+
+ }
+
+ override fun onConfirmClick() {
+ CommandManager.sendTuyaDp(deviceInstance, "11".createCommand(true))
+ }
+ })
+ .build().show()
+ }
}
override fun onResume() {
diff --git a/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt b/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt
index 5185a18..68de8bf 100644
--- a/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt
+++ b/app/src/main/java/com/casic/br/view/device/WaterDispenserActivity.kt
@@ -99,8 +99,7 @@
"102" -> {}
"103" -> {
//出水开关
- val switchState = parseObject[it] as Boolean
- switchCheckBox.isChecked = switchState
+ switchCheckBox.isChecked = parseObject[it] as Boolean
}
"104" -> {
//出水量
diff --git a/app/src/main/res/drawable/selector_air_cleaner_high.xml b/app/src/main/res/drawable/selector_air_cleaner_high.xml
new file mode 100644
index 0000000..c31bd2e
--- /dev/null
+++ b/app/src/main/res/drawable/selector_air_cleaner_high.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/selector_air_cleaner_low.xml b/app/src/main/res/drawable/selector_air_cleaner_low.xml
new file mode 100644
index 0000000..440fe6d
--- /dev/null
+++ b/app/src/main/res/drawable/selector_air_cleaner_low.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/selector_air_cleaner_medium.xml b/app/src/main/res/drawable/selector_air_cleaner_medium.xml
new file mode 100644
index 0000000..8e7f40f
--- /dev/null
+++ b/app/src/main/res/drawable/selector_air_cleaner_medium.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_air_cleaner.xml b/app/src/main/res/layout/activity_air_cleaner.xml
index bb137e8..344af9a 100644
--- a/app/src/main/res/layout/activity_air_cleaner.xml
+++ b/app/src/main/res/layout/activity_air_cleaner.xml
@@ -72,7 +72,7 @@
android:textColor="@color/hintTextColor" />
@@ -222,7 +223,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
- android:drawableTop="@drawable/selector_water_heater_initiate"
+ android:drawableTop="@drawable/selector_air_cleaner_medium"
android:drawablePadding="@dimen/dp_5"
android:gravity="center"
android:text="中速" />
@@ -233,7 +234,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
- android:drawableTop="@drawable/selector_water_heater_reservation"
+ android:drawableTop="@drawable/selector_air_cleaner_high"
android:drawablePadding="@dimen/dp_5"
android:gravity="center"
android:text="高速" />
@@ -249,6 +250,7 @@
android:orientation="horizontal">