diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index bd136e7..5df8bf2 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index bd136e7..5df8bf2 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt index 560bf1a..a50f38c 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -15,6 +15,7 @@ import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage +import com.casic.smarttube.extensions.toSignalImage import com.casic.smarttube.extensions.toTextColor import com.casic.smarttube.model.DeviceListModel import com.pengxh.kt.lite.extensions.dp2px @@ -52,11 +53,11 @@ val deviceCodeView: TextView = holder.itemView.findViewById(R.id.deviceCodeView) val isUseView: TextView = holder.itemView.findViewById(R.id.isUseView) val locationView: TextView = holder.itemView.findViewById(R.id.locationView) + val signalImageView: ImageView = holder.itemView.findViewById(R.id.signalImageView) val batteryDataView: TextView = holder.itemView.findViewById(R.id.batteryDataView) val snrDataView: TextView = holder.itemView.findViewById(R.id.snrDataView) - val pciDataView: TextView = holder.itemView.findViewById(R.id.pciDataView) - val rsrpDataView: TextView = holder.itemView.findViewById(R.id.rsrpDataView) - val strengthDataView: TextView = holder.itemView.findViewById(R.id.strengthDataView) + val lelValueView: TextView = holder.itemView.findViewById(R.id.lelValueView) + val volValueView: TextView = holder.itemView.findViewById(R.id.volValueView) val installDateView: TextView = holder.itemView.findViewById(R.id.installDateView) val dataHistoryButton: QMUIRoundButton = holder.itemView.findViewById(R.id.dataHistoryButton) @@ -102,10 +103,11 @@ rowsBean.cell + "%" } batteryDataView.setTextColor(rowsBean.cell.toTextColor(context)) + signalImageView.setBackgroundResource(rowsBean.rsrp.toSignalImage()) snrDataView.text = rowsBean.snr - pciDataView.text = rowsBean.pci - rsrpDataView.text = rowsBean.rsrp - strengthDataView.text = rowsBean.strength + val value = rowsBean.strength.toDouble().toInt() + lelValueView.text = "$value%" + volValueView.text = "${value * 500}ppm" installDateView.text = if (rowsBean.uptime.isNullOrBlank()) { String.format("更新时间:未知") } else { diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index bd136e7..5df8bf2 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt index 560bf1a..a50f38c 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -15,6 +15,7 @@ import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage +import com.casic.smarttube.extensions.toSignalImage import com.casic.smarttube.extensions.toTextColor import com.casic.smarttube.model.DeviceListModel import com.pengxh.kt.lite.extensions.dp2px @@ -52,11 +53,11 @@ val deviceCodeView: TextView = holder.itemView.findViewById(R.id.deviceCodeView) val isUseView: TextView = holder.itemView.findViewById(R.id.isUseView) val locationView: TextView = holder.itemView.findViewById(R.id.locationView) + val signalImageView: ImageView = holder.itemView.findViewById(R.id.signalImageView) val batteryDataView: TextView = holder.itemView.findViewById(R.id.batteryDataView) val snrDataView: TextView = holder.itemView.findViewById(R.id.snrDataView) - val pciDataView: TextView = holder.itemView.findViewById(R.id.pciDataView) - val rsrpDataView: TextView = holder.itemView.findViewById(R.id.rsrpDataView) - val strengthDataView: TextView = holder.itemView.findViewById(R.id.strengthDataView) + val lelValueView: TextView = holder.itemView.findViewById(R.id.lelValueView) + val volValueView: TextView = holder.itemView.findViewById(R.id.volValueView) val installDateView: TextView = holder.itemView.findViewById(R.id.installDateView) val dataHistoryButton: QMUIRoundButton = holder.itemView.findViewById(R.id.dataHistoryButton) @@ -102,10 +103,11 @@ rowsBean.cell + "%" } batteryDataView.setTextColor(rowsBean.cell.toTextColor(context)) + signalImageView.setBackgroundResource(rowsBean.rsrp.toSignalImage()) snrDataView.text = rowsBean.snr - pciDataView.text = rowsBean.pci - rsrpDataView.text = rowsBean.rsrp - strengthDataView.text = rowsBean.strength + val value = rowsBean.strength.toDouble().toInt() + lelValueView.text = "$value%" + volValueView.text = "${value * 500}ppm" installDateView.text = if (rowsBean.uptime.isNullOrBlank()) { String.format("更新时间:未知") } else { diff --git a/app/src/main/java/com/casic/smarttube/extensions/String.kt b/app/src/main/java/com/casic/smarttube/extensions/String.kt index be4f466..9252cac 100644 --- a/app/src/main/java/com/casic/smarttube/extensions/String.kt +++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt @@ -76,6 +76,30 @@ return R.drawable.ic_battery_0 } +//极好点: RSRP>-85dBm; SINR>25 +//好点: RSRP=-85~-95dBm;SINR:16-25 +//中点: RSRP=-95~-105dBm;SINR:11-15 +//差点: RSRP=-105~-115dBm;SINR:3-10 +//极差点: RSRP<-115dB;SINR<3 +//信号转图片 +fun String.toSignalImage(): Int { + if (this.isBlank()) { + return R.drawable.ic_signal_1 + } + try { + return when { + this.toInt() < -115 -> R.drawable.ic_signal_1 + this.toInt() >= -115 && this.toInt() < -105 -> R.drawable.ic_signal_2 + this.toInt() >= -105 && this.toInt() < -95 -> R.drawable.ic_signal_3 + this.toInt() >= -95 && this.toInt() < -85 -> R.drawable.ic_signal_4 + else -> R.drawable.ic_signal_5 + } + } catch (e: ClassCastException) { + e.printStackTrace() + } + return R.drawable.ic_signal_1 +} + fun String.toTextColor(context: Context): Int { if (this.isBlank()) { return R.color.redTextColor.convertColor(context) diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index bd136e7..5df8bf2 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt index 560bf1a..a50f38c 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -15,6 +15,7 @@ import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage +import com.casic.smarttube.extensions.toSignalImage import com.casic.smarttube.extensions.toTextColor import com.casic.smarttube.model.DeviceListModel import com.pengxh.kt.lite.extensions.dp2px @@ -52,11 +53,11 @@ val deviceCodeView: TextView = holder.itemView.findViewById(R.id.deviceCodeView) val isUseView: TextView = holder.itemView.findViewById(R.id.isUseView) val locationView: TextView = holder.itemView.findViewById(R.id.locationView) + val signalImageView: ImageView = holder.itemView.findViewById(R.id.signalImageView) val batteryDataView: TextView = holder.itemView.findViewById(R.id.batteryDataView) val snrDataView: TextView = holder.itemView.findViewById(R.id.snrDataView) - val pciDataView: TextView = holder.itemView.findViewById(R.id.pciDataView) - val rsrpDataView: TextView = holder.itemView.findViewById(R.id.rsrpDataView) - val strengthDataView: TextView = holder.itemView.findViewById(R.id.strengthDataView) + val lelValueView: TextView = holder.itemView.findViewById(R.id.lelValueView) + val volValueView: TextView = holder.itemView.findViewById(R.id.volValueView) val installDateView: TextView = holder.itemView.findViewById(R.id.installDateView) val dataHistoryButton: QMUIRoundButton = holder.itemView.findViewById(R.id.dataHistoryButton) @@ -102,10 +103,11 @@ rowsBean.cell + "%" } batteryDataView.setTextColor(rowsBean.cell.toTextColor(context)) + signalImageView.setBackgroundResource(rowsBean.rsrp.toSignalImage()) snrDataView.text = rowsBean.snr - pciDataView.text = rowsBean.pci - rsrpDataView.text = rowsBean.rsrp - strengthDataView.text = rowsBean.strength + val value = rowsBean.strength.toDouble().toInt() + lelValueView.text = "$value%" + volValueView.text = "${value * 500}ppm" installDateView.text = if (rowsBean.uptime.isNullOrBlank()) { String.format("更新时间:未知") } else { diff --git a/app/src/main/java/com/casic/smarttube/extensions/String.kt b/app/src/main/java/com/casic/smarttube/extensions/String.kt index be4f466..9252cac 100644 --- a/app/src/main/java/com/casic/smarttube/extensions/String.kt +++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt @@ -76,6 +76,30 @@ return R.drawable.ic_battery_0 } +//极好点: RSRP>-85dBm; SINR>25 +//好点: RSRP=-85~-95dBm;SINR:16-25 +//中点: RSRP=-95~-105dBm;SINR:11-15 +//差点: RSRP=-105~-115dBm;SINR:3-10 +//极差点: RSRP<-115dB;SINR<3 +//信号转图片 +fun String.toSignalImage(): Int { + if (this.isBlank()) { + return R.drawable.ic_signal_1 + } + try { + return when { + this.toInt() < -115 -> R.drawable.ic_signal_1 + this.toInt() >= -115 && this.toInt() < -105 -> R.drawable.ic_signal_2 + this.toInt() >= -105 && this.toInt() < -95 -> R.drawable.ic_signal_3 + this.toInt() >= -95 && this.toInt() < -85 -> R.drawable.ic_signal_4 + else -> R.drawable.ic_signal_5 + } + } catch (e: ClassCastException) { + e.printStackTrace() + } + return R.drawable.ic_signal_1 +} + fun String.toTextColor(context: Context): Int { if (this.isBlank()) { return R.color.redTextColor.convertColor(context) diff --git a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt index f6deb9d..422480a 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -12,6 +12,7 @@ import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.combineImagePath +import com.casic.smarttube.extensions.toSignalImage import com.casic.smarttube.model.DeviceDetailModel import com.casic.smarttube.utils.LoadingDialogHub import com.casic.smarttube.utils.RouteOnMap @@ -91,9 +92,6 @@ urls.add(path.combineImagePath()) } } - urls.forEach { url -> - Log.d(kTag, url) - } val imageAdapter = ReadOnlyImageAdapter(this) imageAdapter.setImageList(urls) imageGridView.adapter = imageAdapter @@ -115,7 +113,7 @@ deviceStateView.text = "在线" deviceStateView.setTextColor(Color.GREEN) } - deviceRsrpView.text = device.rsrp + signalImageView.setBackgroundResource(device.rsrp.toSignalImage()) deviceBatteryView.text = device.cell } }) diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index bd136e7..5df8bf2 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt index 560bf1a..a50f38c 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -15,6 +15,7 @@ import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage +import com.casic.smarttube.extensions.toSignalImage import com.casic.smarttube.extensions.toTextColor import com.casic.smarttube.model.DeviceListModel import com.pengxh.kt.lite.extensions.dp2px @@ -52,11 +53,11 @@ val deviceCodeView: TextView = holder.itemView.findViewById(R.id.deviceCodeView) val isUseView: TextView = holder.itemView.findViewById(R.id.isUseView) val locationView: TextView = holder.itemView.findViewById(R.id.locationView) + val signalImageView: ImageView = holder.itemView.findViewById(R.id.signalImageView) val batteryDataView: TextView = holder.itemView.findViewById(R.id.batteryDataView) val snrDataView: TextView = holder.itemView.findViewById(R.id.snrDataView) - val pciDataView: TextView = holder.itemView.findViewById(R.id.pciDataView) - val rsrpDataView: TextView = holder.itemView.findViewById(R.id.rsrpDataView) - val strengthDataView: TextView = holder.itemView.findViewById(R.id.strengthDataView) + val lelValueView: TextView = holder.itemView.findViewById(R.id.lelValueView) + val volValueView: TextView = holder.itemView.findViewById(R.id.volValueView) val installDateView: TextView = holder.itemView.findViewById(R.id.installDateView) val dataHistoryButton: QMUIRoundButton = holder.itemView.findViewById(R.id.dataHistoryButton) @@ -102,10 +103,11 @@ rowsBean.cell + "%" } batteryDataView.setTextColor(rowsBean.cell.toTextColor(context)) + signalImageView.setBackgroundResource(rowsBean.rsrp.toSignalImage()) snrDataView.text = rowsBean.snr - pciDataView.text = rowsBean.pci - rsrpDataView.text = rowsBean.rsrp - strengthDataView.text = rowsBean.strength + val value = rowsBean.strength.toDouble().toInt() + lelValueView.text = "$value%" + volValueView.text = "${value * 500}ppm" installDateView.text = if (rowsBean.uptime.isNullOrBlank()) { String.format("更新时间:未知") } else { diff --git a/app/src/main/java/com/casic/smarttube/extensions/String.kt b/app/src/main/java/com/casic/smarttube/extensions/String.kt index be4f466..9252cac 100644 --- a/app/src/main/java/com/casic/smarttube/extensions/String.kt +++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt @@ -76,6 +76,30 @@ return R.drawable.ic_battery_0 } +//极好点: RSRP>-85dBm; SINR>25 +//好点: RSRP=-85~-95dBm;SINR:16-25 +//中点: RSRP=-95~-105dBm;SINR:11-15 +//差点: RSRP=-105~-115dBm;SINR:3-10 +//极差点: RSRP<-115dB;SINR<3 +//信号转图片 +fun String.toSignalImage(): Int { + if (this.isBlank()) { + return R.drawable.ic_signal_1 + } + try { + return when { + this.toInt() < -115 -> R.drawable.ic_signal_1 + this.toInt() >= -115 && this.toInt() < -105 -> R.drawable.ic_signal_2 + this.toInt() >= -105 && this.toInt() < -95 -> R.drawable.ic_signal_3 + this.toInt() >= -95 && this.toInt() < -85 -> R.drawable.ic_signal_4 + else -> R.drawable.ic_signal_5 + } + } catch (e: ClassCastException) { + e.printStackTrace() + } + return R.drawable.ic_signal_1 +} + fun String.toTextColor(context: Context): Int { if (this.isBlank()) { return R.color.redTextColor.convertColor(context) diff --git a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt index f6deb9d..422480a 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -12,6 +12,7 @@ import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.combineImagePath +import com.casic.smarttube.extensions.toSignalImage import com.casic.smarttube.model.DeviceDetailModel import com.casic.smarttube.utils.LoadingDialogHub import com.casic.smarttube.utils.RouteOnMap @@ -91,9 +92,6 @@ urls.add(path.combineImagePath()) } } - urls.forEach { url -> - Log.d(kTag, url) - } val imageAdapter = ReadOnlyImageAdapter(this) imageAdapter.setImageList(urls) imageGridView.adapter = imageAdapter @@ -115,7 +113,7 @@ deviceStateView.text = "在线" deviceStateView.setTextColor(Color.GREEN) } - deviceRsrpView.text = device.rsrp + signalImageView.setBackgroundResource(device.rsrp.toSignalImage()) deviceBatteryView.text = device.cell } }) diff --git a/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt b/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt index 23b1e91..51535bc 100644 --- a/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt +++ b/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt @@ -14,7 +14,8 @@ private val kTag = "LineChartMarkerView" private val dayView: TextView = findViewById(R.id.dayView) - private val dataView: TextView = findViewById(R.id.dataView) + private val lelValueView: TextView = findViewById(R.id.lelValueView) + private val volValueView: TextView = findViewById(R.id.volValueView) private var xAxisDate: MutableList = ArrayList() fun setXAxisDate(date: MutableList) { @@ -26,7 +27,9 @@ super.refreshContent(e, highlight) val data = e.data as String try { - dataView.text = "浓度:${e.y}%" + val value = e.y.toDouble().toInt() + lelValueView.text = "浓度(LEL):${value}%" + volValueView.text = "浓度(VOL):${value * 500}ppm" dayView.text = xAxisDate[(e.x).toInt()] } catch (e: Exception) { e.printStackTrace() diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index bd136e7..5df8bf2 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt index 560bf1a..a50f38c 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -15,6 +15,7 @@ import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage +import com.casic.smarttube.extensions.toSignalImage import com.casic.smarttube.extensions.toTextColor import com.casic.smarttube.model.DeviceListModel import com.pengxh.kt.lite.extensions.dp2px @@ -52,11 +53,11 @@ val deviceCodeView: TextView = holder.itemView.findViewById(R.id.deviceCodeView) val isUseView: TextView = holder.itemView.findViewById(R.id.isUseView) val locationView: TextView = holder.itemView.findViewById(R.id.locationView) + val signalImageView: ImageView = holder.itemView.findViewById(R.id.signalImageView) val batteryDataView: TextView = holder.itemView.findViewById(R.id.batteryDataView) val snrDataView: TextView = holder.itemView.findViewById(R.id.snrDataView) - val pciDataView: TextView = holder.itemView.findViewById(R.id.pciDataView) - val rsrpDataView: TextView = holder.itemView.findViewById(R.id.rsrpDataView) - val strengthDataView: TextView = holder.itemView.findViewById(R.id.strengthDataView) + val lelValueView: TextView = holder.itemView.findViewById(R.id.lelValueView) + val volValueView: TextView = holder.itemView.findViewById(R.id.volValueView) val installDateView: TextView = holder.itemView.findViewById(R.id.installDateView) val dataHistoryButton: QMUIRoundButton = holder.itemView.findViewById(R.id.dataHistoryButton) @@ -102,10 +103,11 @@ rowsBean.cell + "%" } batteryDataView.setTextColor(rowsBean.cell.toTextColor(context)) + signalImageView.setBackgroundResource(rowsBean.rsrp.toSignalImage()) snrDataView.text = rowsBean.snr - pciDataView.text = rowsBean.pci - rsrpDataView.text = rowsBean.rsrp - strengthDataView.text = rowsBean.strength + val value = rowsBean.strength.toDouble().toInt() + lelValueView.text = "$value%" + volValueView.text = "${value * 500}ppm" installDateView.text = if (rowsBean.uptime.isNullOrBlank()) { String.format("更新时间:未知") } else { diff --git a/app/src/main/java/com/casic/smarttube/extensions/String.kt b/app/src/main/java/com/casic/smarttube/extensions/String.kt index be4f466..9252cac 100644 --- a/app/src/main/java/com/casic/smarttube/extensions/String.kt +++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt @@ -76,6 +76,30 @@ return R.drawable.ic_battery_0 } +//极好点: RSRP>-85dBm; SINR>25 +//好点: RSRP=-85~-95dBm;SINR:16-25 +//中点: RSRP=-95~-105dBm;SINR:11-15 +//差点: RSRP=-105~-115dBm;SINR:3-10 +//极差点: RSRP<-115dB;SINR<3 +//信号转图片 +fun String.toSignalImage(): Int { + if (this.isBlank()) { + return R.drawable.ic_signal_1 + } + try { + return when { + this.toInt() < -115 -> R.drawable.ic_signal_1 + this.toInt() >= -115 && this.toInt() < -105 -> R.drawable.ic_signal_2 + this.toInt() >= -105 && this.toInt() < -95 -> R.drawable.ic_signal_3 + this.toInt() >= -95 && this.toInt() < -85 -> R.drawable.ic_signal_4 + else -> R.drawable.ic_signal_5 + } + } catch (e: ClassCastException) { + e.printStackTrace() + } + return R.drawable.ic_signal_1 +} + fun String.toTextColor(context: Context): Int { if (this.isBlank()) { return R.color.redTextColor.convertColor(context) diff --git a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt index f6deb9d..422480a 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -12,6 +12,7 @@ import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.combineImagePath +import com.casic.smarttube.extensions.toSignalImage import com.casic.smarttube.model.DeviceDetailModel import com.casic.smarttube.utils.LoadingDialogHub import com.casic.smarttube.utils.RouteOnMap @@ -91,9 +92,6 @@ urls.add(path.combineImagePath()) } } - urls.forEach { url -> - Log.d(kTag, url) - } val imageAdapter = ReadOnlyImageAdapter(this) imageAdapter.setImageList(urls) imageGridView.adapter = imageAdapter @@ -115,7 +113,7 @@ deviceStateView.text = "在线" deviceStateView.setTextColor(Color.GREEN) } - deviceRsrpView.text = device.rsrp + signalImageView.setBackgroundResource(device.rsrp.toSignalImage()) deviceBatteryView.text = device.cell } }) diff --git a/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt b/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt index 23b1e91..51535bc 100644 --- a/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt +++ b/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt @@ -14,7 +14,8 @@ private val kTag = "LineChartMarkerView" private val dayView: TextView = findViewById(R.id.dayView) - private val dataView: TextView = findViewById(R.id.dataView) + private val lelValueView: TextView = findViewById(R.id.lelValueView) + private val volValueView: TextView = findViewById(R.id.volValueView) private var xAxisDate: MutableList = ArrayList() fun setXAxisDate(date: MutableList) { @@ -26,7 +27,9 @@ super.refreshContent(e, highlight) val data = e.data as String try { - dataView.text = "浓度:${e.y}%" + val value = e.y.toDouble().toInt() + lelValueView.text = "浓度(LEL):${value}%" + volValueView.text = "浓度(VOL):${value * 500}ppm" dayView.text = xAxisDate[(e.x).toInt()] } catch (e: Exception) { e.printStackTrace() diff --git a/app/src/main/res/drawable/ic_signal_1.xml b/app/src/main/res/drawable/ic_signal_1.xml new file mode 100644 index 0000000..08bd812 --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_1.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index bd136e7..5df8bf2 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt index 560bf1a..a50f38c 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -15,6 +15,7 @@ import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage +import com.casic.smarttube.extensions.toSignalImage import com.casic.smarttube.extensions.toTextColor import com.casic.smarttube.model.DeviceListModel import com.pengxh.kt.lite.extensions.dp2px @@ -52,11 +53,11 @@ val deviceCodeView: TextView = holder.itemView.findViewById(R.id.deviceCodeView) val isUseView: TextView = holder.itemView.findViewById(R.id.isUseView) val locationView: TextView = holder.itemView.findViewById(R.id.locationView) + val signalImageView: ImageView = holder.itemView.findViewById(R.id.signalImageView) val batteryDataView: TextView = holder.itemView.findViewById(R.id.batteryDataView) val snrDataView: TextView = holder.itemView.findViewById(R.id.snrDataView) - val pciDataView: TextView = holder.itemView.findViewById(R.id.pciDataView) - val rsrpDataView: TextView = holder.itemView.findViewById(R.id.rsrpDataView) - val strengthDataView: TextView = holder.itemView.findViewById(R.id.strengthDataView) + val lelValueView: TextView = holder.itemView.findViewById(R.id.lelValueView) + val volValueView: TextView = holder.itemView.findViewById(R.id.volValueView) val installDateView: TextView = holder.itemView.findViewById(R.id.installDateView) val dataHistoryButton: QMUIRoundButton = holder.itemView.findViewById(R.id.dataHistoryButton) @@ -102,10 +103,11 @@ rowsBean.cell + "%" } batteryDataView.setTextColor(rowsBean.cell.toTextColor(context)) + signalImageView.setBackgroundResource(rowsBean.rsrp.toSignalImage()) snrDataView.text = rowsBean.snr - pciDataView.text = rowsBean.pci - rsrpDataView.text = rowsBean.rsrp - strengthDataView.text = rowsBean.strength + val value = rowsBean.strength.toDouble().toInt() + lelValueView.text = "$value%" + volValueView.text = "${value * 500}ppm" installDateView.text = if (rowsBean.uptime.isNullOrBlank()) { String.format("更新时间:未知") } else { diff --git a/app/src/main/java/com/casic/smarttube/extensions/String.kt b/app/src/main/java/com/casic/smarttube/extensions/String.kt index be4f466..9252cac 100644 --- a/app/src/main/java/com/casic/smarttube/extensions/String.kt +++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt @@ -76,6 +76,30 @@ return R.drawable.ic_battery_0 } +//极好点: RSRP>-85dBm; SINR>25 +//好点: RSRP=-85~-95dBm;SINR:16-25 +//中点: RSRP=-95~-105dBm;SINR:11-15 +//差点: RSRP=-105~-115dBm;SINR:3-10 +//极差点: RSRP<-115dB;SINR<3 +//信号转图片 +fun String.toSignalImage(): Int { + if (this.isBlank()) { + return R.drawable.ic_signal_1 + } + try { + return when { + this.toInt() < -115 -> R.drawable.ic_signal_1 + this.toInt() >= -115 && this.toInt() < -105 -> R.drawable.ic_signal_2 + this.toInt() >= -105 && this.toInt() < -95 -> R.drawable.ic_signal_3 + this.toInt() >= -95 && this.toInt() < -85 -> R.drawable.ic_signal_4 + else -> R.drawable.ic_signal_5 + } + } catch (e: ClassCastException) { + e.printStackTrace() + } + return R.drawable.ic_signal_1 +} + fun String.toTextColor(context: Context): Int { if (this.isBlank()) { return R.color.redTextColor.convertColor(context) diff --git a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt index f6deb9d..422480a 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -12,6 +12,7 @@ import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.combineImagePath +import com.casic.smarttube.extensions.toSignalImage import com.casic.smarttube.model.DeviceDetailModel import com.casic.smarttube.utils.LoadingDialogHub import com.casic.smarttube.utils.RouteOnMap @@ -91,9 +92,6 @@ urls.add(path.combineImagePath()) } } - urls.forEach { url -> - Log.d(kTag, url) - } val imageAdapter = ReadOnlyImageAdapter(this) imageAdapter.setImageList(urls) imageGridView.adapter = imageAdapter @@ -115,7 +113,7 @@ deviceStateView.text = "在线" deviceStateView.setTextColor(Color.GREEN) } - deviceRsrpView.text = device.rsrp + signalImageView.setBackgroundResource(device.rsrp.toSignalImage()) deviceBatteryView.text = device.cell } }) diff --git a/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt b/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt index 23b1e91..51535bc 100644 --- a/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt +++ b/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt @@ -14,7 +14,8 @@ private val kTag = "LineChartMarkerView" private val dayView: TextView = findViewById(R.id.dayView) - private val dataView: TextView = findViewById(R.id.dataView) + private val lelValueView: TextView = findViewById(R.id.lelValueView) + private val volValueView: TextView = findViewById(R.id.volValueView) private var xAxisDate: MutableList = ArrayList() fun setXAxisDate(date: MutableList) { @@ -26,7 +27,9 @@ super.refreshContent(e, highlight) val data = e.data as String try { - dataView.text = "浓度:${e.y}%" + val value = e.y.toDouble().toInt() + lelValueView.text = "浓度(LEL):${value}%" + volValueView.text = "浓度(VOL):${value * 500}ppm" dayView.text = xAxisDate[(e.x).toInt()] } catch (e: Exception) { e.printStackTrace() diff --git a/app/src/main/res/drawable/ic_signal_1.xml b/app/src/main/res/drawable/ic_signal_1.xml new file mode 100644 index 0000000..08bd812 --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_1.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_signal_2.xml b/app/src/main/res/drawable/ic_signal_2.xml new file mode 100644 index 0000000..3b6305a --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_2.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index bd136e7..5df8bf2 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt index 560bf1a..a50f38c 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -15,6 +15,7 @@ import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage +import com.casic.smarttube.extensions.toSignalImage import com.casic.smarttube.extensions.toTextColor import com.casic.smarttube.model.DeviceListModel import com.pengxh.kt.lite.extensions.dp2px @@ -52,11 +53,11 @@ val deviceCodeView: TextView = holder.itemView.findViewById(R.id.deviceCodeView) val isUseView: TextView = holder.itemView.findViewById(R.id.isUseView) val locationView: TextView = holder.itemView.findViewById(R.id.locationView) + val signalImageView: ImageView = holder.itemView.findViewById(R.id.signalImageView) val batteryDataView: TextView = holder.itemView.findViewById(R.id.batteryDataView) val snrDataView: TextView = holder.itemView.findViewById(R.id.snrDataView) - val pciDataView: TextView = holder.itemView.findViewById(R.id.pciDataView) - val rsrpDataView: TextView = holder.itemView.findViewById(R.id.rsrpDataView) - val strengthDataView: TextView = holder.itemView.findViewById(R.id.strengthDataView) + val lelValueView: TextView = holder.itemView.findViewById(R.id.lelValueView) + val volValueView: TextView = holder.itemView.findViewById(R.id.volValueView) val installDateView: TextView = holder.itemView.findViewById(R.id.installDateView) val dataHistoryButton: QMUIRoundButton = holder.itemView.findViewById(R.id.dataHistoryButton) @@ -102,10 +103,11 @@ rowsBean.cell + "%" } batteryDataView.setTextColor(rowsBean.cell.toTextColor(context)) + signalImageView.setBackgroundResource(rowsBean.rsrp.toSignalImage()) snrDataView.text = rowsBean.snr - pciDataView.text = rowsBean.pci - rsrpDataView.text = rowsBean.rsrp - strengthDataView.text = rowsBean.strength + val value = rowsBean.strength.toDouble().toInt() + lelValueView.text = "$value%" + volValueView.text = "${value * 500}ppm" installDateView.text = if (rowsBean.uptime.isNullOrBlank()) { String.format("更新时间:未知") } else { diff --git a/app/src/main/java/com/casic/smarttube/extensions/String.kt b/app/src/main/java/com/casic/smarttube/extensions/String.kt index be4f466..9252cac 100644 --- a/app/src/main/java/com/casic/smarttube/extensions/String.kt +++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt @@ -76,6 +76,30 @@ return R.drawable.ic_battery_0 } +//极好点: RSRP>-85dBm; SINR>25 +//好点: RSRP=-85~-95dBm;SINR:16-25 +//中点: RSRP=-95~-105dBm;SINR:11-15 +//差点: RSRP=-105~-115dBm;SINR:3-10 +//极差点: RSRP<-115dB;SINR<3 +//信号转图片 +fun String.toSignalImage(): Int { + if (this.isBlank()) { + return R.drawable.ic_signal_1 + } + try { + return when { + this.toInt() < -115 -> R.drawable.ic_signal_1 + this.toInt() >= -115 && this.toInt() < -105 -> R.drawable.ic_signal_2 + this.toInt() >= -105 && this.toInt() < -95 -> R.drawable.ic_signal_3 + this.toInt() >= -95 && this.toInt() < -85 -> R.drawable.ic_signal_4 + else -> R.drawable.ic_signal_5 + } + } catch (e: ClassCastException) { + e.printStackTrace() + } + return R.drawable.ic_signal_1 +} + fun String.toTextColor(context: Context): Int { if (this.isBlank()) { return R.color.redTextColor.convertColor(context) diff --git a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt index f6deb9d..422480a 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -12,6 +12,7 @@ import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.combineImagePath +import com.casic.smarttube.extensions.toSignalImage import com.casic.smarttube.model.DeviceDetailModel import com.casic.smarttube.utils.LoadingDialogHub import com.casic.smarttube.utils.RouteOnMap @@ -91,9 +92,6 @@ urls.add(path.combineImagePath()) } } - urls.forEach { url -> - Log.d(kTag, url) - } val imageAdapter = ReadOnlyImageAdapter(this) imageAdapter.setImageList(urls) imageGridView.adapter = imageAdapter @@ -115,7 +113,7 @@ deviceStateView.text = "在线" deviceStateView.setTextColor(Color.GREEN) } - deviceRsrpView.text = device.rsrp + signalImageView.setBackgroundResource(device.rsrp.toSignalImage()) deviceBatteryView.text = device.cell } }) diff --git a/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt b/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt index 23b1e91..51535bc 100644 --- a/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt +++ b/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt @@ -14,7 +14,8 @@ private val kTag = "LineChartMarkerView" private val dayView: TextView = findViewById(R.id.dayView) - private val dataView: TextView = findViewById(R.id.dataView) + private val lelValueView: TextView = findViewById(R.id.lelValueView) + private val volValueView: TextView = findViewById(R.id.volValueView) private var xAxisDate: MutableList = ArrayList() fun setXAxisDate(date: MutableList) { @@ -26,7 +27,9 @@ super.refreshContent(e, highlight) val data = e.data as String try { - dataView.text = "浓度:${e.y}%" + val value = e.y.toDouble().toInt() + lelValueView.text = "浓度(LEL):${value}%" + volValueView.text = "浓度(VOL):${value * 500}ppm" dayView.text = xAxisDate[(e.x).toInt()] } catch (e: Exception) { e.printStackTrace() diff --git a/app/src/main/res/drawable/ic_signal_1.xml b/app/src/main/res/drawable/ic_signal_1.xml new file mode 100644 index 0000000..08bd812 --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_1.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_signal_2.xml b/app/src/main/res/drawable/ic_signal_2.xml new file mode 100644 index 0000000..3b6305a --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_2.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_signal_3.xml b/app/src/main/res/drawable/ic_signal_3.xml new file mode 100644 index 0000000..671987e --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_3.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index bd136e7..5df8bf2 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt index 560bf1a..a50f38c 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -15,6 +15,7 @@ import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage +import com.casic.smarttube.extensions.toSignalImage import com.casic.smarttube.extensions.toTextColor import com.casic.smarttube.model.DeviceListModel import com.pengxh.kt.lite.extensions.dp2px @@ -52,11 +53,11 @@ val deviceCodeView: TextView = holder.itemView.findViewById(R.id.deviceCodeView) val isUseView: TextView = holder.itemView.findViewById(R.id.isUseView) val locationView: TextView = holder.itemView.findViewById(R.id.locationView) + val signalImageView: ImageView = holder.itemView.findViewById(R.id.signalImageView) val batteryDataView: TextView = holder.itemView.findViewById(R.id.batteryDataView) val snrDataView: TextView = holder.itemView.findViewById(R.id.snrDataView) - val pciDataView: TextView = holder.itemView.findViewById(R.id.pciDataView) - val rsrpDataView: TextView = holder.itemView.findViewById(R.id.rsrpDataView) - val strengthDataView: TextView = holder.itemView.findViewById(R.id.strengthDataView) + val lelValueView: TextView = holder.itemView.findViewById(R.id.lelValueView) + val volValueView: TextView = holder.itemView.findViewById(R.id.volValueView) val installDateView: TextView = holder.itemView.findViewById(R.id.installDateView) val dataHistoryButton: QMUIRoundButton = holder.itemView.findViewById(R.id.dataHistoryButton) @@ -102,10 +103,11 @@ rowsBean.cell + "%" } batteryDataView.setTextColor(rowsBean.cell.toTextColor(context)) + signalImageView.setBackgroundResource(rowsBean.rsrp.toSignalImage()) snrDataView.text = rowsBean.snr - pciDataView.text = rowsBean.pci - rsrpDataView.text = rowsBean.rsrp - strengthDataView.text = rowsBean.strength + val value = rowsBean.strength.toDouble().toInt() + lelValueView.text = "$value%" + volValueView.text = "${value * 500}ppm" installDateView.text = if (rowsBean.uptime.isNullOrBlank()) { String.format("更新时间:未知") } else { diff --git a/app/src/main/java/com/casic/smarttube/extensions/String.kt b/app/src/main/java/com/casic/smarttube/extensions/String.kt index be4f466..9252cac 100644 --- a/app/src/main/java/com/casic/smarttube/extensions/String.kt +++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt @@ -76,6 +76,30 @@ return R.drawable.ic_battery_0 } +//极好点: RSRP>-85dBm; SINR>25 +//好点: RSRP=-85~-95dBm;SINR:16-25 +//中点: RSRP=-95~-105dBm;SINR:11-15 +//差点: RSRP=-105~-115dBm;SINR:3-10 +//极差点: RSRP<-115dB;SINR<3 +//信号转图片 +fun String.toSignalImage(): Int { + if (this.isBlank()) { + return R.drawable.ic_signal_1 + } + try { + return when { + this.toInt() < -115 -> R.drawable.ic_signal_1 + this.toInt() >= -115 && this.toInt() < -105 -> R.drawable.ic_signal_2 + this.toInt() >= -105 && this.toInt() < -95 -> R.drawable.ic_signal_3 + this.toInt() >= -95 && this.toInt() < -85 -> R.drawable.ic_signal_4 + else -> R.drawable.ic_signal_5 + } + } catch (e: ClassCastException) { + e.printStackTrace() + } + return R.drawable.ic_signal_1 +} + fun String.toTextColor(context: Context): Int { if (this.isBlank()) { return R.color.redTextColor.convertColor(context) diff --git a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt index f6deb9d..422480a 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -12,6 +12,7 @@ import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.combineImagePath +import com.casic.smarttube.extensions.toSignalImage import com.casic.smarttube.model.DeviceDetailModel import com.casic.smarttube.utils.LoadingDialogHub import com.casic.smarttube.utils.RouteOnMap @@ -91,9 +92,6 @@ urls.add(path.combineImagePath()) } } - urls.forEach { url -> - Log.d(kTag, url) - } val imageAdapter = ReadOnlyImageAdapter(this) imageAdapter.setImageList(urls) imageGridView.adapter = imageAdapter @@ -115,7 +113,7 @@ deviceStateView.text = "在线" deviceStateView.setTextColor(Color.GREEN) } - deviceRsrpView.text = device.rsrp + signalImageView.setBackgroundResource(device.rsrp.toSignalImage()) deviceBatteryView.text = device.cell } }) diff --git a/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt b/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt index 23b1e91..51535bc 100644 --- a/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt +++ b/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt @@ -14,7 +14,8 @@ private val kTag = "LineChartMarkerView" private val dayView: TextView = findViewById(R.id.dayView) - private val dataView: TextView = findViewById(R.id.dataView) + private val lelValueView: TextView = findViewById(R.id.lelValueView) + private val volValueView: TextView = findViewById(R.id.volValueView) private var xAxisDate: MutableList = ArrayList() fun setXAxisDate(date: MutableList) { @@ -26,7 +27,9 @@ super.refreshContent(e, highlight) val data = e.data as String try { - dataView.text = "浓度:${e.y}%" + val value = e.y.toDouble().toInt() + lelValueView.text = "浓度(LEL):${value}%" + volValueView.text = "浓度(VOL):${value * 500}ppm" dayView.text = xAxisDate[(e.x).toInt()] } catch (e: Exception) { e.printStackTrace() diff --git a/app/src/main/res/drawable/ic_signal_1.xml b/app/src/main/res/drawable/ic_signal_1.xml new file mode 100644 index 0000000..08bd812 --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_1.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_signal_2.xml b/app/src/main/res/drawable/ic_signal_2.xml new file mode 100644 index 0000000..3b6305a --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_2.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_signal_3.xml b/app/src/main/res/drawable/ic_signal_3.xml new file mode 100644 index 0000000..671987e --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_3.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_signal_4.xml b/app/src/main/res/drawable/ic_signal_4.xml new file mode 100644 index 0000000..dc62132 --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_4.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index bd136e7..5df8bf2 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt index 560bf1a..a50f38c 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -15,6 +15,7 @@ import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage +import com.casic.smarttube.extensions.toSignalImage import com.casic.smarttube.extensions.toTextColor import com.casic.smarttube.model.DeviceListModel import com.pengxh.kt.lite.extensions.dp2px @@ -52,11 +53,11 @@ val deviceCodeView: TextView = holder.itemView.findViewById(R.id.deviceCodeView) val isUseView: TextView = holder.itemView.findViewById(R.id.isUseView) val locationView: TextView = holder.itemView.findViewById(R.id.locationView) + val signalImageView: ImageView = holder.itemView.findViewById(R.id.signalImageView) val batteryDataView: TextView = holder.itemView.findViewById(R.id.batteryDataView) val snrDataView: TextView = holder.itemView.findViewById(R.id.snrDataView) - val pciDataView: TextView = holder.itemView.findViewById(R.id.pciDataView) - val rsrpDataView: TextView = holder.itemView.findViewById(R.id.rsrpDataView) - val strengthDataView: TextView = holder.itemView.findViewById(R.id.strengthDataView) + val lelValueView: TextView = holder.itemView.findViewById(R.id.lelValueView) + val volValueView: TextView = holder.itemView.findViewById(R.id.volValueView) val installDateView: TextView = holder.itemView.findViewById(R.id.installDateView) val dataHistoryButton: QMUIRoundButton = holder.itemView.findViewById(R.id.dataHistoryButton) @@ -102,10 +103,11 @@ rowsBean.cell + "%" } batteryDataView.setTextColor(rowsBean.cell.toTextColor(context)) + signalImageView.setBackgroundResource(rowsBean.rsrp.toSignalImage()) snrDataView.text = rowsBean.snr - pciDataView.text = rowsBean.pci - rsrpDataView.text = rowsBean.rsrp - strengthDataView.text = rowsBean.strength + val value = rowsBean.strength.toDouble().toInt() + lelValueView.text = "$value%" + volValueView.text = "${value * 500}ppm" installDateView.text = if (rowsBean.uptime.isNullOrBlank()) { String.format("更新时间:未知") } else { diff --git a/app/src/main/java/com/casic/smarttube/extensions/String.kt b/app/src/main/java/com/casic/smarttube/extensions/String.kt index be4f466..9252cac 100644 --- a/app/src/main/java/com/casic/smarttube/extensions/String.kt +++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt @@ -76,6 +76,30 @@ return R.drawable.ic_battery_0 } +//极好点: RSRP>-85dBm; SINR>25 +//好点: RSRP=-85~-95dBm;SINR:16-25 +//中点: RSRP=-95~-105dBm;SINR:11-15 +//差点: RSRP=-105~-115dBm;SINR:3-10 +//极差点: RSRP<-115dB;SINR<3 +//信号转图片 +fun String.toSignalImage(): Int { + if (this.isBlank()) { + return R.drawable.ic_signal_1 + } + try { + return when { + this.toInt() < -115 -> R.drawable.ic_signal_1 + this.toInt() >= -115 && this.toInt() < -105 -> R.drawable.ic_signal_2 + this.toInt() >= -105 && this.toInt() < -95 -> R.drawable.ic_signal_3 + this.toInt() >= -95 && this.toInt() < -85 -> R.drawable.ic_signal_4 + else -> R.drawable.ic_signal_5 + } + } catch (e: ClassCastException) { + e.printStackTrace() + } + return R.drawable.ic_signal_1 +} + fun String.toTextColor(context: Context): Int { if (this.isBlank()) { return R.color.redTextColor.convertColor(context) diff --git a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt index f6deb9d..422480a 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -12,6 +12,7 @@ import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.combineImagePath +import com.casic.smarttube.extensions.toSignalImage import com.casic.smarttube.model.DeviceDetailModel import com.casic.smarttube.utils.LoadingDialogHub import com.casic.smarttube.utils.RouteOnMap @@ -91,9 +92,6 @@ urls.add(path.combineImagePath()) } } - urls.forEach { url -> - Log.d(kTag, url) - } val imageAdapter = ReadOnlyImageAdapter(this) imageAdapter.setImageList(urls) imageGridView.adapter = imageAdapter @@ -115,7 +113,7 @@ deviceStateView.text = "在线" deviceStateView.setTextColor(Color.GREEN) } - deviceRsrpView.text = device.rsrp + signalImageView.setBackgroundResource(device.rsrp.toSignalImage()) deviceBatteryView.text = device.cell } }) diff --git a/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt b/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt index 23b1e91..51535bc 100644 --- a/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt +++ b/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt @@ -14,7 +14,8 @@ private val kTag = "LineChartMarkerView" private val dayView: TextView = findViewById(R.id.dayView) - private val dataView: TextView = findViewById(R.id.dataView) + private val lelValueView: TextView = findViewById(R.id.lelValueView) + private val volValueView: TextView = findViewById(R.id.volValueView) private var xAxisDate: MutableList = ArrayList() fun setXAxisDate(date: MutableList) { @@ -26,7 +27,9 @@ super.refreshContent(e, highlight) val data = e.data as String try { - dataView.text = "浓度:${e.y}%" + val value = e.y.toDouble().toInt() + lelValueView.text = "浓度(LEL):${value}%" + volValueView.text = "浓度(VOL):${value * 500}ppm" dayView.text = xAxisDate[(e.x).toInt()] } catch (e: Exception) { e.printStackTrace() diff --git a/app/src/main/res/drawable/ic_signal_1.xml b/app/src/main/res/drawable/ic_signal_1.xml new file mode 100644 index 0000000..08bd812 --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_1.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_signal_2.xml b/app/src/main/res/drawable/ic_signal_2.xml new file mode 100644 index 0000000..3b6305a --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_2.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_signal_3.xml b/app/src/main/res/drawable/ic_signal_3.xml new file mode 100644 index 0000000..671987e --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_3.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_signal_4.xml b/app/src/main/res/drawable/ic_signal_4.xml new file mode 100644 index 0000000..dc62132 --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_4.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_signal_5.xml b/app/src/main/res/drawable/ic_signal_5.xml new file mode 100644 index 0000000..e54579a --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_5.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index bd136e7..5df8bf2 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt index 560bf1a..a50f38c 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -15,6 +15,7 @@ import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage +import com.casic.smarttube.extensions.toSignalImage import com.casic.smarttube.extensions.toTextColor import com.casic.smarttube.model.DeviceListModel import com.pengxh.kt.lite.extensions.dp2px @@ -52,11 +53,11 @@ val deviceCodeView: TextView = holder.itemView.findViewById(R.id.deviceCodeView) val isUseView: TextView = holder.itemView.findViewById(R.id.isUseView) val locationView: TextView = holder.itemView.findViewById(R.id.locationView) + val signalImageView: ImageView = holder.itemView.findViewById(R.id.signalImageView) val batteryDataView: TextView = holder.itemView.findViewById(R.id.batteryDataView) val snrDataView: TextView = holder.itemView.findViewById(R.id.snrDataView) - val pciDataView: TextView = holder.itemView.findViewById(R.id.pciDataView) - val rsrpDataView: TextView = holder.itemView.findViewById(R.id.rsrpDataView) - val strengthDataView: TextView = holder.itemView.findViewById(R.id.strengthDataView) + val lelValueView: TextView = holder.itemView.findViewById(R.id.lelValueView) + val volValueView: TextView = holder.itemView.findViewById(R.id.volValueView) val installDateView: TextView = holder.itemView.findViewById(R.id.installDateView) val dataHistoryButton: QMUIRoundButton = holder.itemView.findViewById(R.id.dataHistoryButton) @@ -102,10 +103,11 @@ rowsBean.cell + "%" } batteryDataView.setTextColor(rowsBean.cell.toTextColor(context)) + signalImageView.setBackgroundResource(rowsBean.rsrp.toSignalImage()) snrDataView.text = rowsBean.snr - pciDataView.text = rowsBean.pci - rsrpDataView.text = rowsBean.rsrp - strengthDataView.text = rowsBean.strength + val value = rowsBean.strength.toDouble().toInt() + lelValueView.text = "$value%" + volValueView.text = "${value * 500}ppm" installDateView.text = if (rowsBean.uptime.isNullOrBlank()) { String.format("更新时间:未知") } else { diff --git a/app/src/main/java/com/casic/smarttube/extensions/String.kt b/app/src/main/java/com/casic/smarttube/extensions/String.kt index be4f466..9252cac 100644 --- a/app/src/main/java/com/casic/smarttube/extensions/String.kt +++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt @@ -76,6 +76,30 @@ return R.drawable.ic_battery_0 } +//极好点: RSRP>-85dBm; SINR>25 +//好点: RSRP=-85~-95dBm;SINR:16-25 +//中点: RSRP=-95~-105dBm;SINR:11-15 +//差点: RSRP=-105~-115dBm;SINR:3-10 +//极差点: RSRP<-115dB;SINR<3 +//信号转图片 +fun String.toSignalImage(): Int { + if (this.isBlank()) { + return R.drawable.ic_signal_1 + } + try { + return when { + this.toInt() < -115 -> R.drawable.ic_signal_1 + this.toInt() >= -115 && this.toInt() < -105 -> R.drawable.ic_signal_2 + this.toInt() >= -105 && this.toInt() < -95 -> R.drawable.ic_signal_3 + this.toInt() >= -95 && this.toInt() < -85 -> R.drawable.ic_signal_4 + else -> R.drawable.ic_signal_5 + } + } catch (e: ClassCastException) { + e.printStackTrace() + } + return R.drawable.ic_signal_1 +} + fun String.toTextColor(context: Context): Int { if (this.isBlank()) { return R.color.redTextColor.convertColor(context) diff --git a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt index f6deb9d..422480a 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -12,6 +12,7 @@ import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.combineImagePath +import com.casic.smarttube.extensions.toSignalImage import com.casic.smarttube.model.DeviceDetailModel import com.casic.smarttube.utils.LoadingDialogHub import com.casic.smarttube.utils.RouteOnMap @@ -91,9 +92,6 @@ urls.add(path.combineImagePath()) } } - urls.forEach { url -> - Log.d(kTag, url) - } val imageAdapter = ReadOnlyImageAdapter(this) imageAdapter.setImageList(urls) imageGridView.adapter = imageAdapter @@ -115,7 +113,7 @@ deviceStateView.text = "在线" deviceStateView.setTextColor(Color.GREEN) } - deviceRsrpView.text = device.rsrp + signalImageView.setBackgroundResource(device.rsrp.toSignalImage()) deviceBatteryView.text = device.cell } }) diff --git a/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt b/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt index 23b1e91..51535bc 100644 --- a/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt +++ b/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt @@ -14,7 +14,8 @@ private val kTag = "LineChartMarkerView" private val dayView: TextView = findViewById(R.id.dayView) - private val dataView: TextView = findViewById(R.id.dataView) + private val lelValueView: TextView = findViewById(R.id.lelValueView) + private val volValueView: TextView = findViewById(R.id.volValueView) private var xAxisDate: MutableList = ArrayList() fun setXAxisDate(date: MutableList) { @@ -26,7 +27,9 @@ super.refreshContent(e, highlight) val data = e.data as String try { - dataView.text = "浓度:${e.y}%" + val value = e.y.toDouble().toInt() + lelValueView.text = "浓度(LEL):${value}%" + volValueView.text = "浓度(VOL):${value * 500}ppm" dayView.text = xAxisDate[(e.x).toInt()] } catch (e: Exception) { e.printStackTrace() diff --git a/app/src/main/res/drawable/ic_signal_1.xml b/app/src/main/res/drawable/ic_signal_1.xml new file mode 100644 index 0000000..08bd812 --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_1.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_signal_2.xml b/app/src/main/res/drawable/ic_signal_2.xml new file mode 100644 index 0000000..3b6305a --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_2.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_signal_3.xml b/app/src/main/res/drawable/ic_signal_3.xml new file mode 100644 index 0000000..671987e --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_3.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_signal_4.xml b/app/src/main/res/drawable/ic_signal_4.xml new file mode 100644 index 0000000..dc62132 --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_4.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_signal_5.xml b/app/src/main/res/drawable/ic_signal_5.xml new file mode 100644 index 0000000..e54579a --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_5.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/activity_device_detail.xml b/app/src/main/res/layout/activity_device_detail.xml index 1af04b7..c6496bf 100644 --- a/app/src/main/res/layout/activity_device_detail.xml +++ b/app/src/main/res/layout/activity_device_detail.xml @@ -267,11 +267,18 @@ style="@style/RelativeTextViewStyle" android:text="当前信号" /> - + android:layout_marginEnd="@dimen/dp_10"> + + + diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index bd136e7..5df8bf2 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt index 560bf1a..a50f38c 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -15,6 +15,7 @@ import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage +import com.casic.smarttube.extensions.toSignalImage import com.casic.smarttube.extensions.toTextColor import com.casic.smarttube.model.DeviceListModel import com.pengxh.kt.lite.extensions.dp2px @@ -52,11 +53,11 @@ val deviceCodeView: TextView = holder.itemView.findViewById(R.id.deviceCodeView) val isUseView: TextView = holder.itemView.findViewById(R.id.isUseView) val locationView: TextView = holder.itemView.findViewById(R.id.locationView) + val signalImageView: ImageView = holder.itemView.findViewById(R.id.signalImageView) val batteryDataView: TextView = holder.itemView.findViewById(R.id.batteryDataView) val snrDataView: TextView = holder.itemView.findViewById(R.id.snrDataView) - val pciDataView: TextView = holder.itemView.findViewById(R.id.pciDataView) - val rsrpDataView: TextView = holder.itemView.findViewById(R.id.rsrpDataView) - val strengthDataView: TextView = holder.itemView.findViewById(R.id.strengthDataView) + val lelValueView: TextView = holder.itemView.findViewById(R.id.lelValueView) + val volValueView: TextView = holder.itemView.findViewById(R.id.volValueView) val installDateView: TextView = holder.itemView.findViewById(R.id.installDateView) val dataHistoryButton: QMUIRoundButton = holder.itemView.findViewById(R.id.dataHistoryButton) @@ -102,10 +103,11 @@ rowsBean.cell + "%" } batteryDataView.setTextColor(rowsBean.cell.toTextColor(context)) + signalImageView.setBackgroundResource(rowsBean.rsrp.toSignalImage()) snrDataView.text = rowsBean.snr - pciDataView.text = rowsBean.pci - rsrpDataView.text = rowsBean.rsrp - strengthDataView.text = rowsBean.strength + val value = rowsBean.strength.toDouble().toInt() + lelValueView.text = "$value%" + volValueView.text = "${value * 500}ppm" installDateView.text = if (rowsBean.uptime.isNullOrBlank()) { String.format("更新时间:未知") } else { diff --git a/app/src/main/java/com/casic/smarttube/extensions/String.kt b/app/src/main/java/com/casic/smarttube/extensions/String.kt index be4f466..9252cac 100644 --- a/app/src/main/java/com/casic/smarttube/extensions/String.kt +++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt @@ -76,6 +76,30 @@ return R.drawable.ic_battery_0 } +//极好点: RSRP>-85dBm; SINR>25 +//好点: RSRP=-85~-95dBm;SINR:16-25 +//中点: RSRP=-95~-105dBm;SINR:11-15 +//差点: RSRP=-105~-115dBm;SINR:3-10 +//极差点: RSRP<-115dB;SINR<3 +//信号转图片 +fun String.toSignalImage(): Int { + if (this.isBlank()) { + return R.drawable.ic_signal_1 + } + try { + return when { + this.toInt() < -115 -> R.drawable.ic_signal_1 + this.toInt() >= -115 && this.toInt() < -105 -> R.drawable.ic_signal_2 + this.toInt() >= -105 && this.toInt() < -95 -> R.drawable.ic_signal_3 + this.toInt() >= -95 && this.toInt() < -85 -> R.drawable.ic_signal_4 + else -> R.drawable.ic_signal_5 + } + } catch (e: ClassCastException) { + e.printStackTrace() + } + return R.drawable.ic_signal_1 +} + fun String.toTextColor(context: Context): Int { if (this.isBlank()) { return R.color.redTextColor.convertColor(context) diff --git a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt index f6deb9d..422480a 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -12,6 +12,7 @@ import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.combineImagePath +import com.casic.smarttube.extensions.toSignalImage import com.casic.smarttube.model.DeviceDetailModel import com.casic.smarttube.utils.LoadingDialogHub import com.casic.smarttube.utils.RouteOnMap @@ -91,9 +92,6 @@ urls.add(path.combineImagePath()) } } - urls.forEach { url -> - Log.d(kTag, url) - } val imageAdapter = ReadOnlyImageAdapter(this) imageAdapter.setImageList(urls) imageGridView.adapter = imageAdapter @@ -115,7 +113,7 @@ deviceStateView.text = "在线" deviceStateView.setTextColor(Color.GREEN) } - deviceRsrpView.text = device.rsrp + signalImageView.setBackgroundResource(device.rsrp.toSignalImage()) deviceBatteryView.text = device.cell } }) diff --git a/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt b/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt index 23b1e91..51535bc 100644 --- a/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt +++ b/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt @@ -14,7 +14,8 @@ private val kTag = "LineChartMarkerView" private val dayView: TextView = findViewById(R.id.dayView) - private val dataView: TextView = findViewById(R.id.dataView) + private val lelValueView: TextView = findViewById(R.id.lelValueView) + private val volValueView: TextView = findViewById(R.id.volValueView) private var xAxisDate: MutableList = ArrayList() fun setXAxisDate(date: MutableList) { @@ -26,7 +27,9 @@ super.refreshContent(e, highlight) val data = e.data as String try { - dataView.text = "浓度:${e.y}%" + val value = e.y.toDouble().toInt() + lelValueView.text = "浓度(LEL):${value}%" + volValueView.text = "浓度(VOL):${value * 500}ppm" dayView.text = xAxisDate[(e.x).toInt()] } catch (e: Exception) { e.printStackTrace() diff --git a/app/src/main/res/drawable/ic_signal_1.xml b/app/src/main/res/drawable/ic_signal_1.xml new file mode 100644 index 0000000..08bd812 --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_1.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_signal_2.xml b/app/src/main/res/drawable/ic_signal_2.xml new file mode 100644 index 0000000..3b6305a --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_2.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_signal_3.xml b/app/src/main/res/drawable/ic_signal_3.xml new file mode 100644 index 0000000..671987e --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_3.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_signal_4.xml b/app/src/main/res/drawable/ic_signal_4.xml new file mode 100644 index 0000000..dc62132 --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_4.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_signal_5.xml b/app/src/main/res/drawable/ic_signal_5.xml new file mode 100644 index 0000000..e54579a --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_5.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/activity_device_detail.xml b/app/src/main/res/layout/activity_device_detail.xml index 1af04b7..c6496bf 100644 --- a/app/src/main/res/layout/activity_device_detail.xml +++ b/app/src/main/res/layout/activity_device_detail.xml @@ -267,11 +267,18 @@ style="@style/RelativeTextViewStyle" android:text="当前信号" /> - + android:layout_marginEnd="@dimen/dp_10"> + + + diff --git a/app/src/main/res/layout/include_data_excel.xml b/app/src/main/res/layout/include_data_excel.xml index e9f3c91..16cf51e 100644 --- a/app/src/main/res/layout/include_data_excel.xml +++ b/app/src/main/res/layout/include_data_excel.xml @@ -17,12 +17,26 @@ android:layout_height="match_parent" android:layout_weight="1" android:gravity="center" + android:text="信号(RSRP)" + android:textColor="@color/subTextColor" + android:textSize="@dimen/sp_12" /> + + + + @@ -36,51 +50,65 @@ android:textSize="@dimen/sp_12" /> - + android:layout_weight="2" + android:orientation="vertical"> - + - + - + - + + + + + + + + + + + + + + @@ -114,48 +159,28 @@ android:textSize="@dimen/sp_12" /> - - - - - - - - + android:textSize="@dimen/sp_12" /> + + \ No newline at end of file diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index bd136e7..5df8bf2 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt index 560bf1a..a50f38c 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -15,6 +15,7 @@ import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage +import com.casic.smarttube.extensions.toSignalImage import com.casic.smarttube.extensions.toTextColor import com.casic.smarttube.model.DeviceListModel import com.pengxh.kt.lite.extensions.dp2px @@ -52,11 +53,11 @@ val deviceCodeView: TextView = holder.itemView.findViewById(R.id.deviceCodeView) val isUseView: TextView = holder.itemView.findViewById(R.id.isUseView) val locationView: TextView = holder.itemView.findViewById(R.id.locationView) + val signalImageView: ImageView = holder.itemView.findViewById(R.id.signalImageView) val batteryDataView: TextView = holder.itemView.findViewById(R.id.batteryDataView) val snrDataView: TextView = holder.itemView.findViewById(R.id.snrDataView) - val pciDataView: TextView = holder.itemView.findViewById(R.id.pciDataView) - val rsrpDataView: TextView = holder.itemView.findViewById(R.id.rsrpDataView) - val strengthDataView: TextView = holder.itemView.findViewById(R.id.strengthDataView) + val lelValueView: TextView = holder.itemView.findViewById(R.id.lelValueView) + val volValueView: TextView = holder.itemView.findViewById(R.id.volValueView) val installDateView: TextView = holder.itemView.findViewById(R.id.installDateView) val dataHistoryButton: QMUIRoundButton = holder.itemView.findViewById(R.id.dataHistoryButton) @@ -102,10 +103,11 @@ rowsBean.cell + "%" } batteryDataView.setTextColor(rowsBean.cell.toTextColor(context)) + signalImageView.setBackgroundResource(rowsBean.rsrp.toSignalImage()) snrDataView.text = rowsBean.snr - pciDataView.text = rowsBean.pci - rsrpDataView.text = rowsBean.rsrp - strengthDataView.text = rowsBean.strength + val value = rowsBean.strength.toDouble().toInt() + lelValueView.text = "$value%" + volValueView.text = "${value * 500}ppm" installDateView.text = if (rowsBean.uptime.isNullOrBlank()) { String.format("更新时间:未知") } else { diff --git a/app/src/main/java/com/casic/smarttube/extensions/String.kt b/app/src/main/java/com/casic/smarttube/extensions/String.kt index be4f466..9252cac 100644 --- a/app/src/main/java/com/casic/smarttube/extensions/String.kt +++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt @@ -76,6 +76,30 @@ return R.drawable.ic_battery_0 } +//极好点: RSRP>-85dBm; SINR>25 +//好点: RSRP=-85~-95dBm;SINR:16-25 +//中点: RSRP=-95~-105dBm;SINR:11-15 +//差点: RSRP=-105~-115dBm;SINR:3-10 +//极差点: RSRP<-115dB;SINR<3 +//信号转图片 +fun String.toSignalImage(): Int { + if (this.isBlank()) { + return R.drawable.ic_signal_1 + } + try { + return when { + this.toInt() < -115 -> R.drawable.ic_signal_1 + this.toInt() >= -115 && this.toInt() < -105 -> R.drawable.ic_signal_2 + this.toInt() >= -105 && this.toInt() < -95 -> R.drawable.ic_signal_3 + this.toInt() >= -95 && this.toInt() < -85 -> R.drawable.ic_signal_4 + else -> R.drawable.ic_signal_5 + } + } catch (e: ClassCastException) { + e.printStackTrace() + } + return R.drawable.ic_signal_1 +} + fun String.toTextColor(context: Context): Int { if (this.isBlank()) { return R.color.redTextColor.convertColor(context) diff --git a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt index f6deb9d..422480a 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -12,6 +12,7 @@ import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.combineImagePath +import com.casic.smarttube.extensions.toSignalImage import com.casic.smarttube.model.DeviceDetailModel import com.casic.smarttube.utils.LoadingDialogHub import com.casic.smarttube.utils.RouteOnMap @@ -91,9 +92,6 @@ urls.add(path.combineImagePath()) } } - urls.forEach { url -> - Log.d(kTag, url) - } val imageAdapter = ReadOnlyImageAdapter(this) imageAdapter.setImageList(urls) imageGridView.adapter = imageAdapter @@ -115,7 +113,7 @@ deviceStateView.text = "在线" deviceStateView.setTextColor(Color.GREEN) } - deviceRsrpView.text = device.rsrp + signalImageView.setBackgroundResource(device.rsrp.toSignalImage()) deviceBatteryView.text = device.cell } }) diff --git a/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt b/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt index 23b1e91..51535bc 100644 --- a/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt +++ b/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt @@ -14,7 +14,8 @@ private val kTag = "LineChartMarkerView" private val dayView: TextView = findViewById(R.id.dayView) - private val dataView: TextView = findViewById(R.id.dataView) + private val lelValueView: TextView = findViewById(R.id.lelValueView) + private val volValueView: TextView = findViewById(R.id.volValueView) private var xAxisDate: MutableList = ArrayList() fun setXAxisDate(date: MutableList) { @@ -26,7 +27,9 @@ super.refreshContent(e, highlight) val data = e.data as String try { - dataView.text = "浓度:${e.y}%" + val value = e.y.toDouble().toInt() + lelValueView.text = "浓度(LEL):${value}%" + volValueView.text = "浓度(VOL):${value * 500}ppm" dayView.text = xAxisDate[(e.x).toInt()] } catch (e: Exception) { e.printStackTrace() diff --git a/app/src/main/res/drawable/ic_signal_1.xml b/app/src/main/res/drawable/ic_signal_1.xml new file mode 100644 index 0000000..08bd812 --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_1.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_signal_2.xml b/app/src/main/res/drawable/ic_signal_2.xml new file mode 100644 index 0000000..3b6305a --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_2.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_signal_3.xml b/app/src/main/res/drawable/ic_signal_3.xml new file mode 100644 index 0000000..671987e --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_3.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_signal_4.xml b/app/src/main/res/drawable/ic_signal_4.xml new file mode 100644 index 0000000..dc62132 --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_4.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_signal_5.xml b/app/src/main/res/drawable/ic_signal_5.xml new file mode 100644 index 0000000..e54579a --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_5.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/activity_device_detail.xml b/app/src/main/res/layout/activity_device_detail.xml index 1af04b7..c6496bf 100644 --- a/app/src/main/res/layout/activity_device_detail.xml +++ b/app/src/main/res/layout/activity_device_detail.xml @@ -267,11 +267,18 @@ style="@style/RelativeTextViewStyle" android:text="当前信号" /> - + android:layout_marginEnd="@dimen/dp_10"> + + + diff --git a/app/src/main/res/layout/include_data_excel.xml b/app/src/main/res/layout/include_data_excel.xml index e9f3c91..16cf51e 100644 --- a/app/src/main/res/layout/include_data_excel.xml +++ b/app/src/main/res/layout/include_data_excel.xml @@ -17,12 +17,26 @@ android:layout_height="match_parent" android:layout_weight="1" android:gravity="center" + android:text="信号(RSRP)" + android:textColor="@color/subTextColor" + android:textSize="@dimen/sp_12" /> + + + + @@ -36,51 +50,65 @@ android:textSize="@dimen/sp_12" /> - + android:layout_weight="2" + android:orientation="vertical"> - + - + - + - + + + + + + + + + + + + + + @@ -114,48 +159,28 @@ android:textSize="@dimen/sp_12" /> - - - - - - - - + android:textSize="@dimen/sp_12" /> + + \ No newline at end of file diff --git a/app/src/main/res/layout/popu_line_chart_marker.xml b/app/src/main/res/layout/popu_line_chart_marker.xml index 5521a89..7096bfd 100644 --- a/app/src/main/res/layout/popu_line_chart_marker.xml +++ b/app/src/main/res/layout/popu_line_chart_marker.xml @@ -4,7 +4,7 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:background="@drawable/bg_stroke_layout_blue" - android:gravity="center" + android:gravity="center|left" android:orientation="vertical"> + + \ No newline at end of file