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 19b0f05..99731ed 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 @@ -1,17 +1,14 @@ package com.casic.br.fragment.rangehood +import android.content.Context +import android.net.wifi.WifiManager import android.os.Handler -import android.util.Log +import android.view.View import com.alibaba.fastjson.JSONObject import com.casic.br.R import com.casic.br.extensions.diffDate -import com.casic.br.utils.LocaleConstant import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.tuya.smart.home.sdk.TuyaHomeSdk -import com.tuya.smart.home.sdk.bean.HomeBean -import com.tuya.smart.home.sdk.callback.ITuyaHomeResultCallback import com.tuya.smart.sdk.api.ITuyaDevice import com.tuya.smart.sdk.bean.DeviceBean import kotlinx.android.synthetic.main.fragment_device_rangehood_status.* @@ -24,6 +21,7 @@ private val kTag = "StatusPageFragment" private var isDeviceWorking = false + private val wifi by lazy { requireContext().applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager } override fun initLayoutView(): Int = R.layout.fragment_device_rangehood_status @@ -33,28 +31,6 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - - val homeId = SaveKeyValues.getValue(LocaleConstant.HOME_ID, "") as String - if (homeId == "") { - return - } - TuyaHomeSdk.newHomeInstance(homeId.toLong()) - .getHomeDetail(object : ITuyaHomeResultCallback { - override fun onSuccess(bean: HomeBean) { - val deviceList: List = bean.deviceList - deviceList.forEach { - if (it.deviceCategory == "yyj") { - deviceUsedTimeView.text = - String.format("${it.time.toString().diffDate()}天") - } - return@forEach - } - } - - override fun onError(errorCode: String, errorMsg: String) { - Log.d(kTag, "onError: $errorMsg") - } - }) } override fun onResume() { @@ -65,6 +41,13 @@ } else { "工作中" } + wifiStatusSwitch.isChecked = !wifi.connectionInfo.ssid.contains("unknown ssid") + if (wifiStatusSwitch.isChecked) { + wifiLayout.visibility = View.VISIBLE + wifiNameView.text = wifi.connectionInfo.ssid.replace("\"", "") + } else { + wifiLayout.visibility = View.GONE + } } override fun observeRequestState() { @@ -76,46 +59,53 @@ } private val callback = Handler.Callback { message -> - if (message.what == 2022092302) { - val parseObject = JSONObject.parseObject(message.obj as String) - parseObject.keys.forEach { - when (it) { - "1" -> {//开关机 - isDeviceWorking = parseObject[it] as Boolean - } - "11" -> {//设备状态,[off, low, high, strong, air, fangdaoguan, wash, delay, xunhang] - val status = parseObject[it] as String - deviceStateView.text = if (status == "off") { - "已关机" - } else { - "工作中" + when (message.what) { + 2022092302 -> { + val parseObject = JSONObject.parseObject(message.obj as String) + parseObject.keys.forEach { + when (it) { + "1" -> {//开关机 + isDeviceWorking = parseObject[it] as Boolean } - } - "12" -> {//累计工作时间 - workingTimeView.text = if (isDeviceWorking) { - "${parseObject[it]}分" - } else { - "0分" + "11" -> {//设备状态,[off, low, high, strong, air, fangdaoguan, wash, delay, xunhang] + val status = parseObject[it] as String + deviceStateView.text = if (status == "off") { + "已关机" + } else { + "工作中" + } } - } - "106" -> {//烟灶联动 - val isLinkage = parseObject[it] as Boolean - linkageView.text = if (isLinkage) { - "开" - } else { - "关" + "12" -> {//累计工作时间 + workingTimeView.text = if (isDeviceWorking) { + "${parseObject[it]}分" + } else { + "0分" + } } - } - "107" -> {//倒油提醒 - val isPourOil = parseObject[it] as Boolean - pourOilView.text = if (isPourOil) { - "开" - } else { - "关" + "106" -> {//烟灶联动 + val isLinkage = parseObject[it] as Boolean + linkageView.text = if (isLinkage) { + "开" + } else { + "关" + } + } + "107" -> {//倒油提醒 + val isPourOil = parseObject[it] as Boolean + pourOilView.text = if (isPourOil) { + "开" + } else { + "关" + } } } } } + 2022092303 -> { + val deviceBean = message.obj as DeviceBean + deviceUsedTimeView.text = String.format("${deviceBean.time.toString().diffDate()}天") + ipAddressView.text = deviceBean.ip + } } true } 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 19b0f05..99731ed 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 @@ -1,17 +1,14 @@ package com.casic.br.fragment.rangehood +import android.content.Context +import android.net.wifi.WifiManager import android.os.Handler -import android.util.Log +import android.view.View import com.alibaba.fastjson.JSONObject import com.casic.br.R import com.casic.br.extensions.diffDate -import com.casic.br.utils.LocaleConstant import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.tuya.smart.home.sdk.TuyaHomeSdk -import com.tuya.smart.home.sdk.bean.HomeBean -import com.tuya.smart.home.sdk.callback.ITuyaHomeResultCallback import com.tuya.smart.sdk.api.ITuyaDevice import com.tuya.smart.sdk.bean.DeviceBean import kotlinx.android.synthetic.main.fragment_device_rangehood_status.* @@ -24,6 +21,7 @@ private val kTag = "StatusPageFragment" private var isDeviceWorking = false + private val wifi by lazy { requireContext().applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager } override fun initLayoutView(): Int = R.layout.fragment_device_rangehood_status @@ -33,28 +31,6 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - - val homeId = SaveKeyValues.getValue(LocaleConstant.HOME_ID, "") as String - if (homeId == "") { - return - } - TuyaHomeSdk.newHomeInstance(homeId.toLong()) - .getHomeDetail(object : ITuyaHomeResultCallback { - override fun onSuccess(bean: HomeBean) { - val deviceList: List = bean.deviceList - deviceList.forEach { - if (it.deviceCategory == "yyj") { - deviceUsedTimeView.text = - String.format("${it.time.toString().diffDate()}天") - } - return@forEach - } - } - - override fun onError(errorCode: String, errorMsg: String) { - Log.d(kTag, "onError: $errorMsg") - } - }) } override fun onResume() { @@ -65,6 +41,13 @@ } else { "工作中" } + wifiStatusSwitch.isChecked = !wifi.connectionInfo.ssid.contains("unknown ssid") + if (wifiStatusSwitch.isChecked) { + wifiLayout.visibility = View.VISIBLE + wifiNameView.text = wifi.connectionInfo.ssid.replace("\"", "") + } else { + wifiLayout.visibility = View.GONE + } } override fun observeRequestState() { @@ -76,46 +59,53 @@ } private val callback = Handler.Callback { message -> - if (message.what == 2022092302) { - val parseObject = JSONObject.parseObject(message.obj as String) - parseObject.keys.forEach { - when (it) { - "1" -> {//开关机 - isDeviceWorking = parseObject[it] as Boolean - } - "11" -> {//设备状态,[off, low, high, strong, air, fangdaoguan, wash, delay, xunhang] - val status = parseObject[it] as String - deviceStateView.text = if (status == "off") { - "已关机" - } else { - "工作中" + when (message.what) { + 2022092302 -> { + val parseObject = JSONObject.parseObject(message.obj as String) + parseObject.keys.forEach { + when (it) { + "1" -> {//开关机 + isDeviceWorking = parseObject[it] as Boolean } - } - "12" -> {//累计工作时间 - workingTimeView.text = if (isDeviceWorking) { - "${parseObject[it]}分" - } else { - "0分" + "11" -> {//设备状态,[off, low, high, strong, air, fangdaoguan, wash, delay, xunhang] + val status = parseObject[it] as String + deviceStateView.text = if (status == "off") { + "已关机" + } else { + "工作中" + } } - } - "106" -> {//烟灶联动 - val isLinkage = parseObject[it] as Boolean - linkageView.text = if (isLinkage) { - "开" - } else { - "关" + "12" -> {//累计工作时间 + workingTimeView.text = if (isDeviceWorking) { + "${parseObject[it]}分" + } else { + "0分" + } } - } - "107" -> {//倒油提醒 - val isPourOil = parseObject[it] as Boolean - pourOilView.text = if (isPourOil) { - "开" - } else { - "关" + "106" -> {//烟灶联动 + val isLinkage = parseObject[it] as Boolean + linkageView.text = if (isLinkage) { + "开" + } else { + "关" + } + } + "107" -> {//倒油提醒 + val isPourOil = parseObject[it] as Boolean + pourOilView.text = if (isPourOil) { + "开" + } else { + "关" + } } } } } + 2022092303 -> { + val deviceBean = message.obj as DeviceBean + deviceUsedTimeView.text = String.format("${deviceBean.time.toString().diffDate()}天") + ipAddressView.text = deviceBean.ip + } } true } 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 6cf2638..e0c7868 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 @@ -3,6 +3,7 @@ import android.os.Handler import com.alibaba.fastjson.JSONObject import com.casic.br.R +import com.casic.br.utils.SliderCallback import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.qmuiteam.qmui.widget.QMUISlider @@ -51,18 +52,6 @@ } } - private val callback = Handler.Callback { message -> - if (message.what == 2022092601) { - val parseObject = JSONObject.parseObject(message.obj as String) - parseObject.keys.forEach { - when (it) { - - } - } - } - true - } - /** * 设置温度范围 * */ @@ -90,62 +79,37 @@ } override fun initEvent() { - temperatureSlider.setCallback(object : QMUISlider.Callback { + temperatureSlider.setCallback(object : SliderCallback() { override fun onProgressChange( slider: QMUISlider?, progress: Int, tickCount: Int, fromUser: Boolean ) { currentProgress = progress currentTempView.text = String.format("${minTemp + progress}") } - - override fun onTouchDown( - slider: QMUISlider?, progress: Int, tickCount: Int, hitThumb: Boolean - ) { - - } - - override fun onTouchUp(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStartMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStopMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } }) - timeSeekBar.setCallback(object : QMUISlider.Callback { + timeSeekBar.setCallback(object : SliderCallback() { override fun onProgressChange( slider: QMUISlider?, progress: Int, tickCount: Int, fromUser: Boolean ) { currentTimeProgress = progress currentTimeView.text = timeScope[currentTimeProgress].toString() } - - override fun onTouchDown( - slider: QMUISlider?, progress: Int, tickCount: Int, hitThumb: Boolean - ) { - - } - - override fun onTouchUp(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStartMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStopMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - }) } + 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 onDestroy() { super.onDestroy() deviceInstance.unRegisterDevListener() 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 19b0f05..99731ed 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 @@ -1,17 +1,14 @@ package com.casic.br.fragment.rangehood +import android.content.Context +import android.net.wifi.WifiManager import android.os.Handler -import android.util.Log +import android.view.View import com.alibaba.fastjson.JSONObject import com.casic.br.R import com.casic.br.extensions.diffDate -import com.casic.br.utils.LocaleConstant import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.tuya.smart.home.sdk.TuyaHomeSdk -import com.tuya.smart.home.sdk.bean.HomeBean -import com.tuya.smart.home.sdk.callback.ITuyaHomeResultCallback import com.tuya.smart.sdk.api.ITuyaDevice import com.tuya.smart.sdk.bean.DeviceBean import kotlinx.android.synthetic.main.fragment_device_rangehood_status.* @@ -24,6 +21,7 @@ private val kTag = "StatusPageFragment" private var isDeviceWorking = false + private val wifi by lazy { requireContext().applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager } override fun initLayoutView(): Int = R.layout.fragment_device_rangehood_status @@ -33,28 +31,6 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - - val homeId = SaveKeyValues.getValue(LocaleConstant.HOME_ID, "") as String - if (homeId == "") { - return - } - TuyaHomeSdk.newHomeInstance(homeId.toLong()) - .getHomeDetail(object : ITuyaHomeResultCallback { - override fun onSuccess(bean: HomeBean) { - val deviceList: List = bean.deviceList - deviceList.forEach { - if (it.deviceCategory == "yyj") { - deviceUsedTimeView.text = - String.format("${it.time.toString().diffDate()}天") - } - return@forEach - } - } - - override fun onError(errorCode: String, errorMsg: String) { - Log.d(kTag, "onError: $errorMsg") - } - }) } override fun onResume() { @@ -65,6 +41,13 @@ } else { "工作中" } + wifiStatusSwitch.isChecked = !wifi.connectionInfo.ssid.contains("unknown ssid") + if (wifiStatusSwitch.isChecked) { + wifiLayout.visibility = View.VISIBLE + wifiNameView.text = wifi.connectionInfo.ssid.replace("\"", "") + } else { + wifiLayout.visibility = View.GONE + } } override fun observeRequestState() { @@ -76,46 +59,53 @@ } private val callback = Handler.Callback { message -> - if (message.what == 2022092302) { - val parseObject = JSONObject.parseObject(message.obj as String) - parseObject.keys.forEach { - when (it) { - "1" -> {//开关机 - isDeviceWorking = parseObject[it] as Boolean - } - "11" -> {//设备状态,[off, low, high, strong, air, fangdaoguan, wash, delay, xunhang] - val status = parseObject[it] as String - deviceStateView.text = if (status == "off") { - "已关机" - } else { - "工作中" + when (message.what) { + 2022092302 -> { + val parseObject = JSONObject.parseObject(message.obj as String) + parseObject.keys.forEach { + when (it) { + "1" -> {//开关机 + isDeviceWorking = parseObject[it] as Boolean } - } - "12" -> {//累计工作时间 - workingTimeView.text = if (isDeviceWorking) { - "${parseObject[it]}分" - } else { - "0分" + "11" -> {//设备状态,[off, low, high, strong, air, fangdaoguan, wash, delay, xunhang] + val status = parseObject[it] as String + deviceStateView.text = if (status == "off") { + "已关机" + } else { + "工作中" + } } - } - "106" -> {//烟灶联动 - val isLinkage = parseObject[it] as Boolean - linkageView.text = if (isLinkage) { - "开" - } else { - "关" + "12" -> {//累计工作时间 + workingTimeView.text = if (isDeviceWorking) { + "${parseObject[it]}分" + } else { + "0分" + } } - } - "107" -> {//倒油提醒 - val isPourOil = parseObject[it] as Boolean - pourOilView.text = if (isPourOil) { - "开" - } else { - "关" + "106" -> {//烟灶联动 + val isLinkage = parseObject[it] as Boolean + linkageView.text = if (isLinkage) { + "开" + } else { + "关" + } + } + "107" -> {//倒油提醒 + val isPourOil = parseObject[it] as Boolean + pourOilView.text = if (isPourOil) { + "开" + } else { + "关" + } } } } } + 2022092303 -> { + val deviceBean = message.obj as DeviceBean + deviceUsedTimeView.text = String.format("${deviceBean.time.toString().diffDate()}天") + ipAddressView.text = deviceBean.ip + } } true } 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 6cf2638..e0c7868 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 @@ -3,6 +3,7 @@ import android.os.Handler import com.alibaba.fastjson.JSONObject import com.casic.br.R +import com.casic.br.utils.SliderCallback import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.qmuiteam.qmui.widget.QMUISlider @@ -51,18 +52,6 @@ } } - private val callback = Handler.Callback { message -> - if (message.what == 2022092601) { - val parseObject = JSONObject.parseObject(message.obj as String) - parseObject.keys.forEach { - when (it) { - - } - } - } - true - } - /** * 设置温度范围 * */ @@ -90,62 +79,37 @@ } override fun initEvent() { - temperatureSlider.setCallback(object : QMUISlider.Callback { + temperatureSlider.setCallback(object : SliderCallback() { override fun onProgressChange( slider: QMUISlider?, progress: Int, tickCount: Int, fromUser: Boolean ) { currentProgress = progress currentTempView.text = String.format("${minTemp + progress}") } - - override fun onTouchDown( - slider: QMUISlider?, progress: Int, tickCount: Int, hitThumb: Boolean - ) { - - } - - override fun onTouchUp(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStartMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStopMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } }) - timeSeekBar.setCallback(object : QMUISlider.Callback { + timeSeekBar.setCallback(object : SliderCallback() { override fun onProgressChange( slider: QMUISlider?, progress: Int, tickCount: Int, fromUser: Boolean ) { currentTimeProgress = progress currentTimeView.text = timeScope[currentTimeProgress].toString() } - - override fun onTouchDown( - slider: QMUISlider?, progress: Int, tickCount: Int, hitThumb: Boolean - ) { - - } - - override fun onTouchUp(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStartMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStopMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - }) } + 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 onDestroy() { super.onDestroy() deviceInstance.unRegisterDevListener() 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 87ba362..20bbe61 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 @@ -3,23 +3,16 @@ import android.content.Context import android.net.wifi.WifiManager import android.os.Handler -import android.util.Log +import android.view.View import com.alibaba.fastjson.JSONObject import com.casic.br.R import com.casic.br.extensions.diffDate -import com.casic.br.utils.LocaleConstant import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.tuya.smart.home.sdk.TuyaHomeSdk -import com.tuya.smart.home.sdk.bean.HomeBean -import com.tuya.smart.home.sdk.callback.ITuyaHomeResultCallback import com.tuya.smart.sdk.api.ITuyaDevice import com.tuya.smart.sdk.bean.DeviceBean -import kotlinx.android.synthetic.main.fragment_device_rangehood_status.* import kotlinx.android.synthetic.main.fragment_device_waterheater_status.* -import kotlinx.android.synthetic.main.fragment_device_waterheater_status.deviceUsedTimeView class StatusPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { @@ -39,54 +32,39 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - - val homeId = SaveKeyValues.getValue(LocaleConstant.HOME_ID, "") as String - if (homeId == "") { - return - } - TuyaHomeSdk.newHomeInstance(homeId.toLong()) - .getHomeDetail(object : ITuyaHomeResultCallback { - override fun onSuccess(bean: HomeBean) { - val deviceList: List = bean.deviceList - deviceList.forEach { - if (it.deviceCategory == "rs") { - deviceUsedTimeView.text = - String.format("${it.time.toString().diffDate()}天") - } - return@forEach - } - } - - override fun onError(errorCode: String, errorMsg: String) { - Log.d(kTag, "onError: $errorMsg") - } - }) } private val callback = Handler.Callback { message -> - if (message.what == 2022092602) { - val parseObject = JSONObject.parseObject(message.obj as String) - parseObject.keys.forEach { - when (it) { - "1" -> {//开关机 - isDeviceWorking = parseObject[it] as Boolean - } - "2" -> {//模式,[shushiyu, suiwengan, chufang] - workModeView.text = when (parseObject[it] as String) { - "shushiyu" -> "舒适浴" - "suiwengan" -> "随温感" - else -> "厨房" + when (message.what) { + 2022092602 -> { + val parseObject = JSONObject.parseObject(message.obj as String) + parseObject.keys.forEach { + when (it) { + "1" -> {//开关机 + isDeviceWorking = parseObject[it] as Boolean + } + "2" -> {//模式,[shushiyu, suiwengan, chufang] + workModeView.text = when (parseObject[it] as String) { + "shushiyu" -> "舒适浴" + "suiwengan" -> "随温感" + else -> "厨房" + } + } + "10" -> { + currentTempView.text = String.format( + "${parseObject[it]}${ + requireContext().resources.getString(R.string.temperature_unit) + }" + ) } } - "10" -> { - currentTempView.text = String.format( - "${parseObject[it]}${ - requireContext().resources.getString(R.string.temperature_unit) - }" - ) - } } } + 2022092603 -> { + val deviceBean = message.obj as DeviceBean + deviceUsedTimeView.text = String.format("${deviceBean.time.toString().diffDate()}天") + ipAddressView.text = deviceBean.ip + } } true } @@ -94,6 +72,12 @@ override fun onResume() { super.onResume() wifiStatusSwitch.isChecked = !wifi.connectionInfo.ssid.contains("unknown ssid") + if (wifiStatusSwitch.isChecked) { + wifiLayout.visibility = View.VISIBLE + wifiNameView.text = wifi.connectionInfo.ssid.replace("\"", "") + } else { + wifiLayout.visibility = View.GONE + } deviceStatusSwitch.isChecked = isDeviceWorking } 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 19b0f05..99731ed 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 @@ -1,17 +1,14 @@ package com.casic.br.fragment.rangehood +import android.content.Context +import android.net.wifi.WifiManager import android.os.Handler -import android.util.Log +import android.view.View import com.alibaba.fastjson.JSONObject import com.casic.br.R import com.casic.br.extensions.diffDate -import com.casic.br.utils.LocaleConstant import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.tuya.smart.home.sdk.TuyaHomeSdk -import com.tuya.smart.home.sdk.bean.HomeBean -import com.tuya.smart.home.sdk.callback.ITuyaHomeResultCallback import com.tuya.smart.sdk.api.ITuyaDevice import com.tuya.smart.sdk.bean.DeviceBean import kotlinx.android.synthetic.main.fragment_device_rangehood_status.* @@ -24,6 +21,7 @@ private val kTag = "StatusPageFragment" private var isDeviceWorking = false + private val wifi by lazy { requireContext().applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager } override fun initLayoutView(): Int = R.layout.fragment_device_rangehood_status @@ -33,28 +31,6 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - - val homeId = SaveKeyValues.getValue(LocaleConstant.HOME_ID, "") as String - if (homeId == "") { - return - } - TuyaHomeSdk.newHomeInstance(homeId.toLong()) - .getHomeDetail(object : ITuyaHomeResultCallback { - override fun onSuccess(bean: HomeBean) { - val deviceList: List = bean.deviceList - deviceList.forEach { - if (it.deviceCategory == "yyj") { - deviceUsedTimeView.text = - String.format("${it.time.toString().diffDate()}天") - } - return@forEach - } - } - - override fun onError(errorCode: String, errorMsg: String) { - Log.d(kTag, "onError: $errorMsg") - } - }) } override fun onResume() { @@ -65,6 +41,13 @@ } else { "工作中" } + wifiStatusSwitch.isChecked = !wifi.connectionInfo.ssid.contains("unknown ssid") + if (wifiStatusSwitch.isChecked) { + wifiLayout.visibility = View.VISIBLE + wifiNameView.text = wifi.connectionInfo.ssid.replace("\"", "") + } else { + wifiLayout.visibility = View.GONE + } } override fun observeRequestState() { @@ -76,46 +59,53 @@ } private val callback = Handler.Callback { message -> - if (message.what == 2022092302) { - val parseObject = JSONObject.parseObject(message.obj as String) - parseObject.keys.forEach { - when (it) { - "1" -> {//开关机 - isDeviceWorking = parseObject[it] as Boolean - } - "11" -> {//设备状态,[off, low, high, strong, air, fangdaoguan, wash, delay, xunhang] - val status = parseObject[it] as String - deviceStateView.text = if (status == "off") { - "已关机" - } else { - "工作中" + when (message.what) { + 2022092302 -> { + val parseObject = JSONObject.parseObject(message.obj as String) + parseObject.keys.forEach { + when (it) { + "1" -> {//开关机 + isDeviceWorking = parseObject[it] as Boolean } - } - "12" -> {//累计工作时间 - workingTimeView.text = if (isDeviceWorking) { - "${parseObject[it]}分" - } else { - "0分" + "11" -> {//设备状态,[off, low, high, strong, air, fangdaoguan, wash, delay, xunhang] + val status = parseObject[it] as String + deviceStateView.text = if (status == "off") { + "已关机" + } else { + "工作中" + } } - } - "106" -> {//烟灶联动 - val isLinkage = parseObject[it] as Boolean - linkageView.text = if (isLinkage) { - "开" - } else { - "关" + "12" -> {//累计工作时间 + workingTimeView.text = if (isDeviceWorking) { + "${parseObject[it]}分" + } else { + "0分" + } } - } - "107" -> {//倒油提醒 - val isPourOil = parseObject[it] as Boolean - pourOilView.text = if (isPourOil) { - "开" - } else { - "关" + "106" -> {//烟灶联动 + val isLinkage = parseObject[it] as Boolean + linkageView.text = if (isLinkage) { + "开" + } else { + "关" + } + } + "107" -> {//倒油提醒 + val isPourOil = parseObject[it] as Boolean + pourOilView.text = if (isPourOil) { + "开" + } else { + "关" + } } } } } + 2022092303 -> { + val deviceBean = message.obj as DeviceBean + deviceUsedTimeView.text = String.format("${deviceBean.time.toString().diffDate()}天") + ipAddressView.text = deviceBean.ip + } } true } 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 6cf2638..e0c7868 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 @@ -3,6 +3,7 @@ import android.os.Handler import com.alibaba.fastjson.JSONObject import com.casic.br.R +import com.casic.br.utils.SliderCallback import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.qmuiteam.qmui.widget.QMUISlider @@ -51,18 +52,6 @@ } } - private val callback = Handler.Callback { message -> - if (message.what == 2022092601) { - val parseObject = JSONObject.parseObject(message.obj as String) - parseObject.keys.forEach { - when (it) { - - } - } - } - true - } - /** * 设置温度范围 * */ @@ -90,62 +79,37 @@ } override fun initEvent() { - temperatureSlider.setCallback(object : QMUISlider.Callback { + temperatureSlider.setCallback(object : SliderCallback() { override fun onProgressChange( slider: QMUISlider?, progress: Int, tickCount: Int, fromUser: Boolean ) { currentProgress = progress currentTempView.text = String.format("${minTemp + progress}") } - - override fun onTouchDown( - slider: QMUISlider?, progress: Int, tickCount: Int, hitThumb: Boolean - ) { - - } - - override fun onTouchUp(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStartMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStopMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } }) - timeSeekBar.setCallback(object : QMUISlider.Callback { + timeSeekBar.setCallback(object : SliderCallback() { override fun onProgressChange( slider: QMUISlider?, progress: Int, tickCount: Int, fromUser: Boolean ) { currentTimeProgress = progress currentTimeView.text = timeScope[currentTimeProgress].toString() } - - override fun onTouchDown( - slider: QMUISlider?, progress: Int, tickCount: Int, hitThumb: Boolean - ) { - - } - - override fun onTouchUp(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStartMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStopMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - }) } + 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 onDestroy() { super.onDestroy() deviceInstance.unRegisterDevListener() 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 87ba362..20bbe61 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 @@ -3,23 +3,16 @@ import android.content.Context import android.net.wifi.WifiManager import android.os.Handler -import android.util.Log +import android.view.View import com.alibaba.fastjson.JSONObject import com.casic.br.R import com.casic.br.extensions.diffDate -import com.casic.br.utils.LocaleConstant import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.tuya.smart.home.sdk.TuyaHomeSdk -import com.tuya.smart.home.sdk.bean.HomeBean -import com.tuya.smart.home.sdk.callback.ITuyaHomeResultCallback import com.tuya.smart.sdk.api.ITuyaDevice import com.tuya.smart.sdk.bean.DeviceBean -import kotlinx.android.synthetic.main.fragment_device_rangehood_status.* import kotlinx.android.synthetic.main.fragment_device_waterheater_status.* -import kotlinx.android.synthetic.main.fragment_device_waterheater_status.deviceUsedTimeView class StatusPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { @@ -39,54 +32,39 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - - val homeId = SaveKeyValues.getValue(LocaleConstant.HOME_ID, "") as String - if (homeId == "") { - return - } - TuyaHomeSdk.newHomeInstance(homeId.toLong()) - .getHomeDetail(object : ITuyaHomeResultCallback { - override fun onSuccess(bean: HomeBean) { - val deviceList: List = bean.deviceList - deviceList.forEach { - if (it.deviceCategory == "rs") { - deviceUsedTimeView.text = - String.format("${it.time.toString().diffDate()}天") - } - return@forEach - } - } - - override fun onError(errorCode: String, errorMsg: String) { - Log.d(kTag, "onError: $errorMsg") - } - }) } private val callback = Handler.Callback { message -> - if (message.what == 2022092602) { - val parseObject = JSONObject.parseObject(message.obj as String) - parseObject.keys.forEach { - when (it) { - "1" -> {//开关机 - isDeviceWorking = parseObject[it] as Boolean - } - "2" -> {//模式,[shushiyu, suiwengan, chufang] - workModeView.text = when (parseObject[it] as String) { - "shushiyu" -> "舒适浴" - "suiwengan" -> "随温感" - else -> "厨房" + when (message.what) { + 2022092602 -> { + val parseObject = JSONObject.parseObject(message.obj as String) + parseObject.keys.forEach { + when (it) { + "1" -> {//开关机 + isDeviceWorking = parseObject[it] as Boolean + } + "2" -> {//模式,[shushiyu, suiwengan, chufang] + workModeView.text = when (parseObject[it] as String) { + "shushiyu" -> "舒适浴" + "suiwengan" -> "随温感" + else -> "厨房" + } + } + "10" -> { + currentTempView.text = String.format( + "${parseObject[it]}${ + requireContext().resources.getString(R.string.temperature_unit) + }" + ) } } - "10" -> { - currentTempView.text = String.format( - "${parseObject[it]}${ - requireContext().resources.getString(R.string.temperature_unit) - }" - ) - } } } + 2022092603 -> { + val deviceBean = message.obj as DeviceBean + deviceUsedTimeView.text = String.format("${deviceBean.time.toString().diffDate()}天") + ipAddressView.text = deviceBean.ip + } } true } @@ -94,6 +72,12 @@ override fun onResume() { super.onResume() wifiStatusSwitch.isChecked = !wifi.connectionInfo.ssid.contains("unknown ssid") + if (wifiStatusSwitch.isChecked) { + wifiLayout.visibility = View.VISIBLE + wifiNameView.text = wifi.connectionInfo.ssid.replace("\"", "") + } else { + wifiLayout.visibility = View.GONE + } deviceStatusSwitch.isChecked = isDeviceWorking } diff --git a/app/src/main/java/com/casic/br/utils/SliderCallback.kt b/app/src/main/java/com/casic/br/utils/SliderCallback.kt new file mode 100644 index 0000000..19169b8 --- /dev/null +++ b/app/src/main/java/com/casic/br/utils/SliderCallback.kt @@ -0,0 +1,29 @@ +package com.casic.br.utils + +import com.qmuiteam.qmui.widget.QMUISlider + +open class SliderCallback : QMUISlider.Callback { + override fun onProgressChange( + slider: QMUISlider?, progress: Int, tickCount: Int, fromUser: Boolean + ) { + + } + + override fun onTouchDown( + slider: QMUISlider?, progress: Int, tickCount: Int, hitThumb: Boolean + ) { + + } + + override fun onTouchUp(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } + + override fun onStartMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } + + override fun onStopMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } +} \ No newline at end of file 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 19b0f05..99731ed 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 @@ -1,17 +1,14 @@ package com.casic.br.fragment.rangehood +import android.content.Context +import android.net.wifi.WifiManager import android.os.Handler -import android.util.Log +import android.view.View import com.alibaba.fastjson.JSONObject import com.casic.br.R import com.casic.br.extensions.diffDate -import com.casic.br.utils.LocaleConstant import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.tuya.smart.home.sdk.TuyaHomeSdk -import com.tuya.smart.home.sdk.bean.HomeBean -import com.tuya.smart.home.sdk.callback.ITuyaHomeResultCallback import com.tuya.smart.sdk.api.ITuyaDevice import com.tuya.smart.sdk.bean.DeviceBean import kotlinx.android.synthetic.main.fragment_device_rangehood_status.* @@ -24,6 +21,7 @@ private val kTag = "StatusPageFragment" private var isDeviceWorking = false + private val wifi by lazy { requireContext().applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager } override fun initLayoutView(): Int = R.layout.fragment_device_rangehood_status @@ -33,28 +31,6 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - - val homeId = SaveKeyValues.getValue(LocaleConstant.HOME_ID, "") as String - if (homeId == "") { - return - } - TuyaHomeSdk.newHomeInstance(homeId.toLong()) - .getHomeDetail(object : ITuyaHomeResultCallback { - override fun onSuccess(bean: HomeBean) { - val deviceList: List = bean.deviceList - deviceList.forEach { - if (it.deviceCategory == "yyj") { - deviceUsedTimeView.text = - String.format("${it.time.toString().diffDate()}天") - } - return@forEach - } - } - - override fun onError(errorCode: String, errorMsg: String) { - Log.d(kTag, "onError: $errorMsg") - } - }) } override fun onResume() { @@ -65,6 +41,13 @@ } else { "工作中" } + wifiStatusSwitch.isChecked = !wifi.connectionInfo.ssid.contains("unknown ssid") + if (wifiStatusSwitch.isChecked) { + wifiLayout.visibility = View.VISIBLE + wifiNameView.text = wifi.connectionInfo.ssid.replace("\"", "") + } else { + wifiLayout.visibility = View.GONE + } } override fun observeRequestState() { @@ -76,46 +59,53 @@ } private val callback = Handler.Callback { message -> - if (message.what == 2022092302) { - val parseObject = JSONObject.parseObject(message.obj as String) - parseObject.keys.forEach { - when (it) { - "1" -> {//开关机 - isDeviceWorking = parseObject[it] as Boolean - } - "11" -> {//设备状态,[off, low, high, strong, air, fangdaoguan, wash, delay, xunhang] - val status = parseObject[it] as String - deviceStateView.text = if (status == "off") { - "已关机" - } else { - "工作中" + when (message.what) { + 2022092302 -> { + val parseObject = JSONObject.parseObject(message.obj as String) + parseObject.keys.forEach { + when (it) { + "1" -> {//开关机 + isDeviceWorking = parseObject[it] as Boolean } - } - "12" -> {//累计工作时间 - workingTimeView.text = if (isDeviceWorking) { - "${parseObject[it]}分" - } else { - "0分" + "11" -> {//设备状态,[off, low, high, strong, air, fangdaoguan, wash, delay, xunhang] + val status = parseObject[it] as String + deviceStateView.text = if (status == "off") { + "已关机" + } else { + "工作中" + } } - } - "106" -> {//烟灶联动 - val isLinkage = parseObject[it] as Boolean - linkageView.text = if (isLinkage) { - "开" - } else { - "关" + "12" -> {//累计工作时间 + workingTimeView.text = if (isDeviceWorking) { + "${parseObject[it]}分" + } else { + "0分" + } } - } - "107" -> {//倒油提醒 - val isPourOil = parseObject[it] as Boolean - pourOilView.text = if (isPourOil) { - "开" - } else { - "关" + "106" -> {//烟灶联动 + val isLinkage = parseObject[it] as Boolean + linkageView.text = if (isLinkage) { + "开" + } else { + "关" + } + } + "107" -> {//倒油提醒 + val isPourOil = parseObject[it] as Boolean + pourOilView.text = if (isPourOil) { + "开" + } else { + "关" + } } } } } + 2022092303 -> { + val deviceBean = message.obj as DeviceBean + deviceUsedTimeView.text = String.format("${deviceBean.time.toString().diffDate()}天") + ipAddressView.text = deviceBean.ip + } } true } 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 6cf2638..e0c7868 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 @@ -3,6 +3,7 @@ import android.os.Handler import com.alibaba.fastjson.JSONObject import com.casic.br.R +import com.casic.br.utils.SliderCallback import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.qmuiteam.qmui.widget.QMUISlider @@ -51,18 +52,6 @@ } } - private val callback = Handler.Callback { message -> - if (message.what == 2022092601) { - val parseObject = JSONObject.parseObject(message.obj as String) - parseObject.keys.forEach { - when (it) { - - } - } - } - true - } - /** * 设置温度范围 * */ @@ -90,62 +79,37 @@ } override fun initEvent() { - temperatureSlider.setCallback(object : QMUISlider.Callback { + temperatureSlider.setCallback(object : SliderCallback() { override fun onProgressChange( slider: QMUISlider?, progress: Int, tickCount: Int, fromUser: Boolean ) { currentProgress = progress currentTempView.text = String.format("${minTemp + progress}") } - - override fun onTouchDown( - slider: QMUISlider?, progress: Int, tickCount: Int, hitThumb: Boolean - ) { - - } - - override fun onTouchUp(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStartMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStopMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } }) - timeSeekBar.setCallback(object : QMUISlider.Callback { + timeSeekBar.setCallback(object : SliderCallback() { override fun onProgressChange( slider: QMUISlider?, progress: Int, tickCount: Int, fromUser: Boolean ) { currentTimeProgress = progress currentTimeView.text = timeScope[currentTimeProgress].toString() } - - override fun onTouchDown( - slider: QMUISlider?, progress: Int, tickCount: Int, hitThumb: Boolean - ) { - - } - - override fun onTouchUp(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStartMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStopMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - }) } + 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 onDestroy() { super.onDestroy() deviceInstance.unRegisterDevListener() 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 87ba362..20bbe61 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 @@ -3,23 +3,16 @@ import android.content.Context import android.net.wifi.WifiManager import android.os.Handler -import android.util.Log +import android.view.View import com.alibaba.fastjson.JSONObject import com.casic.br.R import com.casic.br.extensions.diffDate -import com.casic.br.utils.LocaleConstant import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.tuya.smart.home.sdk.TuyaHomeSdk -import com.tuya.smart.home.sdk.bean.HomeBean -import com.tuya.smart.home.sdk.callback.ITuyaHomeResultCallback import com.tuya.smart.sdk.api.ITuyaDevice import com.tuya.smart.sdk.bean.DeviceBean -import kotlinx.android.synthetic.main.fragment_device_rangehood_status.* import kotlinx.android.synthetic.main.fragment_device_waterheater_status.* -import kotlinx.android.synthetic.main.fragment_device_waterheater_status.deviceUsedTimeView class StatusPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { @@ -39,54 +32,39 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - - val homeId = SaveKeyValues.getValue(LocaleConstant.HOME_ID, "") as String - if (homeId == "") { - return - } - TuyaHomeSdk.newHomeInstance(homeId.toLong()) - .getHomeDetail(object : ITuyaHomeResultCallback { - override fun onSuccess(bean: HomeBean) { - val deviceList: List = bean.deviceList - deviceList.forEach { - if (it.deviceCategory == "rs") { - deviceUsedTimeView.text = - String.format("${it.time.toString().diffDate()}天") - } - return@forEach - } - } - - override fun onError(errorCode: String, errorMsg: String) { - Log.d(kTag, "onError: $errorMsg") - } - }) } private val callback = Handler.Callback { message -> - if (message.what == 2022092602) { - val parseObject = JSONObject.parseObject(message.obj as String) - parseObject.keys.forEach { - when (it) { - "1" -> {//开关机 - isDeviceWorking = parseObject[it] as Boolean - } - "2" -> {//模式,[shushiyu, suiwengan, chufang] - workModeView.text = when (parseObject[it] as String) { - "shushiyu" -> "舒适浴" - "suiwengan" -> "随温感" - else -> "厨房" + when (message.what) { + 2022092602 -> { + val parseObject = JSONObject.parseObject(message.obj as String) + parseObject.keys.forEach { + when (it) { + "1" -> {//开关机 + isDeviceWorking = parseObject[it] as Boolean + } + "2" -> {//模式,[shushiyu, suiwengan, chufang] + workModeView.text = when (parseObject[it] as String) { + "shushiyu" -> "舒适浴" + "suiwengan" -> "随温感" + else -> "厨房" + } + } + "10" -> { + currentTempView.text = String.format( + "${parseObject[it]}${ + requireContext().resources.getString(R.string.temperature_unit) + }" + ) } } - "10" -> { - currentTempView.text = String.format( - "${parseObject[it]}${ - requireContext().resources.getString(R.string.temperature_unit) - }" - ) - } } } + 2022092603 -> { + val deviceBean = message.obj as DeviceBean + deviceUsedTimeView.text = String.format("${deviceBean.time.toString().diffDate()}天") + ipAddressView.text = deviceBean.ip + } } true } @@ -94,6 +72,12 @@ override fun onResume() { super.onResume() wifiStatusSwitch.isChecked = !wifi.connectionInfo.ssid.contains("unknown ssid") + if (wifiStatusSwitch.isChecked) { + wifiLayout.visibility = View.VISIBLE + wifiNameView.text = wifi.connectionInfo.ssid.replace("\"", "") + } else { + wifiLayout.visibility = View.GONE + } deviceStatusSwitch.isChecked = isDeviceWorking } diff --git a/app/src/main/java/com/casic/br/utils/SliderCallback.kt b/app/src/main/java/com/casic/br/utils/SliderCallback.kt new file mode 100644 index 0000000..19169b8 --- /dev/null +++ b/app/src/main/java/com/casic/br/utils/SliderCallback.kt @@ -0,0 +1,29 @@ +package com.casic.br.utils + +import com.qmuiteam.qmui.widget.QMUISlider + +open class SliderCallback : QMUISlider.Callback { + override fun onProgressChange( + slider: QMUISlider?, progress: Int, tickCount: Int, fromUser: Boolean + ) { + + } + + override fun onTouchDown( + slider: QMUISlider?, progress: Int, tickCount: Int, hitThumb: Boolean + ) { + + } + + override fun onTouchUp(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } + + override fun onStartMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } + + override fun onStopMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } +} \ No newline at end of file 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 81cbbf3..1649a16 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 @@ -114,6 +114,11 @@ statusMsg.what = 2022092302 statusMsg.obj = dpStr StatusPageFragment.weakReference.sendMessage(statusMsg) + + val deviceBeanMsg = StatusPageFragment.weakReference.obtainMessage() + deviceBeanMsg.what = 2022092303 + deviceBeanMsg.obj = deviceBean + StatusPageFragment.weakReference.sendMessage(deviceBeanMsg) } /** 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 19b0f05..99731ed 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 @@ -1,17 +1,14 @@ package com.casic.br.fragment.rangehood +import android.content.Context +import android.net.wifi.WifiManager import android.os.Handler -import android.util.Log +import android.view.View import com.alibaba.fastjson.JSONObject import com.casic.br.R import com.casic.br.extensions.diffDate -import com.casic.br.utils.LocaleConstant import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.tuya.smart.home.sdk.TuyaHomeSdk -import com.tuya.smart.home.sdk.bean.HomeBean -import com.tuya.smart.home.sdk.callback.ITuyaHomeResultCallback import com.tuya.smart.sdk.api.ITuyaDevice import com.tuya.smart.sdk.bean.DeviceBean import kotlinx.android.synthetic.main.fragment_device_rangehood_status.* @@ -24,6 +21,7 @@ private val kTag = "StatusPageFragment" private var isDeviceWorking = false + private val wifi by lazy { requireContext().applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager } override fun initLayoutView(): Int = R.layout.fragment_device_rangehood_status @@ -33,28 +31,6 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - - val homeId = SaveKeyValues.getValue(LocaleConstant.HOME_ID, "") as String - if (homeId == "") { - return - } - TuyaHomeSdk.newHomeInstance(homeId.toLong()) - .getHomeDetail(object : ITuyaHomeResultCallback { - override fun onSuccess(bean: HomeBean) { - val deviceList: List = bean.deviceList - deviceList.forEach { - if (it.deviceCategory == "yyj") { - deviceUsedTimeView.text = - String.format("${it.time.toString().diffDate()}天") - } - return@forEach - } - } - - override fun onError(errorCode: String, errorMsg: String) { - Log.d(kTag, "onError: $errorMsg") - } - }) } override fun onResume() { @@ -65,6 +41,13 @@ } else { "工作中" } + wifiStatusSwitch.isChecked = !wifi.connectionInfo.ssid.contains("unknown ssid") + if (wifiStatusSwitch.isChecked) { + wifiLayout.visibility = View.VISIBLE + wifiNameView.text = wifi.connectionInfo.ssid.replace("\"", "") + } else { + wifiLayout.visibility = View.GONE + } } override fun observeRequestState() { @@ -76,46 +59,53 @@ } private val callback = Handler.Callback { message -> - if (message.what == 2022092302) { - val parseObject = JSONObject.parseObject(message.obj as String) - parseObject.keys.forEach { - when (it) { - "1" -> {//开关机 - isDeviceWorking = parseObject[it] as Boolean - } - "11" -> {//设备状态,[off, low, high, strong, air, fangdaoguan, wash, delay, xunhang] - val status = parseObject[it] as String - deviceStateView.text = if (status == "off") { - "已关机" - } else { - "工作中" + when (message.what) { + 2022092302 -> { + val parseObject = JSONObject.parseObject(message.obj as String) + parseObject.keys.forEach { + when (it) { + "1" -> {//开关机 + isDeviceWorking = parseObject[it] as Boolean } - } - "12" -> {//累计工作时间 - workingTimeView.text = if (isDeviceWorking) { - "${parseObject[it]}分" - } else { - "0分" + "11" -> {//设备状态,[off, low, high, strong, air, fangdaoguan, wash, delay, xunhang] + val status = parseObject[it] as String + deviceStateView.text = if (status == "off") { + "已关机" + } else { + "工作中" + } } - } - "106" -> {//烟灶联动 - val isLinkage = parseObject[it] as Boolean - linkageView.text = if (isLinkage) { - "开" - } else { - "关" + "12" -> {//累计工作时间 + workingTimeView.text = if (isDeviceWorking) { + "${parseObject[it]}分" + } else { + "0分" + } } - } - "107" -> {//倒油提醒 - val isPourOil = parseObject[it] as Boolean - pourOilView.text = if (isPourOil) { - "开" - } else { - "关" + "106" -> {//烟灶联动 + val isLinkage = parseObject[it] as Boolean + linkageView.text = if (isLinkage) { + "开" + } else { + "关" + } + } + "107" -> {//倒油提醒 + val isPourOil = parseObject[it] as Boolean + pourOilView.text = if (isPourOil) { + "开" + } else { + "关" + } } } } } + 2022092303 -> { + val deviceBean = message.obj as DeviceBean + deviceUsedTimeView.text = String.format("${deviceBean.time.toString().diffDate()}天") + ipAddressView.text = deviceBean.ip + } } true } 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 6cf2638..e0c7868 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 @@ -3,6 +3,7 @@ import android.os.Handler import com.alibaba.fastjson.JSONObject import com.casic.br.R +import com.casic.br.utils.SliderCallback import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.qmuiteam.qmui.widget.QMUISlider @@ -51,18 +52,6 @@ } } - private val callback = Handler.Callback { message -> - if (message.what == 2022092601) { - val parseObject = JSONObject.parseObject(message.obj as String) - parseObject.keys.forEach { - when (it) { - - } - } - } - true - } - /** * 设置温度范围 * */ @@ -90,62 +79,37 @@ } override fun initEvent() { - temperatureSlider.setCallback(object : QMUISlider.Callback { + temperatureSlider.setCallback(object : SliderCallback() { override fun onProgressChange( slider: QMUISlider?, progress: Int, tickCount: Int, fromUser: Boolean ) { currentProgress = progress currentTempView.text = String.format("${minTemp + progress}") } - - override fun onTouchDown( - slider: QMUISlider?, progress: Int, tickCount: Int, hitThumb: Boolean - ) { - - } - - override fun onTouchUp(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStartMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStopMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } }) - timeSeekBar.setCallback(object : QMUISlider.Callback { + timeSeekBar.setCallback(object : SliderCallback() { override fun onProgressChange( slider: QMUISlider?, progress: Int, tickCount: Int, fromUser: Boolean ) { currentTimeProgress = progress currentTimeView.text = timeScope[currentTimeProgress].toString() } - - override fun onTouchDown( - slider: QMUISlider?, progress: Int, tickCount: Int, hitThumb: Boolean - ) { - - } - - override fun onTouchUp(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStartMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStopMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - }) } + 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 onDestroy() { super.onDestroy() deviceInstance.unRegisterDevListener() 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 87ba362..20bbe61 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 @@ -3,23 +3,16 @@ import android.content.Context import android.net.wifi.WifiManager import android.os.Handler -import android.util.Log +import android.view.View import com.alibaba.fastjson.JSONObject import com.casic.br.R import com.casic.br.extensions.diffDate -import com.casic.br.utils.LocaleConstant import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.tuya.smart.home.sdk.TuyaHomeSdk -import com.tuya.smart.home.sdk.bean.HomeBean -import com.tuya.smart.home.sdk.callback.ITuyaHomeResultCallback import com.tuya.smart.sdk.api.ITuyaDevice import com.tuya.smart.sdk.bean.DeviceBean -import kotlinx.android.synthetic.main.fragment_device_rangehood_status.* import kotlinx.android.synthetic.main.fragment_device_waterheater_status.* -import kotlinx.android.synthetic.main.fragment_device_waterheater_status.deviceUsedTimeView class StatusPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { @@ -39,54 +32,39 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - - val homeId = SaveKeyValues.getValue(LocaleConstant.HOME_ID, "") as String - if (homeId == "") { - return - } - TuyaHomeSdk.newHomeInstance(homeId.toLong()) - .getHomeDetail(object : ITuyaHomeResultCallback { - override fun onSuccess(bean: HomeBean) { - val deviceList: List = bean.deviceList - deviceList.forEach { - if (it.deviceCategory == "rs") { - deviceUsedTimeView.text = - String.format("${it.time.toString().diffDate()}天") - } - return@forEach - } - } - - override fun onError(errorCode: String, errorMsg: String) { - Log.d(kTag, "onError: $errorMsg") - } - }) } private val callback = Handler.Callback { message -> - if (message.what == 2022092602) { - val parseObject = JSONObject.parseObject(message.obj as String) - parseObject.keys.forEach { - when (it) { - "1" -> {//开关机 - isDeviceWorking = parseObject[it] as Boolean - } - "2" -> {//模式,[shushiyu, suiwengan, chufang] - workModeView.text = when (parseObject[it] as String) { - "shushiyu" -> "舒适浴" - "suiwengan" -> "随温感" - else -> "厨房" + when (message.what) { + 2022092602 -> { + val parseObject = JSONObject.parseObject(message.obj as String) + parseObject.keys.forEach { + when (it) { + "1" -> {//开关机 + isDeviceWorking = parseObject[it] as Boolean + } + "2" -> {//模式,[shushiyu, suiwengan, chufang] + workModeView.text = when (parseObject[it] as String) { + "shushiyu" -> "舒适浴" + "suiwengan" -> "随温感" + else -> "厨房" + } + } + "10" -> { + currentTempView.text = String.format( + "${parseObject[it]}${ + requireContext().resources.getString(R.string.temperature_unit) + }" + ) } } - "10" -> { - currentTempView.text = String.format( - "${parseObject[it]}${ - requireContext().resources.getString(R.string.temperature_unit) - }" - ) - } } } + 2022092603 -> { + val deviceBean = message.obj as DeviceBean + deviceUsedTimeView.text = String.format("${deviceBean.time.toString().diffDate()}天") + ipAddressView.text = deviceBean.ip + } } true } @@ -94,6 +72,12 @@ override fun onResume() { super.onResume() wifiStatusSwitch.isChecked = !wifi.connectionInfo.ssid.contains("unknown ssid") + if (wifiStatusSwitch.isChecked) { + wifiLayout.visibility = View.VISIBLE + wifiNameView.text = wifi.connectionInfo.ssid.replace("\"", "") + } else { + wifiLayout.visibility = View.GONE + } deviceStatusSwitch.isChecked = isDeviceWorking } diff --git a/app/src/main/java/com/casic/br/utils/SliderCallback.kt b/app/src/main/java/com/casic/br/utils/SliderCallback.kt new file mode 100644 index 0000000..19169b8 --- /dev/null +++ b/app/src/main/java/com/casic/br/utils/SliderCallback.kt @@ -0,0 +1,29 @@ +package com.casic.br.utils + +import com.qmuiteam.qmui.widget.QMUISlider + +open class SliderCallback : QMUISlider.Callback { + override fun onProgressChange( + slider: QMUISlider?, progress: Int, tickCount: Int, fromUser: Boolean + ) { + + } + + override fun onTouchDown( + slider: QMUISlider?, progress: Int, tickCount: Int, hitThumb: Boolean + ) { + + } + + override fun onTouchUp(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } + + override fun onStartMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } + + override fun onStopMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } +} \ No newline at end of file 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 81cbbf3..1649a16 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 @@ -114,6 +114,11 @@ statusMsg.what = 2022092302 statusMsg.obj = dpStr StatusPageFragment.weakReference.sendMessage(statusMsg) + + val deviceBeanMsg = StatusPageFragment.weakReference.obtainMessage() + deviceBeanMsg.what = 2022092303 + deviceBeanMsg.obj = deviceBean + StatusPageFragment.weakReference.sendMessage(deviceBeanMsg) } /** 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 63760ee..0aa6294 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 @@ -89,6 +89,11 @@ statusMsg.what = 2022092602 statusMsg.obj = dpStr StatusPageFragment.weakReference.sendMessage(statusMsg) + + val deviceBeanMsg = StatusPageFragment.weakReference.obtainMessage() + deviceBeanMsg.what = 2022092603 + deviceBeanMsg.obj = deviceBean + StatusPageFragment.weakReference.sendMessage(deviceBeanMsg) } override fun onRemoved(devId: String?) { 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 19b0f05..99731ed 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 @@ -1,17 +1,14 @@ package com.casic.br.fragment.rangehood +import android.content.Context +import android.net.wifi.WifiManager import android.os.Handler -import android.util.Log +import android.view.View import com.alibaba.fastjson.JSONObject import com.casic.br.R import com.casic.br.extensions.diffDate -import com.casic.br.utils.LocaleConstant import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.tuya.smart.home.sdk.TuyaHomeSdk -import com.tuya.smart.home.sdk.bean.HomeBean -import com.tuya.smart.home.sdk.callback.ITuyaHomeResultCallback import com.tuya.smart.sdk.api.ITuyaDevice import com.tuya.smart.sdk.bean.DeviceBean import kotlinx.android.synthetic.main.fragment_device_rangehood_status.* @@ -24,6 +21,7 @@ private val kTag = "StatusPageFragment" private var isDeviceWorking = false + private val wifi by lazy { requireContext().applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager } override fun initLayoutView(): Int = R.layout.fragment_device_rangehood_status @@ -33,28 +31,6 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - - val homeId = SaveKeyValues.getValue(LocaleConstant.HOME_ID, "") as String - if (homeId == "") { - return - } - TuyaHomeSdk.newHomeInstance(homeId.toLong()) - .getHomeDetail(object : ITuyaHomeResultCallback { - override fun onSuccess(bean: HomeBean) { - val deviceList: List = bean.deviceList - deviceList.forEach { - if (it.deviceCategory == "yyj") { - deviceUsedTimeView.text = - String.format("${it.time.toString().diffDate()}天") - } - return@forEach - } - } - - override fun onError(errorCode: String, errorMsg: String) { - Log.d(kTag, "onError: $errorMsg") - } - }) } override fun onResume() { @@ -65,6 +41,13 @@ } else { "工作中" } + wifiStatusSwitch.isChecked = !wifi.connectionInfo.ssid.contains("unknown ssid") + if (wifiStatusSwitch.isChecked) { + wifiLayout.visibility = View.VISIBLE + wifiNameView.text = wifi.connectionInfo.ssid.replace("\"", "") + } else { + wifiLayout.visibility = View.GONE + } } override fun observeRequestState() { @@ -76,46 +59,53 @@ } private val callback = Handler.Callback { message -> - if (message.what == 2022092302) { - val parseObject = JSONObject.parseObject(message.obj as String) - parseObject.keys.forEach { - when (it) { - "1" -> {//开关机 - isDeviceWorking = parseObject[it] as Boolean - } - "11" -> {//设备状态,[off, low, high, strong, air, fangdaoguan, wash, delay, xunhang] - val status = parseObject[it] as String - deviceStateView.text = if (status == "off") { - "已关机" - } else { - "工作中" + when (message.what) { + 2022092302 -> { + val parseObject = JSONObject.parseObject(message.obj as String) + parseObject.keys.forEach { + when (it) { + "1" -> {//开关机 + isDeviceWorking = parseObject[it] as Boolean } - } - "12" -> {//累计工作时间 - workingTimeView.text = if (isDeviceWorking) { - "${parseObject[it]}分" - } else { - "0分" + "11" -> {//设备状态,[off, low, high, strong, air, fangdaoguan, wash, delay, xunhang] + val status = parseObject[it] as String + deviceStateView.text = if (status == "off") { + "已关机" + } else { + "工作中" + } } - } - "106" -> {//烟灶联动 - val isLinkage = parseObject[it] as Boolean - linkageView.text = if (isLinkage) { - "开" - } else { - "关" + "12" -> {//累计工作时间 + workingTimeView.text = if (isDeviceWorking) { + "${parseObject[it]}分" + } else { + "0分" + } } - } - "107" -> {//倒油提醒 - val isPourOil = parseObject[it] as Boolean - pourOilView.text = if (isPourOil) { - "开" - } else { - "关" + "106" -> {//烟灶联动 + val isLinkage = parseObject[it] as Boolean + linkageView.text = if (isLinkage) { + "开" + } else { + "关" + } + } + "107" -> {//倒油提醒 + val isPourOil = parseObject[it] as Boolean + pourOilView.text = if (isPourOil) { + "开" + } else { + "关" + } } } } } + 2022092303 -> { + val deviceBean = message.obj as DeviceBean + deviceUsedTimeView.text = String.format("${deviceBean.time.toString().diffDate()}天") + ipAddressView.text = deviceBean.ip + } } true } 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 6cf2638..e0c7868 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 @@ -3,6 +3,7 @@ import android.os.Handler import com.alibaba.fastjson.JSONObject import com.casic.br.R +import com.casic.br.utils.SliderCallback import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.qmuiteam.qmui.widget.QMUISlider @@ -51,18 +52,6 @@ } } - private val callback = Handler.Callback { message -> - if (message.what == 2022092601) { - val parseObject = JSONObject.parseObject(message.obj as String) - parseObject.keys.forEach { - when (it) { - - } - } - } - true - } - /** * 设置温度范围 * */ @@ -90,62 +79,37 @@ } override fun initEvent() { - temperatureSlider.setCallback(object : QMUISlider.Callback { + temperatureSlider.setCallback(object : SliderCallback() { override fun onProgressChange( slider: QMUISlider?, progress: Int, tickCount: Int, fromUser: Boolean ) { currentProgress = progress currentTempView.text = String.format("${minTemp + progress}") } - - override fun onTouchDown( - slider: QMUISlider?, progress: Int, tickCount: Int, hitThumb: Boolean - ) { - - } - - override fun onTouchUp(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStartMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStopMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } }) - timeSeekBar.setCallback(object : QMUISlider.Callback { + timeSeekBar.setCallback(object : SliderCallback() { override fun onProgressChange( slider: QMUISlider?, progress: Int, tickCount: Int, fromUser: Boolean ) { currentTimeProgress = progress currentTimeView.text = timeScope[currentTimeProgress].toString() } - - override fun onTouchDown( - slider: QMUISlider?, progress: Int, tickCount: Int, hitThumb: Boolean - ) { - - } - - override fun onTouchUp(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStartMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStopMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - }) } + 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 onDestroy() { super.onDestroy() deviceInstance.unRegisterDevListener() 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 87ba362..20bbe61 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 @@ -3,23 +3,16 @@ import android.content.Context import android.net.wifi.WifiManager import android.os.Handler -import android.util.Log +import android.view.View import com.alibaba.fastjson.JSONObject import com.casic.br.R import com.casic.br.extensions.diffDate -import com.casic.br.utils.LocaleConstant import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.tuya.smart.home.sdk.TuyaHomeSdk -import com.tuya.smart.home.sdk.bean.HomeBean -import com.tuya.smart.home.sdk.callback.ITuyaHomeResultCallback import com.tuya.smart.sdk.api.ITuyaDevice import com.tuya.smart.sdk.bean.DeviceBean -import kotlinx.android.synthetic.main.fragment_device_rangehood_status.* import kotlinx.android.synthetic.main.fragment_device_waterheater_status.* -import kotlinx.android.synthetic.main.fragment_device_waterheater_status.deviceUsedTimeView class StatusPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { @@ -39,54 +32,39 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - - val homeId = SaveKeyValues.getValue(LocaleConstant.HOME_ID, "") as String - if (homeId == "") { - return - } - TuyaHomeSdk.newHomeInstance(homeId.toLong()) - .getHomeDetail(object : ITuyaHomeResultCallback { - override fun onSuccess(bean: HomeBean) { - val deviceList: List = bean.deviceList - deviceList.forEach { - if (it.deviceCategory == "rs") { - deviceUsedTimeView.text = - String.format("${it.time.toString().diffDate()}天") - } - return@forEach - } - } - - override fun onError(errorCode: String, errorMsg: String) { - Log.d(kTag, "onError: $errorMsg") - } - }) } private val callback = Handler.Callback { message -> - if (message.what == 2022092602) { - val parseObject = JSONObject.parseObject(message.obj as String) - parseObject.keys.forEach { - when (it) { - "1" -> {//开关机 - isDeviceWorking = parseObject[it] as Boolean - } - "2" -> {//模式,[shushiyu, suiwengan, chufang] - workModeView.text = when (parseObject[it] as String) { - "shushiyu" -> "舒适浴" - "suiwengan" -> "随温感" - else -> "厨房" + when (message.what) { + 2022092602 -> { + val parseObject = JSONObject.parseObject(message.obj as String) + parseObject.keys.forEach { + when (it) { + "1" -> {//开关机 + isDeviceWorking = parseObject[it] as Boolean + } + "2" -> {//模式,[shushiyu, suiwengan, chufang] + workModeView.text = when (parseObject[it] as String) { + "shushiyu" -> "舒适浴" + "suiwengan" -> "随温感" + else -> "厨房" + } + } + "10" -> { + currentTempView.text = String.format( + "${parseObject[it]}${ + requireContext().resources.getString(R.string.temperature_unit) + }" + ) } } - "10" -> { - currentTempView.text = String.format( - "${parseObject[it]}${ - requireContext().resources.getString(R.string.temperature_unit) - }" - ) - } } } + 2022092603 -> { + val deviceBean = message.obj as DeviceBean + deviceUsedTimeView.text = String.format("${deviceBean.time.toString().diffDate()}天") + ipAddressView.text = deviceBean.ip + } } true } @@ -94,6 +72,12 @@ override fun onResume() { super.onResume() wifiStatusSwitch.isChecked = !wifi.connectionInfo.ssid.contains("unknown ssid") + if (wifiStatusSwitch.isChecked) { + wifiLayout.visibility = View.VISIBLE + wifiNameView.text = wifi.connectionInfo.ssid.replace("\"", "") + } else { + wifiLayout.visibility = View.GONE + } deviceStatusSwitch.isChecked = isDeviceWorking } diff --git a/app/src/main/java/com/casic/br/utils/SliderCallback.kt b/app/src/main/java/com/casic/br/utils/SliderCallback.kt new file mode 100644 index 0000000..19169b8 --- /dev/null +++ b/app/src/main/java/com/casic/br/utils/SliderCallback.kt @@ -0,0 +1,29 @@ +package com.casic.br.utils + +import com.qmuiteam.qmui.widget.QMUISlider + +open class SliderCallback : QMUISlider.Callback { + override fun onProgressChange( + slider: QMUISlider?, progress: Int, tickCount: Int, fromUser: Boolean + ) { + + } + + override fun onTouchDown( + slider: QMUISlider?, progress: Int, tickCount: Int, hitThumb: Boolean + ) { + + } + + override fun onTouchUp(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } + + override fun onStartMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } + + override fun onStopMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } +} \ No newline at end of file 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 81cbbf3..1649a16 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 @@ -114,6 +114,11 @@ statusMsg.what = 2022092302 statusMsg.obj = dpStr StatusPageFragment.weakReference.sendMessage(statusMsg) + + val deviceBeanMsg = StatusPageFragment.weakReference.obtainMessage() + deviceBeanMsg.what = 2022092303 + deviceBeanMsg.obj = deviceBean + StatusPageFragment.weakReference.sendMessage(deviceBeanMsg) } /** 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 63760ee..0aa6294 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 @@ -89,6 +89,11 @@ statusMsg.what = 2022092602 statusMsg.obj = dpStr StatusPageFragment.weakReference.sendMessage(statusMsg) + + val deviceBeanMsg = StatusPageFragment.weakReference.obtainMessage() + deviceBeanMsg.what = 2022092603 + deviceBeanMsg.obj = deviceBean + StatusPageFragment.weakReference.sendMessage(deviceBeanMsg) } override fun onRemoved(devId: String?) { diff --git a/app/src/main/res/layout/fragment_device_rangehood_status.xml b/app/src/main/res/layout/fragment_device_rangehood_status.xml index 1047626..2fd8f15 100644 --- a/app/src/main/res/layout/fragment_device_rangehood_status.xml +++ b/app/src/main/res/layout/fragment_device_rangehood_status.xml @@ -1,118 +1,250 @@ - + android:layout_height="match_parent"> - - - - - - - + android:layout_height="match_parent" + android:orientation="vertical"> + android:layout_marginHorizontal="@dimen/dp_20" + android:background="@drawable/bg_solid_layout_white_radius_10" + android:gravity="center_vertical" + android:orientation="horizontal" + android:paddingHorizontal="@dimen/dp_10" + android:paddingVertical="@dimen/dp_15"> + + + android:textColor="@color/mainTextColor" + android:textSize="@dimen/sp_14" /> + + + + + + android:text="关" + android:textColor="@color/mainTextColor" + android:textSize="@dimen/sp_14" /> + android:layout_marginHorizontal="@dimen/dp_20" + android:layout_marginTop="@dimen/dp_10" + android:background="@drawable/bg_solid_layout_white_radius_10" + android:gravity="center_vertical" + android:orientation="horizontal" + android:paddingHorizontal="@dimen/dp_10" + android:paddingVertical="@dimen/dp_15"> + android:layout_weight="1" + android:text="倒油提醒" + android:textColor="@color/mainTextColor" + android:textSize="@dimen/sp_14" /> + android:text="关闭" + android:textColor="@color/mainTextColor" + android:textSize="@dimen/sp_14" /> + android:layout_marginHorizontal="@dimen/dp_20" + android:layout_marginTop="@dimen/dp_10" + android:background="@drawable/bg_solid_layout_white_radius_10" + android:gravity="center_vertical" + android:orientation="horizontal" + android:paddingHorizontal="@dimen/dp_10" + android:paddingVertical="@dimen/dp_15"> + android:layout_weight="1" + android:text="烟灶联动" + android:textColor="@color/mainTextColor" + android:textSize="@dimen/sp_14" /> + android:text="关闭" + android:textColor="@color/mainTextColor" + android:textSize="@dimen/sp_14" /> + android:layout_marginHorizontal="@dimen/dp_20" + android:layout_marginTop="@dimen/dp_10" + android:background="@drawable/bg_solid_layout_white_radius_10" + android:gravity="center_vertical" + android:orientation="horizontal" + android:paddingHorizontal="@dimen/dp_10" + android:paddingVertical="@dimen/dp_15"> + android:layout_weight="1" + android:text="运行时间" + android:textColor="@color/mainTextColor" + android:textSize="@dimen/sp_14" /> + android:text="0分" + android:textColor="@color/mainTextColor" + android:textSize="@dimen/sp_14" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + - \ No newline at end of file + \ No newline at end of file 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 19b0f05..99731ed 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 @@ -1,17 +1,14 @@ package com.casic.br.fragment.rangehood +import android.content.Context +import android.net.wifi.WifiManager import android.os.Handler -import android.util.Log +import android.view.View import com.alibaba.fastjson.JSONObject import com.casic.br.R import com.casic.br.extensions.diffDate -import com.casic.br.utils.LocaleConstant import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.tuya.smart.home.sdk.TuyaHomeSdk -import com.tuya.smart.home.sdk.bean.HomeBean -import com.tuya.smart.home.sdk.callback.ITuyaHomeResultCallback import com.tuya.smart.sdk.api.ITuyaDevice import com.tuya.smart.sdk.bean.DeviceBean import kotlinx.android.synthetic.main.fragment_device_rangehood_status.* @@ -24,6 +21,7 @@ private val kTag = "StatusPageFragment" private var isDeviceWorking = false + private val wifi by lazy { requireContext().applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager } override fun initLayoutView(): Int = R.layout.fragment_device_rangehood_status @@ -33,28 +31,6 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - - val homeId = SaveKeyValues.getValue(LocaleConstant.HOME_ID, "") as String - if (homeId == "") { - return - } - TuyaHomeSdk.newHomeInstance(homeId.toLong()) - .getHomeDetail(object : ITuyaHomeResultCallback { - override fun onSuccess(bean: HomeBean) { - val deviceList: List = bean.deviceList - deviceList.forEach { - if (it.deviceCategory == "yyj") { - deviceUsedTimeView.text = - String.format("${it.time.toString().diffDate()}天") - } - return@forEach - } - } - - override fun onError(errorCode: String, errorMsg: String) { - Log.d(kTag, "onError: $errorMsg") - } - }) } override fun onResume() { @@ -65,6 +41,13 @@ } else { "工作中" } + wifiStatusSwitch.isChecked = !wifi.connectionInfo.ssid.contains("unknown ssid") + if (wifiStatusSwitch.isChecked) { + wifiLayout.visibility = View.VISIBLE + wifiNameView.text = wifi.connectionInfo.ssid.replace("\"", "") + } else { + wifiLayout.visibility = View.GONE + } } override fun observeRequestState() { @@ -76,46 +59,53 @@ } private val callback = Handler.Callback { message -> - if (message.what == 2022092302) { - val parseObject = JSONObject.parseObject(message.obj as String) - parseObject.keys.forEach { - when (it) { - "1" -> {//开关机 - isDeviceWorking = parseObject[it] as Boolean - } - "11" -> {//设备状态,[off, low, high, strong, air, fangdaoguan, wash, delay, xunhang] - val status = parseObject[it] as String - deviceStateView.text = if (status == "off") { - "已关机" - } else { - "工作中" + when (message.what) { + 2022092302 -> { + val parseObject = JSONObject.parseObject(message.obj as String) + parseObject.keys.forEach { + when (it) { + "1" -> {//开关机 + isDeviceWorking = parseObject[it] as Boolean } - } - "12" -> {//累计工作时间 - workingTimeView.text = if (isDeviceWorking) { - "${parseObject[it]}分" - } else { - "0分" + "11" -> {//设备状态,[off, low, high, strong, air, fangdaoguan, wash, delay, xunhang] + val status = parseObject[it] as String + deviceStateView.text = if (status == "off") { + "已关机" + } else { + "工作中" + } } - } - "106" -> {//烟灶联动 - val isLinkage = parseObject[it] as Boolean - linkageView.text = if (isLinkage) { - "开" - } else { - "关" + "12" -> {//累计工作时间 + workingTimeView.text = if (isDeviceWorking) { + "${parseObject[it]}分" + } else { + "0分" + } } - } - "107" -> {//倒油提醒 - val isPourOil = parseObject[it] as Boolean - pourOilView.text = if (isPourOil) { - "开" - } else { - "关" + "106" -> {//烟灶联动 + val isLinkage = parseObject[it] as Boolean + linkageView.text = if (isLinkage) { + "开" + } else { + "关" + } + } + "107" -> {//倒油提醒 + val isPourOil = parseObject[it] as Boolean + pourOilView.text = if (isPourOil) { + "开" + } else { + "关" + } } } } } + 2022092303 -> { + val deviceBean = message.obj as DeviceBean + deviceUsedTimeView.text = String.format("${deviceBean.time.toString().diffDate()}天") + ipAddressView.text = deviceBean.ip + } } true } 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 6cf2638..e0c7868 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 @@ -3,6 +3,7 @@ import android.os.Handler import com.alibaba.fastjson.JSONObject import com.casic.br.R +import com.casic.br.utils.SliderCallback import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.qmuiteam.qmui.widget.QMUISlider @@ -51,18 +52,6 @@ } } - private val callback = Handler.Callback { message -> - if (message.what == 2022092601) { - val parseObject = JSONObject.parseObject(message.obj as String) - parseObject.keys.forEach { - when (it) { - - } - } - } - true - } - /** * 设置温度范围 * */ @@ -90,62 +79,37 @@ } override fun initEvent() { - temperatureSlider.setCallback(object : QMUISlider.Callback { + temperatureSlider.setCallback(object : SliderCallback() { override fun onProgressChange( slider: QMUISlider?, progress: Int, tickCount: Int, fromUser: Boolean ) { currentProgress = progress currentTempView.text = String.format("${minTemp + progress}") } - - override fun onTouchDown( - slider: QMUISlider?, progress: Int, tickCount: Int, hitThumb: Boolean - ) { - - } - - override fun onTouchUp(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStartMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStopMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } }) - timeSeekBar.setCallback(object : QMUISlider.Callback { + timeSeekBar.setCallback(object : SliderCallback() { override fun onProgressChange( slider: QMUISlider?, progress: Int, tickCount: Int, fromUser: Boolean ) { currentTimeProgress = progress currentTimeView.text = timeScope[currentTimeProgress].toString() } - - override fun onTouchDown( - slider: QMUISlider?, progress: Int, tickCount: Int, hitThumb: Boolean - ) { - - } - - override fun onTouchUp(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStartMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStopMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - }) } + 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 onDestroy() { super.onDestroy() deviceInstance.unRegisterDevListener() 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 87ba362..20bbe61 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 @@ -3,23 +3,16 @@ import android.content.Context import android.net.wifi.WifiManager import android.os.Handler -import android.util.Log +import android.view.View import com.alibaba.fastjson.JSONObject import com.casic.br.R import com.casic.br.extensions.diffDate -import com.casic.br.utils.LocaleConstant import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.tuya.smart.home.sdk.TuyaHomeSdk -import com.tuya.smart.home.sdk.bean.HomeBean -import com.tuya.smart.home.sdk.callback.ITuyaHomeResultCallback import com.tuya.smart.sdk.api.ITuyaDevice import com.tuya.smart.sdk.bean.DeviceBean -import kotlinx.android.synthetic.main.fragment_device_rangehood_status.* import kotlinx.android.synthetic.main.fragment_device_waterheater_status.* -import kotlinx.android.synthetic.main.fragment_device_waterheater_status.deviceUsedTimeView class StatusPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { @@ -39,54 +32,39 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - - val homeId = SaveKeyValues.getValue(LocaleConstant.HOME_ID, "") as String - if (homeId == "") { - return - } - TuyaHomeSdk.newHomeInstance(homeId.toLong()) - .getHomeDetail(object : ITuyaHomeResultCallback { - override fun onSuccess(bean: HomeBean) { - val deviceList: List = bean.deviceList - deviceList.forEach { - if (it.deviceCategory == "rs") { - deviceUsedTimeView.text = - String.format("${it.time.toString().diffDate()}天") - } - return@forEach - } - } - - override fun onError(errorCode: String, errorMsg: String) { - Log.d(kTag, "onError: $errorMsg") - } - }) } private val callback = Handler.Callback { message -> - if (message.what == 2022092602) { - val parseObject = JSONObject.parseObject(message.obj as String) - parseObject.keys.forEach { - when (it) { - "1" -> {//开关机 - isDeviceWorking = parseObject[it] as Boolean - } - "2" -> {//模式,[shushiyu, suiwengan, chufang] - workModeView.text = when (parseObject[it] as String) { - "shushiyu" -> "舒适浴" - "suiwengan" -> "随温感" - else -> "厨房" + when (message.what) { + 2022092602 -> { + val parseObject = JSONObject.parseObject(message.obj as String) + parseObject.keys.forEach { + when (it) { + "1" -> {//开关机 + isDeviceWorking = parseObject[it] as Boolean + } + "2" -> {//模式,[shushiyu, suiwengan, chufang] + workModeView.text = when (parseObject[it] as String) { + "shushiyu" -> "舒适浴" + "suiwengan" -> "随温感" + else -> "厨房" + } + } + "10" -> { + currentTempView.text = String.format( + "${parseObject[it]}${ + requireContext().resources.getString(R.string.temperature_unit) + }" + ) } } - "10" -> { - currentTempView.text = String.format( - "${parseObject[it]}${ - requireContext().resources.getString(R.string.temperature_unit) - }" - ) - } } } + 2022092603 -> { + val deviceBean = message.obj as DeviceBean + deviceUsedTimeView.text = String.format("${deviceBean.time.toString().diffDate()}天") + ipAddressView.text = deviceBean.ip + } } true } @@ -94,6 +72,12 @@ override fun onResume() { super.onResume() wifiStatusSwitch.isChecked = !wifi.connectionInfo.ssid.contains("unknown ssid") + if (wifiStatusSwitch.isChecked) { + wifiLayout.visibility = View.VISIBLE + wifiNameView.text = wifi.connectionInfo.ssid.replace("\"", "") + } else { + wifiLayout.visibility = View.GONE + } deviceStatusSwitch.isChecked = isDeviceWorking } diff --git a/app/src/main/java/com/casic/br/utils/SliderCallback.kt b/app/src/main/java/com/casic/br/utils/SliderCallback.kt new file mode 100644 index 0000000..19169b8 --- /dev/null +++ b/app/src/main/java/com/casic/br/utils/SliderCallback.kt @@ -0,0 +1,29 @@ +package com.casic.br.utils + +import com.qmuiteam.qmui.widget.QMUISlider + +open class SliderCallback : QMUISlider.Callback { + override fun onProgressChange( + slider: QMUISlider?, progress: Int, tickCount: Int, fromUser: Boolean + ) { + + } + + override fun onTouchDown( + slider: QMUISlider?, progress: Int, tickCount: Int, hitThumb: Boolean + ) { + + } + + override fun onTouchUp(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } + + override fun onStartMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } + + override fun onStopMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } +} \ No newline at end of file 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 81cbbf3..1649a16 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 @@ -114,6 +114,11 @@ statusMsg.what = 2022092302 statusMsg.obj = dpStr StatusPageFragment.weakReference.sendMessage(statusMsg) + + val deviceBeanMsg = StatusPageFragment.weakReference.obtainMessage() + deviceBeanMsg.what = 2022092303 + deviceBeanMsg.obj = deviceBean + StatusPageFragment.weakReference.sendMessage(deviceBeanMsg) } /** 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 63760ee..0aa6294 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 @@ -89,6 +89,11 @@ statusMsg.what = 2022092602 statusMsg.obj = dpStr StatusPageFragment.weakReference.sendMessage(statusMsg) + + val deviceBeanMsg = StatusPageFragment.weakReference.obtainMessage() + deviceBeanMsg.what = 2022092603 + deviceBeanMsg.obj = deviceBean + StatusPageFragment.weakReference.sendMessage(deviceBeanMsg) } override fun onRemoved(devId: String?) { diff --git a/app/src/main/res/layout/fragment_device_rangehood_status.xml b/app/src/main/res/layout/fragment_device_rangehood_status.xml index 1047626..2fd8f15 100644 --- a/app/src/main/res/layout/fragment_device_rangehood_status.xml +++ b/app/src/main/res/layout/fragment_device_rangehood_status.xml @@ -1,118 +1,250 @@ - + android:layout_height="match_parent"> - - - - - - - + android:layout_height="match_parent" + android:orientation="vertical"> + android:layout_marginHorizontal="@dimen/dp_20" + android:background="@drawable/bg_solid_layout_white_radius_10" + android:gravity="center_vertical" + android:orientation="horizontal" + android:paddingHorizontal="@dimen/dp_10" + android:paddingVertical="@dimen/dp_15"> + + + android:textColor="@color/mainTextColor" + android:textSize="@dimen/sp_14" /> + + + + + + android:text="关" + android:textColor="@color/mainTextColor" + android:textSize="@dimen/sp_14" /> + android:layout_marginHorizontal="@dimen/dp_20" + android:layout_marginTop="@dimen/dp_10" + android:background="@drawable/bg_solid_layout_white_radius_10" + android:gravity="center_vertical" + android:orientation="horizontal" + android:paddingHorizontal="@dimen/dp_10" + android:paddingVertical="@dimen/dp_15"> + android:layout_weight="1" + android:text="倒油提醒" + android:textColor="@color/mainTextColor" + android:textSize="@dimen/sp_14" /> + android:text="关闭" + android:textColor="@color/mainTextColor" + android:textSize="@dimen/sp_14" /> + android:layout_marginHorizontal="@dimen/dp_20" + android:layout_marginTop="@dimen/dp_10" + android:background="@drawable/bg_solid_layout_white_radius_10" + android:gravity="center_vertical" + android:orientation="horizontal" + android:paddingHorizontal="@dimen/dp_10" + android:paddingVertical="@dimen/dp_15"> + android:layout_weight="1" + android:text="烟灶联动" + android:textColor="@color/mainTextColor" + android:textSize="@dimen/sp_14" /> + android:text="关闭" + android:textColor="@color/mainTextColor" + android:textSize="@dimen/sp_14" /> + android:layout_marginHorizontal="@dimen/dp_20" + android:layout_marginTop="@dimen/dp_10" + android:background="@drawable/bg_solid_layout_white_radius_10" + android:gravity="center_vertical" + android:orientation="horizontal" + android:paddingHorizontal="@dimen/dp_10" + android:paddingVertical="@dimen/dp_15"> + android:layout_weight="1" + android:text="运行时间" + android:textColor="@color/mainTextColor" + android:textSize="@dimen/sp_14" /> + android:text="0分" + android:textColor="@color/mainTextColor" + android:textSize="@dimen/sp_14" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_device_waterheater_control.xml b/app/src/main/res/layout/fragment_device_waterheater_control.xml index 3621416..c06e59d 100644 --- a/app/src/main/res/layout/fragment_device_waterheater_control.xml +++ b/app/src/main/res/layout/fragment_device_waterheater_control.xml @@ -27,8 +27,8 @@ android:textColor="@color/black" android:textSize="@dimen/sp_14" /> - = bean.deviceList - deviceList.forEach { - if (it.deviceCategory == "yyj") { - deviceUsedTimeView.text = - String.format("${it.time.toString().diffDate()}天") - } - return@forEach - } - } - - override fun onError(errorCode: String, errorMsg: String) { - Log.d(kTag, "onError: $errorMsg") - } - }) } override fun onResume() { @@ -65,6 +41,13 @@ } else { "工作中" } + wifiStatusSwitch.isChecked = !wifi.connectionInfo.ssid.contains("unknown ssid") + if (wifiStatusSwitch.isChecked) { + wifiLayout.visibility = View.VISIBLE + wifiNameView.text = wifi.connectionInfo.ssid.replace("\"", "") + } else { + wifiLayout.visibility = View.GONE + } } override fun observeRequestState() { @@ -76,46 +59,53 @@ } private val callback = Handler.Callback { message -> - if (message.what == 2022092302) { - val parseObject = JSONObject.parseObject(message.obj as String) - parseObject.keys.forEach { - when (it) { - "1" -> {//开关机 - isDeviceWorking = parseObject[it] as Boolean - } - "11" -> {//设备状态,[off, low, high, strong, air, fangdaoguan, wash, delay, xunhang] - val status = parseObject[it] as String - deviceStateView.text = if (status == "off") { - "已关机" - } else { - "工作中" + when (message.what) { + 2022092302 -> { + val parseObject = JSONObject.parseObject(message.obj as String) + parseObject.keys.forEach { + when (it) { + "1" -> {//开关机 + isDeviceWorking = parseObject[it] as Boolean } - } - "12" -> {//累计工作时间 - workingTimeView.text = if (isDeviceWorking) { - "${parseObject[it]}分" - } else { - "0分" + "11" -> {//设备状态,[off, low, high, strong, air, fangdaoguan, wash, delay, xunhang] + val status = parseObject[it] as String + deviceStateView.text = if (status == "off") { + "已关机" + } else { + "工作中" + } } - } - "106" -> {//烟灶联动 - val isLinkage = parseObject[it] as Boolean - linkageView.text = if (isLinkage) { - "开" - } else { - "关" + "12" -> {//累计工作时间 + workingTimeView.text = if (isDeviceWorking) { + "${parseObject[it]}分" + } else { + "0分" + } } - } - "107" -> {//倒油提醒 - val isPourOil = parseObject[it] as Boolean - pourOilView.text = if (isPourOil) { - "开" - } else { - "关" + "106" -> {//烟灶联动 + val isLinkage = parseObject[it] as Boolean + linkageView.text = if (isLinkage) { + "开" + } else { + "关" + } + } + "107" -> {//倒油提醒 + val isPourOil = parseObject[it] as Boolean + pourOilView.text = if (isPourOil) { + "开" + } else { + "关" + } } } } } + 2022092303 -> { + val deviceBean = message.obj as DeviceBean + deviceUsedTimeView.text = String.format("${deviceBean.time.toString().diffDate()}天") + ipAddressView.text = deviceBean.ip + } } true } 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 6cf2638..e0c7868 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 @@ -3,6 +3,7 @@ import android.os.Handler import com.alibaba.fastjson.JSONObject import com.casic.br.R +import com.casic.br.utils.SliderCallback import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.qmuiteam.qmui.widget.QMUISlider @@ -51,18 +52,6 @@ } } - private val callback = Handler.Callback { message -> - if (message.what == 2022092601) { - val parseObject = JSONObject.parseObject(message.obj as String) - parseObject.keys.forEach { - when (it) { - - } - } - } - true - } - /** * 设置温度范围 * */ @@ -90,62 +79,37 @@ } override fun initEvent() { - temperatureSlider.setCallback(object : QMUISlider.Callback { + temperatureSlider.setCallback(object : SliderCallback() { override fun onProgressChange( slider: QMUISlider?, progress: Int, tickCount: Int, fromUser: Boolean ) { currentProgress = progress currentTempView.text = String.format("${minTemp + progress}") } - - override fun onTouchDown( - slider: QMUISlider?, progress: Int, tickCount: Int, hitThumb: Boolean - ) { - - } - - override fun onTouchUp(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStartMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStopMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } }) - timeSeekBar.setCallback(object : QMUISlider.Callback { + timeSeekBar.setCallback(object : SliderCallback() { override fun onProgressChange( slider: QMUISlider?, progress: Int, tickCount: Int, fromUser: Boolean ) { currentTimeProgress = progress currentTimeView.text = timeScope[currentTimeProgress].toString() } - - override fun onTouchDown( - slider: QMUISlider?, progress: Int, tickCount: Int, hitThumb: Boolean - ) { - - } - - override fun onTouchUp(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStartMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - - override fun onStopMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { - - } - }) } + 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 onDestroy() { super.onDestroy() deviceInstance.unRegisterDevListener() 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 87ba362..20bbe61 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 @@ -3,23 +3,16 @@ import android.content.Context import android.net.wifi.WifiManager import android.os.Handler -import android.util.Log +import android.view.View import com.alibaba.fastjson.JSONObject import com.casic.br.R import com.casic.br.extensions.diffDate -import com.casic.br.utils.LocaleConstant import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler -import com.tuya.smart.home.sdk.TuyaHomeSdk -import com.tuya.smart.home.sdk.bean.HomeBean -import com.tuya.smart.home.sdk.callback.ITuyaHomeResultCallback import com.tuya.smart.sdk.api.ITuyaDevice import com.tuya.smart.sdk.bean.DeviceBean -import kotlinx.android.synthetic.main.fragment_device_rangehood_status.* import kotlinx.android.synthetic.main.fragment_device_waterheater_status.* -import kotlinx.android.synthetic.main.fragment_device_waterheater_status.deviceUsedTimeView class StatusPageFragment(private val deviceInstance: ITuyaDevice) : KotlinBaseFragment() { @@ -39,54 +32,39 @@ override fun initData() { weakReference = WeakReferenceHandler(callback) - - val homeId = SaveKeyValues.getValue(LocaleConstant.HOME_ID, "") as String - if (homeId == "") { - return - } - TuyaHomeSdk.newHomeInstance(homeId.toLong()) - .getHomeDetail(object : ITuyaHomeResultCallback { - override fun onSuccess(bean: HomeBean) { - val deviceList: List = bean.deviceList - deviceList.forEach { - if (it.deviceCategory == "rs") { - deviceUsedTimeView.text = - String.format("${it.time.toString().diffDate()}天") - } - return@forEach - } - } - - override fun onError(errorCode: String, errorMsg: String) { - Log.d(kTag, "onError: $errorMsg") - } - }) } private val callback = Handler.Callback { message -> - if (message.what == 2022092602) { - val parseObject = JSONObject.parseObject(message.obj as String) - parseObject.keys.forEach { - when (it) { - "1" -> {//开关机 - isDeviceWorking = parseObject[it] as Boolean - } - "2" -> {//模式,[shushiyu, suiwengan, chufang] - workModeView.text = when (parseObject[it] as String) { - "shushiyu" -> "舒适浴" - "suiwengan" -> "随温感" - else -> "厨房" + when (message.what) { + 2022092602 -> { + val parseObject = JSONObject.parseObject(message.obj as String) + parseObject.keys.forEach { + when (it) { + "1" -> {//开关机 + isDeviceWorking = parseObject[it] as Boolean + } + "2" -> {//模式,[shushiyu, suiwengan, chufang] + workModeView.text = when (parseObject[it] as String) { + "shushiyu" -> "舒适浴" + "suiwengan" -> "随温感" + else -> "厨房" + } + } + "10" -> { + currentTempView.text = String.format( + "${parseObject[it]}${ + requireContext().resources.getString(R.string.temperature_unit) + }" + ) } } - "10" -> { - currentTempView.text = String.format( - "${parseObject[it]}${ - requireContext().resources.getString(R.string.temperature_unit) - }" - ) - } } } + 2022092603 -> { + val deviceBean = message.obj as DeviceBean + deviceUsedTimeView.text = String.format("${deviceBean.time.toString().diffDate()}天") + ipAddressView.text = deviceBean.ip + } } true } @@ -94,6 +72,12 @@ override fun onResume() { super.onResume() wifiStatusSwitch.isChecked = !wifi.connectionInfo.ssid.contains("unknown ssid") + if (wifiStatusSwitch.isChecked) { + wifiLayout.visibility = View.VISIBLE + wifiNameView.text = wifi.connectionInfo.ssid.replace("\"", "") + } else { + wifiLayout.visibility = View.GONE + } deviceStatusSwitch.isChecked = isDeviceWorking } diff --git a/app/src/main/java/com/casic/br/utils/SliderCallback.kt b/app/src/main/java/com/casic/br/utils/SliderCallback.kt new file mode 100644 index 0000000..19169b8 --- /dev/null +++ b/app/src/main/java/com/casic/br/utils/SliderCallback.kt @@ -0,0 +1,29 @@ +package com.casic.br.utils + +import com.qmuiteam.qmui.widget.QMUISlider + +open class SliderCallback : QMUISlider.Callback { + override fun onProgressChange( + slider: QMUISlider?, progress: Int, tickCount: Int, fromUser: Boolean + ) { + + } + + override fun onTouchDown( + slider: QMUISlider?, progress: Int, tickCount: Int, hitThumb: Boolean + ) { + + } + + override fun onTouchUp(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } + + override fun onStartMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } + + override fun onStopMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } +} \ No newline at end of file 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 81cbbf3..1649a16 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 @@ -114,6 +114,11 @@ statusMsg.what = 2022092302 statusMsg.obj = dpStr StatusPageFragment.weakReference.sendMessage(statusMsg) + + val deviceBeanMsg = StatusPageFragment.weakReference.obtainMessage() + deviceBeanMsg.what = 2022092303 + deviceBeanMsg.obj = deviceBean + StatusPageFragment.weakReference.sendMessage(deviceBeanMsg) } /** 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 63760ee..0aa6294 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 @@ -89,6 +89,11 @@ statusMsg.what = 2022092602 statusMsg.obj = dpStr StatusPageFragment.weakReference.sendMessage(statusMsg) + + val deviceBeanMsg = StatusPageFragment.weakReference.obtainMessage() + deviceBeanMsg.what = 2022092603 + deviceBeanMsg.obj = deviceBean + StatusPageFragment.weakReference.sendMessage(deviceBeanMsg) } override fun onRemoved(devId: String?) { diff --git a/app/src/main/res/layout/fragment_device_rangehood_status.xml b/app/src/main/res/layout/fragment_device_rangehood_status.xml index 1047626..2fd8f15 100644 --- a/app/src/main/res/layout/fragment_device_rangehood_status.xml +++ b/app/src/main/res/layout/fragment_device_rangehood_status.xml @@ -1,118 +1,250 @@ - + android:layout_height="match_parent"> - - - - - - - + android:layout_height="match_parent" + android:orientation="vertical"> + android:layout_marginHorizontal="@dimen/dp_20" + android:background="@drawable/bg_solid_layout_white_radius_10" + android:gravity="center_vertical" + android:orientation="horizontal" + android:paddingHorizontal="@dimen/dp_10" + android:paddingVertical="@dimen/dp_15"> + + + android:textColor="@color/mainTextColor" + android:textSize="@dimen/sp_14" /> + + + + + + android:text="关" + android:textColor="@color/mainTextColor" + android:textSize="@dimen/sp_14" /> + android:layout_marginHorizontal="@dimen/dp_20" + android:layout_marginTop="@dimen/dp_10" + android:background="@drawable/bg_solid_layout_white_radius_10" + android:gravity="center_vertical" + android:orientation="horizontal" + android:paddingHorizontal="@dimen/dp_10" + android:paddingVertical="@dimen/dp_15"> + android:layout_weight="1" + android:text="倒油提醒" + android:textColor="@color/mainTextColor" + android:textSize="@dimen/sp_14" /> + android:text="关闭" + android:textColor="@color/mainTextColor" + android:textSize="@dimen/sp_14" /> + android:layout_marginHorizontal="@dimen/dp_20" + android:layout_marginTop="@dimen/dp_10" + android:background="@drawable/bg_solid_layout_white_radius_10" + android:gravity="center_vertical" + android:orientation="horizontal" + android:paddingHorizontal="@dimen/dp_10" + android:paddingVertical="@dimen/dp_15"> + android:layout_weight="1" + android:text="烟灶联动" + android:textColor="@color/mainTextColor" + android:textSize="@dimen/sp_14" /> + android:text="关闭" + android:textColor="@color/mainTextColor" + android:textSize="@dimen/sp_14" /> + android:layout_marginHorizontal="@dimen/dp_20" + android:layout_marginTop="@dimen/dp_10" + android:background="@drawable/bg_solid_layout_white_radius_10" + android:gravity="center_vertical" + android:orientation="horizontal" + android:paddingHorizontal="@dimen/dp_10" + android:paddingVertical="@dimen/dp_15"> + android:layout_weight="1" + android:text="运行时间" + android:textColor="@color/mainTextColor" + android:textSize="@dimen/sp_14" /> + android:text="0分" + android:textColor="@color/mainTextColor" + android:textSize="@dimen/sp_14" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_device_waterheater_control.xml b/app/src/main/res/layout/fragment_device_waterheater_control.xml index 3621416..c06e59d 100644 --- a/app/src/main/res/layout/fragment_device_waterheater_control.xml +++ b/app/src/main/res/layout/fragment_device_waterheater_control.xml @@ -27,8 +27,8 @@ android:textColor="@color/black" android:textSize="@dimen/sp_14" /> - + + + + + + + + + + + + + + - - - - - - - @@ -212,33 +242,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginHorizontal="@dimen/dp_20" - android:layout_marginTop="@dimen/dp_10" - android:background="@drawable/bg_solid_layout_white_radius_10" - android:gravity="center_vertical" - android:orientation="horizontal" - android:paddingHorizontal="@dimen/dp_10" - android:paddingVertical="@dimen/dp_15"> - - - - - - -