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 4ab193d..1f658ca 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -49,8 +49,7 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) - //热门推荐 - //TODO 模拟数据 只显示前三个设备 + //TODO 热门推荐 val recommendModels = ArrayList() for (i in 0..2) { val model = RecommendModel() 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 4ab193d..1f658ca 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -49,8 +49,7 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) - //热门推荐 - //TODO 模拟数据 只显示前三个设备 + //TODO 热门推荐 val recommendModels = ArrayList() for (i in 0..2) { val model = RecommendModel() diff --git a/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt b/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt index 2cb7b3c..02fd932 100644 --- a/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt @@ -11,18 +11,16 @@ import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.tuya.smart.home.sdk.TuyaHomeSdk import com.tuya.smart.sdk.api.ITuyaDevice import kotlinx.android.synthetic.main.fragment_device_rangehood_control.* -class ControlPageFragment(private val deviceId: String) : KotlinBaseFragment() { +class ControlPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { companion object { lateinit var weakReference: WeakReferenceHandler } private val kTag = "ControlPageFragment" - private lateinit var deviceInstance: ITuyaDevice private var isDeviceWorking = false override fun initLayoutView(): Int = R.layout.fragment_device_rangehood_control @@ -33,8 +31,6 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 - deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) } override fun observeRequestState() { 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 4ab193d..1f658ca 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -49,8 +49,7 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) - //热门推荐 - //TODO 模拟数据 只显示前三个设备 + //TODO 热门推荐 val recommendModels = ArrayList() for (i in 0..2) { val model = RecommendModel() diff --git a/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt b/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt index 2cb7b3c..02fd932 100644 --- a/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt @@ -11,18 +11,16 @@ import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.tuya.smart.home.sdk.TuyaHomeSdk import com.tuya.smart.sdk.api.ITuyaDevice import kotlinx.android.synthetic.main.fragment_device_rangehood_control.* -class ControlPageFragment(private val deviceId: String) : KotlinBaseFragment() { +class ControlPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { companion object { lateinit var weakReference: WeakReferenceHandler } private val kTag = "ControlPageFragment" - private lateinit var deviceInstance: ITuyaDevice private var isDeviceWorking = false override fun initLayoutView(): Int = R.layout.fragment_device_rangehood_control @@ -33,8 +31,6 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 - deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt b/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt index bd68eeb..19b0f05 100644 --- a/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt @@ -16,14 +16,13 @@ import com.tuya.smart.sdk.bean.DeviceBean import kotlinx.android.synthetic.main.fragment_device_rangehood_status.* -class StatusPageFragment(private val deviceId: String) : KotlinBaseFragment() { +class StatusPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { companion object { lateinit var weakReference: WeakReferenceHandler } private val kTag = "StatusPageFragment" - private lateinit var deviceInstance: ITuyaDevice private var isDeviceWorking = false override fun initLayoutView(): Int = R.layout.fragment_device_rangehood_status @@ -34,8 +33,6 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 - deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) val homeId = SaveKeyValues.getValue(LocaleConstant.HOME_ID, "") as String if (homeId == "") { 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 4ab193d..1f658ca 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -49,8 +49,7 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) - //热门推荐 - //TODO 模拟数据 只显示前三个设备 + //TODO 热门推荐 val recommendModels = ArrayList() for (i in 0..2) { val model = RecommendModel() diff --git a/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt b/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt index 2cb7b3c..02fd932 100644 --- a/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt @@ -11,18 +11,16 @@ import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.tuya.smart.home.sdk.TuyaHomeSdk import com.tuya.smart.sdk.api.ITuyaDevice import kotlinx.android.synthetic.main.fragment_device_rangehood_control.* -class ControlPageFragment(private val deviceId: String) : KotlinBaseFragment() { +class ControlPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { companion object { lateinit var weakReference: WeakReferenceHandler } private val kTag = "ControlPageFragment" - private lateinit var deviceInstance: ITuyaDevice private var isDeviceWorking = false override fun initLayoutView(): Int = R.layout.fragment_device_rangehood_control @@ -33,8 +31,6 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 - deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt b/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt index bd68eeb..19b0f05 100644 --- a/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt @@ -16,14 +16,13 @@ import com.tuya.smart.sdk.bean.DeviceBean import kotlinx.android.synthetic.main.fragment_device_rangehood_status.* -class StatusPageFragment(private val deviceId: String) : KotlinBaseFragment() { +class StatusPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { companion object { lateinit var weakReference: WeakReferenceHandler } private val kTag = "StatusPageFragment" - private lateinit var deviceInstance: ITuyaDevice private var isDeviceWorking = false override fun initLayoutView(): Int = R.layout.fragment_device_rangehood_status @@ -34,8 +33,6 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 - deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) val homeId = SaveKeyValues.getValue(LocaleConstant.HOME_ID, "") as String if (homeId == "") { diff --git a/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt b/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt index 003e40f..bc0abfd 100644 --- a/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt @@ -1,12 +1,20 @@ package com.casic.br.fragment.waterheater +import android.os.Handler +import com.alibaba.fastjson.JSONObject import com.casic.br.R import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.qmuiteam.qmui.widget.QMUISlider +import com.tuya.smart.sdk.api.ITuyaDevice import kotlinx.android.synthetic.main.fragment_device_waterheater_control.* import kotlin.math.abs -class ControlPageFragment : KotlinBaseFragment() { +class ControlPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { + + companion object { + lateinit var weakReference: WeakReferenceHandler + } private val kTag = "ControlPageFragment" private val minTemp = 36 @@ -22,6 +30,7 @@ } override fun initData() { + weakReference = WeakReferenceHandler(callback) //默认选中 modeRadioGroup.check(R.id.kitchenRadioButton) setTemperatureScope() @@ -42,6 +51,18 @@ } } + private val callback = Handler.Callback { message -> + if (message.what == 2022092601) { + val parseObject = JSONObject.parseObject(message.obj as String) + parseObject.keys.forEach { + when (it) { + + } + } + } + true + } + /** * 设置温度范围 * */ @@ -124,4 +145,10 @@ }) } + + override fun onDestroy() { + super.onDestroy() + deviceInstance.unRegisterDevListener() + deviceInstance.onDestroy() + } } \ No newline at end of file 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 4ab193d..1f658ca 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -49,8 +49,7 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) - //热门推荐 - //TODO 模拟数据 只显示前三个设备 + //TODO 热门推荐 val recommendModels = ArrayList() for (i in 0..2) { val model = RecommendModel() diff --git a/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt b/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt index 2cb7b3c..02fd932 100644 --- a/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt @@ -11,18 +11,16 @@ import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.tuya.smart.home.sdk.TuyaHomeSdk import com.tuya.smart.sdk.api.ITuyaDevice import kotlinx.android.synthetic.main.fragment_device_rangehood_control.* -class ControlPageFragment(private val deviceId: String) : KotlinBaseFragment() { +class ControlPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { companion object { lateinit var weakReference: WeakReferenceHandler } private val kTag = "ControlPageFragment" - private lateinit var deviceInstance: ITuyaDevice private var isDeviceWorking = false override fun initLayoutView(): Int = R.layout.fragment_device_rangehood_control @@ -33,8 +31,6 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 - deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt b/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt index bd68eeb..19b0f05 100644 --- a/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt @@ -16,14 +16,13 @@ import com.tuya.smart.sdk.bean.DeviceBean import kotlinx.android.synthetic.main.fragment_device_rangehood_status.* -class StatusPageFragment(private val deviceId: String) : KotlinBaseFragment() { +class StatusPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { companion object { lateinit var weakReference: WeakReferenceHandler } private val kTag = "StatusPageFragment" - private lateinit var deviceInstance: ITuyaDevice private var isDeviceWorking = false override fun initLayoutView(): Int = R.layout.fragment_device_rangehood_status @@ -34,8 +33,6 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 - deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) val homeId = SaveKeyValues.getValue(LocaleConstant.HOME_ID, "") as String if (homeId == "") { diff --git a/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt b/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt index 003e40f..bc0abfd 100644 --- a/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt @@ -1,12 +1,20 @@ package com.casic.br.fragment.waterheater +import android.os.Handler +import com.alibaba.fastjson.JSONObject import com.casic.br.R import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.qmuiteam.qmui.widget.QMUISlider +import com.tuya.smart.sdk.api.ITuyaDevice import kotlinx.android.synthetic.main.fragment_device_waterheater_control.* import kotlin.math.abs -class ControlPageFragment : KotlinBaseFragment() { +class ControlPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { + + companion object { + lateinit var weakReference: WeakReferenceHandler + } private val kTag = "ControlPageFragment" private val minTemp = 36 @@ -22,6 +30,7 @@ } override fun initData() { + weakReference = WeakReferenceHandler(callback) //默认选中 modeRadioGroup.check(R.id.kitchenRadioButton) setTemperatureScope() @@ -42,6 +51,18 @@ } } + private val callback = Handler.Callback { message -> + if (message.what == 2022092601) { + val parseObject = JSONObject.parseObject(message.obj as String) + parseObject.keys.forEach { + when (it) { + + } + } + } + true + } + /** * 设置温度范围 * */ @@ -124,4 +145,10 @@ }) } + + override fun onDestroy() { + super.onDestroy() + deviceInstance.unRegisterDevListener() + deviceInstance.onDestroy() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/waterheater/StatusPageFragment.kt b/app/src/main/java/com/casic/br/fragment/waterheater/StatusPageFragment.kt index 0af764d..095bfa8 100644 --- a/app/src/main/java/com/casic/br/fragment/waterheater/StatusPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/waterheater/StatusPageFragment.kt @@ -1,9 +1,17 @@ package com.casic.br.fragment.waterheater +import android.os.Handler +import com.alibaba.fastjson.JSONObject import com.casic.br.R import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.WeakReferenceHandler +import com.tuya.smart.sdk.api.ITuyaDevice -class StatusPageFragment : KotlinBaseFragment() { +class StatusPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { + + companion object { + lateinit var weakReference: WeakReferenceHandler + } override fun initLayoutView(): Int = R.layout.fragment_device_waterheater_status @@ -12,7 +20,19 @@ } override fun initData() { + weakReference = WeakReferenceHandler(callback) + } + private val callback = Handler.Callback { message -> + if (message.what == 2022092601) { + val parseObject = JSONObject.parseObject(message.obj as String) + parseObject.keys.forEach { + when (it) { + + } + } + } + true } override fun observeRequestState() { @@ -22,4 +42,10 @@ override fun initEvent() { } + + override fun onDestroy() { + super.onDestroy() + deviceInstance.unRegisterDevListener() + deviceInstance.onDestroy() + } } \ No newline at end of file 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 4ab193d..1f658ca 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -49,8 +49,7 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) - //热门推荐 - //TODO 模拟数据 只显示前三个设备 + //TODO 热门推荐 val recommendModels = ArrayList() for (i in 0..2) { val model = RecommendModel() diff --git a/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt b/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt index 2cb7b3c..02fd932 100644 --- a/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt @@ -11,18 +11,16 @@ import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.tuya.smart.home.sdk.TuyaHomeSdk import com.tuya.smart.sdk.api.ITuyaDevice import kotlinx.android.synthetic.main.fragment_device_rangehood_control.* -class ControlPageFragment(private val deviceId: String) : KotlinBaseFragment() { +class ControlPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { companion object { lateinit var weakReference: WeakReferenceHandler } private val kTag = "ControlPageFragment" - private lateinit var deviceInstance: ITuyaDevice private var isDeviceWorking = false override fun initLayoutView(): Int = R.layout.fragment_device_rangehood_control @@ -33,8 +31,6 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 - deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt b/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt index bd68eeb..19b0f05 100644 --- a/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt @@ -16,14 +16,13 @@ import com.tuya.smart.sdk.bean.DeviceBean import kotlinx.android.synthetic.main.fragment_device_rangehood_status.* -class StatusPageFragment(private val deviceId: String) : KotlinBaseFragment() { +class StatusPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { companion object { lateinit var weakReference: WeakReferenceHandler } private val kTag = "StatusPageFragment" - private lateinit var deviceInstance: ITuyaDevice private var isDeviceWorking = false override fun initLayoutView(): Int = R.layout.fragment_device_rangehood_status @@ -34,8 +33,6 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 - deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) val homeId = SaveKeyValues.getValue(LocaleConstant.HOME_ID, "") as String if (homeId == "") { diff --git a/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt b/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt index 003e40f..bc0abfd 100644 --- a/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt @@ -1,12 +1,20 @@ package com.casic.br.fragment.waterheater +import android.os.Handler +import com.alibaba.fastjson.JSONObject import com.casic.br.R import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.qmuiteam.qmui.widget.QMUISlider +import com.tuya.smart.sdk.api.ITuyaDevice import kotlinx.android.synthetic.main.fragment_device_waterheater_control.* import kotlin.math.abs -class ControlPageFragment : KotlinBaseFragment() { +class ControlPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { + + companion object { + lateinit var weakReference: WeakReferenceHandler + } private val kTag = "ControlPageFragment" private val minTemp = 36 @@ -22,6 +30,7 @@ } override fun initData() { + weakReference = WeakReferenceHandler(callback) //默认选中 modeRadioGroup.check(R.id.kitchenRadioButton) setTemperatureScope() @@ -42,6 +51,18 @@ } } + private val callback = Handler.Callback { message -> + if (message.what == 2022092601) { + val parseObject = JSONObject.parseObject(message.obj as String) + parseObject.keys.forEach { + when (it) { + + } + } + } + true + } + /** * 设置温度范围 * */ @@ -124,4 +145,10 @@ }) } + + override fun onDestroy() { + super.onDestroy() + deviceInstance.unRegisterDevListener() + deviceInstance.onDestroy() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/waterheater/StatusPageFragment.kt b/app/src/main/java/com/casic/br/fragment/waterheater/StatusPageFragment.kt index 0af764d..095bfa8 100644 --- a/app/src/main/java/com/casic/br/fragment/waterheater/StatusPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/waterheater/StatusPageFragment.kt @@ -1,9 +1,17 @@ package com.casic.br.fragment.waterheater +import android.os.Handler +import com.alibaba.fastjson.JSONObject import com.casic.br.R import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.WeakReferenceHandler +import com.tuya.smart.sdk.api.ITuyaDevice -class StatusPageFragment : KotlinBaseFragment() { +class StatusPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { + + companion object { + lateinit var weakReference: WeakReferenceHandler + } override fun initLayoutView(): Int = R.layout.fragment_device_waterheater_status @@ -12,7 +20,19 @@ } override fun initData() { + weakReference = WeakReferenceHandler(callback) + } + private val callback = Handler.Callback { message -> + if (message.what == 2022092601) { + val parseObject = JSONObject.parseObject(message.obj as String) + parseObject.keys.forEach { + when (it) { + + } + } + } + true } override fun observeRequestState() { @@ -22,4 +42,10 @@ override fun initEvent() { } + + override fun onDestroy() { + super.onDestroy() + deviceInstance.unRegisterDevListener() + deviceInstance.onDestroy() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt index c4bb8d2..a94710e 100644 --- a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt +++ b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt @@ -35,19 +35,28 @@ deviceModels.add(model) } -// val addedDeviceAdapter = AddedDeviceAdapter(this, deviceModels) -// deviceRecyclerView.addItemDecoration( -// DividerItemDecoration(this, DividerItemDecoration.VERTICAL) -// ) -// deviceRecyclerView.adapter = addedDeviceAdapter -// addedDeviceAdapter.setOnItemClickListener(object : -// AddedDeviceAdapter.OnItemClickListener { -// override fun onItemClick(position: Int) { -// //TODO 需要根据设备类型显示不同的页面 -// val deviceModel = deviceModels[position] -// deviceModel.deviceName.show(this@AllDeviceActivity) -// } -// }) + val addedDeviceAdapter = AddedDeviceAdapter(this, deviceModels) + deviceRecyclerView.addItemDecoration( + DividerItemDecoration(this, DividerItemDecoration.VERTICAL) + ) + deviceRecyclerView.adapter = addedDeviceAdapter + addedDeviceAdapter.setOnItemClickListener(object : + AddedDeviceAdapter.OnItemClickListener { + + override fun onButtonClick(position: Int) { + + } + + override fun onItemClick(position: Int) { + //TODO 需要根据设备类型显示不同的页面 + val deviceModel = deviceModels[position] + deviceModel.deviceName.show(this@AllDeviceActivity) + } + + override fun onAddDeviceClick() { + + } + }) } override fun observeRequestState() { 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 4ab193d..1f658ca 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -49,8 +49,7 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) - //热门推荐 - //TODO 模拟数据 只显示前三个设备 + //TODO 热门推荐 val recommendModels = ArrayList() for (i in 0..2) { val model = RecommendModel() diff --git a/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt b/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt index 2cb7b3c..02fd932 100644 --- a/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt @@ -11,18 +11,16 @@ import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.tuya.smart.home.sdk.TuyaHomeSdk import com.tuya.smart.sdk.api.ITuyaDevice import kotlinx.android.synthetic.main.fragment_device_rangehood_control.* -class ControlPageFragment(private val deviceId: String) : KotlinBaseFragment() { +class ControlPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { companion object { lateinit var weakReference: WeakReferenceHandler } private val kTag = "ControlPageFragment" - private lateinit var deviceInstance: ITuyaDevice private var isDeviceWorking = false override fun initLayoutView(): Int = R.layout.fragment_device_rangehood_control @@ -33,8 +31,6 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 - deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt b/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt index bd68eeb..19b0f05 100644 --- a/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt @@ -16,14 +16,13 @@ import com.tuya.smart.sdk.bean.DeviceBean import kotlinx.android.synthetic.main.fragment_device_rangehood_status.* -class StatusPageFragment(private val deviceId: String) : KotlinBaseFragment() { +class StatusPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { companion object { lateinit var weakReference: WeakReferenceHandler } private val kTag = "StatusPageFragment" - private lateinit var deviceInstance: ITuyaDevice private var isDeviceWorking = false override fun initLayoutView(): Int = R.layout.fragment_device_rangehood_status @@ -34,8 +33,6 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 - deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) val homeId = SaveKeyValues.getValue(LocaleConstant.HOME_ID, "") as String if (homeId == "") { diff --git a/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt b/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt index 003e40f..bc0abfd 100644 --- a/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt @@ -1,12 +1,20 @@ package com.casic.br.fragment.waterheater +import android.os.Handler +import com.alibaba.fastjson.JSONObject import com.casic.br.R import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.qmuiteam.qmui.widget.QMUISlider +import com.tuya.smart.sdk.api.ITuyaDevice import kotlinx.android.synthetic.main.fragment_device_waterheater_control.* import kotlin.math.abs -class ControlPageFragment : KotlinBaseFragment() { +class ControlPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { + + companion object { + lateinit var weakReference: WeakReferenceHandler + } private val kTag = "ControlPageFragment" private val minTemp = 36 @@ -22,6 +30,7 @@ } override fun initData() { + weakReference = WeakReferenceHandler(callback) //默认选中 modeRadioGroup.check(R.id.kitchenRadioButton) setTemperatureScope() @@ -42,6 +51,18 @@ } } + private val callback = Handler.Callback { message -> + if (message.what == 2022092601) { + val parseObject = JSONObject.parseObject(message.obj as String) + parseObject.keys.forEach { + when (it) { + + } + } + } + true + } + /** * 设置温度范围 * */ @@ -124,4 +145,10 @@ }) } + + override fun onDestroy() { + super.onDestroy() + deviceInstance.unRegisterDevListener() + deviceInstance.onDestroy() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/waterheater/StatusPageFragment.kt b/app/src/main/java/com/casic/br/fragment/waterheater/StatusPageFragment.kt index 0af764d..095bfa8 100644 --- a/app/src/main/java/com/casic/br/fragment/waterheater/StatusPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/waterheater/StatusPageFragment.kt @@ -1,9 +1,17 @@ package com.casic.br.fragment.waterheater +import android.os.Handler +import com.alibaba.fastjson.JSONObject import com.casic.br.R import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.WeakReferenceHandler +import com.tuya.smart.sdk.api.ITuyaDevice -class StatusPageFragment : KotlinBaseFragment() { +class StatusPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { + + companion object { + lateinit var weakReference: WeakReferenceHandler + } override fun initLayoutView(): Int = R.layout.fragment_device_waterheater_status @@ -12,7 +20,19 @@ } override fun initData() { + weakReference = WeakReferenceHandler(callback) + } + private val callback = Handler.Callback { message -> + if (message.what == 2022092601) { + val parseObject = JSONObject.parseObject(message.obj as String) + parseObject.keys.forEach { + when (it) { + + } + } + } + true } override fun observeRequestState() { @@ -22,4 +42,10 @@ override fun initEvent() { } + + override fun onDestroy() { + super.onDestroy() + deviceInstance.unRegisterDevListener() + deviceInstance.onDestroy() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt index c4bb8d2..a94710e 100644 --- a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt +++ b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt @@ -35,19 +35,28 @@ deviceModels.add(model) } -// val addedDeviceAdapter = AddedDeviceAdapter(this, deviceModels) -// deviceRecyclerView.addItemDecoration( -// DividerItemDecoration(this, DividerItemDecoration.VERTICAL) -// ) -// deviceRecyclerView.adapter = addedDeviceAdapter -// addedDeviceAdapter.setOnItemClickListener(object : -// AddedDeviceAdapter.OnItemClickListener { -// override fun onItemClick(position: Int) { -// //TODO 需要根据设备类型显示不同的页面 -// val deviceModel = deviceModels[position] -// deviceModel.deviceName.show(this@AllDeviceActivity) -// } -// }) + val addedDeviceAdapter = AddedDeviceAdapter(this, deviceModels) + deviceRecyclerView.addItemDecoration( + DividerItemDecoration(this, DividerItemDecoration.VERTICAL) + ) + deviceRecyclerView.adapter = addedDeviceAdapter + addedDeviceAdapter.setOnItemClickListener(object : + AddedDeviceAdapter.OnItemClickListener { + + override fun onButtonClick(position: Int) { + + } + + override fun onItemClick(position: Int) { + //TODO 需要根据设备类型显示不同的页面 + val deviceModel = deviceModels[position] + deviceModel.deviceName.show(this@AllDeviceActivity) + } + + override fun onAddDeviceClick() { + + } + }) } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt b/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt index 071b55a..81cbbf3 100644 --- a/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt +++ b/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt @@ -68,8 +68,8 @@ .placeholder(R.mipmap.load_image_error) .into(deviceLogoView) - fragmentPages.add(ControlPageFragment(deviceId)) - fragmentPages.add(StatusPageFragment(deviceId)) + fragmentPages.add(ControlPageFragment(deviceInstance)) + fragmentPages.add(StatusPageFragment(deviceInstance)) fragmentPages.add(ServicePageFragment()) deviceInstance.registerDevListener(object : IDevListener { 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 4ab193d..1f658ca 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -49,8 +49,7 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) - //热门推荐 - //TODO 模拟数据 只显示前三个设备 + //TODO 热门推荐 val recommendModels = ArrayList() for (i in 0..2) { val model = RecommendModel() diff --git a/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt b/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt index 2cb7b3c..02fd932 100644 --- a/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt @@ -11,18 +11,16 @@ import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.tuya.smart.home.sdk.TuyaHomeSdk import com.tuya.smart.sdk.api.ITuyaDevice import kotlinx.android.synthetic.main.fragment_device_rangehood_control.* -class ControlPageFragment(private val deviceId: String) : KotlinBaseFragment() { +class ControlPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { companion object { lateinit var weakReference: WeakReferenceHandler } private val kTag = "ControlPageFragment" - private lateinit var deviceInstance: ITuyaDevice private var isDeviceWorking = false override fun initLayoutView(): Int = R.layout.fragment_device_rangehood_control @@ -33,8 +31,6 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 - deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt b/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt index bd68eeb..19b0f05 100644 --- a/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt @@ -16,14 +16,13 @@ import com.tuya.smart.sdk.bean.DeviceBean import kotlinx.android.synthetic.main.fragment_device_rangehood_status.* -class StatusPageFragment(private val deviceId: String) : KotlinBaseFragment() { +class StatusPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { companion object { lateinit var weakReference: WeakReferenceHandler } private val kTag = "StatusPageFragment" - private lateinit var deviceInstance: ITuyaDevice private var isDeviceWorking = false override fun initLayoutView(): Int = R.layout.fragment_device_rangehood_status @@ -34,8 +33,6 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 - deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) val homeId = SaveKeyValues.getValue(LocaleConstant.HOME_ID, "") as String if (homeId == "") { diff --git a/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt b/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt index 003e40f..bc0abfd 100644 --- a/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt @@ -1,12 +1,20 @@ package com.casic.br.fragment.waterheater +import android.os.Handler +import com.alibaba.fastjson.JSONObject import com.casic.br.R import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.qmuiteam.qmui.widget.QMUISlider +import com.tuya.smart.sdk.api.ITuyaDevice import kotlinx.android.synthetic.main.fragment_device_waterheater_control.* import kotlin.math.abs -class ControlPageFragment : KotlinBaseFragment() { +class ControlPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { + + companion object { + lateinit var weakReference: WeakReferenceHandler + } private val kTag = "ControlPageFragment" private val minTemp = 36 @@ -22,6 +30,7 @@ } override fun initData() { + weakReference = WeakReferenceHandler(callback) //默认选中 modeRadioGroup.check(R.id.kitchenRadioButton) setTemperatureScope() @@ -42,6 +51,18 @@ } } + private val callback = Handler.Callback { message -> + if (message.what == 2022092601) { + val parseObject = JSONObject.parseObject(message.obj as String) + parseObject.keys.forEach { + when (it) { + + } + } + } + true + } + /** * 设置温度范围 * */ @@ -124,4 +145,10 @@ }) } + + override fun onDestroy() { + super.onDestroy() + deviceInstance.unRegisterDevListener() + deviceInstance.onDestroy() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/waterheater/StatusPageFragment.kt b/app/src/main/java/com/casic/br/fragment/waterheater/StatusPageFragment.kt index 0af764d..095bfa8 100644 --- a/app/src/main/java/com/casic/br/fragment/waterheater/StatusPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/waterheater/StatusPageFragment.kt @@ -1,9 +1,17 @@ package com.casic.br.fragment.waterheater +import android.os.Handler +import com.alibaba.fastjson.JSONObject import com.casic.br.R import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.WeakReferenceHandler +import com.tuya.smart.sdk.api.ITuyaDevice -class StatusPageFragment : KotlinBaseFragment() { +class StatusPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { + + companion object { + lateinit var weakReference: WeakReferenceHandler + } override fun initLayoutView(): Int = R.layout.fragment_device_waterheater_status @@ -12,7 +20,19 @@ } override fun initData() { + weakReference = WeakReferenceHandler(callback) + } + private val callback = Handler.Callback { message -> + if (message.what == 2022092601) { + val parseObject = JSONObject.parseObject(message.obj as String) + parseObject.keys.forEach { + when (it) { + + } + } + } + true } override fun observeRequestState() { @@ -22,4 +42,10 @@ override fun initEvent() { } + + override fun onDestroy() { + super.onDestroy() + deviceInstance.unRegisterDevListener() + deviceInstance.onDestroy() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt index c4bb8d2..a94710e 100644 --- a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt +++ b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt @@ -35,19 +35,28 @@ deviceModels.add(model) } -// val addedDeviceAdapter = AddedDeviceAdapter(this, deviceModels) -// deviceRecyclerView.addItemDecoration( -// DividerItemDecoration(this, DividerItemDecoration.VERTICAL) -// ) -// deviceRecyclerView.adapter = addedDeviceAdapter -// addedDeviceAdapter.setOnItemClickListener(object : -// AddedDeviceAdapter.OnItemClickListener { -// override fun onItemClick(position: Int) { -// //TODO 需要根据设备类型显示不同的页面 -// val deviceModel = deviceModels[position] -// deviceModel.deviceName.show(this@AllDeviceActivity) -// } -// }) + val addedDeviceAdapter = AddedDeviceAdapter(this, deviceModels) + deviceRecyclerView.addItemDecoration( + DividerItemDecoration(this, DividerItemDecoration.VERTICAL) + ) + deviceRecyclerView.adapter = addedDeviceAdapter + addedDeviceAdapter.setOnItemClickListener(object : + AddedDeviceAdapter.OnItemClickListener { + + override fun onButtonClick(position: Int) { + + } + + override fun onItemClick(position: Int) { + //TODO 需要根据设备类型显示不同的页面 + val deviceModel = deviceModels[position] + deviceModel.deviceName.show(this@AllDeviceActivity) + } + + override fun onAddDeviceClick() { + + } + }) } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt b/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt index 071b55a..81cbbf3 100644 --- a/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt +++ b/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt @@ -68,8 +68,8 @@ .placeholder(R.mipmap.load_image_error) .into(deviceLogoView) - fragmentPages.add(ControlPageFragment(deviceId)) - fragmentPages.add(StatusPageFragment(deviceId)) + fragmentPages.add(ControlPageFragment(deviceInstance)) + fragmentPages.add(StatusPageFragment(deviceInstance)) fragmentPages.add(ServicePageFragment()) deviceInstance.registerDevListener(object : IDevListener { diff --git a/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt index e629a34..c799791 100644 --- a/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt +++ b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt @@ -2,9 +2,12 @@ import android.content.Context import android.graphics.Typeface +import android.util.Log import android.view.LayoutInflater import android.widget.TextView import androidx.fragment.app.Fragment +import com.alibaba.fastjson.JSONObject +import com.bumptech.glide.Glide import com.casic.br.R import com.casic.br.adapter.TabPagerAdapter import com.casic.br.extensions.initLayoutImmersionBar @@ -15,8 +18,17 @@ import com.google.android.material.tabs.TabLayout import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant +import com.tuya.smart.home.sdk.TuyaHomeSdk +import com.tuya.smart.sdk.api.IDevListener +import com.tuya.smart.sdk.api.ITuyaDevice +import kotlinx.android.synthetic.main.activity_range_hood.* import kotlinx.android.synthetic.main.activity_water_heater.* +import kotlinx.android.synthetic.main.activity_water_heater.deviceLogoView +import kotlinx.android.synthetic.main.activity_water_heater.deviceTabLayout +import kotlinx.android.synthetic.main.activity_water_heater.deviceViewPager +import kotlinx.android.synthetic.main.activity_water_heater.rootView import kotlinx.android.synthetic.main.include_device_title.* import java.util.* @@ -26,15 +38,12 @@ * */ class WaterHeaterActivity : KotlinBaseActivity() { + private val kTag = "WaterHeaterActivity" private val context: Context = this@WaterHeaterActivity private val inflater by lazy { LayoutInflater.from(this) } private var fragmentPages: ArrayList = ArrayList() - - init { - fragmentPages.add(ControlPageFragment()) - fragmentPages.add(StatusPageFragment()) - fragmentPages.add(ServicePageFragment()) - } + private lateinit var deviceInstance: ITuyaDevice + private var isWorking = false override fun initLayoutView(): Int = R.layout.activity_water_heater @@ -47,7 +56,54 @@ } override fun initData() { + val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!! + //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 + deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) + val deviceBean = TuyaHomeSdk.getDataInstance().getDeviceBean(deviceId) + if (deviceBean == null) { + "查询设备信息失败,请检查设备是否已离线".show(this) + return + } + titleView.text = "万家乐热水器" + Glide.with(this) + .load(deviceBean.iconUrl) + .placeholder(R.mipmap.load_image_error) + .into(deviceLogoView) + + fragmentPages.add(ControlPageFragment(deviceInstance)) + fragmentPages.add(StatusPageFragment(deviceInstance)) + fragmentPages.add(ServicePageFragment()) + + deviceInstance.registerDevListener(object : IDevListener { + + override fun onDpUpdate(devId: String?, dpStr: String?) { + Log.d(kTag, "onDpUpdate: $dpStr") + val parseObject = JSONObject.parseObject(dpStr) + parseObject.keys.forEach { + when(it){ + + } + } + } + + override fun onRemoved(devId: String?) { + + } + + override fun onStatusChanged(devId: String?, online: Boolean) { + + } + + override fun onNetworkStatusChanged(devId: String?, status: Boolean) { + + } + + override fun onDevInfoUpdate(devId: String?) { + + } + + }) } override fun observeRequestState() { 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 4ab193d..1f658ca 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -49,8 +49,7 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) - //热门推荐 - //TODO 模拟数据 只显示前三个设备 + //TODO 热门推荐 val recommendModels = ArrayList() for (i in 0..2) { val model = RecommendModel() diff --git a/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt b/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt index 2cb7b3c..02fd932 100644 --- a/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/rangehood/ControlPageFragment.kt @@ -11,18 +11,16 @@ import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.tuya.smart.home.sdk.TuyaHomeSdk import com.tuya.smart.sdk.api.ITuyaDevice import kotlinx.android.synthetic.main.fragment_device_rangehood_control.* -class ControlPageFragment(private val deviceId: String) : KotlinBaseFragment() { +class ControlPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { companion object { lateinit var weakReference: WeakReferenceHandler } private val kTag = "ControlPageFragment" - private lateinit var deviceInstance: ITuyaDevice private var isDeviceWorking = false override fun initLayoutView(): Int = R.layout.fragment_device_rangehood_control @@ -33,8 +31,6 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 - deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt b/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt index bd68eeb..19b0f05 100644 --- a/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/rangehood/StatusPageFragment.kt @@ -16,14 +16,13 @@ import com.tuya.smart.sdk.bean.DeviceBean import kotlinx.android.synthetic.main.fragment_device_rangehood_status.* -class StatusPageFragment(private val deviceId: String) : KotlinBaseFragment() { +class StatusPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { companion object { lateinit var weakReference: WeakReferenceHandler } private val kTag = "StatusPageFragment" - private lateinit var deviceInstance: ITuyaDevice private var isDeviceWorking = false override fun initLayoutView(): Int = R.layout.fragment_device_rangehood_status @@ -34,8 +33,6 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 - deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) val homeId = SaveKeyValues.getValue(LocaleConstant.HOME_ID, "") as String if (homeId == "") { diff --git a/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt b/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt index 003e40f..bc0abfd 100644 --- a/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt @@ -1,12 +1,20 @@ package com.casic.br.fragment.waterheater +import android.os.Handler +import com.alibaba.fastjson.JSONObject import com.casic.br.R import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.qmuiteam.qmui.widget.QMUISlider +import com.tuya.smart.sdk.api.ITuyaDevice import kotlinx.android.synthetic.main.fragment_device_waterheater_control.* import kotlin.math.abs -class ControlPageFragment : KotlinBaseFragment() { +class ControlPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { + + companion object { + lateinit var weakReference: WeakReferenceHandler + } private val kTag = "ControlPageFragment" private val minTemp = 36 @@ -22,6 +30,7 @@ } override fun initData() { + weakReference = WeakReferenceHandler(callback) //默认选中 modeRadioGroup.check(R.id.kitchenRadioButton) setTemperatureScope() @@ -42,6 +51,18 @@ } } + private val callback = Handler.Callback { message -> + if (message.what == 2022092601) { + val parseObject = JSONObject.parseObject(message.obj as String) + parseObject.keys.forEach { + when (it) { + + } + } + } + true + } + /** * 设置温度范围 * */ @@ -124,4 +145,10 @@ }) } + + override fun onDestroy() { + super.onDestroy() + deviceInstance.unRegisterDevListener() + deviceInstance.onDestroy() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/waterheater/StatusPageFragment.kt b/app/src/main/java/com/casic/br/fragment/waterheater/StatusPageFragment.kt index 0af764d..095bfa8 100644 --- a/app/src/main/java/com/casic/br/fragment/waterheater/StatusPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/waterheater/StatusPageFragment.kt @@ -1,9 +1,17 @@ package com.casic.br.fragment.waterheater +import android.os.Handler +import com.alibaba.fastjson.JSONObject import com.casic.br.R import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.WeakReferenceHandler +import com.tuya.smart.sdk.api.ITuyaDevice -class StatusPageFragment : KotlinBaseFragment() { +class StatusPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { + + companion object { + lateinit var weakReference: WeakReferenceHandler + } override fun initLayoutView(): Int = R.layout.fragment_device_waterheater_status @@ -12,7 +20,19 @@ } override fun initData() { + weakReference = WeakReferenceHandler(callback) + } + private val callback = Handler.Callback { message -> + if (message.what == 2022092601) { + val parseObject = JSONObject.parseObject(message.obj as String) + parseObject.keys.forEach { + when (it) { + + } + } + } + true } override fun observeRequestState() { @@ -22,4 +42,10 @@ override fun initEvent() { } + + override fun onDestroy() { + super.onDestroy() + deviceInstance.unRegisterDevListener() + deviceInstance.onDestroy() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt index c4bb8d2..a94710e 100644 --- a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt +++ b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt @@ -35,19 +35,28 @@ deviceModels.add(model) } -// val addedDeviceAdapter = AddedDeviceAdapter(this, deviceModels) -// deviceRecyclerView.addItemDecoration( -// DividerItemDecoration(this, DividerItemDecoration.VERTICAL) -// ) -// deviceRecyclerView.adapter = addedDeviceAdapter -// addedDeviceAdapter.setOnItemClickListener(object : -// AddedDeviceAdapter.OnItemClickListener { -// override fun onItemClick(position: Int) { -// //TODO 需要根据设备类型显示不同的页面 -// val deviceModel = deviceModels[position] -// deviceModel.deviceName.show(this@AllDeviceActivity) -// } -// }) + val addedDeviceAdapter = AddedDeviceAdapter(this, deviceModels) + deviceRecyclerView.addItemDecoration( + DividerItemDecoration(this, DividerItemDecoration.VERTICAL) + ) + deviceRecyclerView.adapter = addedDeviceAdapter + addedDeviceAdapter.setOnItemClickListener(object : + AddedDeviceAdapter.OnItemClickListener { + + override fun onButtonClick(position: Int) { + + } + + override fun onItemClick(position: Int) { + //TODO 需要根据设备类型显示不同的页面 + val deviceModel = deviceModels[position] + deviceModel.deviceName.show(this@AllDeviceActivity) + } + + override fun onAddDeviceClick() { + + } + }) } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt b/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt index 071b55a..81cbbf3 100644 --- a/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt +++ b/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt @@ -68,8 +68,8 @@ .placeholder(R.mipmap.load_image_error) .into(deviceLogoView) - fragmentPages.add(ControlPageFragment(deviceId)) - fragmentPages.add(StatusPageFragment(deviceId)) + fragmentPages.add(ControlPageFragment(deviceInstance)) + fragmentPages.add(StatusPageFragment(deviceInstance)) fragmentPages.add(ServicePageFragment()) deviceInstance.registerDevListener(object : IDevListener { diff --git a/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt index e629a34..c799791 100644 --- a/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt +++ b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt @@ -2,9 +2,12 @@ import android.content.Context import android.graphics.Typeface +import android.util.Log import android.view.LayoutInflater import android.widget.TextView import androidx.fragment.app.Fragment +import com.alibaba.fastjson.JSONObject +import com.bumptech.glide.Glide import com.casic.br.R import com.casic.br.adapter.TabPagerAdapter import com.casic.br.extensions.initLayoutImmersionBar @@ -15,8 +18,17 @@ import com.google.android.material.tabs.TabLayout import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant +import com.tuya.smart.home.sdk.TuyaHomeSdk +import com.tuya.smart.sdk.api.IDevListener +import com.tuya.smart.sdk.api.ITuyaDevice +import kotlinx.android.synthetic.main.activity_range_hood.* import kotlinx.android.synthetic.main.activity_water_heater.* +import kotlinx.android.synthetic.main.activity_water_heater.deviceLogoView +import kotlinx.android.synthetic.main.activity_water_heater.deviceTabLayout +import kotlinx.android.synthetic.main.activity_water_heater.deviceViewPager +import kotlinx.android.synthetic.main.activity_water_heater.rootView import kotlinx.android.synthetic.main.include_device_title.* import java.util.* @@ -26,15 +38,12 @@ * */ class WaterHeaterActivity : KotlinBaseActivity() { + private val kTag = "WaterHeaterActivity" private val context: Context = this@WaterHeaterActivity private val inflater by lazy { LayoutInflater.from(this) } private var fragmentPages: ArrayList = ArrayList() - - init { - fragmentPages.add(ControlPageFragment()) - fragmentPages.add(StatusPageFragment()) - fragmentPages.add(ServicePageFragment()) - } + private lateinit var deviceInstance: ITuyaDevice + private var isWorking = false override fun initLayoutView(): Int = R.layout.activity_water_heater @@ -47,7 +56,54 @@ } override fun initData() { + val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!! + //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 + deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) + val deviceBean = TuyaHomeSdk.getDataInstance().getDeviceBean(deviceId) + if (deviceBean == null) { + "查询设备信息失败,请检查设备是否已离线".show(this) + return + } + titleView.text = "万家乐热水器" + Glide.with(this) + .load(deviceBean.iconUrl) + .placeholder(R.mipmap.load_image_error) + .into(deviceLogoView) + + fragmentPages.add(ControlPageFragment(deviceInstance)) + fragmentPages.add(StatusPageFragment(deviceInstance)) + fragmentPages.add(ServicePageFragment()) + + deviceInstance.registerDevListener(object : IDevListener { + + override fun onDpUpdate(devId: String?, dpStr: String?) { + Log.d(kTag, "onDpUpdate: $dpStr") + val parseObject = JSONObject.parseObject(dpStr) + parseObject.keys.forEach { + when(it){ + + } + } + } + + override fun onRemoved(devId: String?) { + + } + + override fun onStatusChanged(devId: String?, online: Boolean) { + + } + + override fun onNetworkStatusChanged(devId: String?, status: Boolean) { + + } + + override fun onDevInfoUpdate(devId: String?) { + + } + + }) } override fun observeRequestState() { diff --git a/app/src/main/res/layout/activity_water_heater.xml b/app/src/main/res/layout/activity_water_heater.xml index 1bd9505..c255b3c 100644 --- a/app/src/main/res/layout/activity_water_heater.xml +++ b/app/src/main/res/layout/activity_water_heater.xml @@ -18,8 +18,7 @@ + android:layout_height="wrap_content" />