diff --git a/app/build.gradle b/app/build.gradle index d143cf2..9f1b98d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -54,8 +54,8 @@ dependencies { //基础依赖库 implementation files('libs/lite-release.aar') - implementation 'androidx.core:core-ktx:1.8.0' - implementation 'androidx.appcompat:appcompat:1.4.2' + implementation 'androidx.core:core-ktx:1.9.0' + implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'com.google.android.material:material:1.6.1' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' diff --git a/app/build.gradle b/app/build.gradle index d143cf2..9f1b98d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -54,8 +54,8 @@ dependencies { //基础依赖库 implementation files('libs/lite-release.aar') - implementation 'androidx.core:core-ktx:1.8.0' - implementation 'androidx.appcompat:appcompat:1.4.2' + implementation 'androidx.core:core-ktx:1.9.0' + implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'com.google.android.material:material:1.6.1' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' diff --git a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt index d4bbc7c..6f79ec1 100644 --- a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt @@ -12,12 +12,14 @@ import com.bumptech.glide.Glide import com.bumptech.glide.request.RequestOptions import com.casic.br.R -import com.casic.br.model.AddedDeviceModel +import com.casic.br.extensions.diffDate +import com.casic.br.extensions.toChineseTypeName import com.pengxh.kt.lite.extensions.dp2px +import com.tuya.smart.sdk.bean.DeviceBean class AddedDeviceAdapter( private val context: Context, - private val dataRows: MutableList + private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -47,14 +49,17 @@ clickListener?.onAddDeviceClick() } } else { - holder.deviceNameView.text = dataRows[position].deviceName + val rowsModel = dataRows[position] + holder.deviceNameView.text = rowsModel.toChineseTypeName() Glide.with(context) - .load(dataRows[position].deviceImage) + .load(rowsModel.iconUrl) .apply(RequestOptions.circleCropTransform()) .placeholder(R.mipmap.load_image_error) .into(holder.imageView) - holder.deviceModelView.text = dataRows[position].deviceModel - holder.deviceUsedTimeView.text = dataRows[position].deviceUsedTime + holder.deviceModelView.text = rowsModel.name + holder.deviceUsedTimeView.text = String.format( + "已使用${rowsModel.time.toString().diffDate()}天" + ) holder.rootView.setOnClickListener { clickListener?.onItemClick(position) } diff --git a/app/build.gradle b/app/build.gradle index d143cf2..9f1b98d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -54,8 +54,8 @@ dependencies { //基础依赖库 implementation files('libs/lite-release.aar') - implementation 'androidx.core:core-ktx:1.8.0' - implementation 'androidx.appcompat:appcompat:1.4.2' + implementation 'androidx.core:core-ktx:1.9.0' + implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'com.google.android.material:material:1.6.1' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' diff --git a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt index d4bbc7c..6f79ec1 100644 --- a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt @@ -12,12 +12,14 @@ import com.bumptech.glide.Glide import com.bumptech.glide.request.RequestOptions import com.casic.br.R -import com.casic.br.model.AddedDeviceModel +import com.casic.br.extensions.diffDate +import com.casic.br.extensions.toChineseTypeName import com.pengxh.kt.lite.extensions.dp2px +import com.tuya.smart.sdk.bean.DeviceBean class AddedDeviceAdapter( private val context: Context, - private val dataRows: MutableList + private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -47,14 +49,17 @@ clickListener?.onAddDeviceClick() } } else { - holder.deviceNameView.text = dataRows[position].deviceName + val rowsModel = dataRows[position] + holder.deviceNameView.text = rowsModel.toChineseTypeName() Glide.with(context) - .load(dataRows[position].deviceImage) + .load(rowsModel.iconUrl) .apply(RequestOptions.circleCropTransform()) .placeholder(R.mipmap.load_image_error) .into(holder.imageView) - holder.deviceModelView.text = dataRows[position].deviceModel - holder.deviceUsedTimeView.text = dataRows[position].deviceUsedTime + holder.deviceModelView.text = rowsModel.name + holder.deviceUsedTimeView.text = String.format( + "已使用${rowsModel.time.toString().diffDate()}天" + ) holder.rootView.setOnClickListener { clickListener?.onItemClick(position) } diff --git a/app/src/main/java/com/casic/br/extensions/DeviceBean.kt b/app/src/main/java/com/casic/br/extensions/DeviceBean.kt new file mode 100644 index 0000000..16fcd62 --- /dev/null +++ b/app/src/main/java/com/casic/br/extensions/DeviceBean.kt @@ -0,0 +1,27 @@ +package com.casic.br.extensions + +import com.tuya.smart.sdk.bean.DeviceBean + +fun DeviceBean.toChineseTypeName(): String { + return if (this.category.isNullOrBlank()) { + if (this.productStandardConfig.category.isNullOrBlank()) { + this.productBean.category.toChineseTypeName() + } else { + this.productStandardConfig.category.toChineseTypeName() + } + } else { + this.category.toChineseTypeName() + } +} + +fun DeviceBean.selectCategory(): String { + return if (this.category.isNullOrBlank()) { + if (this.productStandardConfig.category.isNullOrBlank()) { + this.productBean.category + } else { + this.productStandardConfig.category + } + } else { + this.category + } +} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index d143cf2..9f1b98d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -54,8 +54,8 @@ dependencies { //基础依赖库 implementation files('libs/lite-release.aar') - implementation 'androidx.core:core-ktx:1.8.0' - implementation 'androidx.appcompat:appcompat:1.4.2' + implementation 'androidx.core:core-ktx:1.9.0' + implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'com.google.android.material:material:1.6.1' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' diff --git a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt index d4bbc7c..6f79ec1 100644 --- a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt @@ -12,12 +12,14 @@ import com.bumptech.glide.Glide import com.bumptech.glide.request.RequestOptions import com.casic.br.R -import com.casic.br.model.AddedDeviceModel +import com.casic.br.extensions.diffDate +import com.casic.br.extensions.toChineseTypeName import com.pengxh.kt.lite.extensions.dp2px +import com.tuya.smart.sdk.bean.DeviceBean class AddedDeviceAdapter( private val context: Context, - private val dataRows: MutableList + private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -47,14 +49,17 @@ clickListener?.onAddDeviceClick() } } else { - holder.deviceNameView.text = dataRows[position].deviceName + val rowsModel = dataRows[position] + holder.deviceNameView.text = rowsModel.toChineseTypeName() Glide.with(context) - .load(dataRows[position].deviceImage) + .load(rowsModel.iconUrl) .apply(RequestOptions.circleCropTransform()) .placeholder(R.mipmap.load_image_error) .into(holder.imageView) - holder.deviceModelView.text = dataRows[position].deviceModel - holder.deviceUsedTimeView.text = dataRows[position].deviceUsedTime + holder.deviceModelView.text = rowsModel.name + holder.deviceUsedTimeView.text = String.format( + "已使用${rowsModel.time.toString().diffDate()}天" + ) holder.rootView.setOnClickListener { clickListener?.onItemClick(position) } diff --git a/app/src/main/java/com/casic/br/extensions/DeviceBean.kt b/app/src/main/java/com/casic/br/extensions/DeviceBean.kt new file mode 100644 index 0000000..16fcd62 --- /dev/null +++ b/app/src/main/java/com/casic/br/extensions/DeviceBean.kt @@ -0,0 +1,27 @@ +package com.casic.br.extensions + +import com.tuya.smart.sdk.bean.DeviceBean + +fun DeviceBean.toChineseTypeName(): String { + return if (this.category.isNullOrBlank()) { + if (this.productStandardConfig.category.isNullOrBlank()) { + this.productBean.category.toChineseTypeName() + } else { + this.productStandardConfig.category.toChineseTypeName() + } + } else { + this.category.toChineseTypeName() + } +} + +fun DeviceBean.selectCategory(): String { + return if (this.category.isNullOrBlank()) { + if (this.productStandardConfig.category.isNullOrBlank()) { + this.productBean.category + } else { + this.productStandardConfig.category + } + } else { + this.category + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/extensions/String.kt b/app/src/main/java/com/casic/br/extensions/String.kt index 2cfa38a..baf7495 100644 --- a/app/src/main/java/com/casic/br/extensions/String.kt +++ b/app/src/main/java/com/casic/br/extensions/String.kt @@ -106,4 +106,18 @@ e.printStackTrace() } return 0 +} + +fun String.toChineseTypeName(): String { + if (this.isBlank()) { + return "其他" + } + return when (this) { + "yyj" -> "智能油烟机" + "rs" -> "智能热水器" + "rqz" -> "智能燃气灶" + "bgl" -> "智能壁挂炉" + "wg2" -> "多功能网关" + else -> "其他" + } } \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index d143cf2..9f1b98d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -54,8 +54,8 @@ dependencies { //基础依赖库 implementation files('libs/lite-release.aar') - implementation 'androidx.core:core-ktx:1.8.0' - implementation 'androidx.appcompat:appcompat:1.4.2' + implementation 'androidx.core:core-ktx:1.9.0' + implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'com.google.android.material:material:1.6.1' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' diff --git a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt index d4bbc7c..6f79ec1 100644 --- a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt @@ -12,12 +12,14 @@ import com.bumptech.glide.Glide import com.bumptech.glide.request.RequestOptions import com.casic.br.R -import com.casic.br.model.AddedDeviceModel +import com.casic.br.extensions.diffDate +import com.casic.br.extensions.toChineseTypeName import com.pengxh.kt.lite.extensions.dp2px +import com.tuya.smart.sdk.bean.DeviceBean class AddedDeviceAdapter( private val context: Context, - private val dataRows: MutableList + private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -47,14 +49,17 @@ clickListener?.onAddDeviceClick() } } else { - holder.deviceNameView.text = dataRows[position].deviceName + val rowsModel = dataRows[position] + holder.deviceNameView.text = rowsModel.toChineseTypeName() Glide.with(context) - .load(dataRows[position].deviceImage) + .load(rowsModel.iconUrl) .apply(RequestOptions.circleCropTransform()) .placeholder(R.mipmap.load_image_error) .into(holder.imageView) - holder.deviceModelView.text = dataRows[position].deviceModel - holder.deviceUsedTimeView.text = dataRows[position].deviceUsedTime + holder.deviceModelView.text = rowsModel.name + holder.deviceUsedTimeView.text = String.format( + "已使用${rowsModel.time.toString().diffDate()}天" + ) holder.rootView.setOnClickListener { clickListener?.onItemClick(position) } diff --git a/app/src/main/java/com/casic/br/extensions/DeviceBean.kt b/app/src/main/java/com/casic/br/extensions/DeviceBean.kt new file mode 100644 index 0000000..16fcd62 --- /dev/null +++ b/app/src/main/java/com/casic/br/extensions/DeviceBean.kt @@ -0,0 +1,27 @@ +package com.casic.br.extensions + +import com.tuya.smart.sdk.bean.DeviceBean + +fun DeviceBean.toChineseTypeName(): String { + return if (this.category.isNullOrBlank()) { + if (this.productStandardConfig.category.isNullOrBlank()) { + this.productBean.category.toChineseTypeName() + } else { + this.productStandardConfig.category.toChineseTypeName() + } + } else { + this.category.toChineseTypeName() + } +} + +fun DeviceBean.selectCategory(): String { + return if (this.category.isNullOrBlank()) { + if (this.productStandardConfig.category.isNullOrBlank()) { + this.productBean.category + } else { + this.productStandardConfig.category + } + } else { + this.category + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/extensions/String.kt b/app/src/main/java/com/casic/br/extensions/String.kt index 2cfa38a..baf7495 100644 --- a/app/src/main/java/com/casic/br/extensions/String.kt +++ b/app/src/main/java/com/casic/br/extensions/String.kt @@ -106,4 +106,18 @@ e.printStackTrace() } return 0 +} + +fun String.toChineseTypeName(): String { + if (this.isBlank()) { + return "其他" + } + return when (this) { + "yyj" -> "智能油烟机" + "rs" -> "智能热水器" + "rqz" -> "智能燃气灶" + "bgl" -> "智能壁挂炉" + "wg2" -> "多功能网关" + else -> "其他" + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index 642f7ed..9966ba5 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -7,9 +7,8 @@ import com.casic.br.R import com.casic.br.adapter.AddedDeviceAdapter import com.casic.br.adapter.RecommendAdapter -import com.casic.br.extensions.diffDate import com.casic.br.extensions.initLayoutImmersionBar -import com.casic.br.model.AddedDeviceModel +import com.casic.br.extensions.selectCategory import com.casic.br.model.RecommendModel import com.casic.br.utils.DeserializeModel import com.casic.br.utils.LocaleConstant @@ -40,7 +39,7 @@ private val kTag = "DevicePageFragment" private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var addedDeviceAdapter: AddedDeviceAdapter - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() private var isRefresh = false override fun initLayoutView(): Int = R.layout.fragment_device @@ -92,26 +91,7 @@ TuyaHomeSdk.newHomeInstance(homeId.toLong()) .getHomeDetail(object : ITuyaHomeResultCallback { override fun onSuccess(bean: HomeBean) { - val deviceList: List = bean.deviceList - val deviceModels = ArrayList() - deviceList.forEach { - val model = AddedDeviceModel() - model.deviceId = it.devId - val deviceName = when (it.deviceCategory) { - "yyj" -> "万家乐油烟机" - "rs" -> "万家乐热水器" - "bgl" -> "万家乐壁挂炉" - else -> "万家乐燃气灶" - } - model.deviceName = deviceName - model.isOnline = it.isOnline - model.deviceImage = it.iconUrl - model.deviceModel = it.name - model.deviceType = it.deviceCategory - model.deviceUsedTime = "已使用${it.time.toString().diffDate()}天" - deviceModels.add(model) - } - + val deviceModels = bean.deviceList when { isRefresh -> { dataBeans.clear() @@ -153,17 +133,20 @@ if (DeserializeModel.isLogin()) { val deviceModel = dataBeans[position] when { - deviceModel.deviceName.contains("热水器") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("rs") -> { + requireContext().navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("油烟机") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("yyj") -> { + requireContext().navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("壁挂炉") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("bgl") -> { + requireContext().navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("燃气灶") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("rqz") -> { + requireContext().navigatePageTo(deviceModel.devId) + } + deviceModel.selectCategory().contains("wg2") -> { + } } } else { @@ -193,7 +176,7 @@ BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { when (position) { - 0 -> TuyaHomeSdk.newDeviceInstance(dataBeans[clickPosition].deviceId) + 0 -> TuyaHomeSdk.newDeviceInstance(dataBeans[clickPosition].devId) .removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { Log.d(kTag, "onError: $error") diff --git a/app/build.gradle b/app/build.gradle index d143cf2..9f1b98d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -54,8 +54,8 @@ dependencies { //基础依赖库 implementation files('libs/lite-release.aar') - implementation 'androidx.core:core-ktx:1.8.0' - implementation 'androidx.appcompat:appcompat:1.4.2' + implementation 'androidx.core:core-ktx:1.9.0' + implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'com.google.android.material:material:1.6.1' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' diff --git a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt index d4bbc7c..6f79ec1 100644 --- a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt @@ -12,12 +12,14 @@ import com.bumptech.glide.Glide import com.bumptech.glide.request.RequestOptions import com.casic.br.R -import com.casic.br.model.AddedDeviceModel +import com.casic.br.extensions.diffDate +import com.casic.br.extensions.toChineseTypeName import com.pengxh.kt.lite.extensions.dp2px +import com.tuya.smart.sdk.bean.DeviceBean class AddedDeviceAdapter( private val context: Context, - private val dataRows: MutableList + private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -47,14 +49,17 @@ clickListener?.onAddDeviceClick() } } else { - holder.deviceNameView.text = dataRows[position].deviceName + val rowsModel = dataRows[position] + holder.deviceNameView.text = rowsModel.toChineseTypeName() Glide.with(context) - .load(dataRows[position].deviceImage) + .load(rowsModel.iconUrl) .apply(RequestOptions.circleCropTransform()) .placeholder(R.mipmap.load_image_error) .into(holder.imageView) - holder.deviceModelView.text = dataRows[position].deviceModel - holder.deviceUsedTimeView.text = dataRows[position].deviceUsedTime + holder.deviceModelView.text = rowsModel.name + holder.deviceUsedTimeView.text = String.format( + "已使用${rowsModel.time.toString().diffDate()}天" + ) holder.rootView.setOnClickListener { clickListener?.onItemClick(position) } diff --git a/app/src/main/java/com/casic/br/extensions/DeviceBean.kt b/app/src/main/java/com/casic/br/extensions/DeviceBean.kt new file mode 100644 index 0000000..16fcd62 --- /dev/null +++ b/app/src/main/java/com/casic/br/extensions/DeviceBean.kt @@ -0,0 +1,27 @@ +package com.casic.br.extensions + +import com.tuya.smart.sdk.bean.DeviceBean + +fun DeviceBean.toChineseTypeName(): String { + return if (this.category.isNullOrBlank()) { + if (this.productStandardConfig.category.isNullOrBlank()) { + this.productBean.category.toChineseTypeName() + } else { + this.productStandardConfig.category.toChineseTypeName() + } + } else { + this.category.toChineseTypeName() + } +} + +fun DeviceBean.selectCategory(): String { + return if (this.category.isNullOrBlank()) { + if (this.productStandardConfig.category.isNullOrBlank()) { + this.productBean.category + } else { + this.productStandardConfig.category + } + } else { + this.category + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/extensions/String.kt b/app/src/main/java/com/casic/br/extensions/String.kt index 2cfa38a..baf7495 100644 --- a/app/src/main/java/com/casic/br/extensions/String.kt +++ b/app/src/main/java/com/casic/br/extensions/String.kt @@ -106,4 +106,18 @@ e.printStackTrace() } return 0 +} + +fun String.toChineseTypeName(): String { + if (this.isBlank()) { + return "其他" + } + return when (this) { + "yyj" -> "智能油烟机" + "rs" -> "智能热水器" + "rqz" -> "智能燃气灶" + "bgl" -> "智能壁挂炉" + "wg2" -> "多功能网关" + else -> "其他" + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index 642f7ed..9966ba5 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -7,9 +7,8 @@ import com.casic.br.R import com.casic.br.adapter.AddedDeviceAdapter import com.casic.br.adapter.RecommendAdapter -import com.casic.br.extensions.diffDate import com.casic.br.extensions.initLayoutImmersionBar -import com.casic.br.model.AddedDeviceModel +import com.casic.br.extensions.selectCategory import com.casic.br.model.RecommendModel import com.casic.br.utils.DeserializeModel import com.casic.br.utils.LocaleConstant @@ -40,7 +39,7 @@ private val kTag = "DevicePageFragment" private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var addedDeviceAdapter: AddedDeviceAdapter - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() private var isRefresh = false override fun initLayoutView(): Int = R.layout.fragment_device @@ -92,26 +91,7 @@ TuyaHomeSdk.newHomeInstance(homeId.toLong()) .getHomeDetail(object : ITuyaHomeResultCallback { override fun onSuccess(bean: HomeBean) { - val deviceList: List = bean.deviceList - val deviceModels = ArrayList() - deviceList.forEach { - val model = AddedDeviceModel() - model.deviceId = it.devId - val deviceName = when (it.deviceCategory) { - "yyj" -> "万家乐油烟机" - "rs" -> "万家乐热水器" - "bgl" -> "万家乐壁挂炉" - else -> "万家乐燃气灶" - } - model.deviceName = deviceName - model.isOnline = it.isOnline - model.deviceImage = it.iconUrl - model.deviceModel = it.name - model.deviceType = it.deviceCategory - model.deviceUsedTime = "已使用${it.time.toString().diffDate()}天" - deviceModels.add(model) - } - + val deviceModels = bean.deviceList when { isRefresh -> { dataBeans.clear() @@ -153,17 +133,20 @@ if (DeserializeModel.isLogin()) { val deviceModel = dataBeans[position] when { - deviceModel.deviceName.contains("热水器") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("rs") -> { + requireContext().navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("油烟机") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("yyj") -> { + requireContext().navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("壁挂炉") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("bgl") -> { + requireContext().navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("燃气灶") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("rqz") -> { + requireContext().navigatePageTo(deviceModel.devId) + } + deviceModel.selectCategory().contains("wg2") -> { + } } } else { @@ -193,7 +176,7 @@ BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { when (position) { - 0 -> TuyaHomeSdk.newDeviceInstance(dataBeans[clickPosition].deviceId) + 0 -> TuyaHomeSdk.newDeviceInstance(dataBeans[clickPosition].devId) .removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { Log.d(kTag, "onError: $error") diff --git a/app/src/main/java/com/casic/br/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/br/utils/ChartViewHelper.kt index 665d815..3195326 100644 --- a/app/src/main/java/com/casic/br/utils/ChartViewHelper.kt +++ b/app/src/main/java/com/casic/br/utils/ChartViewHelper.kt @@ -207,7 +207,9 @@ val data = PieData(dataSet) data.setValueFormatter(object : ValueFormatter() { override fun getFormattedValue(value: Float): String { - return DecimalFormat("##0.0").format(value.toDouble()) + "t" + return DecimalFormat("##0.00").format(value.toDouble()) + chart.context.resources.getString( + R.string.volume_unit + ) } }) data.setValueTextSize(12f) diff --git a/app/build.gradle b/app/build.gradle index d143cf2..9f1b98d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -54,8 +54,8 @@ dependencies { //基础依赖库 implementation files('libs/lite-release.aar') - implementation 'androidx.core:core-ktx:1.8.0' - implementation 'androidx.appcompat:appcompat:1.4.2' + implementation 'androidx.core:core-ktx:1.9.0' + implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'com.google.android.material:material:1.6.1' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' diff --git a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt index d4bbc7c..6f79ec1 100644 --- a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt @@ -12,12 +12,14 @@ import com.bumptech.glide.Glide import com.bumptech.glide.request.RequestOptions import com.casic.br.R -import com.casic.br.model.AddedDeviceModel +import com.casic.br.extensions.diffDate +import com.casic.br.extensions.toChineseTypeName import com.pengxh.kt.lite.extensions.dp2px +import com.tuya.smart.sdk.bean.DeviceBean class AddedDeviceAdapter( private val context: Context, - private val dataRows: MutableList + private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -47,14 +49,17 @@ clickListener?.onAddDeviceClick() } } else { - holder.deviceNameView.text = dataRows[position].deviceName + val rowsModel = dataRows[position] + holder.deviceNameView.text = rowsModel.toChineseTypeName() Glide.with(context) - .load(dataRows[position].deviceImage) + .load(rowsModel.iconUrl) .apply(RequestOptions.circleCropTransform()) .placeholder(R.mipmap.load_image_error) .into(holder.imageView) - holder.deviceModelView.text = dataRows[position].deviceModel - holder.deviceUsedTimeView.text = dataRows[position].deviceUsedTime + holder.deviceModelView.text = rowsModel.name + holder.deviceUsedTimeView.text = String.format( + "已使用${rowsModel.time.toString().diffDate()}天" + ) holder.rootView.setOnClickListener { clickListener?.onItemClick(position) } diff --git a/app/src/main/java/com/casic/br/extensions/DeviceBean.kt b/app/src/main/java/com/casic/br/extensions/DeviceBean.kt new file mode 100644 index 0000000..16fcd62 --- /dev/null +++ b/app/src/main/java/com/casic/br/extensions/DeviceBean.kt @@ -0,0 +1,27 @@ +package com.casic.br.extensions + +import com.tuya.smart.sdk.bean.DeviceBean + +fun DeviceBean.toChineseTypeName(): String { + return if (this.category.isNullOrBlank()) { + if (this.productStandardConfig.category.isNullOrBlank()) { + this.productBean.category.toChineseTypeName() + } else { + this.productStandardConfig.category.toChineseTypeName() + } + } else { + this.category.toChineseTypeName() + } +} + +fun DeviceBean.selectCategory(): String { + return if (this.category.isNullOrBlank()) { + if (this.productStandardConfig.category.isNullOrBlank()) { + this.productBean.category + } else { + this.productStandardConfig.category + } + } else { + this.category + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/extensions/String.kt b/app/src/main/java/com/casic/br/extensions/String.kt index 2cfa38a..baf7495 100644 --- a/app/src/main/java/com/casic/br/extensions/String.kt +++ b/app/src/main/java/com/casic/br/extensions/String.kt @@ -106,4 +106,18 @@ e.printStackTrace() } return 0 +} + +fun String.toChineseTypeName(): String { + if (this.isBlank()) { + return "其他" + } + return when (this) { + "yyj" -> "智能油烟机" + "rs" -> "智能热水器" + "rqz" -> "智能燃气灶" + "bgl" -> "智能壁挂炉" + "wg2" -> "多功能网关" + else -> "其他" + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index 642f7ed..9966ba5 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -7,9 +7,8 @@ import com.casic.br.R import com.casic.br.adapter.AddedDeviceAdapter import com.casic.br.adapter.RecommendAdapter -import com.casic.br.extensions.diffDate import com.casic.br.extensions.initLayoutImmersionBar -import com.casic.br.model.AddedDeviceModel +import com.casic.br.extensions.selectCategory import com.casic.br.model.RecommendModel import com.casic.br.utils.DeserializeModel import com.casic.br.utils.LocaleConstant @@ -40,7 +39,7 @@ private val kTag = "DevicePageFragment" private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var addedDeviceAdapter: AddedDeviceAdapter - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() private var isRefresh = false override fun initLayoutView(): Int = R.layout.fragment_device @@ -92,26 +91,7 @@ TuyaHomeSdk.newHomeInstance(homeId.toLong()) .getHomeDetail(object : ITuyaHomeResultCallback { override fun onSuccess(bean: HomeBean) { - val deviceList: List = bean.deviceList - val deviceModels = ArrayList() - deviceList.forEach { - val model = AddedDeviceModel() - model.deviceId = it.devId - val deviceName = when (it.deviceCategory) { - "yyj" -> "万家乐油烟机" - "rs" -> "万家乐热水器" - "bgl" -> "万家乐壁挂炉" - else -> "万家乐燃气灶" - } - model.deviceName = deviceName - model.isOnline = it.isOnline - model.deviceImage = it.iconUrl - model.deviceModel = it.name - model.deviceType = it.deviceCategory - model.deviceUsedTime = "已使用${it.time.toString().diffDate()}天" - deviceModels.add(model) - } - + val deviceModels = bean.deviceList when { isRefresh -> { dataBeans.clear() @@ -153,17 +133,20 @@ if (DeserializeModel.isLogin()) { val deviceModel = dataBeans[position] when { - deviceModel.deviceName.contains("热水器") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("rs") -> { + requireContext().navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("油烟机") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("yyj") -> { + requireContext().navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("壁挂炉") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("bgl") -> { + requireContext().navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("燃气灶") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("rqz") -> { + requireContext().navigatePageTo(deviceModel.devId) + } + deviceModel.selectCategory().contains("wg2") -> { + } } } else { @@ -193,7 +176,7 @@ BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { when (position) { - 0 -> TuyaHomeSdk.newDeviceInstance(dataBeans[clickPosition].deviceId) + 0 -> TuyaHomeSdk.newDeviceInstance(dataBeans[clickPosition].devId) .removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { Log.d(kTag, "onError: $error") diff --git a/app/src/main/java/com/casic/br/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/br/utils/ChartViewHelper.kt index 665d815..3195326 100644 --- a/app/src/main/java/com/casic/br/utils/ChartViewHelper.kt +++ b/app/src/main/java/com/casic/br/utils/ChartViewHelper.kt @@ -207,7 +207,9 @@ val data = PieData(dataSet) data.setValueFormatter(object : ValueFormatter() { override fun getFormattedValue(value: Float): String { - return DecimalFormat("##0.0").format(value.toDouble()) + "t" + return DecimalFormat("##0.00").format(value.toDouble()) + chart.context.resources.getString( + R.string.volume_unit + ) } }) data.setValueTextSize(12f) diff --git a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt index 10ed4be..237917f 100644 --- a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt +++ b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt @@ -5,8 +5,7 @@ import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.R import com.casic.br.adapter.AddedDeviceAdapter -import com.casic.br.extensions.diffDate -import com.casic.br.model.AddedDeviceModel +import com.casic.br.extensions.selectCategory import com.casic.br.utils.LocaleConstant import com.casic.br.view.device.CookerActivity import com.casic.br.view.device.FireplaceActivity @@ -32,7 +31,7 @@ private val kTag = "AllDeviceActivity" private val context = this@AllDeviceActivity - private val deviceModels = ArrayList() + private var deviceModels: MutableList = ArrayList() private lateinit var addedDeviceAdapter: AddedDeviceAdapter override fun initLayoutView(): Int = R.layout.activity_all_device @@ -54,24 +53,7 @@ TuyaHomeSdk.newHomeInstance(homeId.toLong()) .getHomeDetail(object : ITuyaHomeResultCallback { override fun onSuccess(bean: HomeBean) { - val deviceList: List = bean.deviceList - deviceList.forEach { - val model = AddedDeviceModel() - model.deviceId = it.devId - val deviceName = when (it.deviceCategory) { - "yyj" -> "万家乐油烟机" - "rs" -> "万家乐热水器" - "bgl" -> "万家乐壁挂炉" - else -> "万家乐燃气灶" - } - model.deviceName = deviceName - model.isOnline = it.isOnline - model.deviceImage = it.iconUrl - model.deviceModel = it.name - model.deviceType = it.deviceCategory - model.deviceUsedTime = "已使用${it.time.toString().diffDate()}天" - deviceModels.add(model) - } + deviceModels = bean.deviceList addedDeviceAdapter = AddedDeviceAdapter(context, deviceModels) deviceRecyclerView.addItemDecoration( DividerItemDecoration(context, DividerItemDecoration.VERTICAL) @@ -86,17 +68,20 @@ override fun onItemClick(position: Int) { val deviceModel = deviceModels[position] when { - deviceModel.deviceName.contains("热水器") -> { - navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("rs") -> { + navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("油烟机") -> { - navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("yyj") -> { + navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("壁挂炉") -> { - navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("bgl") -> { + navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("燃气灶") -> { - navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("rqz") -> { + navigatePageTo(deviceModel.devId) + } + deviceModel.selectCategory().contains("wg2") -> { + } } } @@ -122,7 +107,7 @@ BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { when (position) { - 0 -> TuyaHomeSdk.newDeviceInstance(deviceModels[clickPosition].deviceId) + 0 -> TuyaHomeSdk.newDeviceInstance(deviceModels[clickPosition].devId) .removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { Log.d(kTag, "onError: $error") diff --git a/app/build.gradle b/app/build.gradle index d143cf2..9f1b98d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -54,8 +54,8 @@ dependencies { //基础依赖库 implementation files('libs/lite-release.aar') - implementation 'androidx.core:core-ktx:1.8.0' - implementation 'androidx.appcompat:appcompat:1.4.2' + implementation 'androidx.core:core-ktx:1.9.0' + implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'com.google.android.material:material:1.6.1' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' diff --git a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt index d4bbc7c..6f79ec1 100644 --- a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt @@ -12,12 +12,14 @@ import com.bumptech.glide.Glide import com.bumptech.glide.request.RequestOptions import com.casic.br.R -import com.casic.br.model.AddedDeviceModel +import com.casic.br.extensions.diffDate +import com.casic.br.extensions.toChineseTypeName import com.pengxh.kt.lite.extensions.dp2px +import com.tuya.smart.sdk.bean.DeviceBean class AddedDeviceAdapter( private val context: Context, - private val dataRows: MutableList + private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -47,14 +49,17 @@ clickListener?.onAddDeviceClick() } } else { - holder.deviceNameView.text = dataRows[position].deviceName + val rowsModel = dataRows[position] + holder.deviceNameView.text = rowsModel.toChineseTypeName() Glide.with(context) - .load(dataRows[position].deviceImage) + .load(rowsModel.iconUrl) .apply(RequestOptions.circleCropTransform()) .placeholder(R.mipmap.load_image_error) .into(holder.imageView) - holder.deviceModelView.text = dataRows[position].deviceModel - holder.deviceUsedTimeView.text = dataRows[position].deviceUsedTime + holder.deviceModelView.text = rowsModel.name + holder.deviceUsedTimeView.text = String.format( + "已使用${rowsModel.time.toString().diffDate()}天" + ) holder.rootView.setOnClickListener { clickListener?.onItemClick(position) } diff --git a/app/src/main/java/com/casic/br/extensions/DeviceBean.kt b/app/src/main/java/com/casic/br/extensions/DeviceBean.kt new file mode 100644 index 0000000..16fcd62 --- /dev/null +++ b/app/src/main/java/com/casic/br/extensions/DeviceBean.kt @@ -0,0 +1,27 @@ +package com.casic.br.extensions + +import com.tuya.smart.sdk.bean.DeviceBean + +fun DeviceBean.toChineseTypeName(): String { + return if (this.category.isNullOrBlank()) { + if (this.productStandardConfig.category.isNullOrBlank()) { + this.productBean.category.toChineseTypeName() + } else { + this.productStandardConfig.category.toChineseTypeName() + } + } else { + this.category.toChineseTypeName() + } +} + +fun DeviceBean.selectCategory(): String { + return if (this.category.isNullOrBlank()) { + if (this.productStandardConfig.category.isNullOrBlank()) { + this.productBean.category + } else { + this.productStandardConfig.category + } + } else { + this.category + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/extensions/String.kt b/app/src/main/java/com/casic/br/extensions/String.kt index 2cfa38a..baf7495 100644 --- a/app/src/main/java/com/casic/br/extensions/String.kt +++ b/app/src/main/java/com/casic/br/extensions/String.kt @@ -106,4 +106,18 @@ e.printStackTrace() } return 0 +} + +fun String.toChineseTypeName(): String { + if (this.isBlank()) { + return "其他" + } + return when (this) { + "yyj" -> "智能油烟机" + "rs" -> "智能热水器" + "rqz" -> "智能燃气灶" + "bgl" -> "智能壁挂炉" + "wg2" -> "多功能网关" + else -> "其他" + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index 642f7ed..9966ba5 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -7,9 +7,8 @@ import com.casic.br.R import com.casic.br.adapter.AddedDeviceAdapter import com.casic.br.adapter.RecommendAdapter -import com.casic.br.extensions.diffDate import com.casic.br.extensions.initLayoutImmersionBar -import com.casic.br.model.AddedDeviceModel +import com.casic.br.extensions.selectCategory import com.casic.br.model.RecommendModel import com.casic.br.utils.DeserializeModel import com.casic.br.utils.LocaleConstant @@ -40,7 +39,7 @@ private val kTag = "DevicePageFragment" private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var addedDeviceAdapter: AddedDeviceAdapter - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() private var isRefresh = false override fun initLayoutView(): Int = R.layout.fragment_device @@ -92,26 +91,7 @@ TuyaHomeSdk.newHomeInstance(homeId.toLong()) .getHomeDetail(object : ITuyaHomeResultCallback { override fun onSuccess(bean: HomeBean) { - val deviceList: List = bean.deviceList - val deviceModels = ArrayList() - deviceList.forEach { - val model = AddedDeviceModel() - model.deviceId = it.devId - val deviceName = when (it.deviceCategory) { - "yyj" -> "万家乐油烟机" - "rs" -> "万家乐热水器" - "bgl" -> "万家乐壁挂炉" - else -> "万家乐燃气灶" - } - model.deviceName = deviceName - model.isOnline = it.isOnline - model.deviceImage = it.iconUrl - model.deviceModel = it.name - model.deviceType = it.deviceCategory - model.deviceUsedTime = "已使用${it.time.toString().diffDate()}天" - deviceModels.add(model) - } - + val deviceModels = bean.deviceList when { isRefresh -> { dataBeans.clear() @@ -153,17 +133,20 @@ if (DeserializeModel.isLogin()) { val deviceModel = dataBeans[position] when { - deviceModel.deviceName.contains("热水器") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("rs") -> { + requireContext().navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("油烟机") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("yyj") -> { + requireContext().navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("壁挂炉") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("bgl") -> { + requireContext().navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("燃气灶") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("rqz") -> { + requireContext().navigatePageTo(deviceModel.devId) + } + deviceModel.selectCategory().contains("wg2") -> { + } } } else { @@ -193,7 +176,7 @@ BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { when (position) { - 0 -> TuyaHomeSdk.newDeviceInstance(dataBeans[clickPosition].deviceId) + 0 -> TuyaHomeSdk.newDeviceInstance(dataBeans[clickPosition].devId) .removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { Log.d(kTag, "onError: $error") diff --git a/app/src/main/java/com/casic/br/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/br/utils/ChartViewHelper.kt index 665d815..3195326 100644 --- a/app/src/main/java/com/casic/br/utils/ChartViewHelper.kt +++ b/app/src/main/java/com/casic/br/utils/ChartViewHelper.kt @@ -207,7 +207,9 @@ val data = PieData(dataSet) data.setValueFormatter(object : ValueFormatter() { override fun getFormattedValue(value: Float): String { - return DecimalFormat("##0.0").format(value.toDouble()) + "t" + return DecimalFormat("##0.00").format(value.toDouble()) + chart.context.resources.getString( + R.string.volume_unit + ) } }) data.setValueTextSize(12f) diff --git a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt index 10ed4be..237917f 100644 --- a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt +++ b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt @@ -5,8 +5,7 @@ import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.R import com.casic.br.adapter.AddedDeviceAdapter -import com.casic.br.extensions.diffDate -import com.casic.br.model.AddedDeviceModel +import com.casic.br.extensions.selectCategory import com.casic.br.utils.LocaleConstant import com.casic.br.view.device.CookerActivity import com.casic.br.view.device.FireplaceActivity @@ -32,7 +31,7 @@ private val kTag = "AllDeviceActivity" private val context = this@AllDeviceActivity - private val deviceModels = ArrayList() + private var deviceModels: MutableList = ArrayList() private lateinit var addedDeviceAdapter: AddedDeviceAdapter override fun initLayoutView(): Int = R.layout.activity_all_device @@ -54,24 +53,7 @@ TuyaHomeSdk.newHomeInstance(homeId.toLong()) .getHomeDetail(object : ITuyaHomeResultCallback { override fun onSuccess(bean: HomeBean) { - val deviceList: List = bean.deviceList - deviceList.forEach { - val model = AddedDeviceModel() - model.deviceId = it.devId - val deviceName = when (it.deviceCategory) { - "yyj" -> "万家乐油烟机" - "rs" -> "万家乐热水器" - "bgl" -> "万家乐壁挂炉" - else -> "万家乐燃气灶" - } - model.deviceName = deviceName - model.isOnline = it.isOnline - model.deviceImage = it.iconUrl - model.deviceModel = it.name - model.deviceType = it.deviceCategory - model.deviceUsedTime = "已使用${it.time.toString().diffDate()}天" - deviceModels.add(model) - } + deviceModels = bean.deviceList addedDeviceAdapter = AddedDeviceAdapter(context, deviceModels) deviceRecyclerView.addItemDecoration( DividerItemDecoration(context, DividerItemDecoration.VERTICAL) @@ -86,17 +68,20 @@ override fun onItemClick(position: Int) { val deviceModel = deviceModels[position] when { - deviceModel.deviceName.contains("热水器") -> { - navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("rs") -> { + navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("油烟机") -> { - navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("yyj") -> { + navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("壁挂炉") -> { - navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("bgl") -> { + navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("燃气灶") -> { - navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("rqz") -> { + navigatePageTo(deviceModel.devId) + } + deviceModel.selectCategory().contains("wg2") -> { + } } } @@ -122,7 +107,7 @@ BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { when (position) { - 0 -> TuyaHomeSdk.newDeviceInstance(deviceModels[clickPosition].deviceId) + 0 -> TuyaHomeSdk.newDeviceInstance(deviceModels[clickPosition].devId) .removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { Log.d(kTag, "onError: $error") diff --git a/app/src/main/res/layout/activity_account_manage.xml b/app/src/main/res/layout/activity_account_manage.xml index e73410c..d7930dd 100644 --- a/app/src/main/res/layout/activity_account_manage.xml +++ b/app/src/main/res/layout/activity_account_manage.xml @@ -19,7 +19,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="sans-serif-black" - android:text="客户名称" + android:text="张三" android:textSize="@dimen/sp_16" /> diff --git a/app/build.gradle b/app/build.gradle index d143cf2..9f1b98d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -54,8 +54,8 @@ dependencies { //基础依赖库 implementation files('libs/lite-release.aar') - implementation 'androidx.core:core-ktx:1.8.0' - implementation 'androidx.appcompat:appcompat:1.4.2' + implementation 'androidx.core:core-ktx:1.9.0' + implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'com.google.android.material:material:1.6.1' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' diff --git a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt index d4bbc7c..6f79ec1 100644 --- a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt @@ -12,12 +12,14 @@ import com.bumptech.glide.Glide import com.bumptech.glide.request.RequestOptions import com.casic.br.R -import com.casic.br.model.AddedDeviceModel +import com.casic.br.extensions.diffDate +import com.casic.br.extensions.toChineseTypeName import com.pengxh.kt.lite.extensions.dp2px +import com.tuya.smart.sdk.bean.DeviceBean class AddedDeviceAdapter( private val context: Context, - private val dataRows: MutableList + private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -47,14 +49,17 @@ clickListener?.onAddDeviceClick() } } else { - holder.deviceNameView.text = dataRows[position].deviceName + val rowsModel = dataRows[position] + holder.deviceNameView.text = rowsModel.toChineseTypeName() Glide.with(context) - .load(dataRows[position].deviceImage) + .load(rowsModel.iconUrl) .apply(RequestOptions.circleCropTransform()) .placeholder(R.mipmap.load_image_error) .into(holder.imageView) - holder.deviceModelView.text = dataRows[position].deviceModel - holder.deviceUsedTimeView.text = dataRows[position].deviceUsedTime + holder.deviceModelView.text = rowsModel.name + holder.deviceUsedTimeView.text = String.format( + "已使用${rowsModel.time.toString().diffDate()}天" + ) holder.rootView.setOnClickListener { clickListener?.onItemClick(position) } diff --git a/app/src/main/java/com/casic/br/extensions/DeviceBean.kt b/app/src/main/java/com/casic/br/extensions/DeviceBean.kt new file mode 100644 index 0000000..16fcd62 --- /dev/null +++ b/app/src/main/java/com/casic/br/extensions/DeviceBean.kt @@ -0,0 +1,27 @@ +package com.casic.br.extensions + +import com.tuya.smart.sdk.bean.DeviceBean + +fun DeviceBean.toChineseTypeName(): String { + return if (this.category.isNullOrBlank()) { + if (this.productStandardConfig.category.isNullOrBlank()) { + this.productBean.category.toChineseTypeName() + } else { + this.productStandardConfig.category.toChineseTypeName() + } + } else { + this.category.toChineseTypeName() + } +} + +fun DeviceBean.selectCategory(): String { + return if (this.category.isNullOrBlank()) { + if (this.productStandardConfig.category.isNullOrBlank()) { + this.productBean.category + } else { + this.productStandardConfig.category + } + } else { + this.category + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/extensions/String.kt b/app/src/main/java/com/casic/br/extensions/String.kt index 2cfa38a..baf7495 100644 --- a/app/src/main/java/com/casic/br/extensions/String.kt +++ b/app/src/main/java/com/casic/br/extensions/String.kt @@ -106,4 +106,18 @@ e.printStackTrace() } return 0 +} + +fun String.toChineseTypeName(): String { + if (this.isBlank()) { + return "其他" + } + return when (this) { + "yyj" -> "智能油烟机" + "rs" -> "智能热水器" + "rqz" -> "智能燃气灶" + "bgl" -> "智能壁挂炉" + "wg2" -> "多功能网关" + else -> "其他" + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index 642f7ed..9966ba5 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -7,9 +7,8 @@ import com.casic.br.R import com.casic.br.adapter.AddedDeviceAdapter import com.casic.br.adapter.RecommendAdapter -import com.casic.br.extensions.diffDate import com.casic.br.extensions.initLayoutImmersionBar -import com.casic.br.model.AddedDeviceModel +import com.casic.br.extensions.selectCategory import com.casic.br.model.RecommendModel import com.casic.br.utils.DeserializeModel import com.casic.br.utils.LocaleConstant @@ -40,7 +39,7 @@ private val kTag = "DevicePageFragment" private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var addedDeviceAdapter: AddedDeviceAdapter - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() private var isRefresh = false override fun initLayoutView(): Int = R.layout.fragment_device @@ -92,26 +91,7 @@ TuyaHomeSdk.newHomeInstance(homeId.toLong()) .getHomeDetail(object : ITuyaHomeResultCallback { override fun onSuccess(bean: HomeBean) { - val deviceList: List = bean.deviceList - val deviceModels = ArrayList() - deviceList.forEach { - val model = AddedDeviceModel() - model.deviceId = it.devId - val deviceName = when (it.deviceCategory) { - "yyj" -> "万家乐油烟机" - "rs" -> "万家乐热水器" - "bgl" -> "万家乐壁挂炉" - else -> "万家乐燃气灶" - } - model.deviceName = deviceName - model.isOnline = it.isOnline - model.deviceImage = it.iconUrl - model.deviceModel = it.name - model.deviceType = it.deviceCategory - model.deviceUsedTime = "已使用${it.time.toString().diffDate()}天" - deviceModels.add(model) - } - + val deviceModels = bean.deviceList when { isRefresh -> { dataBeans.clear() @@ -153,17 +133,20 @@ if (DeserializeModel.isLogin()) { val deviceModel = dataBeans[position] when { - deviceModel.deviceName.contains("热水器") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("rs") -> { + requireContext().navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("油烟机") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("yyj") -> { + requireContext().navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("壁挂炉") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("bgl") -> { + requireContext().navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("燃气灶") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("rqz") -> { + requireContext().navigatePageTo(deviceModel.devId) + } + deviceModel.selectCategory().contains("wg2") -> { + } } } else { @@ -193,7 +176,7 @@ BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { when (position) { - 0 -> TuyaHomeSdk.newDeviceInstance(dataBeans[clickPosition].deviceId) + 0 -> TuyaHomeSdk.newDeviceInstance(dataBeans[clickPosition].devId) .removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { Log.d(kTag, "onError: $error") diff --git a/app/src/main/java/com/casic/br/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/br/utils/ChartViewHelper.kt index 665d815..3195326 100644 --- a/app/src/main/java/com/casic/br/utils/ChartViewHelper.kt +++ b/app/src/main/java/com/casic/br/utils/ChartViewHelper.kt @@ -207,7 +207,9 @@ val data = PieData(dataSet) data.setValueFormatter(object : ValueFormatter() { override fun getFormattedValue(value: Float): String { - return DecimalFormat("##0.0").format(value.toDouble()) + "t" + return DecimalFormat("##0.00").format(value.toDouble()) + chart.context.resources.getString( + R.string.volume_unit + ) } }) data.setValueTextSize(12f) diff --git a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt index 10ed4be..237917f 100644 --- a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt +++ b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt @@ -5,8 +5,7 @@ import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.R import com.casic.br.adapter.AddedDeviceAdapter -import com.casic.br.extensions.diffDate -import com.casic.br.model.AddedDeviceModel +import com.casic.br.extensions.selectCategory import com.casic.br.utils.LocaleConstant import com.casic.br.view.device.CookerActivity import com.casic.br.view.device.FireplaceActivity @@ -32,7 +31,7 @@ private val kTag = "AllDeviceActivity" private val context = this@AllDeviceActivity - private val deviceModels = ArrayList() + private var deviceModels: MutableList = ArrayList() private lateinit var addedDeviceAdapter: AddedDeviceAdapter override fun initLayoutView(): Int = R.layout.activity_all_device @@ -54,24 +53,7 @@ TuyaHomeSdk.newHomeInstance(homeId.toLong()) .getHomeDetail(object : ITuyaHomeResultCallback { override fun onSuccess(bean: HomeBean) { - val deviceList: List = bean.deviceList - deviceList.forEach { - val model = AddedDeviceModel() - model.deviceId = it.devId - val deviceName = when (it.deviceCategory) { - "yyj" -> "万家乐油烟机" - "rs" -> "万家乐热水器" - "bgl" -> "万家乐壁挂炉" - else -> "万家乐燃气灶" - } - model.deviceName = deviceName - model.isOnline = it.isOnline - model.deviceImage = it.iconUrl - model.deviceModel = it.name - model.deviceType = it.deviceCategory - model.deviceUsedTime = "已使用${it.time.toString().diffDate()}天" - deviceModels.add(model) - } + deviceModels = bean.deviceList addedDeviceAdapter = AddedDeviceAdapter(context, deviceModels) deviceRecyclerView.addItemDecoration( DividerItemDecoration(context, DividerItemDecoration.VERTICAL) @@ -86,17 +68,20 @@ override fun onItemClick(position: Int) { val deviceModel = deviceModels[position] when { - deviceModel.deviceName.contains("热水器") -> { - navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("rs") -> { + navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("油烟机") -> { - navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("yyj") -> { + navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("壁挂炉") -> { - navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("bgl") -> { + navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("燃气灶") -> { - navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("rqz") -> { + navigatePageTo(deviceModel.devId) + } + deviceModel.selectCategory().contains("wg2") -> { + } } } @@ -122,7 +107,7 @@ BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { when (position) { - 0 -> TuyaHomeSdk.newDeviceInstance(deviceModels[clickPosition].deviceId) + 0 -> TuyaHomeSdk.newDeviceInstance(deviceModels[clickPosition].devId) .removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { Log.d(kTag, "onError: $error") diff --git a/app/src/main/res/layout/activity_account_manage.xml b/app/src/main/res/layout/activity_account_manage.xml index e73410c..d7930dd 100644 --- a/app/src/main/res/layout/activity_account_manage.xml +++ b/app/src/main/res/layout/activity_account_manage.xml @@ -19,7 +19,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="sans-serif-black" - android:text="客户名称" + android:text="张三" android:textSize="@dimen/sp_16" /> diff --git a/app/src/main/res/layout/activity_gas_analysis.xml b/app/src/main/res/layout/activity_gas_analysis.xml index f1d9057..080f27f 100644 --- a/app/src/main/res/layout/activity_gas_analysis.xml +++ b/app/src/main/res/layout/activity_gas_analysis.xml @@ -38,14 +38,14 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="sans-serif-black" - android:text="客户名称" + android:text="张三" android:textSize="@dimen/sp_16" /> diff --git a/app/build.gradle b/app/build.gradle index d143cf2..9f1b98d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -54,8 +54,8 @@ dependencies { //基础依赖库 implementation files('libs/lite-release.aar') - implementation 'androidx.core:core-ktx:1.8.0' - implementation 'androidx.appcompat:appcompat:1.4.2' + implementation 'androidx.core:core-ktx:1.9.0' + implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'com.google.android.material:material:1.6.1' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' diff --git a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt index d4bbc7c..6f79ec1 100644 --- a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt @@ -12,12 +12,14 @@ import com.bumptech.glide.Glide import com.bumptech.glide.request.RequestOptions import com.casic.br.R -import com.casic.br.model.AddedDeviceModel +import com.casic.br.extensions.diffDate +import com.casic.br.extensions.toChineseTypeName import com.pengxh.kt.lite.extensions.dp2px +import com.tuya.smart.sdk.bean.DeviceBean class AddedDeviceAdapter( private val context: Context, - private val dataRows: MutableList + private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -47,14 +49,17 @@ clickListener?.onAddDeviceClick() } } else { - holder.deviceNameView.text = dataRows[position].deviceName + val rowsModel = dataRows[position] + holder.deviceNameView.text = rowsModel.toChineseTypeName() Glide.with(context) - .load(dataRows[position].deviceImage) + .load(rowsModel.iconUrl) .apply(RequestOptions.circleCropTransform()) .placeholder(R.mipmap.load_image_error) .into(holder.imageView) - holder.deviceModelView.text = dataRows[position].deviceModel - holder.deviceUsedTimeView.text = dataRows[position].deviceUsedTime + holder.deviceModelView.text = rowsModel.name + holder.deviceUsedTimeView.text = String.format( + "已使用${rowsModel.time.toString().diffDate()}天" + ) holder.rootView.setOnClickListener { clickListener?.onItemClick(position) } diff --git a/app/src/main/java/com/casic/br/extensions/DeviceBean.kt b/app/src/main/java/com/casic/br/extensions/DeviceBean.kt new file mode 100644 index 0000000..16fcd62 --- /dev/null +++ b/app/src/main/java/com/casic/br/extensions/DeviceBean.kt @@ -0,0 +1,27 @@ +package com.casic.br.extensions + +import com.tuya.smart.sdk.bean.DeviceBean + +fun DeviceBean.toChineseTypeName(): String { + return if (this.category.isNullOrBlank()) { + if (this.productStandardConfig.category.isNullOrBlank()) { + this.productBean.category.toChineseTypeName() + } else { + this.productStandardConfig.category.toChineseTypeName() + } + } else { + this.category.toChineseTypeName() + } +} + +fun DeviceBean.selectCategory(): String { + return if (this.category.isNullOrBlank()) { + if (this.productStandardConfig.category.isNullOrBlank()) { + this.productBean.category + } else { + this.productStandardConfig.category + } + } else { + this.category + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/extensions/String.kt b/app/src/main/java/com/casic/br/extensions/String.kt index 2cfa38a..baf7495 100644 --- a/app/src/main/java/com/casic/br/extensions/String.kt +++ b/app/src/main/java/com/casic/br/extensions/String.kt @@ -106,4 +106,18 @@ e.printStackTrace() } return 0 +} + +fun String.toChineseTypeName(): String { + if (this.isBlank()) { + return "其他" + } + return when (this) { + "yyj" -> "智能油烟机" + "rs" -> "智能热水器" + "rqz" -> "智能燃气灶" + "bgl" -> "智能壁挂炉" + "wg2" -> "多功能网关" + else -> "其他" + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index 642f7ed..9966ba5 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -7,9 +7,8 @@ import com.casic.br.R import com.casic.br.adapter.AddedDeviceAdapter import com.casic.br.adapter.RecommendAdapter -import com.casic.br.extensions.diffDate import com.casic.br.extensions.initLayoutImmersionBar -import com.casic.br.model.AddedDeviceModel +import com.casic.br.extensions.selectCategory import com.casic.br.model.RecommendModel import com.casic.br.utils.DeserializeModel import com.casic.br.utils.LocaleConstant @@ -40,7 +39,7 @@ private val kTag = "DevicePageFragment" private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var addedDeviceAdapter: AddedDeviceAdapter - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() private var isRefresh = false override fun initLayoutView(): Int = R.layout.fragment_device @@ -92,26 +91,7 @@ TuyaHomeSdk.newHomeInstance(homeId.toLong()) .getHomeDetail(object : ITuyaHomeResultCallback { override fun onSuccess(bean: HomeBean) { - val deviceList: List = bean.deviceList - val deviceModels = ArrayList() - deviceList.forEach { - val model = AddedDeviceModel() - model.deviceId = it.devId - val deviceName = when (it.deviceCategory) { - "yyj" -> "万家乐油烟机" - "rs" -> "万家乐热水器" - "bgl" -> "万家乐壁挂炉" - else -> "万家乐燃气灶" - } - model.deviceName = deviceName - model.isOnline = it.isOnline - model.deviceImage = it.iconUrl - model.deviceModel = it.name - model.deviceType = it.deviceCategory - model.deviceUsedTime = "已使用${it.time.toString().diffDate()}天" - deviceModels.add(model) - } - + val deviceModels = bean.deviceList when { isRefresh -> { dataBeans.clear() @@ -153,17 +133,20 @@ if (DeserializeModel.isLogin()) { val deviceModel = dataBeans[position] when { - deviceModel.deviceName.contains("热水器") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("rs") -> { + requireContext().navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("油烟机") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("yyj") -> { + requireContext().navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("壁挂炉") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("bgl") -> { + requireContext().navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("燃气灶") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("rqz") -> { + requireContext().navigatePageTo(deviceModel.devId) + } + deviceModel.selectCategory().contains("wg2") -> { + } } } else { @@ -193,7 +176,7 @@ BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { when (position) { - 0 -> TuyaHomeSdk.newDeviceInstance(dataBeans[clickPosition].deviceId) + 0 -> TuyaHomeSdk.newDeviceInstance(dataBeans[clickPosition].devId) .removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { Log.d(kTag, "onError: $error") diff --git a/app/src/main/java/com/casic/br/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/br/utils/ChartViewHelper.kt index 665d815..3195326 100644 --- a/app/src/main/java/com/casic/br/utils/ChartViewHelper.kt +++ b/app/src/main/java/com/casic/br/utils/ChartViewHelper.kt @@ -207,7 +207,9 @@ val data = PieData(dataSet) data.setValueFormatter(object : ValueFormatter() { override fun getFormattedValue(value: Float): String { - return DecimalFormat("##0.0").format(value.toDouble()) + "t" + return DecimalFormat("##0.00").format(value.toDouble()) + chart.context.resources.getString( + R.string.volume_unit + ) } }) data.setValueTextSize(12f) diff --git a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt index 10ed4be..237917f 100644 --- a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt +++ b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt @@ -5,8 +5,7 @@ import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.R import com.casic.br.adapter.AddedDeviceAdapter -import com.casic.br.extensions.diffDate -import com.casic.br.model.AddedDeviceModel +import com.casic.br.extensions.selectCategory import com.casic.br.utils.LocaleConstant import com.casic.br.view.device.CookerActivity import com.casic.br.view.device.FireplaceActivity @@ -32,7 +31,7 @@ private val kTag = "AllDeviceActivity" private val context = this@AllDeviceActivity - private val deviceModels = ArrayList() + private var deviceModels: MutableList = ArrayList() private lateinit var addedDeviceAdapter: AddedDeviceAdapter override fun initLayoutView(): Int = R.layout.activity_all_device @@ -54,24 +53,7 @@ TuyaHomeSdk.newHomeInstance(homeId.toLong()) .getHomeDetail(object : ITuyaHomeResultCallback { override fun onSuccess(bean: HomeBean) { - val deviceList: List = bean.deviceList - deviceList.forEach { - val model = AddedDeviceModel() - model.deviceId = it.devId - val deviceName = when (it.deviceCategory) { - "yyj" -> "万家乐油烟机" - "rs" -> "万家乐热水器" - "bgl" -> "万家乐壁挂炉" - else -> "万家乐燃气灶" - } - model.deviceName = deviceName - model.isOnline = it.isOnline - model.deviceImage = it.iconUrl - model.deviceModel = it.name - model.deviceType = it.deviceCategory - model.deviceUsedTime = "已使用${it.time.toString().diffDate()}天" - deviceModels.add(model) - } + deviceModels = bean.deviceList addedDeviceAdapter = AddedDeviceAdapter(context, deviceModels) deviceRecyclerView.addItemDecoration( DividerItemDecoration(context, DividerItemDecoration.VERTICAL) @@ -86,17 +68,20 @@ override fun onItemClick(position: Int) { val deviceModel = deviceModels[position] when { - deviceModel.deviceName.contains("热水器") -> { - navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("rs") -> { + navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("油烟机") -> { - navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("yyj") -> { + navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("壁挂炉") -> { - navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("bgl") -> { + navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("燃气灶") -> { - navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("rqz") -> { + navigatePageTo(deviceModel.devId) + } + deviceModel.selectCategory().contains("wg2") -> { + } } } @@ -122,7 +107,7 @@ BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { when (position) { - 0 -> TuyaHomeSdk.newDeviceInstance(deviceModels[clickPosition].deviceId) + 0 -> TuyaHomeSdk.newDeviceInstance(deviceModels[clickPosition].devId) .removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { Log.d(kTag, "onError: $error") diff --git a/app/src/main/res/layout/activity_account_manage.xml b/app/src/main/res/layout/activity_account_manage.xml index e73410c..d7930dd 100644 --- a/app/src/main/res/layout/activity_account_manage.xml +++ b/app/src/main/res/layout/activity_account_manage.xml @@ -19,7 +19,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="sans-serif-black" - android:text="客户名称" + android:text="张三" android:textSize="@dimen/sp_16" /> diff --git a/app/src/main/res/layout/activity_gas_analysis.xml b/app/src/main/res/layout/activity_gas_analysis.xml index f1d9057..080f27f 100644 --- a/app/src/main/res/layout/activity_gas_analysis.xml +++ b/app/src/main/res/layout/activity_gas_analysis.xml @@ -38,14 +38,14 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="sans-serif-black" - android:text="客户名称" + android:text="张三" android:textSize="@dimen/sp_16" /> diff --git a/app/src/main/res/layout/activity_historical_bill.xml b/app/src/main/res/layout/activity_historical_bill.xml index 776468a..9e46982 100644 --- a/app/src/main/res/layout/activity_historical_bill.xml +++ b/app/src/main/res/layout/activity_historical_bill.xml @@ -38,14 +38,14 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="sans-serif-black" - android:text="客户名称" + android:text="张三" android:textSize="@dimen/sp_16" /> diff --git a/app/build.gradle b/app/build.gradle index d143cf2..9f1b98d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -54,8 +54,8 @@ dependencies { //基础依赖库 implementation files('libs/lite-release.aar') - implementation 'androidx.core:core-ktx:1.8.0' - implementation 'androidx.appcompat:appcompat:1.4.2' + implementation 'androidx.core:core-ktx:1.9.0' + implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'com.google.android.material:material:1.6.1' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' diff --git a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt index d4bbc7c..6f79ec1 100644 --- a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt @@ -12,12 +12,14 @@ import com.bumptech.glide.Glide import com.bumptech.glide.request.RequestOptions import com.casic.br.R -import com.casic.br.model.AddedDeviceModel +import com.casic.br.extensions.diffDate +import com.casic.br.extensions.toChineseTypeName import com.pengxh.kt.lite.extensions.dp2px +import com.tuya.smart.sdk.bean.DeviceBean class AddedDeviceAdapter( private val context: Context, - private val dataRows: MutableList + private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -47,14 +49,17 @@ clickListener?.onAddDeviceClick() } } else { - holder.deviceNameView.text = dataRows[position].deviceName + val rowsModel = dataRows[position] + holder.deviceNameView.text = rowsModel.toChineseTypeName() Glide.with(context) - .load(dataRows[position].deviceImage) + .load(rowsModel.iconUrl) .apply(RequestOptions.circleCropTransform()) .placeholder(R.mipmap.load_image_error) .into(holder.imageView) - holder.deviceModelView.text = dataRows[position].deviceModel - holder.deviceUsedTimeView.text = dataRows[position].deviceUsedTime + holder.deviceModelView.text = rowsModel.name + holder.deviceUsedTimeView.text = String.format( + "已使用${rowsModel.time.toString().diffDate()}天" + ) holder.rootView.setOnClickListener { clickListener?.onItemClick(position) } diff --git a/app/src/main/java/com/casic/br/extensions/DeviceBean.kt b/app/src/main/java/com/casic/br/extensions/DeviceBean.kt new file mode 100644 index 0000000..16fcd62 --- /dev/null +++ b/app/src/main/java/com/casic/br/extensions/DeviceBean.kt @@ -0,0 +1,27 @@ +package com.casic.br.extensions + +import com.tuya.smart.sdk.bean.DeviceBean + +fun DeviceBean.toChineseTypeName(): String { + return if (this.category.isNullOrBlank()) { + if (this.productStandardConfig.category.isNullOrBlank()) { + this.productBean.category.toChineseTypeName() + } else { + this.productStandardConfig.category.toChineseTypeName() + } + } else { + this.category.toChineseTypeName() + } +} + +fun DeviceBean.selectCategory(): String { + return if (this.category.isNullOrBlank()) { + if (this.productStandardConfig.category.isNullOrBlank()) { + this.productBean.category + } else { + this.productStandardConfig.category + } + } else { + this.category + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/extensions/String.kt b/app/src/main/java/com/casic/br/extensions/String.kt index 2cfa38a..baf7495 100644 --- a/app/src/main/java/com/casic/br/extensions/String.kt +++ b/app/src/main/java/com/casic/br/extensions/String.kt @@ -106,4 +106,18 @@ e.printStackTrace() } return 0 +} + +fun String.toChineseTypeName(): String { + if (this.isBlank()) { + return "其他" + } + return when (this) { + "yyj" -> "智能油烟机" + "rs" -> "智能热水器" + "rqz" -> "智能燃气灶" + "bgl" -> "智能壁挂炉" + "wg2" -> "多功能网关" + else -> "其他" + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index 642f7ed..9966ba5 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -7,9 +7,8 @@ import com.casic.br.R import com.casic.br.adapter.AddedDeviceAdapter import com.casic.br.adapter.RecommendAdapter -import com.casic.br.extensions.diffDate import com.casic.br.extensions.initLayoutImmersionBar -import com.casic.br.model.AddedDeviceModel +import com.casic.br.extensions.selectCategory import com.casic.br.model.RecommendModel import com.casic.br.utils.DeserializeModel import com.casic.br.utils.LocaleConstant @@ -40,7 +39,7 @@ private val kTag = "DevicePageFragment" private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var addedDeviceAdapter: AddedDeviceAdapter - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() private var isRefresh = false override fun initLayoutView(): Int = R.layout.fragment_device @@ -92,26 +91,7 @@ TuyaHomeSdk.newHomeInstance(homeId.toLong()) .getHomeDetail(object : ITuyaHomeResultCallback { override fun onSuccess(bean: HomeBean) { - val deviceList: List = bean.deviceList - val deviceModels = ArrayList() - deviceList.forEach { - val model = AddedDeviceModel() - model.deviceId = it.devId - val deviceName = when (it.deviceCategory) { - "yyj" -> "万家乐油烟机" - "rs" -> "万家乐热水器" - "bgl" -> "万家乐壁挂炉" - else -> "万家乐燃气灶" - } - model.deviceName = deviceName - model.isOnline = it.isOnline - model.deviceImage = it.iconUrl - model.deviceModel = it.name - model.deviceType = it.deviceCategory - model.deviceUsedTime = "已使用${it.time.toString().diffDate()}天" - deviceModels.add(model) - } - + val deviceModels = bean.deviceList when { isRefresh -> { dataBeans.clear() @@ -153,17 +133,20 @@ if (DeserializeModel.isLogin()) { val deviceModel = dataBeans[position] when { - deviceModel.deviceName.contains("热水器") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("rs") -> { + requireContext().navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("油烟机") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("yyj") -> { + requireContext().navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("壁挂炉") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("bgl") -> { + requireContext().navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("燃气灶") -> { - requireContext().navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("rqz") -> { + requireContext().navigatePageTo(deviceModel.devId) + } + deviceModel.selectCategory().contains("wg2") -> { + } } } else { @@ -193,7 +176,7 @@ BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { when (position) { - 0 -> TuyaHomeSdk.newDeviceInstance(dataBeans[clickPosition].deviceId) + 0 -> TuyaHomeSdk.newDeviceInstance(dataBeans[clickPosition].devId) .removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { Log.d(kTag, "onError: $error") diff --git a/app/src/main/java/com/casic/br/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/br/utils/ChartViewHelper.kt index 665d815..3195326 100644 --- a/app/src/main/java/com/casic/br/utils/ChartViewHelper.kt +++ b/app/src/main/java/com/casic/br/utils/ChartViewHelper.kt @@ -207,7 +207,9 @@ val data = PieData(dataSet) data.setValueFormatter(object : ValueFormatter() { override fun getFormattedValue(value: Float): String { - return DecimalFormat("##0.0").format(value.toDouble()) + "t" + return DecimalFormat("##0.00").format(value.toDouble()) + chart.context.resources.getString( + R.string.volume_unit + ) } }) data.setValueTextSize(12f) diff --git a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt index 10ed4be..237917f 100644 --- a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt +++ b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt @@ -5,8 +5,7 @@ import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.R import com.casic.br.adapter.AddedDeviceAdapter -import com.casic.br.extensions.diffDate -import com.casic.br.model.AddedDeviceModel +import com.casic.br.extensions.selectCategory import com.casic.br.utils.LocaleConstant import com.casic.br.view.device.CookerActivity import com.casic.br.view.device.FireplaceActivity @@ -32,7 +31,7 @@ private val kTag = "AllDeviceActivity" private val context = this@AllDeviceActivity - private val deviceModels = ArrayList() + private var deviceModels: MutableList = ArrayList() private lateinit var addedDeviceAdapter: AddedDeviceAdapter override fun initLayoutView(): Int = R.layout.activity_all_device @@ -54,24 +53,7 @@ TuyaHomeSdk.newHomeInstance(homeId.toLong()) .getHomeDetail(object : ITuyaHomeResultCallback { override fun onSuccess(bean: HomeBean) { - val deviceList: List = bean.deviceList - deviceList.forEach { - val model = AddedDeviceModel() - model.deviceId = it.devId - val deviceName = when (it.deviceCategory) { - "yyj" -> "万家乐油烟机" - "rs" -> "万家乐热水器" - "bgl" -> "万家乐壁挂炉" - else -> "万家乐燃气灶" - } - model.deviceName = deviceName - model.isOnline = it.isOnline - model.deviceImage = it.iconUrl - model.deviceModel = it.name - model.deviceType = it.deviceCategory - model.deviceUsedTime = "已使用${it.time.toString().diffDate()}天" - deviceModels.add(model) - } + deviceModels = bean.deviceList addedDeviceAdapter = AddedDeviceAdapter(context, deviceModels) deviceRecyclerView.addItemDecoration( DividerItemDecoration(context, DividerItemDecoration.VERTICAL) @@ -86,17 +68,20 @@ override fun onItemClick(position: Int) { val deviceModel = deviceModels[position] when { - deviceModel.deviceName.contains("热水器") -> { - navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("rs") -> { + navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("油烟机") -> { - navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("yyj") -> { + navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("壁挂炉") -> { - navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("bgl") -> { + navigatePageTo(deviceModel.devId) } - deviceModel.deviceName.contains("燃气灶") -> { - navigatePageTo(deviceModel.deviceId) + deviceModel.selectCategory().contains("rqz") -> { + navigatePageTo(deviceModel.devId) + } + deviceModel.selectCategory().contains("wg2") -> { + } } } @@ -122,7 +107,7 @@ BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { when (position) { - 0 -> TuyaHomeSdk.newDeviceInstance(deviceModels[clickPosition].deviceId) + 0 -> TuyaHomeSdk.newDeviceInstance(deviceModels[clickPosition].devId) .removeDevice(object : IResultCallback { override fun onError(code: String?, error: String?) { Log.d(kTag, "onError: $error") diff --git a/app/src/main/res/layout/activity_account_manage.xml b/app/src/main/res/layout/activity_account_manage.xml index e73410c..d7930dd 100644 --- a/app/src/main/res/layout/activity_account_manage.xml +++ b/app/src/main/res/layout/activity_account_manage.xml @@ -19,7 +19,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="sans-serif-black" - android:text="客户名称" + android:text="张三" android:textSize="@dimen/sp_16" /> diff --git a/app/src/main/res/layout/activity_gas_analysis.xml b/app/src/main/res/layout/activity_gas_analysis.xml index f1d9057..080f27f 100644 --- a/app/src/main/res/layout/activity_gas_analysis.xml +++ b/app/src/main/res/layout/activity_gas_analysis.xml @@ -38,14 +38,14 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="sans-serif-black" - android:text="客户名称" + android:text="张三" android:textSize="@dimen/sp_16" /> diff --git a/app/src/main/res/layout/activity_historical_bill.xml b/app/src/main/res/layout/activity_historical_bill.xml index 776468a..9e46982 100644 --- a/app/src/main/res/layout/activity_historical_bill.xml +++ b/app/src/main/res/layout/activity_historical_bill.xml @@ -38,14 +38,14 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="sans-serif-black" - android:text="客户名称" + android:text="张三" android:textSize="@dimen/sp_16" /> diff --git a/app/src/main/res/layout/activity_payment.xml b/app/src/main/res/layout/activity_payment.xml index 95d8730..ec76cde 100644 --- a/app/src/main/res/layout/activity_payment.xml +++ b/app/src/main/res/layout/activity_payment.xml @@ -55,7 +55,7 @@ android:layout_height="match_parent" android:layout_weight="1" android:gravity="center_vertical|right" - android:text="*************" + android:text="123456789" android:textSize="@dimen/sp_16" />