diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index d7577f8..e5d0272 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -94,10 +94,13 @@ deviceList.forEach { val model = AddedDeviceModel() model.deviceId = it.devId - when (it.deviceCategory) { - "yyj" -> model.deviceName = "万家乐油烟机" - "rs" -> model.deviceName = "万家乐热水器" + val deviceName = when (it.deviceCategory) { + "yyj" -> "万家乐油烟机" + "rs" -> "万家乐热水器" + "bgl" -> "万家乐壁挂炉" + else -> "万家乐燃气灶" } + model.deviceName = deviceName model.isOnline = it.isOnline model.deviceImage = it.iconUrl model.deviceModel = it.name diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index d7577f8..e5d0272 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -94,10 +94,13 @@ deviceList.forEach { val model = AddedDeviceModel() model.deviceId = it.devId - when (it.deviceCategory) { - "yyj" -> model.deviceName = "万家乐油烟机" - "rs" -> model.deviceName = "万家乐热水器" + val deviceName = when (it.deviceCategory) { + "yyj" -> "万家乐油烟机" + "rs" -> "万家乐热水器" + "bgl" -> "万家乐壁挂炉" + else -> "万家乐燃气灶" } + model.deviceName = deviceName model.isOnline = it.isOnline model.deviceImage = it.iconUrl model.deviceModel = it.name diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt index 7c6591f..0736ad3 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt @@ -231,12 +231,19 @@ paramObject.put("deviceActive", 1) paramObject.put("deviceActiveTime", (devResp.time * 1000L).timestampToCompleteDate()) paramObject.put("deviceBindUser", 1) - paramObject.put("deviceName", devResp.name) + val deviceName = when (devResp.productStandardConfig.category) { + "yyj" -> "油烟机" + "rs" -> "热水器" + "bgl" -> "壁挂炉" + else -> "燃气灶" + } + paramObject.put("deviceName", deviceName) paramObject.put("deviceHardwareVersion", devResp.bv) paramObject.put("deviceSoftwareVersion", devResp.pv) paramObject.put("deviceMac", devResp.mac) paramObject.put("deviceIp", devResp.ip) paramObject.put("productCategory", devResp.category) + paramObject.put("productCode", devResp.name) paramObject.put("productVersion", devResp.productBean.productVer) paramObject.put("userAccount", userModel.account) paramObject.put("userName", userModel.name) diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index d7577f8..e5d0272 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -94,10 +94,13 @@ deviceList.forEach { val model = AddedDeviceModel() model.deviceId = it.devId - when (it.deviceCategory) { - "yyj" -> model.deviceName = "万家乐油烟机" - "rs" -> model.deviceName = "万家乐热水器" + val deviceName = when (it.deviceCategory) { + "yyj" -> "万家乐油烟机" + "rs" -> "万家乐热水器" + "bgl" -> "万家乐壁挂炉" + else -> "万家乐燃气灶" } + model.deviceName = deviceName model.isOnline = it.isOnline model.deviceImage = it.iconUrl model.deviceModel = it.name diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt index 7c6591f..0736ad3 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt @@ -231,12 +231,19 @@ paramObject.put("deviceActive", 1) paramObject.put("deviceActiveTime", (devResp.time * 1000L).timestampToCompleteDate()) paramObject.put("deviceBindUser", 1) - paramObject.put("deviceName", devResp.name) + val deviceName = when (devResp.productStandardConfig.category) { + "yyj" -> "油烟机" + "rs" -> "热水器" + "bgl" -> "壁挂炉" + else -> "燃气灶" + } + paramObject.put("deviceName", deviceName) paramObject.put("deviceHardwareVersion", devResp.bv) paramObject.put("deviceSoftwareVersion", devResp.pv) paramObject.put("deviceMac", devResp.mac) paramObject.put("deviceIp", devResp.ip) paramObject.put("productCategory", devResp.category) + paramObject.put("productCode", devResp.name) paramObject.put("productVersion", devResp.productBean.productVer) paramObject.put("userAccount", userModel.account) paramObject.put("userName", userModel.name) diff --git a/app/src/main/java/com/casic/br/view/device/CookerActivity.kt b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt index 8c21d57..405184e 100644 --- a/app/src/main/java/com/casic/br/view/device/CookerActivity.kt +++ b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt @@ -21,10 +21,14 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet +import com.tuya.smart.android.device.bean.UpgradeInfoBean import com.tuya.smart.home.sdk.TuyaHomeSdk +import com.tuya.smart.sdk.api.IGetOtaInfoCallback import com.tuya.smart.sdk.api.IResultCallback import com.tuya.smart.sdk.api.ITuyaDevice +import com.tuya.smart.sdk.api.ITuyaOta import kotlinx.android.synthetic.main.activity_cooker.* import kotlinx.android.synthetic.main.include_device_title.* import java.util.* @@ -35,9 +39,11 @@ class CookerActivity : KotlinBaseActivity() { private val kTag = "CookerActivity" + private val context = this@CookerActivity private val inflater by lazy { LayoutInflater.from(this) } private var fragmentPages: ArrayList = ArrayList() private lateinit var deviceInstance: ITuyaDevice + private lateinit var tuyaOTA: ITuyaOta override fun initLayoutView(): Int = R.layout.activity_cooker @@ -54,6 +60,7 @@ override fun initData() { val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!! + tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId) //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) @@ -104,7 +111,34 @@ override fun onActionItemClick(position: Int) { when (position) { 0 -> { + tuyaOTA.getOtaInfo(object : IGetOtaInfoCallback { + override fun onSuccess(upgradeInfoBeans: MutableList?) { + if (upgradeInfoBeans.isNullOrEmpty()) { + "无新版本可用".show(context) + } + val mainModel = upgradeInfoBeans!![0] + when (mainModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + } + else -> "主联网模组无新版本可用".show(context) + } + + val mcuModel = upgradeInfoBeans[1] + when (mcuModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + + } + else -> "MCU模块无新版本可用".show(context) + } + } + + override fun onFailure(code: String?, error: String?) { + + } + }) } 1 -> deviceInstance.removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { @@ -149,6 +183,26 @@ CommandManager.getTuyaDp(deviceInstance, "1") } + private fun updateVersion() { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("版本升级") + .setMessage("有新版本可以升级,是否升级?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + tuyaOTA.startOta() + } + + override fun onConfirmClick() { + + } + }) + .build().show() + } + override fun onDestroy() { super.onDestroy() deviceInstance.unRegisterDevListener() diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index d7577f8..e5d0272 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -94,10 +94,13 @@ deviceList.forEach { val model = AddedDeviceModel() model.deviceId = it.devId - when (it.deviceCategory) { - "yyj" -> model.deviceName = "万家乐油烟机" - "rs" -> model.deviceName = "万家乐热水器" + val deviceName = when (it.deviceCategory) { + "yyj" -> "万家乐油烟机" + "rs" -> "万家乐热水器" + "bgl" -> "万家乐壁挂炉" + else -> "万家乐燃气灶" } + model.deviceName = deviceName model.isOnline = it.isOnline model.deviceImage = it.iconUrl model.deviceModel = it.name diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt index 7c6591f..0736ad3 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt @@ -231,12 +231,19 @@ paramObject.put("deviceActive", 1) paramObject.put("deviceActiveTime", (devResp.time * 1000L).timestampToCompleteDate()) paramObject.put("deviceBindUser", 1) - paramObject.put("deviceName", devResp.name) + val deviceName = when (devResp.productStandardConfig.category) { + "yyj" -> "油烟机" + "rs" -> "热水器" + "bgl" -> "壁挂炉" + else -> "燃气灶" + } + paramObject.put("deviceName", deviceName) paramObject.put("deviceHardwareVersion", devResp.bv) paramObject.put("deviceSoftwareVersion", devResp.pv) paramObject.put("deviceMac", devResp.mac) paramObject.put("deviceIp", devResp.ip) paramObject.put("productCategory", devResp.category) + paramObject.put("productCode", devResp.name) paramObject.put("productVersion", devResp.productBean.productVer) paramObject.put("userAccount", userModel.account) paramObject.put("userName", userModel.name) diff --git a/app/src/main/java/com/casic/br/view/device/CookerActivity.kt b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt index 8c21d57..405184e 100644 --- a/app/src/main/java/com/casic/br/view/device/CookerActivity.kt +++ b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt @@ -21,10 +21,14 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet +import com.tuya.smart.android.device.bean.UpgradeInfoBean import com.tuya.smart.home.sdk.TuyaHomeSdk +import com.tuya.smart.sdk.api.IGetOtaInfoCallback import com.tuya.smart.sdk.api.IResultCallback import com.tuya.smart.sdk.api.ITuyaDevice +import com.tuya.smart.sdk.api.ITuyaOta import kotlinx.android.synthetic.main.activity_cooker.* import kotlinx.android.synthetic.main.include_device_title.* import java.util.* @@ -35,9 +39,11 @@ class CookerActivity : KotlinBaseActivity() { private val kTag = "CookerActivity" + private val context = this@CookerActivity private val inflater by lazy { LayoutInflater.from(this) } private var fragmentPages: ArrayList = ArrayList() private lateinit var deviceInstance: ITuyaDevice + private lateinit var tuyaOTA: ITuyaOta override fun initLayoutView(): Int = R.layout.activity_cooker @@ -54,6 +60,7 @@ override fun initData() { val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!! + tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId) //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) @@ -104,7 +111,34 @@ override fun onActionItemClick(position: Int) { when (position) { 0 -> { + tuyaOTA.getOtaInfo(object : IGetOtaInfoCallback { + override fun onSuccess(upgradeInfoBeans: MutableList?) { + if (upgradeInfoBeans.isNullOrEmpty()) { + "无新版本可用".show(context) + } + val mainModel = upgradeInfoBeans!![0] + when (mainModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + } + else -> "主联网模组无新版本可用".show(context) + } + + val mcuModel = upgradeInfoBeans[1] + when (mcuModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + + } + else -> "MCU模块无新版本可用".show(context) + } + } + + override fun onFailure(code: String?, error: String?) { + + } + }) } 1 -> deviceInstance.removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { @@ -149,6 +183,26 @@ CommandManager.getTuyaDp(deviceInstance, "1") } + private fun updateVersion() { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("版本升级") + .setMessage("有新版本可以升级,是否升级?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + tuyaOTA.startOta() + } + + override fun onConfirmClick() { + + } + }) + .build().show() + } + override fun onDestroy() { super.onDestroy() deviceInstance.unRegisterDevListener() diff --git a/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt b/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt index 1ecee9e..d0267c1 100644 --- a/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt +++ b/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt @@ -21,10 +21,14 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet +import com.tuya.smart.android.device.bean.UpgradeInfoBean import com.tuya.smart.home.sdk.TuyaHomeSdk +import com.tuya.smart.sdk.api.IGetOtaInfoCallback import com.tuya.smart.sdk.api.IResultCallback import com.tuya.smart.sdk.api.ITuyaDevice +import com.tuya.smart.sdk.api.ITuyaOta import kotlinx.android.synthetic.main.activity_fire_place.* import kotlinx.android.synthetic.main.include_device_title.* import java.util.* @@ -35,9 +39,11 @@ class FireplaceActivity : KotlinBaseActivity() { private val kTag = "FireplaceActivity" + private val context = this@FireplaceActivity private val inflater by lazy { LayoutInflater.from(this) } private var fragmentPages: ArrayList = ArrayList() private lateinit var deviceInstance: ITuyaDevice + private lateinit var tuyaOTA: ITuyaOta override fun initLayoutView(): Int = R.layout.activity_fire_place @@ -54,6 +60,7 @@ override fun initData() { val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!! + tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId) //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) @@ -104,7 +111,34 @@ override fun onActionItemClick(position: Int) { when (position) { 0 -> { + tuyaOTA.getOtaInfo(object : IGetOtaInfoCallback { + override fun onSuccess(upgradeInfoBeans: MutableList?) { + if (upgradeInfoBeans.isNullOrEmpty()) { + "无新版本可用".show(context) + } + val mainModel = upgradeInfoBeans!![0] + when (mainModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + } + else -> "主联网模组无新版本可用".show(context) + } + + val mcuModel = upgradeInfoBeans[1] + when (mcuModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + + } + else -> "MCU模块无新版本可用".show(context) + } + } + + override fun onFailure(code: String?, error: String?) { + + } + }) } 1 -> deviceInstance.removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { @@ -149,6 +183,26 @@ CommandManager.getTuyaDp(deviceInstance, "1") } + private fun updateVersion() { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("版本升级") + .setMessage("有新版本可以升级,是否升级?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + tuyaOTA.startOta() + } + + override fun onConfirmClick() { + + } + }) + .build().show() + } + override fun onDestroy() { super.onDestroy() deviceInstance.unRegisterDevListener() diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index d7577f8..e5d0272 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -94,10 +94,13 @@ deviceList.forEach { val model = AddedDeviceModel() model.deviceId = it.devId - when (it.deviceCategory) { - "yyj" -> model.deviceName = "万家乐油烟机" - "rs" -> model.deviceName = "万家乐热水器" + val deviceName = when (it.deviceCategory) { + "yyj" -> "万家乐油烟机" + "rs" -> "万家乐热水器" + "bgl" -> "万家乐壁挂炉" + else -> "万家乐燃气灶" } + model.deviceName = deviceName model.isOnline = it.isOnline model.deviceImage = it.iconUrl model.deviceModel = it.name diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt index 7c6591f..0736ad3 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt @@ -231,12 +231,19 @@ paramObject.put("deviceActive", 1) paramObject.put("deviceActiveTime", (devResp.time * 1000L).timestampToCompleteDate()) paramObject.put("deviceBindUser", 1) - paramObject.put("deviceName", devResp.name) + val deviceName = when (devResp.productStandardConfig.category) { + "yyj" -> "油烟机" + "rs" -> "热水器" + "bgl" -> "壁挂炉" + else -> "燃气灶" + } + paramObject.put("deviceName", deviceName) paramObject.put("deviceHardwareVersion", devResp.bv) paramObject.put("deviceSoftwareVersion", devResp.pv) paramObject.put("deviceMac", devResp.mac) paramObject.put("deviceIp", devResp.ip) paramObject.put("productCategory", devResp.category) + paramObject.put("productCode", devResp.name) paramObject.put("productVersion", devResp.productBean.productVer) paramObject.put("userAccount", userModel.account) paramObject.put("userName", userModel.name) diff --git a/app/src/main/java/com/casic/br/view/device/CookerActivity.kt b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt index 8c21d57..405184e 100644 --- a/app/src/main/java/com/casic/br/view/device/CookerActivity.kt +++ b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt @@ -21,10 +21,14 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet +import com.tuya.smart.android.device.bean.UpgradeInfoBean import com.tuya.smart.home.sdk.TuyaHomeSdk +import com.tuya.smart.sdk.api.IGetOtaInfoCallback import com.tuya.smart.sdk.api.IResultCallback import com.tuya.smart.sdk.api.ITuyaDevice +import com.tuya.smart.sdk.api.ITuyaOta import kotlinx.android.synthetic.main.activity_cooker.* import kotlinx.android.synthetic.main.include_device_title.* import java.util.* @@ -35,9 +39,11 @@ class CookerActivity : KotlinBaseActivity() { private val kTag = "CookerActivity" + private val context = this@CookerActivity private val inflater by lazy { LayoutInflater.from(this) } private var fragmentPages: ArrayList = ArrayList() private lateinit var deviceInstance: ITuyaDevice + private lateinit var tuyaOTA: ITuyaOta override fun initLayoutView(): Int = R.layout.activity_cooker @@ -54,6 +60,7 @@ override fun initData() { val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!! + tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId) //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) @@ -104,7 +111,34 @@ override fun onActionItemClick(position: Int) { when (position) { 0 -> { + tuyaOTA.getOtaInfo(object : IGetOtaInfoCallback { + override fun onSuccess(upgradeInfoBeans: MutableList?) { + if (upgradeInfoBeans.isNullOrEmpty()) { + "无新版本可用".show(context) + } + val mainModel = upgradeInfoBeans!![0] + when (mainModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + } + else -> "主联网模组无新版本可用".show(context) + } + + val mcuModel = upgradeInfoBeans[1] + when (mcuModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + + } + else -> "MCU模块无新版本可用".show(context) + } + } + + override fun onFailure(code: String?, error: String?) { + + } + }) } 1 -> deviceInstance.removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { @@ -149,6 +183,26 @@ CommandManager.getTuyaDp(deviceInstance, "1") } + private fun updateVersion() { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("版本升级") + .setMessage("有新版本可以升级,是否升级?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + tuyaOTA.startOta() + } + + override fun onConfirmClick() { + + } + }) + .build().show() + } + override fun onDestroy() { super.onDestroy() deviceInstance.unRegisterDevListener() diff --git a/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt b/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt index 1ecee9e..d0267c1 100644 --- a/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt +++ b/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt @@ -21,10 +21,14 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet +import com.tuya.smart.android.device.bean.UpgradeInfoBean import com.tuya.smart.home.sdk.TuyaHomeSdk +import com.tuya.smart.sdk.api.IGetOtaInfoCallback import com.tuya.smart.sdk.api.IResultCallback import com.tuya.smart.sdk.api.ITuyaDevice +import com.tuya.smart.sdk.api.ITuyaOta import kotlinx.android.synthetic.main.activity_fire_place.* import kotlinx.android.synthetic.main.include_device_title.* import java.util.* @@ -35,9 +39,11 @@ class FireplaceActivity : KotlinBaseActivity() { private val kTag = "FireplaceActivity" + private val context = this@FireplaceActivity private val inflater by lazy { LayoutInflater.from(this) } private var fragmentPages: ArrayList = ArrayList() private lateinit var deviceInstance: ITuyaDevice + private lateinit var tuyaOTA: ITuyaOta override fun initLayoutView(): Int = R.layout.activity_fire_place @@ -54,6 +60,7 @@ override fun initData() { val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!! + tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId) //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) @@ -104,7 +111,34 @@ override fun onActionItemClick(position: Int) { when (position) { 0 -> { + tuyaOTA.getOtaInfo(object : IGetOtaInfoCallback { + override fun onSuccess(upgradeInfoBeans: MutableList?) { + if (upgradeInfoBeans.isNullOrEmpty()) { + "无新版本可用".show(context) + } + val mainModel = upgradeInfoBeans!![0] + when (mainModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + } + else -> "主联网模组无新版本可用".show(context) + } + + val mcuModel = upgradeInfoBeans[1] + when (mcuModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + + } + else -> "MCU模块无新版本可用".show(context) + } + } + + override fun onFailure(code: String?, error: String?) { + + } + }) } 1 -> deviceInstance.removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { @@ -149,6 +183,26 @@ CommandManager.getTuyaDp(deviceInstance, "1") } + private fun updateVersion() { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("版本升级") + .setMessage("有新版本可以升级,是否升级?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + tuyaOTA.startOta() + } + + override fun onConfirmClick() { + + } + }) + .build().show() + } + override fun onDestroy() { super.onDestroy() deviceInstance.unRegisterDevListener() 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 8eb133f..90292cc 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 @@ -22,22 +22,29 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet +import com.tuya.smart.android.device.bean.UpgradeInfoBean import com.tuya.smart.home.sdk.TuyaHomeSdk +import com.tuya.smart.sdk.api.IGetOtaInfoCallback import com.tuya.smart.sdk.api.IResultCallback import com.tuya.smart.sdk.api.ITuyaDevice +import com.tuya.smart.sdk.api.ITuyaOta import kotlinx.android.synthetic.main.activity_range_hood.* import kotlinx.android.synthetic.main.include_device_title.* import java.util.* + /** * 油烟机 * */ class RangeHoodActivity : KotlinBaseActivity() { private val kTag = "RangeHoodActivity" + private val context = this@RangeHoodActivity private val inflater by lazy { LayoutInflater.from(this) } private var fragmentPages: ArrayList = ArrayList() + private lateinit var tuyaOTA: ITuyaOta private lateinit var deviceInstance: ITuyaDevice private var isWorking = false private var isDelayed = false @@ -57,6 +64,7 @@ override fun initData() { val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!! + tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId) //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) @@ -136,7 +144,34 @@ override fun onActionItemClick(position: Int) { when (position) { 0 -> { + tuyaOTA.getOtaInfo(object : IGetOtaInfoCallback { + override fun onSuccess(upgradeInfoBeans: MutableList?) { + if (upgradeInfoBeans.isNullOrEmpty()) { + "无新版本可用".show(context) + } + val mainModel = upgradeInfoBeans!![0] + when (mainModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + } + else -> "主联网模组无新版本可用".show(context) + } + + val mcuModel = upgradeInfoBeans[1] + when (mcuModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + + } + else -> "MCU模块无新版本可用".show(context) + } + } + + override fun onFailure(code: String?, error: String?) { + + } + }) } 1 -> deviceInstance.removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { @@ -175,6 +210,26 @@ }) } + private fun updateVersion() { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("版本升级") + .setMessage("有新版本可以升级,是否升级?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + tuyaOTA.startOta() + } + + override fun onConfirmClick() { + + } + }) + .build().show() + } + override fun onDestroy() { super.onDestroy() deviceInstance.unRegisterDevListener() diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index d7577f8..e5d0272 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -94,10 +94,13 @@ deviceList.forEach { val model = AddedDeviceModel() model.deviceId = it.devId - when (it.deviceCategory) { - "yyj" -> model.deviceName = "万家乐油烟机" - "rs" -> model.deviceName = "万家乐热水器" + val deviceName = when (it.deviceCategory) { + "yyj" -> "万家乐油烟机" + "rs" -> "万家乐热水器" + "bgl" -> "万家乐壁挂炉" + else -> "万家乐燃气灶" } + model.deviceName = deviceName model.isOnline = it.isOnline model.deviceImage = it.iconUrl model.deviceModel = it.name diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt index 7c6591f..0736ad3 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt @@ -231,12 +231,19 @@ paramObject.put("deviceActive", 1) paramObject.put("deviceActiveTime", (devResp.time * 1000L).timestampToCompleteDate()) paramObject.put("deviceBindUser", 1) - paramObject.put("deviceName", devResp.name) + val deviceName = when (devResp.productStandardConfig.category) { + "yyj" -> "油烟机" + "rs" -> "热水器" + "bgl" -> "壁挂炉" + else -> "燃气灶" + } + paramObject.put("deviceName", deviceName) paramObject.put("deviceHardwareVersion", devResp.bv) paramObject.put("deviceSoftwareVersion", devResp.pv) paramObject.put("deviceMac", devResp.mac) paramObject.put("deviceIp", devResp.ip) paramObject.put("productCategory", devResp.category) + paramObject.put("productCode", devResp.name) paramObject.put("productVersion", devResp.productBean.productVer) paramObject.put("userAccount", userModel.account) paramObject.put("userName", userModel.name) diff --git a/app/src/main/java/com/casic/br/view/device/CookerActivity.kt b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt index 8c21d57..405184e 100644 --- a/app/src/main/java/com/casic/br/view/device/CookerActivity.kt +++ b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt @@ -21,10 +21,14 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet +import com.tuya.smart.android.device.bean.UpgradeInfoBean import com.tuya.smart.home.sdk.TuyaHomeSdk +import com.tuya.smart.sdk.api.IGetOtaInfoCallback import com.tuya.smart.sdk.api.IResultCallback import com.tuya.smart.sdk.api.ITuyaDevice +import com.tuya.smart.sdk.api.ITuyaOta import kotlinx.android.synthetic.main.activity_cooker.* import kotlinx.android.synthetic.main.include_device_title.* import java.util.* @@ -35,9 +39,11 @@ class CookerActivity : KotlinBaseActivity() { private val kTag = "CookerActivity" + private val context = this@CookerActivity private val inflater by lazy { LayoutInflater.from(this) } private var fragmentPages: ArrayList = ArrayList() private lateinit var deviceInstance: ITuyaDevice + private lateinit var tuyaOTA: ITuyaOta override fun initLayoutView(): Int = R.layout.activity_cooker @@ -54,6 +60,7 @@ override fun initData() { val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!! + tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId) //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) @@ -104,7 +111,34 @@ override fun onActionItemClick(position: Int) { when (position) { 0 -> { + tuyaOTA.getOtaInfo(object : IGetOtaInfoCallback { + override fun onSuccess(upgradeInfoBeans: MutableList?) { + if (upgradeInfoBeans.isNullOrEmpty()) { + "无新版本可用".show(context) + } + val mainModel = upgradeInfoBeans!![0] + when (mainModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + } + else -> "主联网模组无新版本可用".show(context) + } + + val mcuModel = upgradeInfoBeans[1] + when (mcuModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + + } + else -> "MCU模块无新版本可用".show(context) + } + } + + override fun onFailure(code: String?, error: String?) { + + } + }) } 1 -> deviceInstance.removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { @@ -149,6 +183,26 @@ CommandManager.getTuyaDp(deviceInstance, "1") } + private fun updateVersion() { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("版本升级") + .setMessage("有新版本可以升级,是否升级?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + tuyaOTA.startOta() + } + + override fun onConfirmClick() { + + } + }) + .build().show() + } + override fun onDestroy() { super.onDestroy() deviceInstance.unRegisterDevListener() diff --git a/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt b/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt index 1ecee9e..d0267c1 100644 --- a/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt +++ b/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt @@ -21,10 +21,14 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet +import com.tuya.smart.android.device.bean.UpgradeInfoBean import com.tuya.smart.home.sdk.TuyaHomeSdk +import com.tuya.smart.sdk.api.IGetOtaInfoCallback import com.tuya.smart.sdk.api.IResultCallback import com.tuya.smart.sdk.api.ITuyaDevice +import com.tuya.smart.sdk.api.ITuyaOta import kotlinx.android.synthetic.main.activity_fire_place.* import kotlinx.android.synthetic.main.include_device_title.* import java.util.* @@ -35,9 +39,11 @@ class FireplaceActivity : KotlinBaseActivity() { private val kTag = "FireplaceActivity" + private val context = this@FireplaceActivity private val inflater by lazy { LayoutInflater.from(this) } private var fragmentPages: ArrayList = ArrayList() private lateinit var deviceInstance: ITuyaDevice + private lateinit var tuyaOTA: ITuyaOta override fun initLayoutView(): Int = R.layout.activity_fire_place @@ -54,6 +60,7 @@ override fun initData() { val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!! + tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId) //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) @@ -104,7 +111,34 @@ override fun onActionItemClick(position: Int) { when (position) { 0 -> { + tuyaOTA.getOtaInfo(object : IGetOtaInfoCallback { + override fun onSuccess(upgradeInfoBeans: MutableList?) { + if (upgradeInfoBeans.isNullOrEmpty()) { + "无新版本可用".show(context) + } + val mainModel = upgradeInfoBeans!![0] + when (mainModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + } + else -> "主联网模组无新版本可用".show(context) + } + + val mcuModel = upgradeInfoBeans[1] + when (mcuModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + + } + else -> "MCU模块无新版本可用".show(context) + } + } + + override fun onFailure(code: String?, error: String?) { + + } + }) } 1 -> deviceInstance.removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { @@ -149,6 +183,26 @@ CommandManager.getTuyaDp(deviceInstance, "1") } + private fun updateVersion() { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("版本升级") + .setMessage("有新版本可以升级,是否升级?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + tuyaOTA.startOta() + } + + override fun onConfirmClick() { + + } + }) + .build().show() + } + override fun onDestroy() { super.onDestroy() deviceInstance.unRegisterDevListener() 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 8eb133f..90292cc 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 @@ -22,22 +22,29 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet +import com.tuya.smart.android.device.bean.UpgradeInfoBean import com.tuya.smart.home.sdk.TuyaHomeSdk +import com.tuya.smart.sdk.api.IGetOtaInfoCallback import com.tuya.smart.sdk.api.IResultCallback import com.tuya.smart.sdk.api.ITuyaDevice +import com.tuya.smart.sdk.api.ITuyaOta import kotlinx.android.synthetic.main.activity_range_hood.* import kotlinx.android.synthetic.main.include_device_title.* import java.util.* + /** * 油烟机 * */ class RangeHoodActivity : KotlinBaseActivity() { private val kTag = "RangeHoodActivity" + private val context = this@RangeHoodActivity private val inflater by lazy { LayoutInflater.from(this) } private var fragmentPages: ArrayList = ArrayList() + private lateinit var tuyaOTA: ITuyaOta private lateinit var deviceInstance: ITuyaDevice private var isWorking = false private var isDelayed = false @@ -57,6 +64,7 @@ override fun initData() { val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!! + tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId) //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) @@ -136,7 +144,34 @@ override fun onActionItemClick(position: Int) { when (position) { 0 -> { + tuyaOTA.getOtaInfo(object : IGetOtaInfoCallback { + override fun onSuccess(upgradeInfoBeans: MutableList?) { + if (upgradeInfoBeans.isNullOrEmpty()) { + "无新版本可用".show(context) + } + val mainModel = upgradeInfoBeans!![0] + when (mainModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + } + else -> "主联网模组无新版本可用".show(context) + } + + val mcuModel = upgradeInfoBeans[1] + when (mcuModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + + } + else -> "MCU模块无新版本可用".show(context) + } + } + + override fun onFailure(code: String?, error: String?) { + + } + }) } 1 -> deviceInstance.removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { @@ -175,6 +210,26 @@ }) } + private fun updateVersion() { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("版本升级") + .setMessage("有新版本可以升级,是否升级?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + tuyaOTA.startOta() + } + + override fun onConfirmClick() { + + } + }) + .build().show() + } + override fun onDestroy() { super.onDestroy() deviceInstance.unRegisterDevListener() 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 a54f444..007593e 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 @@ -22,10 +22,14 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet +import com.tuya.smart.android.device.bean.UpgradeInfoBean import com.tuya.smart.home.sdk.TuyaHomeSdk +import com.tuya.smart.sdk.api.IGetOtaInfoCallback import com.tuya.smart.sdk.api.IResultCallback import com.tuya.smart.sdk.api.ITuyaDevice +import com.tuya.smart.sdk.api.ITuyaOta import kotlinx.android.synthetic.main.activity_range_hood.* import kotlinx.android.synthetic.main.activity_water_heater.* import kotlinx.android.synthetic.main.activity_water_heater.deviceLogoView @@ -45,6 +49,7 @@ private val context: Context = this@WaterHeaterActivity private val inflater by lazy { LayoutInflater.from(this) } private var fragmentPages: ArrayList = ArrayList() + private lateinit var tuyaOTA: ITuyaOta private lateinit var deviceInstance: ITuyaDevice override fun initLayoutView(): Int = R.layout.activity_water_heater @@ -59,6 +64,7 @@ override fun initData() { val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!! + tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId) //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) @@ -120,7 +126,34 @@ override fun onActionItemClick(position: Int) { when (position) { 0 -> { + tuyaOTA.getOtaInfo(object : IGetOtaInfoCallback { + override fun onSuccess(upgradeInfoBeans: MutableList?) { + if (upgradeInfoBeans.isNullOrEmpty()) { + "无新版本可用".show(context) + } + val mainModel = upgradeInfoBeans!![0] + when (mainModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + } + else -> "主联网模组无新版本可用".show(context) + } + + val mcuModel = upgradeInfoBeans[1] + when (mcuModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + + } + else -> "MCU模块无新版本可用".show(context) + } + } + + override fun onFailure(code: String?, error: String?) { + + } + }) } 1 -> deviceInstance.removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { @@ -159,6 +192,26 @@ }) } + private fun updateVersion() { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("版本升级") + .setMessage("有新版本可以升级,是否升级?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + tuyaOTA.startOta() + } + + override fun onConfirmClick() { + + } + }) + .build().show() + } + override fun onDestroy() { super.onDestroy() deviceInstance.unRegisterDevListener() diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index d7577f8..e5d0272 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -94,10 +94,13 @@ deviceList.forEach { val model = AddedDeviceModel() model.deviceId = it.devId - when (it.deviceCategory) { - "yyj" -> model.deviceName = "万家乐油烟机" - "rs" -> model.deviceName = "万家乐热水器" + val deviceName = when (it.deviceCategory) { + "yyj" -> "万家乐油烟机" + "rs" -> "万家乐热水器" + "bgl" -> "万家乐壁挂炉" + else -> "万家乐燃气灶" } + model.deviceName = deviceName model.isOnline = it.isOnline model.deviceImage = it.iconUrl model.deviceModel = it.name diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt index 7c6591f..0736ad3 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt @@ -231,12 +231,19 @@ paramObject.put("deviceActive", 1) paramObject.put("deviceActiveTime", (devResp.time * 1000L).timestampToCompleteDate()) paramObject.put("deviceBindUser", 1) - paramObject.put("deviceName", devResp.name) + val deviceName = when (devResp.productStandardConfig.category) { + "yyj" -> "油烟机" + "rs" -> "热水器" + "bgl" -> "壁挂炉" + else -> "燃气灶" + } + paramObject.put("deviceName", deviceName) paramObject.put("deviceHardwareVersion", devResp.bv) paramObject.put("deviceSoftwareVersion", devResp.pv) paramObject.put("deviceMac", devResp.mac) paramObject.put("deviceIp", devResp.ip) paramObject.put("productCategory", devResp.category) + paramObject.put("productCode", devResp.name) paramObject.put("productVersion", devResp.productBean.productVer) paramObject.put("userAccount", userModel.account) paramObject.put("userName", userModel.name) diff --git a/app/src/main/java/com/casic/br/view/device/CookerActivity.kt b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt index 8c21d57..405184e 100644 --- a/app/src/main/java/com/casic/br/view/device/CookerActivity.kt +++ b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt @@ -21,10 +21,14 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet +import com.tuya.smart.android.device.bean.UpgradeInfoBean import com.tuya.smart.home.sdk.TuyaHomeSdk +import com.tuya.smart.sdk.api.IGetOtaInfoCallback import com.tuya.smart.sdk.api.IResultCallback import com.tuya.smart.sdk.api.ITuyaDevice +import com.tuya.smart.sdk.api.ITuyaOta import kotlinx.android.synthetic.main.activity_cooker.* import kotlinx.android.synthetic.main.include_device_title.* import java.util.* @@ -35,9 +39,11 @@ class CookerActivity : KotlinBaseActivity() { private val kTag = "CookerActivity" + private val context = this@CookerActivity private val inflater by lazy { LayoutInflater.from(this) } private var fragmentPages: ArrayList = ArrayList() private lateinit var deviceInstance: ITuyaDevice + private lateinit var tuyaOTA: ITuyaOta override fun initLayoutView(): Int = R.layout.activity_cooker @@ -54,6 +60,7 @@ override fun initData() { val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!! + tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId) //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) @@ -104,7 +111,34 @@ override fun onActionItemClick(position: Int) { when (position) { 0 -> { + tuyaOTA.getOtaInfo(object : IGetOtaInfoCallback { + override fun onSuccess(upgradeInfoBeans: MutableList?) { + if (upgradeInfoBeans.isNullOrEmpty()) { + "无新版本可用".show(context) + } + val mainModel = upgradeInfoBeans!![0] + when (mainModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + } + else -> "主联网模组无新版本可用".show(context) + } + + val mcuModel = upgradeInfoBeans[1] + when (mcuModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + + } + else -> "MCU模块无新版本可用".show(context) + } + } + + override fun onFailure(code: String?, error: String?) { + + } + }) } 1 -> deviceInstance.removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { @@ -149,6 +183,26 @@ CommandManager.getTuyaDp(deviceInstance, "1") } + private fun updateVersion() { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("版本升级") + .setMessage("有新版本可以升级,是否升级?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + tuyaOTA.startOta() + } + + override fun onConfirmClick() { + + } + }) + .build().show() + } + override fun onDestroy() { super.onDestroy() deviceInstance.unRegisterDevListener() diff --git a/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt b/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt index 1ecee9e..d0267c1 100644 --- a/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt +++ b/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt @@ -21,10 +21,14 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet +import com.tuya.smart.android.device.bean.UpgradeInfoBean import com.tuya.smart.home.sdk.TuyaHomeSdk +import com.tuya.smart.sdk.api.IGetOtaInfoCallback import com.tuya.smart.sdk.api.IResultCallback import com.tuya.smart.sdk.api.ITuyaDevice +import com.tuya.smart.sdk.api.ITuyaOta import kotlinx.android.synthetic.main.activity_fire_place.* import kotlinx.android.synthetic.main.include_device_title.* import java.util.* @@ -35,9 +39,11 @@ class FireplaceActivity : KotlinBaseActivity() { private val kTag = "FireplaceActivity" + private val context = this@FireplaceActivity private val inflater by lazy { LayoutInflater.from(this) } private var fragmentPages: ArrayList = ArrayList() private lateinit var deviceInstance: ITuyaDevice + private lateinit var tuyaOTA: ITuyaOta override fun initLayoutView(): Int = R.layout.activity_fire_place @@ -54,6 +60,7 @@ override fun initData() { val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!! + tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId) //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) @@ -104,7 +111,34 @@ override fun onActionItemClick(position: Int) { when (position) { 0 -> { + tuyaOTA.getOtaInfo(object : IGetOtaInfoCallback { + override fun onSuccess(upgradeInfoBeans: MutableList?) { + if (upgradeInfoBeans.isNullOrEmpty()) { + "无新版本可用".show(context) + } + val mainModel = upgradeInfoBeans!![0] + when (mainModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + } + else -> "主联网模组无新版本可用".show(context) + } + + val mcuModel = upgradeInfoBeans[1] + when (mcuModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + + } + else -> "MCU模块无新版本可用".show(context) + } + } + + override fun onFailure(code: String?, error: String?) { + + } + }) } 1 -> deviceInstance.removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { @@ -149,6 +183,26 @@ CommandManager.getTuyaDp(deviceInstance, "1") } + private fun updateVersion() { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("版本升级") + .setMessage("有新版本可以升级,是否升级?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + tuyaOTA.startOta() + } + + override fun onConfirmClick() { + + } + }) + .build().show() + } + override fun onDestroy() { super.onDestroy() deviceInstance.unRegisterDevListener() 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 8eb133f..90292cc 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 @@ -22,22 +22,29 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet +import com.tuya.smart.android.device.bean.UpgradeInfoBean import com.tuya.smart.home.sdk.TuyaHomeSdk +import com.tuya.smart.sdk.api.IGetOtaInfoCallback import com.tuya.smart.sdk.api.IResultCallback import com.tuya.smart.sdk.api.ITuyaDevice +import com.tuya.smart.sdk.api.ITuyaOta import kotlinx.android.synthetic.main.activity_range_hood.* import kotlinx.android.synthetic.main.include_device_title.* import java.util.* + /** * 油烟机 * */ class RangeHoodActivity : KotlinBaseActivity() { private val kTag = "RangeHoodActivity" + private val context = this@RangeHoodActivity private val inflater by lazy { LayoutInflater.from(this) } private var fragmentPages: ArrayList = ArrayList() + private lateinit var tuyaOTA: ITuyaOta private lateinit var deviceInstance: ITuyaDevice private var isWorking = false private var isDelayed = false @@ -57,6 +64,7 @@ override fun initData() { val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!! + tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId) //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) @@ -136,7 +144,34 @@ override fun onActionItemClick(position: Int) { when (position) { 0 -> { + tuyaOTA.getOtaInfo(object : IGetOtaInfoCallback { + override fun onSuccess(upgradeInfoBeans: MutableList?) { + if (upgradeInfoBeans.isNullOrEmpty()) { + "无新版本可用".show(context) + } + val mainModel = upgradeInfoBeans!![0] + when (mainModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + } + else -> "主联网模组无新版本可用".show(context) + } + + val mcuModel = upgradeInfoBeans[1] + when (mcuModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + + } + else -> "MCU模块无新版本可用".show(context) + } + } + + override fun onFailure(code: String?, error: String?) { + + } + }) } 1 -> deviceInstance.removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { @@ -175,6 +210,26 @@ }) } + private fun updateVersion() { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("版本升级") + .setMessage("有新版本可以升级,是否升级?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + tuyaOTA.startOta() + } + + override fun onConfirmClick() { + + } + }) + .build().show() + } + override fun onDestroy() { super.onDestroy() deviceInstance.unRegisterDevListener() 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 a54f444..007593e 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 @@ -22,10 +22,14 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet +import com.tuya.smart.android.device.bean.UpgradeInfoBean import com.tuya.smart.home.sdk.TuyaHomeSdk +import com.tuya.smart.sdk.api.IGetOtaInfoCallback import com.tuya.smart.sdk.api.IResultCallback import com.tuya.smart.sdk.api.ITuyaDevice +import com.tuya.smart.sdk.api.ITuyaOta import kotlinx.android.synthetic.main.activity_range_hood.* import kotlinx.android.synthetic.main.activity_water_heater.* import kotlinx.android.synthetic.main.activity_water_heater.deviceLogoView @@ -45,6 +49,7 @@ private val context: Context = this@WaterHeaterActivity private val inflater by lazy { LayoutInflater.from(this) } private var fragmentPages: ArrayList = ArrayList() + private lateinit var tuyaOTA: ITuyaOta private lateinit var deviceInstance: ITuyaDevice override fun initLayoutView(): Int = R.layout.activity_water_heater @@ -59,6 +64,7 @@ override fun initData() { val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!! + tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId) //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) @@ -120,7 +126,34 @@ override fun onActionItemClick(position: Int) { when (position) { 0 -> { + tuyaOTA.getOtaInfo(object : IGetOtaInfoCallback { + override fun onSuccess(upgradeInfoBeans: MutableList?) { + if (upgradeInfoBeans.isNullOrEmpty()) { + "无新版本可用".show(context) + } + val mainModel = upgradeInfoBeans!![0] + when (mainModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + } + else -> "主联网模组无新版本可用".show(context) + } + + val mcuModel = upgradeInfoBeans[1] + when (mcuModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + + } + else -> "MCU模块无新版本可用".show(context) + } + } + + override fun onFailure(code: String?, error: String?) { + + } + }) } 1 -> deviceInstance.removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { @@ -159,6 +192,26 @@ }) } + private fun updateVersion() { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("版本升级") + .setMessage("有新版本可以升级,是否升级?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + tuyaOTA.startOta() + } + + override fun onConfirmClick() { + + } + }) + .build().show() + } + override fun onDestroy() { super.onDestroy() deviceInstance.unRegisterDevListener() diff --git a/app/src/main/res/drawable/ic_settings.xml b/app/src/main/res/drawable/ic_settings.xml index b443e3e..1762f9c 100644 --- a/app/src/main/res/drawable/ic_settings.xml +++ b/app/src/main/res/drawable/ic_settings.xml @@ -1,15 +1,15 @@ diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index d7577f8..e5d0272 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -94,10 +94,13 @@ deviceList.forEach { val model = AddedDeviceModel() model.deviceId = it.devId - when (it.deviceCategory) { - "yyj" -> model.deviceName = "万家乐油烟机" - "rs" -> model.deviceName = "万家乐热水器" + val deviceName = when (it.deviceCategory) { + "yyj" -> "万家乐油烟机" + "rs" -> "万家乐热水器" + "bgl" -> "万家乐壁挂炉" + else -> "万家乐燃气灶" } + model.deviceName = deviceName model.isOnline = it.isOnline model.deviceImage = it.iconUrl model.deviceModel = it.name diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt index 7c6591f..0736ad3 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt @@ -231,12 +231,19 @@ paramObject.put("deviceActive", 1) paramObject.put("deviceActiveTime", (devResp.time * 1000L).timestampToCompleteDate()) paramObject.put("deviceBindUser", 1) - paramObject.put("deviceName", devResp.name) + val deviceName = when (devResp.productStandardConfig.category) { + "yyj" -> "油烟机" + "rs" -> "热水器" + "bgl" -> "壁挂炉" + else -> "燃气灶" + } + paramObject.put("deviceName", deviceName) paramObject.put("deviceHardwareVersion", devResp.bv) paramObject.put("deviceSoftwareVersion", devResp.pv) paramObject.put("deviceMac", devResp.mac) paramObject.put("deviceIp", devResp.ip) paramObject.put("productCategory", devResp.category) + paramObject.put("productCode", devResp.name) paramObject.put("productVersion", devResp.productBean.productVer) paramObject.put("userAccount", userModel.account) paramObject.put("userName", userModel.name) diff --git a/app/src/main/java/com/casic/br/view/device/CookerActivity.kt b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt index 8c21d57..405184e 100644 --- a/app/src/main/java/com/casic/br/view/device/CookerActivity.kt +++ b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt @@ -21,10 +21,14 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet +import com.tuya.smart.android.device.bean.UpgradeInfoBean import com.tuya.smart.home.sdk.TuyaHomeSdk +import com.tuya.smart.sdk.api.IGetOtaInfoCallback import com.tuya.smart.sdk.api.IResultCallback import com.tuya.smart.sdk.api.ITuyaDevice +import com.tuya.smart.sdk.api.ITuyaOta import kotlinx.android.synthetic.main.activity_cooker.* import kotlinx.android.synthetic.main.include_device_title.* import java.util.* @@ -35,9 +39,11 @@ class CookerActivity : KotlinBaseActivity() { private val kTag = "CookerActivity" + private val context = this@CookerActivity private val inflater by lazy { LayoutInflater.from(this) } private var fragmentPages: ArrayList = ArrayList() private lateinit var deviceInstance: ITuyaDevice + private lateinit var tuyaOTA: ITuyaOta override fun initLayoutView(): Int = R.layout.activity_cooker @@ -54,6 +60,7 @@ override fun initData() { val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!! + tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId) //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) @@ -104,7 +111,34 @@ override fun onActionItemClick(position: Int) { when (position) { 0 -> { + tuyaOTA.getOtaInfo(object : IGetOtaInfoCallback { + override fun onSuccess(upgradeInfoBeans: MutableList?) { + if (upgradeInfoBeans.isNullOrEmpty()) { + "无新版本可用".show(context) + } + val mainModel = upgradeInfoBeans!![0] + when (mainModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + } + else -> "主联网模组无新版本可用".show(context) + } + + val mcuModel = upgradeInfoBeans[1] + when (mcuModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + + } + else -> "MCU模块无新版本可用".show(context) + } + } + + override fun onFailure(code: String?, error: String?) { + + } + }) } 1 -> deviceInstance.removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { @@ -149,6 +183,26 @@ CommandManager.getTuyaDp(deviceInstance, "1") } + private fun updateVersion() { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("版本升级") + .setMessage("有新版本可以升级,是否升级?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + tuyaOTA.startOta() + } + + override fun onConfirmClick() { + + } + }) + .build().show() + } + override fun onDestroy() { super.onDestroy() deviceInstance.unRegisterDevListener() diff --git a/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt b/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt index 1ecee9e..d0267c1 100644 --- a/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt +++ b/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt @@ -21,10 +21,14 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet +import com.tuya.smart.android.device.bean.UpgradeInfoBean import com.tuya.smart.home.sdk.TuyaHomeSdk +import com.tuya.smart.sdk.api.IGetOtaInfoCallback import com.tuya.smart.sdk.api.IResultCallback import com.tuya.smart.sdk.api.ITuyaDevice +import com.tuya.smart.sdk.api.ITuyaOta import kotlinx.android.synthetic.main.activity_fire_place.* import kotlinx.android.synthetic.main.include_device_title.* import java.util.* @@ -35,9 +39,11 @@ class FireplaceActivity : KotlinBaseActivity() { private val kTag = "FireplaceActivity" + private val context = this@FireplaceActivity private val inflater by lazy { LayoutInflater.from(this) } private var fragmentPages: ArrayList = ArrayList() private lateinit var deviceInstance: ITuyaDevice + private lateinit var tuyaOTA: ITuyaOta override fun initLayoutView(): Int = R.layout.activity_fire_place @@ -54,6 +60,7 @@ override fun initData() { val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!! + tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId) //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) @@ -104,7 +111,34 @@ override fun onActionItemClick(position: Int) { when (position) { 0 -> { + tuyaOTA.getOtaInfo(object : IGetOtaInfoCallback { + override fun onSuccess(upgradeInfoBeans: MutableList?) { + if (upgradeInfoBeans.isNullOrEmpty()) { + "无新版本可用".show(context) + } + val mainModel = upgradeInfoBeans!![0] + when (mainModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + } + else -> "主联网模组无新版本可用".show(context) + } + + val mcuModel = upgradeInfoBeans[1] + when (mcuModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + + } + else -> "MCU模块无新版本可用".show(context) + } + } + + override fun onFailure(code: String?, error: String?) { + + } + }) } 1 -> deviceInstance.removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { @@ -149,6 +183,26 @@ CommandManager.getTuyaDp(deviceInstance, "1") } + private fun updateVersion() { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("版本升级") + .setMessage("有新版本可以升级,是否升级?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + tuyaOTA.startOta() + } + + override fun onConfirmClick() { + + } + }) + .build().show() + } + override fun onDestroy() { super.onDestroy() deviceInstance.unRegisterDevListener() 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 8eb133f..90292cc 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 @@ -22,22 +22,29 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet +import com.tuya.smart.android.device.bean.UpgradeInfoBean import com.tuya.smart.home.sdk.TuyaHomeSdk +import com.tuya.smart.sdk.api.IGetOtaInfoCallback import com.tuya.smart.sdk.api.IResultCallback import com.tuya.smart.sdk.api.ITuyaDevice +import com.tuya.smart.sdk.api.ITuyaOta import kotlinx.android.synthetic.main.activity_range_hood.* import kotlinx.android.synthetic.main.include_device_title.* import java.util.* + /** * 油烟机 * */ class RangeHoodActivity : KotlinBaseActivity() { private val kTag = "RangeHoodActivity" + private val context = this@RangeHoodActivity private val inflater by lazy { LayoutInflater.from(this) } private var fragmentPages: ArrayList = ArrayList() + private lateinit var tuyaOTA: ITuyaOta private lateinit var deviceInstance: ITuyaDevice private var isWorking = false private var isDelayed = false @@ -57,6 +64,7 @@ override fun initData() { val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!! + tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId) //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) @@ -136,7 +144,34 @@ override fun onActionItemClick(position: Int) { when (position) { 0 -> { + tuyaOTA.getOtaInfo(object : IGetOtaInfoCallback { + override fun onSuccess(upgradeInfoBeans: MutableList?) { + if (upgradeInfoBeans.isNullOrEmpty()) { + "无新版本可用".show(context) + } + val mainModel = upgradeInfoBeans!![0] + when (mainModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + } + else -> "主联网模组无新版本可用".show(context) + } + + val mcuModel = upgradeInfoBeans[1] + when (mcuModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + + } + else -> "MCU模块无新版本可用".show(context) + } + } + + override fun onFailure(code: String?, error: String?) { + + } + }) } 1 -> deviceInstance.removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { @@ -175,6 +210,26 @@ }) } + private fun updateVersion() { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("版本升级") + .setMessage("有新版本可以升级,是否升级?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + tuyaOTA.startOta() + } + + override fun onConfirmClick() { + + } + }) + .build().show() + } + override fun onDestroy() { super.onDestroy() deviceInstance.unRegisterDevListener() 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 a54f444..007593e 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 @@ -22,10 +22,14 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet +import com.tuya.smart.android.device.bean.UpgradeInfoBean import com.tuya.smart.home.sdk.TuyaHomeSdk +import com.tuya.smart.sdk.api.IGetOtaInfoCallback import com.tuya.smart.sdk.api.IResultCallback import com.tuya.smart.sdk.api.ITuyaDevice +import com.tuya.smart.sdk.api.ITuyaOta import kotlinx.android.synthetic.main.activity_range_hood.* import kotlinx.android.synthetic.main.activity_water_heater.* import kotlinx.android.synthetic.main.activity_water_heater.deviceLogoView @@ -45,6 +49,7 @@ private val context: Context = this@WaterHeaterActivity private val inflater by lazy { LayoutInflater.from(this) } private var fragmentPages: ArrayList = ArrayList() + private lateinit var tuyaOTA: ITuyaOta private lateinit var deviceInstance: ITuyaDevice override fun initLayoutView(): Int = R.layout.activity_water_heater @@ -59,6 +64,7 @@ override fun initData() { val deviceId = intent.getStringExtra(Constant.INTENT_PARAM)!! + tuyaOTA = TuyaHomeSdk.newOTAInstance(deviceId) //控制设备前必须初始家庭化数据,每次 App 活跃期间,初始化一次即可。 deviceInstance = TuyaHomeSdk.newDeviceInstance(deviceId) @@ -120,7 +126,34 @@ override fun onActionItemClick(position: Int) { when (position) { 0 -> { + tuyaOTA.getOtaInfo(object : IGetOtaInfoCallback { + override fun onSuccess(upgradeInfoBeans: MutableList?) { + if (upgradeInfoBeans.isNullOrEmpty()) { + "无新版本可用".show(context) + } + val mainModel = upgradeInfoBeans!![0] + when (mainModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + } + else -> "主联网模组无新版本可用".show(context) + } + + val mcuModel = upgradeInfoBeans[1] + when (mcuModel.upgradeStatus) { + 1 -> updateVersion() + 2 -> { + + } + else -> "MCU模块无新版本可用".show(context) + } + } + + override fun onFailure(code: String?, error: String?) { + + } + }) } 1 -> deviceInstance.removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { @@ -159,6 +192,26 @@ }) } + private fun updateVersion() { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("版本升级") + .setMessage("有新版本可以升级,是否升级?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + tuyaOTA.startOta() + } + + override fun onConfirmClick() { + + } + }) + .build().show() + } + override fun onDestroy() { super.onDestroy() deviceInstance.unRegisterDevListener() diff --git a/app/src/main/res/drawable/ic_settings.xml b/app/src/main/res/drawable/ic_settings.xml index b443e3e..1762f9c 100644 --- a/app/src/main/res/drawable/ic_settings.xml +++ b/app/src/main/res/drawable/ic_settings.xml @@ -1,15 +1,15 @@ diff --git a/app/src/main/res/layout/include_device_title.xml b/app/src/main/res/layout/include_device_title.xml index f414bcb..5e6962c 100644 --- a/app/src/main/res/layout/include_device_title.xml +++ b/app/src/main/res/layout/include_device_title.xml @@ -27,5 +27,5 @@ android:layout_height="match_parent" android:layout_alignParentEnd="true" android:paddingHorizontal="@dimen/dp_10" - android:src="@drawable/ic_edit_big" /> + android:src="@drawable/ic_settings" /> \ No newline at end of file