diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 70ef895..1d57b75 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -72,6 +72,7 @@
+
+
"智能热水器"
"rqz" -> "智能燃气灶"
"bgl" -> "智能壁挂炉"
+ "pc" -> "Wi-Fi智能插排"
+ "cz" -> "Wi-Fi智能插座"
"wg2" -> "多功能网关"
else -> "其他"
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 70ef895..1d57b75 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -72,6 +72,7 @@
+
"智能热水器"
"rqz" -> "智能燃气灶"
"bgl" -> "智能壁挂炉"
+ "pc" -> "Wi-Fi智能插排"
+ "cz" -> "Wi-Fi智能插座"
"wg2" -> "多功能网关"
else -> "其他"
}
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 7c899a0..d1f82d6 100644
--- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
@@ -152,6 +152,10 @@
//排插
requireContext().navigatePageTo(deviceModel.devId)
}
+ selectedCategory.contains("cz") -> {
+ //插座
+ requireContext().navigatePageTo(deviceModel.devId)
+ }
selectedCategory.contains("wg2") -> {
//网关
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 70ef895..1d57b75 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -72,6 +72,7 @@
+
"智能热水器"
"rqz" -> "智能燃气灶"
"bgl" -> "智能壁挂炉"
+ "pc" -> "Wi-Fi智能插排"
+ "cz" -> "Wi-Fi智能插座"
"wg2" -> "多功能网关"
else -> "其他"
}
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 7c899a0..d1f82d6 100644
--- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
@@ -152,6 +152,10 @@
//排插
requireContext().navigatePageTo(deviceModel.devId)
}
+ selectedCategory.contains("cz") -> {
+ //插座
+ requireContext().navigatePageTo(deviceModel.devId)
+ }
selectedCategory.contains("wg2") -> {
//网关
}
diff --git a/app/src/main/java/com/casic/br/view/device/SingleStripActivity.kt b/app/src/main/java/com/casic/br/view/device/SingleStripActivity.kt
new file mode 100644
index 0000000..122ef71
--- /dev/null
+++ b/app/src/main/java/com/casic/br/view/device/SingleStripActivity.kt
@@ -0,0 +1,166 @@
+package com.casic.br.view.device
+
+import android.graphics.Color
+import android.util.Log
+import com.alibaba.fastjson.JSONObject
+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.casic.br.utils.TuyaDeviceListener
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.extensions.toJson
+import com.pengxh.kt.lite.utils.Constant
+import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
+import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
+import com.tuya.smart.android.device.bean.UpgradeInfoBean
+import com.tuya.smart.home.sdk.TuyaHomeSdk
+import com.tuya.smart.sdk.api.IGetOtaInfoCallback
+import com.tuya.smart.sdk.api.IResultCallback
+import com.tuya.smart.sdk.api.ITuyaDevice
+import com.tuya.smart.sdk.api.ITuyaOta
+import kotlinx.android.synthetic.main.activity_single_strip.*
+import kotlinx.android.synthetic.main.include_device_title.*
+
+/**
+ * 插座
+ * TODO 数据上报暂缓
+ * */
+class SingleStripActivity : KotlinBaseActivity() {
+
+ private val kTag = "SingleStripActivity"
+ private val context = this@SingleStripActivity
+ private lateinit var tuyaOTA: ITuyaOta
+ private lateinit var deviceInstance: ITuyaDevice
+
+ override fun initLayoutView(): Int = R.layout.activity_single_strip
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ initLayoutImmersionBar(rootView)
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initData() {
+ val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!!
+ tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId)
+ //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。
+ deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId)
+
+ val deviceBean = TuyaHomeSdk.getDataInstance().getDeviceBean(deviceId)
+ if (deviceBean == null) {
+ "查询设备信息失败,请检查设备是否已离线".show(this)
+ return
+ }
+ Log.d(kTag, deviceBean.dps.toJson())
+ changeViewStatus(deviceBean.dps["1"] as Boolean)
+
+ deviceInstance.registerDevListener(object : TuyaDeviceListener() {
+ override fun onDpUpdate(devId: String?, dpStr: String?) {
+ Log.d(kTag, "onDpUpdate: $dpStr")
+ changeViewStatus(JSONObject.parseObject(dpStr)["1"] as Boolean)
+ }
+ })
+ }
+
+ private fun changeViewStatus(stripStatus: Boolean) {
+ turnOffCheckBox.isChecked = stripStatus
+ stripStatusView.text = if (stripStatus) {
+ "插座已开启"
+ } else {
+ "插座已关闭"
+ }
+ }
+
+ override fun initEvent() {
+ rightOperateView.setOnClickListener {
+ BottomActionSheet.Builder()
+ .setContext(this)
+ .setActionItemTitle(arrayListOf("固件升级", "移除设备"))
+ .setItemTextColor(Color.BLUE)
+ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
+ override fun onActionItemClick(position: Int) {
+ when (position) {
+ 0 -> {
+ tuyaOTA.getOtaInfo(object : IGetOtaInfoCallback {
+ override fun onSuccess(upgradeInfoBeans: MutableList?) {
+ if (upgradeInfoBeans.isNullOrEmpty()) {
+ "无新版本可用".show(context)
+ }
+ val mainModel = upgradeInfoBeans!![0]
+ when (mainModel.upgradeStatus) {
+ 1 -> updateVersion()
+ 2 -> {
+
+ }
+ else -> "主联网模组无新版本可用".show(context)
+ }
+
+ val mcuModel = upgradeInfoBeans[1]
+ when (mcuModel.upgradeStatus) {
+ 1 -> updateVersion()
+ 2 -> {
+
+ }
+ else -> "MCU模块无新版本可用".show(context)
+ }
+ }
+
+ override fun onFailure(code: String?, error: String?) {
+
+ }
+ })
+ }
+ 1 -> deviceInstance.removeDevice(object : IResultCallback {
+ override fun onError(code: String?, error: String?) {
+ Log.d(kTag, "onError: $error")
+ }
+
+ override fun onSuccess() {
+ finish()
+ }
+ })
+ }
+ }
+ })
+ .build().show()
+ }
+
+ turnOffCheckBox.setOnCheckedChangeListener { _, isChecked ->
+ CommandManager.sendTuyaDp(deviceInstance, "1".createCommand(isChecked))
+ }
+ }
+
+ private fun updateVersion() {
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("版本升级")
+ .setMessage("有新版本可以升级,是否升级?")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onCancelClick() {
+ tuyaOTA.startOta()
+ }
+
+ override fun onConfirmClick() {
+
+ }
+ })
+ .build().show()
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ deviceInstance.unRegisterDevListener()
+ deviceInstance.onDestroy()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 70ef895..1d57b75 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -72,6 +72,7 @@
+
"智能热水器"
"rqz" -> "智能燃气灶"
"bgl" -> "智能壁挂炉"
+ "pc" -> "Wi-Fi智能插排"
+ "cz" -> "Wi-Fi智能插座"
"wg2" -> "多功能网关"
else -> "其他"
}
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 7c899a0..d1f82d6 100644
--- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
@@ -152,6 +152,10 @@
//排插
requireContext().navigatePageTo(deviceModel.devId)
}
+ selectedCategory.contains("cz") -> {
+ //插座
+ requireContext().navigatePageTo(deviceModel.devId)
+ }
selectedCategory.contains("wg2") -> {
//网关
}
diff --git a/app/src/main/java/com/casic/br/view/device/SingleStripActivity.kt b/app/src/main/java/com/casic/br/view/device/SingleStripActivity.kt
new file mode 100644
index 0000000..122ef71
--- /dev/null
+++ b/app/src/main/java/com/casic/br/view/device/SingleStripActivity.kt
@@ -0,0 +1,166 @@
+package com.casic.br.view.device
+
+import android.graphics.Color
+import android.util.Log
+import com.alibaba.fastjson.JSONObject
+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.casic.br.utils.TuyaDeviceListener
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.extensions.toJson
+import com.pengxh.kt.lite.utils.Constant
+import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
+import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
+import com.tuya.smart.android.device.bean.UpgradeInfoBean
+import com.tuya.smart.home.sdk.TuyaHomeSdk
+import com.tuya.smart.sdk.api.IGetOtaInfoCallback
+import com.tuya.smart.sdk.api.IResultCallback
+import com.tuya.smart.sdk.api.ITuyaDevice
+import com.tuya.smart.sdk.api.ITuyaOta
+import kotlinx.android.synthetic.main.activity_single_strip.*
+import kotlinx.android.synthetic.main.include_device_title.*
+
+/**
+ * 插座
+ * TODO 数据上报暂缓
+ * */
+class SingleStripActivity : KotlinBaseActivity() {
+
+ private val kTag = "SingleStripActivity"
+ private val context = this@SingleStripActivity
+ private lateinit var tuyaOTA: ITuyaOta
+ private lateinit var deviceInstance: ITuyaDevice
+
+ override fun initLayoutView(): Int = R.layout.activity_single_strip
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ initLayoutImmersionBar(rootView)
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initData() {
+ val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!!
+ tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId)
+ //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。
+ deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId)
+
+ val deviceBean = TuyaHomeSdk.getDataInstance().getDeviceBean(deviceId)
+ if (deviceBean == null) {
+ "查询设备信息失败,请检查设备是否已离线".show(this)
+ return
+ }
+ Log.d(kTag, deviceBean.dps.toJson())
+ changeViewStatus(deviceBean.dps["1"] as Boolean)
+
+ deviceInstance.registerDevListener(object : TuyaDeviceListener() {
+ override fun onDpUpdate(devId: String?, dpStr: String?) {
+ Log.d(kTag, "onDpUpdate: $dpStr")
+ changeViewStatus(JSONObject.parseObject(dpStr)["1"] as Boolean)
+ }
+ })
+ }
+
+ private fun changeViewStatus(stripStatus: Boolean) {
+ turnOffCheckBox.isChecked = stripStatus
+ stripStatusView.text = if (stripStatus) {
+ "插座已开启"
+ } else {
+ "插座已关闭"
+ }
+ }
+
+ override fun initEvent() {
+ rightOperateView.setOnClickListener {
+ BottomActionSheet.Builder()
+ .setContext(this)
+ .setActionItemTitle(arrayListOf("固件升级", "移除设备"))
+ .setItemTextColor(Color.BLUE)
+ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
+ override fun onActionItemClick(position: Int) {
+ when (position) {
+ 0 -> {
+ tuyaOTA.getOtaInfo(object : IGetOtaInfoCallback {
+ override fun onSuccess(upgradeInfoBeans: MutableList?) {
+ if (upgradeInfoBeans.isNullOrEmpty()) {
+ "无新版本可用".show(context)
+ }
+ val mainModel = upgradeInfoBeans!![0]
+ when (mainModel.upgradeStatus) {
+ 1 -> updateVersion()
+ 2 -> {
+
+ }
+ else -> "主联网模组无新版本可用".show(context)
+ }
+
+ val mcuModel = upgradeInfoBeans[1]
+ when (mcuModel.upgradeStatus) {
+ 1 -> updateVersion()
+ 2 -> {
+
+ }
+ else -> "MCU模块无新版本可用".show(context)
+ }
+ }
+
+ override fun onFailure(code: String?, error: String?) {
+
+ }
+ })
+ }
+ 1 -> deviceInstance.removeDevice(object : IResultCallback {
+ override fun onError(code: String?, error: String?) {
+ Log.d(kTag, "onError: $error")
+ }
+
+ override fun onSuccess() {
+ finish()
+ }
+ })
+ }
+ }
+ })
+ .build().show()
+ }
+
+ turnOffCheckBox.setOnCheckedChangeListener { _, isChecked ->
+ CommandManager.sendTuyaDp(deviceInstance, "1".createCommand(isChecked))
+ }
+ }
+
+ private fun updateVersion() {
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("版本升级")
+ .setMessage("有新版本可以升级,是否升级?")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onCancelClick() {
+ tuyaOTA.startOta()
+ }
+
+ override fun onConfirmClick() {
+
+ }
+ })
+ .build().show()
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ deviceInstance.unRegisterDevListener()
+ deviceInstance.onDestroy()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_stroke_layout_gray_circle.xml b/app/src/main/res/drawable/bg_stroke_layout_gray_circle.xml
new file mode 100644
index 0000000..bf62be5
--- /dev/null
+++ b/app/src/main/res/drawable/bg_stroke_layout_gray_circle.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 70ef895..1d57b75 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -72,6 +72,7 @@
+
"智能热水器"
"rqz" -> "智能燃气灶"
"bgl" -> "智能壁挂炉"
+ "pc" -> "Wi-Fi智能插排"
+ "cz" -> "Wi-Fi智能插座"
"wg2" -> "多功能网关"
else -> "其他"
}
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 7c899a0..d1f82d6 100644
--- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
@@ -152,6 +152,10 @@
//排插
requireContext().navigatePageTo(deviceModel.devId)
}
+ selectedCategory.contains("cz") -> {
+ //插座
+ requireContext().navigatePageTo(deviceModel.devId)
+ }
selectedCategory.contains("wg2") -> {
//网关
}
diff --git a/app/src/main/java/com/casic/br/view/device/SingleStripActivity.kt b/app/src/main/java/com/casic/br/view/device/SingleStripActivity.kt
new file mode 100644
index 0000000..122ef71
--- /dev/null
+++ b/app/src/main/java/com/casic/br/view/device/SingleStripActivity.kt
@@ -0,0 +1,166 @@
+package com.casic.br.view.device
+
+import android.graphics.Color
+import android.util.Log
+import com.alibaba.fastjson.JSONObject
+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.casic.br.utils.TuyaDeviceListener
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.extensions.toJson
+import com.pengxh.kt.lite.utils.Constant
+import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
+import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
+import com.tuya.smart.android.device.bean.UpgradeInfoBean
+import com.tuya.smart.home.sdk.TuyaHomeSdk
+import com.tuya.smart.sdk.api.IGetOtaInfoCallback
+import com.tuya.smart.sdk.api.IResultCallback
+import com.tuya.smart.sdk.api.ITuyaDevice
+import com.tuya.smart.sdk.api.ITuyaOta
+import kotlinx.android.synthetic.main.activity_single_strip.*
+import kotlinx.android.synthetic.main.include_device_title.*
+
+/**
+ * 插座
+ * TODO 数据上报暂缓
+ * */
+class SingleStripActivity : KotlinBaseActivity() {
+
+ private val kTag = "SingleStripActivity"
+ private val context = this@SingleStripActivity
+ private lateinit var tuyaOTA: ITuyaOta
+ private lateinit var deviceInstance: ITuyaDevice
+
+ override fun initLayoutView(): Int = R.layout.activity_single_strip
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ initLayoutImmersionBar(rootView)
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initData() {
+ val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!!
+ tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId)
+ //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。
+ deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId)
+
+ val deviceBean = TuyaHomeSdk.getDataInstance().getDeviceBean(deviceId)
+ if (deviceBean == null) {
+ "查询设备信息失败,请检查设备是否已离线".show(this)
+ return
+ }
+ Log.d(kTag, deviceBean.dps.toJson())
+ changeViewStatus(deviceBean.dps["1"] as Boolean)
+
+ deviceInstance.registerDevListener(object : TuyaDeviceListener() {
+ override fun onDpUpdate(devId: String?, dpStr: String?) {
+ Log.d(kTag, "onDpUpdate: $dpStr")
+ changeViewStatus(JSONObject.parseObject(dpStr)["1"] as Boolean)
+ }
+ })
+ }
+
+ private fun changeViewStatus(stripStatus: Boolean) {
+ turnOffCheckBox.isChecked = stripStatus
+ stripStatusView.text = if (stripStatus) {
+ "插座已开启"
+ } else {
+ "插座已关闭"
+ }
+ }
+
+ override fun initEvent() {
+ rightOperateView.setOnClickListener {
+ BottomActionSheet.Builder()
+ .setContext(this)
+ .setActionItemTitle(arrayListOf("固件升级", "移除设备"))
+ .setItemTextColor(Color.BLUE)
+ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
+ override fun onActionItemClick(position: Int) {
+ when (position) {
+ 0 -> {
+ tuyaOTA.getOtaInfo(object : IGetOtaInfoCallback {
+ override fun onSuccess(upgradeInfoBeans: MutableList?) {
+ if (upgradeInfoBeans.isNullOrEmpty()) {
+ "无新版本可用".show(context)
+ }
+ val mainModel = upgradeInfoBeans!![0]
+ when (mainModel.upgradeStatus) {
+ 1 -> updateVersion()
+ 2 -> {
+
+ }
+ else -> "主联网模组无新版本可用".show(context)
+ }
+
+ val mcuModel = upgradeInfoBeans[1]
+ when (mcuModel.upgradeStatus) {
+ 1 -> updateVersion()
+ 2 -> {
+
+ }
+ else -> "MCU模块无新版本可用".show(context)
+ }
+ }
+
+ override fun onFailure(code: String?, error: String?) {
+
+ }
+ })
+ }
+ 1 -> deviceInstance.removeDevice(object : IResultCallback {
+ override fun onError(code: String?, error: String?) {
+ Log.d(kTag, "onError: $error")
+ }
+
+ override fun onSuccess() {
+ finish()
+ }
+ })
+ }
+ }
+ })
+ .build().show()
+ }
+
+ turnOffCheckBox.setOnCheckedChangeListener { _, isChecked ->
+ CommandManager.sendTuyaDp(deviceInstance, "1".createCommand(isChecked))
+ }
+ }
+
+ private fun updateVersion() {
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("版本升级")
+ .setMessage("有新版本可以升级,是否升级?")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onCancelClick() {
+ tuyaOTA.startOta()
+ }
+
+ override fun onConfirmClick() {
+
+ }
+ })
+ .build().show()
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ deviceInstance.unRegisterDevListener()
+ deviceInstance.onDestroy()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_stroke_layout_gray_circle.xml b/app/src/main/res/drawable/bg_stroke_layout_gray_circle.xml
new file mode 100644
index 0000000..bf62be5
--- /dev/null
+++ b/app/src/main/res/drawable/bg_stroke_layout_gray_circle.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_strip_off.xml b/app/src/main/res/drawable/ic_strip_off.xml
new file mode 100644
index 0000000..d23a65c
--- /dev/null
+++ b/app/src/main/res/drawable/ic_strip_off.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 70ef895..1d57b75 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -72,6 +72,7 @@
+
"智能热水器"
"rqz" -> "智能燃气灶"
"bgl" -> "智能壁挂炉"
+ "pc" -> "Wi-Fi智能插排"
+ "cz" -> "Wi-Fi智能插座"
"wg2" -> "多功能网关"
else -> "其他"
}
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 7c899a0..d1f82d6 100644
--- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
@@ -152,6 +152,10 @@
//排插
requireContext().navigatePageTo(deviceModel.devId)
}
+ selectedCategory.contains("cz") -> {
+ //插座
+ requireContext().navigatePageTo(deviceModel.devId)
+ }
selectedCategory.contains("wg2") -> {
//网关
}
diff --git a/app/src/main/java/com/casic/br/view/device/SingleStripActivity.kt b/app/src/main/java/com/casic/br/view/device/SingleStripActivity.kt
new file mode 100644
index 0000000..122ef71
--- /dev/null
+++ b/app/src/main/java/com/casic/br/view/device/SingleStripActivity.kt
@@ -0,0 +1,166 @@
+package com.casic.br.view.device
+
+import android.graphics.Color
+import android.util.Log
+import com.alibaba.fastjson.JSONObject
+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.casic.br.utils.TuyaDeviceListener
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.extensions.toJson
+import com.pengxh.kt.lite.utils.Constant
+import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
+import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
+import com.tuya.smart.android.device.bean.UpgradeInfoBean
+import com.tuya.smart.home.sdk.TuyaHomeSdk
+import com.tuya.smart.sdk.api.IGetOtaInfoCallback
+import com.tuya.smart.sdk.api.IResultCallback
+import com.tuya.smart.sdk.api.ITuyaDevice
+import com.tuya.smart.sdk.api.ITuyaOta
+import kotlinx.android.synthetic.main.activity_single_strip.*
+import kotlinx.android.synthetic.main.include_device_title.*
+
+/**
+ * 插座
+ * TODO 数据上报暂缓
+ * */
+class SingleStripActivity : KotlinBaseActivity() {
+
+ private val kTag = "SingleStripActivity"
+ private val context = this@SingleStripActivity
+ private lateinit var tuyaOTA: ITuyaOta
+ private lateinit var deviceInstance: ITuyaDevice
+
+ override fun initLayoutView(): Int = R.layout.activity_single_strip
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ initLayoutImmersionBar(rootView)
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initData() {
+ val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!!
+ tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId)
+ //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。
+ deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId)
+
+ val deviceBean = TuyaHomeSdk.getDataInstance().getDeviceBean(deviceId)
+ if (deviceBean == null) {
+ "查询设备信息失败,请检查设备是否已离线".show(this)
+ return
+ }
+ Log.d(kTag, deviceBean.dps.toJson())
+ changeViewStatus(deviceBean.dps["1"] as Boolean)
+
+ deviceInstance.registerDevListener(object : TuyaDeviceListener() {
+ override fun onDpUpdate(devId: String?, dpStr: String?) {
+ Log.d(kTag, "onDpUpdate: $dpStr")
+ changeViewStatus(JSONObject.parseObject(dpStr)["1"] as Boolean)
+ }
+ })
+ }
+
+ private fun changeViewStatus(stripStatus: Boolean) {
+ turnOffCheckBox.isChecked = stripStatus
+ stripStatusView.text = if (stripStatus) {
+ "插座已开启"
+ } else {
+ "插座已关闭"
+ }
+ }
+
+ override fun initEvent() {
+ rightOperateView.setOnClickListener {
+ BottomActionSheet.Builder()
+ .setContext(this)
+ .setActionItemTitle(arrayListOf("固件升级", "移除设备"))
+ .setItemTextColor(Color.BLUE)
+ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
+ override fun onActionItemClick(position: Int) {
+ when (position) {
+ 0 -> {
+ tuyaOTA.getOtaInfo(object : IGetOtaInfoCallback {
+ override fun onSuccess(upgradeInfoBeans: MutableList?) {
+ if (upgradeInfoBeans.isNullOrEmpty()) {
+ "无新版本可用".show(context)
+ }
+ val mainModel = upgradeInfoBeans!![0]
+ when (mainModel.upgradeStatus) {
+ 1 -> updateVersion()
+ 2 -> {
+
+ }
+ else -> "主联网模组无新版本可用".show(context)
+ }
+
+ val mcuModel = upgradeInfoBeans[1]
+ when (mcuModel.upgradeStatus) {
+ 1 -> updateVersion()
+ 2 -> {
+
+ }
+ else -> "MCU模块无新版本可用".show(context)
+ }
+ }
+
+ override fun onFailure(code: String?, error: String?) {
+
+ }
+ })
+ }
+ 1 -> deviceInstance.removeDevice(object : IResultCallback {
+ override fun onError(code: String?, error: String?) {
+ Log.d(kTag, "onError: $error")
+ }
+
+ override fun onSuccess() {
+ finish()
+ }
+ })
+ }
+ }
+ })
+ .build().show()
+ }
+
+ turnOffCheckBox.setOnCheckedChangeListener { _, isChecked ->
+ CommandManager.sendTuyaDp(deviceInstance, "1".createCommand(isChecked))
+ }
+ }
+
+ private fun updateVersion() {
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("版本升级")
+ .setMessage("有新版本可以升级,是否升级?")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onCancelClick() {
+ tuyaOTA.startOta()
+ }
+
+ override fun onConfirmClick() {
+
+ }
+ })
+ .build().show()
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ deviceInstance.unRegisterDevListener()
+ deviceInstance.onDestroy()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_stroke_layout_gray_circle.xml b/app/src/main/res/drawable/bg_stroke_layout_gray_circle.xml
new file mode 100644
index 0000000..bf62be5
--- /dev/null
+++ b/app/src/main/res/drawable/bg_stroke_layout_gray_circle.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_strip_off.xml b/app/src/main/res/drawable/ic_strip_off.xml
new file mode 100644
index 0000000..d23a65c
--- /dev/null
+++ b/app/src/main/res/drawable/ic_strip_off.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_strip_on.xml b/app/src/main/res/drawable/ic_strip_on.xml
new file mode 100644
index 0000000..ffd9cce
--- /dev/null
+++ b/app/src/main/res/drawable/ic_strip_on.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 70ef895..1d57b75 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -72,6 +72,7 @@
+
"智能热水器"
"rqz" -> "智能燃气灶"
"bgl" -> "智能壁挂炉"
+ "pc" -> "Wi-Fi智能插排"
+ "cz" -> "Wi-Fi智能插座"
"wg2" -> "多功能网关"
else -> "其他"
}
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 7c899a0..d1f82d6 100644
--- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
@@ -152,6 +152,10 @@
//排插
requireContext().navigatePageTo(deviceModel.devId)
}
+ selectedCategory.contains("cz") -> {
+ //插座
+ requireContext().navigatePageTo(deviceModel.devId)
+ }
selectedCategory.contains("wg2") -> {
//网关
}
diff --git a/app/src/main/java/com/casic/br/view/device/SingleStripActivity.kt b/app/src/main/java/com/casic/br/view/device/SingleStripActivity.kt
new file mode 100644
index 0000000..122ef71
--- /dev/null
+++ b/app/src/main/java/com/casic/br/view/device/SingleStripActivity.kt
@@ -0,0 +1,166 @@
+package com.casic.br.view.device
+
+import android.graphics.Color
+import android.util.Log
+import com.alibaba.fastjson.JSONObject
+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.casic.br.utils.TuyaDeviceListener
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.extensions.toJson
+import com.pengxh.kt.lite.utils.Constant
+import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
+import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
+import com.tuya.smart.android.device.bean.UpgradeInfoBean
+import com.tuya.smart.home.sdk.TuyaHomeSdk
+import com.tuya.smart.sdk.api.IGetOtaInfoCallback
+import com.tuya.smart.sdk.api.IResultCallback
+import com.tuya.smart.sdk.api.ITuyaDevice
+import com.tuya.smart.sdk.api.ITuyaOta
+import kotlinx.android.synthetic.main.activity_single_strip.*
+import kotlinx.android.synthetic.main.include_device_title.*
+
+/**
+ * 插座
+ * TODO 数据上报暂缓
+ * */
+class SingleStripActivity : KotlinBaseActivity() {
+
+ private val kTag = "SingleStripActivity"
+ private val context = this@SingleStripActivity
+ private lateinit var tuyaOTA: ITuyaOta
+ private lateinit var deviceInstance: ITuyaDevice
+
+ override fun initLayoutView(): Int = R.layout.activity_single_strip
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ initLayoutImmersionBar(rootView)
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initData() {
+ val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!!
+ tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId)
+ //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。
+ deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId)
+
+ val deviceBean = TuyaHomeSdk.getDataInstance().getDeviceBean(deviceId)
+ if (deviceBean == null) {
+ "查询设备信息失败,请检查设备是否已离线".show(this)
+ return
+ }
+ Log.d(kTag, deviceBean.dps.toJson())
+ changeViewStatus(deviceBean.dps["1"] as Boolean)
+
+ deviceInstance.registerDevListener(object : TuyaDeviceListener() {
+ override fun onDpUpdate(devId: String?, dpStr: String?) {
+ Log.d(kTag, "onDpUpdate: $dpStr")
+ changeViewStatus(JSONObject.parseObject(dpStr)["1"] as Boolean)
+ }
+ })
+ }
+
+ private fun changeViewStatus(stripStatus: Boolean) {
+ turnOffCheckBox.isChecked = stripStatus
+ stripStatusView.text = if (stripStatus) {
+ "插座已开启"
+ } else {
+ "插座已关闭"
+ }
+ }
+
+ override fun initEvent() {
+ rightOperateView.setOnClickListener {
+ BottomActionSheet.Builder()
+ .setContext(this)
+ .setActionItemTitle(arrayListOf("固件升级", "移除设备"))
+ .setItemTextColor(Color.BLUE)
+ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
+ override fun onActionItemClick(position: Int) {
+ when (position) {
+ 0 -> {
+ tuyaOTA.getOtaInfo(object : IGetOtaInfoCallback {
+ override fun onSuccess(upgradeInfoBeans: MutableList?) {
+ if (upgradeInfoBeans.isNullOrEmpty()) {
+ "无新版本可用".show(context)
+ }
+ val mainModel = upgradeInfoBeans!![0]
+ when (mainModel.upgradeStatus) {
+ 1 -> updateVersion()
+ 2 -> {
+
+ }
+ else -> "主联网模组无新版本可用".show(context)
+ }
+
+ val mcuModel = upgradeInfoBeans[1]
+ when (mcuModel.upgradeStatus) {
+ 1 -> updateVersion()
+ 2 -> {
+
+ }
+ else -> "MCU模块无新版本可用".show(context)
+ }
+ }
+
+ override fun onFailure(code: String?, error: String?) {
+
+ }
+ })
+ }
+ 1 -> deviceInstance.removeDevice(object : IResultCallback {
+ override fun onError(code: String?, error: String?) {
+ Log.d(kTag, "onError: $error")
+ }
+
+ override fun onSuccess() {
+ finish()
+ }
+ })
+ }
+ }
+ })
+ .build().show()
+ }
+
+ turnOffCheckBox.setOnCheckedChangeListener { _, isChecked ->
+ CommandManager.sendTuyaDp(deviceInstance, "1".createCommand(isChecked))
+ }
+ }
+
+ private fun updateVersion() {
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("版本升级")
+ .setMessage("有新版本可以升级,是否升级?")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onCancelClick() {
+ tuyaOTA.startOta()
+ }
+
+ override fun onConfirmClick() {
+
+ }
+ })
+ .build().show()
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ deviceInstance.unRegisterDevListener()
+ deviceInstance.onDestroy()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_stroke_layout_gray_circle.xml b/app/src/main/res/drawable/bg_stroke_layout_gray_circle.xml
new file mode 100644
index 0000000..bf62be5
--- /dev/null
+++ b/app/src/main/res/drawable/bg_stroke_layout_gray_circle.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_strip_off.xml b/app/src/main/res/drawable/ic_strip_off.xml
new file mode 100644
index 0000000..d23a65c
--- /dev/null
+++ b/app/src/main/res/drawable/ic_strip_off.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_strip_on.xml b/app/src/main/res/drawable/ic_strip_on.xml
new file mode 100644
index 0000000..ffd9cce
--- /dev/null
+++ b/app/src/main/res/drawable/ic_strip_on.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/selector_turn_off_single_strip.xml b/app/src/main/res/drawable/selector_turn_off_single_strip.xml
new file mode 100644
index 0000000..eb97bc9
--- /dev/null
+++ b/app/src/main/res/drawable/selector_turn_off_single_strip.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 70ef895..1d57b75 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -72,6 +72,7 @@
+
"智能热水器"
"rqz" -> "智能燃气灶"
"bgl" -> "智能壁挂炉"
+ "pc" -> "Wi-Fi智能插排"
+ "cz" -> "Wi-Fi智能插座"
"wg2" -> "多功能网关"
else -> "其他"
}
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 7c899a0..d1f82d6 100644
--- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
@@ -152,6 +152,10 @@
//排插
requireContext().navigatePageTo(deviceModel.devId)
}
+ selectedCategory.contains("cz") -> {
+ //插座
+ requireContext().navigatePageTo(deviceModel.devId)
+ }
selectedCategory.contains("wg2") -> {
//网关
}
diff --git a/app/src/main/java/com/casic/br/view/device/SingleStripActivity.kt b/app/src/main/java/com/casic/br/view/device/SingleStripActivity.kt
new file mode 100644
index 0000000..122ef71
--- /dev/null
+++ b/app/src/main/java/com/casic/br/view/device/SingleStripActivity.kt
@@ -0,0 +1,166 @@
+package com.casic.br.view.device
+
+import android.graphics.Color
+import android.util.Log
+import com.alibaba.fastjson.JSONObject
+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.casic.br.utils.TuyaDeviceListener
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.extensions.toJson
+import com.pengxh.kt.lite.utils.Constant
+import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
+import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
+import com.tuya.smart.android.device.bean.UpgradeInfoBean
+import com.tuya.smart.home.sdk.TuyaHomeSdk
+import com.tuya.smart.sdk.api.IGetOtaInfoCallback
+import com.tuya.smart.sdk.api.IResultCallback
+import com.tuya.smart.sdk.api.ITuyaDevice
+import com.tuya.smart.sdk.api.ITuyaOta
+import kotlinx.android.synthetic.main.activity_single_strip.*
+import kotlinx.android.synthetic.main.include_device_title.*
+
+/**
+ * 插座
+ * TODO 数据上报暂缓
+ * */
+class SingleStripActivity : KotlinBaseActivity() {
+
+ private val kTag = "SingleStripActivity"
+ private val context = this@SingleStripActivity
+ private lateinit var tuyaOTA: ITuyaOta
+ private lateinit var deviceInstance: ITuyaDevice
+
+ override fun initLayoutView(): Int = R.layout.activity_single_strip
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ initLayoutImmersionBar(rootView)
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initData() {
+ val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!!
+ tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId)
+ //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。
+ deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId)
+
+ val deviceBean = TuyaHomeSdk.getDataInstance().getDeviceBean(deviceId)
+ if (deviceBean == null) {
+ "查询设备信息失败,请检查设备是否已离线".show(this)
+ return
+ }
+ Log.d(kTag, deviceBean.dps.toJson())
+ changeViewStatus(deviceBean.dps["1"] as Boolean)
+
+ deviceInstance.registerDevListener(object : TuyaDeviceListener() {
+ override fun onDpUpdate(devId: String?, dpStr: String?) {
+ Log.d(kTag, "onDpUpdate: $dpStr")
+ changeViewStatus(JSONObject.parseObject(dpStr)["1"] as Boolean)
+ }
+ })
+ }
+
+ private fun changeViewStatus(stripStatus: Boolean) {
+ turnOffCheckBox.isChecked = stripStatus
+ stripStatusView.text = if (stripStatus) {
+ "插座已开启"
+ } else {
+ "插座已关闭"
+ }
+ }
+
+ override fun initEvent() {
+ rightOperateView.setOnClickListener {
+ BottomActionSheet.Builder()
+ .setContext(this)
+ .setActionItemTitle(arrayListOf("固件升级", "移除设备"))
+ .setItemTextColor(Color.BLUE)
+ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
+ override fun onActionItemClick(position: Int) {
+ when (position) {
+ 0 -> {
+ tuyaOTA.getOtaInfo(object : IGetOtaInfoCallback {
+ override fun onSuccess(upgradeInfoBeans: MutableList?) {
+ if (upgradeInfoBeans.isNullOrEmpty()) {
+ "无新版本可用".show(context)
+ }
+ val mainModel = upgradeInfoBeans!![0]
+ when (mainModel.upgradeStatus) {
+ 1 -> updateVersion()
+ 2 -> {
+
+ }
+ else -> "主联网模组无新版本可用".show(context)
+ }
+
+ val mcuModel = upgradeInfoBeans[1]
+ when (mcuModel.upgradeStatus) {
+ 1 -> updateVersion()
+ 2 -> {
+
+ }
+ else -> "MCU模块无新版本可用".show(context)
+ }
+ }
+
+ override fun onFailure(code: String?, error: String?) {
+
+ }
+ })
+ }
+ 1 -> deviceInstance.removeDevice(object : IResultCallback {
+ override fun onError(code: String?, error: String?) {
+ Log.d(kTag, "onError: $error")
+ }
+
+ override fun onSuccess() {
+ finish()
+ }
+ })
+ }
+ }
+ })
+ .build().show()
+ }
+
+ turnOffCheckBox.setOnCheckedChangeListener { _, isChecked ->
+ CommandManager.sendTuyaDp(deviceInstance, "1".createCommand(isChecked))
+ }
+ }
+
+ private fun updateVersion() {
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("版本升级")
+ .setMessage("有新版本可以升级,是否升级?")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onCancelClick() {
+ tuyaOTA.startOta()
+ }
+
+ override fun onConfirmClick() {
+
+ }
+ })
+ .build().show()
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ deviceInstance.unRegisterDevListener()
+ deviceInstance.onDestroy()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_stroke_layout_gray_circle.xml b/app/src/main/res/drawable/bg_stroke_layout_gray_circle.xml
new file mode 100644
index 0000000..bf62be5
--- /dev/null
+++ b/app/src/main/res/drawable/bg_stroke_layout_gray_circle.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_strip_off.xml b/app/src/main/res/drawable/ic_strip_off.xml
new file mode 100644
index 0000000..d23a65c
--- /dev/null
+++ b/app/src/main/res/drawable/ic_strip_off.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_strip_on.xml b/app/src/main/res/drawable/ic_strip_on.xml
new file mode 100644
index 0000000..ffd9cce
--- /dev/null
+++ b/app/src/main/res/drawable/ic_strip_on.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/selector_turn_off_single_strip.xml b/app/src/main/res/drawable/selector_turn_off_single_strip.xml
new file mode 100644
index 0000000..eb97bc9
--- /dev/null
+++ b/app/src/main/res/drawable/selector_turn_off_single_strip.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_single_strip.xml b/app/src/main/res/layout/activity_single_strip.xml
new file mode 100644
index 0000000..8790073
--- /dev/null
+++ b/app/src/main/res/layout/activity_single_strip.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file