diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index be29277..3d8ef3b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -43,7 +43,9 @@ - + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index be29277..3d8ef3b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -43,7 +43,9 @@ - + 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 33c4a35..b27d3b4 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -1,7 +1,6 @@ package com.casic.smarttube.adapter import android.content.Context -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -10,12 +9,12 @@ import androidx.recyclerview.widget.RecyclerView import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage +import com.casic.smarttube.extensions.toTextColor import com.casic.smarttube.model.DeviceListModel -import com.pengxh.kt.lite.extensions.toJson import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton class DeviceListAdapter( - context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -34,6 +33,12 @@ holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) holder.deviceCodeView.text = rowsBean.devcode holder.wellNameView.text = String.format("设备名:${rowsBean.deviceName}") + holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { + "0%" + } else { + rowsBean.cell + "%" + } + holder.batteryDataView.setTextColor(rowsBean.cell.toTextColor(context)) holder.snrDataView.text = rowsBean.snr holder.pciDataView.text = rowsBean.pci holder.rsrpDataView.text = rowsBean.rsrp @@ -55,6 +60,7 @@ var batteryView: ImageView = view.findViewById(R.id.batteryView) var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) var wellNameView: TextView = view.findViewById(R.id.wellNameView) + var batteryDataView: TextView = view.findViewById(R.id.batteryDataView) var snrDataView: TextView = view.findViewById(R.id.snrDataView) var pciDataView: TextView = view.findViewById(R.id.pciDataView) var rsrpDataView: TextView = view.findViewById(R.id.rsrpDataView) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index be29277..3d8ef3b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -43,7 +43,9 @@ - + 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 33c4a35..b27d3b4 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -1,7 +1,6 @@ package com.casic.smarttube.adapter import android.content.Context -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -10,12 +9,12 @@ import androidx.recyclerview.widget.RecyclerView import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage +import com.casic.smarttube.extensions.toTextColor import com.casic.smarttube.model.DeviceListModel -import com.pengxh.kt.lite.extensions.toJson import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton class DeviceListAdapter( - context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -34,6 +33,12 @@ holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) holder.deviceCodeView.text = rowsBean.devcode holder.wellNameView.text = String.format("设备名:${rowsBean.deviceName}") + holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { + "0%" + } else { + rowsBean.cell + "%" + } + holder.batteryDataView.setTextColor(rowsBean.cell.toTextColor(context)) holder.snrDataView.text = rowsBean.snr holder.pciDataView.text = rowsBean.pci holder.rsrpDataView.text = rowsBean.rsrp @@ -55,6 +60,7 @@ var batteryView: ImageView = view.findViewById(R.id.batteryView) var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) var wellNameView: TextView = view.findViewById(R.id.wellNameView) + var batteryDataView: TextView = view.findViewById(R.id.batteryDataView) var snrDataView: TextView = view.findViewById(R.id.snrDataView) var pciDataView: TextView = view.findViewById(R.id.pciDataView) var rsrpDataView: TextView = view.findViewById(R.id.rsrpDataView) 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 32358e3..0305fad 100644 --- a/app/src/main/java/com/casic/smarttube/extensions/String.kt +++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt @@ -1,10 +1,13 @@ package com.casic.smarttube.extensions +import android.content.Context +import android.graphics.Color import com.casic.smarttube.R import com.casic.smarttube.model.ErrorMessageModel import com.casic.smarttube.utils.LocaleConstant import com.google.gson.Gson import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.dateToTimestamp import com.pengxh.kt.lite.utils.SaveKeyValues import org.json.JSONObject @@ -67,11 +70,29 @@ return R.drawable.ic_battery_0 } +fun String.toTextColor(context: Context): Int { + if (this.isBlank()) { + return R.color.redTextColor.convertColor(context) + } + try { + when (this.toInt()) { + in 0..10 -> return R.color.redTextColor.convertColor(context) + in 11..30 -> return R.color.orangeTextColor.convertColor(context) + in 31..60 -> return Color.parseColor("#FFFF00") + in 61..90 -> return Color.parseColor("#90B030") + in 91..100 -> return Color.parseColor("#33CC33") + } + } catch (e: ClassCastException) { + e.printStackTrace() + } + return R.color.redTextColor.convertColor(context) +} + /** * 时间转月日 */ fun String.dateToMonthDay(): String { val timestamp = this.dateToTimestamp() - val dateFormat = SimpleDateFormat("MM-dd", Locale.CHINA) + val dateFormat = SimpleDateFormat("MM-dd HH:mm", Locale.CHINA) return dateFormat.format(Date(timestamp)) } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index be29277..3d8ef3b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -43,7 +43,9 @@ - + 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 33c4a35..b27d3b4 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -1,7 +1,6 @@ package com.casic.smarttube.adapter import android.content.Context -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -10,12 +9,12 @@ import androidx.recyclerview.widget.RecyclerView import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage +import com.casic.smarttube.extensions.toTextColor import com.casic.smarttube.model.DeviceListModel -import com.pengxh.kt.lite.extensions.toJson import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton class DeviceListAdapter( - context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -34,6 +33,12 @@ holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) holder.deviceCodeView.text = rowsBean.devcode holder.wellNameView.text = String.format("设备名:${rowsBean.deviceName}") + holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { + "0%" + } else { + rowsBean.cell + "%" + } + holder.batteryDataView.setTextColor(rowsBean.cell.toTextColor(context)) holder.snrDataView.text = rowsBean.snr holder.pciDataView.text = rowsBean.pci holder.rsrpDataView.text = rowsBean.rsrp @@ -55,6 +60,7 @@ var batteryView: ImageView = view.findViewById(R.id.batteryView) var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) var wellNameView: TextView = view.findViewById(R.id.wellNameView) + var batteryDataView: TextView = view.findViewById(R.id.batteryDataView) var snrDataView: TextView = view.findViewById(R.id.snrDataView) var pciDataView: TextView = view.findViewById(R.id.pciDataView) var rsrpDataView: TextView = view.findViewById(R.id.rsrpDataView) 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 32358e3..0305fad 100644 --- a/app/src/main/java/com/casic/smarttube/extensions/String.kt +++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt @@ -1,10 +1,13 @@ package com.casic.smarttube.extensions +import android.content.Context +import android.graphics.Color import com.casic.smarttube.R import com.casic.smarttube.model.ErrorMessageModel import com.casic.smarttube.utils.LocaleConstant import com.google.gson.Gson import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.dateToTimestamp import com.pengxh.kt.lite.utils.SaveKeyValues import org.json.JSONObject @@ -67,11 +70,29 @@ return R.drawable.ic_battery_0 } +fun String.toTextColor(context: Context): Int { + if (this.isBlank()) { + return R.color.redTextColor.convertColor(context) + } + try { + when (this.toInt()) { + in 0..10 -> return R.color.redTextColor.convertColor(context) + in 11..30 -> return R.color.orangeTextColor.convertColor(context) + in 31..60 -> return Color.parseColor("#FFFF00") + in 61..90 -> return Color.parseColor("#90B030") + in 91..100 -> return Color.parseColor("#33CC33") + } + } catch (e: ClassCastException) { + e.printStackTrace() + } + return R.color.redTextColor.convertColor(context) +} + /** * 时间转月日 */ fun String.dateToMonthDay(): String { val timestamp = this.dateToTimestamp() - val dateFormat = SimpleDateFormat("MM-dd", Locale.CHINA) + val dateFormat = SimpleDateFormat("MM-dd HH:mm", Locale.CHINA) return dateFormat.format(Date(timestamp)) } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt index acde78f..44bdee7 100644 --- a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt +++ b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt @@ -53,7 +53,7 @@ chart.marker = markerView //设置X轴坐标 val xAxis = chart.xAxis - xAxis.labelRotationAngle = -45f +// xAxis.labelRotationAngle = -45f xAxis.valueFormatter = object : ValueFormatter() { override fun getFormattedValue(value: Float): String { return xAxisDate[value.toInt()] diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index be29277..3d8ef3b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -43,7 +43,9 @@ - + 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 33c4a35..b27d3b4 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -1,7 +1,6 @@ package com.casic.smarttube.adapter import android.content.Context -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -10,12 +9,12 @@ import androidx.recyclerview.widget.RecyclerView import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage +import com.casic.smarttube.extensions.toTextColor import com.casic.smarttube.model.DeviceListModel -import com.pengxh.kt.lite.extensions.toJson import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton class DeviceListAdapter( - context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -34,6 +33,12 @@ holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) holder.deviceCodeView.text = rowsBean.devcode holder.wellNameView.text = String.format("设备名:${rowsBean.deviceName}") + holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { + "0%" + } else { + rowsBean.cell + "%" + } + holder.batteryDataView.setTextColor(rowsBean.cell.toTextColor(context)) holder.snrDataView.text = rowsBean.snr holder.pciDataView.text = rowsBean.pci holder.rsrpDataView.text = rowsBean.rsrp @@ -55,6 +60,7 @@ var batteryView: ImageView = view.findViewById(R.id.batteryView) var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) var wellNameView: TextView = view.findViewById(R.id.wellNameView) + var batteryDataView: TextView = view.findViewById(R.id.batteryDataView) var snrDataView: TextView = view.findViewById(R.id.snrDataView) var pciDataView: TextView = view.findViewById(R.id.pciDataView) var rsrpDataView: TextView = view.findViewById(R.id.rsrpDataView) 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 32358e3..0305fad 100644 --- a/app/src/main/java/com/casic/smarttube/extensions/String.kt +++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt @@ -1,10 +1,13 @@ package com.casic.smarttube.extensions +import android.content.Context +import android.graphics.Color import com.casic.smarttube.R import com.casic.smarttube.model.ErrorMessageModel import com.casic.smarttube.utils.LocaleConstant import com.google.gson.Gson import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.dateToTimestamp import com.pengxh.kt.lite.utils.SaveKeyValues import org.json.JSONObject @@ -67,11 +70,29 @@ return R.drawable.ic_battery_0 } +fun String.toTextColor(context: Context): Int { + if (this.isBlank()) { + return R.color.redTextColor.convertColor(context) + } + try { + when (this.toInt()) { + in 0..10 -> return R.color.redTextColor.convertColor(context) + in 11..30 -> return R.color.orangeTextColor.convertColor(context) + in 31..60 -> return Color.parseColor("#FFFF00") + in 61..90 -> return Color.parseColor("#90B030") + in 91..100 -> return Color.parseColor("#33CC33") + } + } catch (e: ClassCastException) { + e.printStackTrace() + } + return R.color.redTextColor.convertColor(context) +} + /** * 时间转月日 */ fun String.dateToMonthDay(): String { val timestamp = this.dateToTimestamp() - val dateFormat = SimpleDateFormat("MM-dd", Locale.CHINA) + val dateFormat = SimpleDateFormat("MM-dd HH:mm", Locale.CHINA) return dateFormat.format(Date(timestamp)) } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt index acde78f..44bdee7 100644 --- a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt +++ b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt @@ -53,7 +53,7 @@ chart.marker = markerView //设置X轴坐标 val xAxis = chart.xAxis - xAxis.labelRotationAngle = -45f +// xAxis.labelRotationAngle = -45f xAxis.valueFormatter = object : ValueFormatter() { override fun getFormattedValue(value: Float): String { return xAxisDate[value.toInt()] diff --git a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt index 292f041..c7c4db0 100644 --- a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt @@ -18,7 +18,6 @@ import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import kotlinx.android.synthetic.main.activity_history_data.* -import kotlinx.android.synthetic.main.include_base_title.* import java.util.* class HistoryDataActivity : KotlinBaseActivity() { @@ -32,7 +31,6 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(false).init() ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) - titleView.text = "历史数据" leftBackView.setOnClickListener { finish() } } @@ -126,32 +124,21 @@ val xAxisLabels: MutableList = ArrayList() val strengthEntryModel = LineChartEntryModel() - val cellEntryModel = LineChartEntryModel() //每个entries都是一条折线 val strengthEntries: ArrayList = ArrayList() - val cellEntries: ArrayList = ArrayList() it.data!!.forEachIndexed { i, rowsBean -> // x 轴坐标 - // 2022-07-06 16:41:00 需要改为 07-06 + // 2022-07-06 16:41:00 需要改为 07-06 16:41 xAxisLabels.add(rowsBean.uptime.dateToMonthDay()) //浓度线 strengthEntries.add( Entry(i.toFloat(), rowsBean.stregnth!!.toFloat(), "浓度") ) - - //电量线 - cellEntries.add( - Entry(i.toFloat(), rowsBean.cell!!.toFloat(), "设备电量") - ) } strengthEntryModel.lineColor = R.color.redTextColor.convertColor(this) strengthEntryModel.entries = strengthEntries ChartViewHelper.setLineChartData(dataLineChart, xAxisLabels, strengthEntryModel) - - cellEntryModel.lineColor = R.color.greenColor.convertColor(this) - cellEntryModel.entries = cellEntries - ChartViewHelper.setLineChartData(batteryDataChart, xAxisLabels, cellEntryModel) } }) } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index be29277..3d8ef3b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -43,7 +43,9 @@ - + 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 33c4a35..b27d3b4 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -1,7 +1,6 @@ package com.casic.smarttube.adapter import android.content.Context -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -10,12 +9,12 @@ import androidx.recyclerview.widget.RecyclerView import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage +import com.casic.smarttube.extensions.toTextColor import com.casic.smarttube.model.DeviceListModel -import com.pengxh.kt.lite.extensions.toJson import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton class DeviceListAdapter( - context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -34,6 +33,12 @@ holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) holder.deviceCodeView.text = rowsBean.devcode holder.wellNameView.text = String.format("设备名:${rowsBean.deviceName}") + holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { + "0%" + } else { + rowsBean.cell + "%" + } + holder.batteryDataView.setTextColor(rowsBean.cell.toTextColor(context)) holder.snrDataView.text = rowsBean.snr holder.pciDataView.text = rowsBean.pci holder.rsrpDataView.text = rowsBean.rsrp @@ -55,6 +60,7 @@ var batteryView: ImageView = view.findViewById(R.id.batteryView) var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) var wellNameView: TextView = view.findViewById(R.id.wellNameView) + var batteryDataView: TextView = view.findViewById(R.id.batteryDataView) var snrDataView: TextView = view.findViewById(R.id.snrDataView) var pciDataView: TextView = view.findViewById(R.id.pciDataView) var rsrpDataView: TextView = view.findViewById(R.id.rsrpDataView) 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 32358e3..0305fad 100644 --- a/app/src/main/java/com/casic/smarttube/extensions/String.kt +++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt @@ -1,10 +1,13 @@ package com.casic.smarttube.extensions +import android.content.Context +import android.graphics.Color import com.casic.smarttube.R import com.casic.smarttube.model.ErrorMessageModel import com.casic.smarttube.utils.LocaleConstant import com.google.gson.Gson import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.dateToTimestamp import com.pengxh.kt.lite.utils.SaveKeyValues import org.json.JSONObject @@ -67,11 +70,29 @@ return R.drawable.ic_battery_0 } +fun String.toTextColor(context: Context): Int { + if (this.isBlank()) { + return R.color.redTextColor.convertColor(context) + } + try { + when (this.toInt()) { + in 0..10 -> return R.color.redTextColor.convertColor(context) + in 11..30 -> return R.color.orangeTextColor.convertColor(context) + in 31..60 -> return Color.parseColor("#FFFF00") + in 61..90 -> return Color.parseColor("#90B030") + in 91..100 -> return Color.parseColor("#33CC33") + } + } catch (e: ClassCastException) { + e.printStackTrace() + } + return R.color.redTextColor.convertColor(context) +} + /** * 时间转月日 */ fun String.dateToMonthDay(): String { val timestamp = this.dateToTimestamp() - val dateFormat = SimpleDateFormat("MM-dd", Locale.CHINA) + val dateFormat = SimpleDateFormat("MM-dd HH:mm", Locale.CHINA) return dateFormat.format(Date(timestamp)) } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt index acde78f..44bdee7 100644 --- a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt +++ b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt @@ -53,7 +53,7 @@ chart.marker = markerView //设置X轴坐标 val xAxis = chart.xAxis - xAxis.labelRotationAngle = -45f +// xAxis.labelRotationAngle = -45f xAxis.valueFormatter = object : ValueFormatter() { override fun getFormattedValue(value: Float): String { return xAxisDate[value.toInt()] diff --git a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt index 292f041..c7c4db0 100644 --- a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt @@ -18,7 +18,6 @@ import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import kotlinx.android.synthetic.main.activity_history_data.* -import kotlinx.android.synthetic.main.include_base_title.* import java.util.* class HistoryDataActivity : KotlinBaseActivity() { @@ -32,7 +31,6 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(false).init() ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) - titleView.text = "历史数据" leftBackView.setOnClickListener { finish() } } @@ -126,32 +124,21 @@ val xAxisLabels: MutableList = ArrayList() val strengthEntryModel = LineChartEntryModel() - val cellEntryModel = LineChartEntryModel() //每个entries都是一条折线 val strengthEntries: ArrayList = ArrayList() - val cellEntries: ArrayList = ArrayList() it.data!!.forEachIndexed { i, rowsBean -> // x 轴坐标 - // 2022-07-06 16:41:00 需要改为 07-06 + // 2022-07-06 16:41:00 需要改为 07-06 16:41 xAxisLabels.add(rowsBean.uptime.dateToMonthDay()) //浓度线 strengthEntries.add( Entry(i.toFloat(), rowsBean.stregnth!!.toFloat(), "浓度") ) - - //电量线 - cellEntries.add( - Entry(i.toFloat(), rowsBean.cell!!.toFloat(), "设备电量") - ) } strengthEntryModel.lineColor = R.color.redTextColor.convertColor(this) strengthEntryModel.entries = strengthEntries ChartViewHelper.setLineChartData(dataLineChart, xAxisLabels, strengthEntryModel) - - cellEntryModel.lineColor = R.color.greenColor.convertColor(this) - cellEntryModel.entries = cellEntries - ChartViewHelper.setLineChartData(batteryDataChart, xAxisLabels, cellEntryModel) } }) } 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 ca0bddd..23b1e91 100644 --- a/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt +++ b/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt @@ -7,14 +7,12 @@ import com.github.mikephil.charting.data.Entry import com.github.mikephil.charting.highlight.Highlight import com.github.mikephil.charting.utils.MPPointF -import java.text.DecimalFormat import java.util.* class LineChartMarkerView(context: Context?) : MarkerView(context, R.layout.popu_line_chart_marker) { private val kTag = "LineChartMarkerView" - private val decimalFormat = DecimalFormat("##0.0") private val dayView: TextView = findViewById(R.id.dayView) private val dataView: TextView = findViewById(R.id.dataView) private var xAxisDate: MutableList = ArrayList() @@ -28,10 +26,7 @@ super.refreshContent(e, highlight) val data = e.data as String try { - when (data) { - "浓度" -> dataView.text = "浓度:${e.y}%" - "设备电量" -> dataView.text = String.format("设备电量:${e.y.toInt()}") - } + dataView.text = "浓度:${e.y}%" dayView.text = xAxisDate[(e.x).toInt()] } catch (e: Exception) { e.printStackTrace() diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index be29277..3d8ef3b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -43,7 +43,9 @@ - + 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 33c4a35..b27d3b4 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -1,7 +1,6 @@ package com.casic.smarttube.adapter import android.content.Context -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -10,12 +9,12 @@ import androidx.recyclerview.widget.RecyclerView import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage +import com.casic.smarttube.extensions.toTextColor import com.casic.smarttube.model.DeviceListModel -import com.pengxh.kt.lite.extensions.toJson import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton class DeviceListAdapter( - context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -34,6 +33,12 @@ holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) holder.deviceCodeView.text = rowsBean.devcode holder.wellNameView.text = String.format("设备名:${rowsBean.deviceName}") + holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { + "0%" + } else { + rowsBean.cell + "%" + } + holder.batteryDataView.setTextColor(rowsBean.cell.toTextColor(context)) holder.snrDataView.text = rowsBean.snr holder.pciDataView.text = rowsBean.pci holder.rsrpDataView.text = rowsBean.rsrp @@ -55,6 +60,7 @@ var batteryView: ImageView = view.findViewById(R.id.batteryView) var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) var wellNameView: TextView = view.findViewById(R.id.wellNameView) + var batteryDataView: TextView = view.findViewById(R.id.batteryDataView) var snrDataView: TextView = view.findViewById(R.id.snrDataView) var pciDataView: TextView = view.findViewById(R.id.pciDataView) var rsrpDataView: TextView = view.findViewById(R.id.rsrpDataView) 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 32358e3..0305fad 100644 --- a/app/src/main/java/com/casic/smarttube/extensions/String.kt +++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt @@ -1,10 +1,13 @@ package com.casic.smarttube.extensions +import android.content.Context +import android.graphics.Color import com.casic.smarttube.R import com.casic.smarttube.model.ErrorMessageModel import com.casic.smarttube.utils.LocaleConstant import com.google.gson.Gson import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.dateToTimestamp import com.pengxh.kt.lite.utils.SaveKeyValues import org.json.JSONObject @@ -67,11 +70,29 @@ return R.drawable.ic_battery_0 } +fun String.toTextColor(context: Context): Int { + if (this.isBlank()) { + return R.color.redTextColor.convertColor(context) + } + try { + when (this.toInt()) { + in 0..10 -> return R.color.redTextColor.convertColor(context) + in 11..30 -> return R.color.orangeTextColor.convertColor(context) + in 31..60 -> return Color.parseColor("#FFFF00") + in 61..90 -> return Color.parseColor("#90B030") + in 91..100 -> return Color.parseColor("#33CC33") + } + } catch (e: ClassCastException) { + e.printStackTrace() + } + return R.color.redTextColor.convertColor(context) +} + /** * 时间转月日 */ fun String.dateToMonthDay(): String { val timestamp = this.dateToTimestamp() - val dateFormat = SimpleDateFormat("MM-dd", Locale.CHINA) + val dateFormat = SimpleDateFormat("MM-dd HH:mm", Locale.CHINA) return dateFormat.format(Date(timestamp)) } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt index acde78f..44bdee7 100644 --- a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt +++ b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt @@ -53,7 +53,7 @@ chart.marker = markerView //设置X轴坐标 val xAxis = chart.xAxis - xAxis.labelRotationAngle = -45f +// xAxis.labelRotationAngle = -45f xAxis.valueFormatter = object : ValueFormatter() { override fun getFormattedValue(value: Float): String { return xAxisDate[value.toInt()] diff --git a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt index 292f041..c7c4db0 100644 --- a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt @@ -18,7 +18,6 @@ import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import kotlinx.android.synthetic.main.activity_history_data.* -import kotlinx.android.synthetic.main.include_base_title.* import java.util.* class HistoryDataActivity : KotlinBaseActivity() { @@ -32,7 +31,6 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(false).init() ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) - titleView.text = "历史数据" leftBackView.setOnClickListener { finish() } } @@ -126,32 +124,21 @@ val xAxisLabels: MutableList = ArrayList() val strengthEntryModel = LineChartEntryModel() - val cellEntryModel = LineChartEntryModel() //每个entries都是一条折线 val strengthEntries: ArrayList = ArrayList() - val cellEntries: ArrayList = ArrayList() it.data!!.forEachIndexed { i, rowsBean -> // x 轴坐标 - // 2022-07-06 16:41:00 需要改为 07-06 + // 2022-07-06 16:41:00 需要改为 07-06 16:41 xAxisLabels.add(rowsBean.uptime.dateToMonthDay()) //浓度线 strengthEntries.add( Entry(i.toFloat(), rowsBean.stregnth!!.toFloat(), "浓度") ) - - //电量线 - cellEntries.add( - Entry(i.toFloat(), rowsBean.cell!!.toFloat(), "设备电量") - ) } strengthEntryModel.lineColor = R.color.redTextColor.convertColor(this) strengthEntryModel.entries = strengthEntries ChartViewHelper.setLineChartData(dataLineChart, xAxisLabels, strengthEntryModel) - - cellEntryModel.lineColor = R.color.greenColor.convertColor(this) - cellEntryModel.entries = cellEntries - ChartViewHelper.setLineChartData(batteryDataChart, xAxisLabels, cellEntryModel) } }) } 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 ca0bddd..23b1e91 100644 --- a/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt +++ b/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt @@ -7,14 +7,12 @@ import com.github.mikephil.charting.data.Entry import com.github.mikephil.charting.highlight.Highlight import com.github.mikephil.charting.utils.MPPointF -import java.text.DecimalFormat import java.util.* class LineChartMarkerView(context: Context?) : MarkerView(context, R.layout.popu_line_chart_marker) { private val kTag = "LineChartMarkerView" - private val decimalFormat = DecimalFormat("##0.0") private val dayView: TextView = findViewById(R.id.dayView) private val dataView: TextView = findViewById(R.id.dataView) private var xAxisDate: MutableList = ArrayList() @@ -28,10 +26,7 @@ super.refreshContent(e, highlight) val data = e.data as String try { - when (data) { - "浓度" -> dataView.text = "浓度:${e.y}%" - "设备电量" -> dataView.text = String.format("设备电量:${e.y.toInt()}") - } + dataView.text = "浓度:${e.y}%" dayView.text = xAxisDate[(e.x).toInt()] } catch (e: Exception) { e.printStackTrace() diff --git a/app/src/main/res/layout/activity_history_data.xml b/app/src/main/res/layout/activity_history_data.xml index 28e5366..f6fd64d 100644 --- a/app/src/main/res/layout/activity_history_data.xml +++ b/app/src/main/res/layout/activity_history_data.xml @@ -7,59 +7,37 @@ android:orientation="vertical" tools:context=".view.HistoryDataActivity"> - - + android:layout_height="wrap_content" + android:orientation="horizontal"> - - - - - - - - - - - + - - - - + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index be29277..3d8ef3b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -43,7 +43,9 @@ - + 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 33c4a35..b27d3b4 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -1,7 +1,6 @@ package com.casic.smarttube.adapter import android.content.Context -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -10,12 +9,12 @@ import androidx.recyclerview.widget.RecyclerView import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage +import com.casic.smarttube.extensions.toTextColor import com.casic.smarttube.model.DeviceListModel -import com.pengxh.kt.lite.extensions.toJson import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton class DeviceListAdapter( - context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -34,6 +33,12 @@ holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) holder.deviceCodeView.text = rowsBean.devcode holder.wellNameView.text = String.format("设备名:${rowsBean.deviceName}") + holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { + "0%" + } else { + rowsBean.cell + "%" + } + holder.batteryDataView.setTextColor(rowsBean.cell.toTextColor(context)) holder.snrDataView.text = rowsBean.snr holder.pciDataView.text = rowsBean.pci holder.rsrpDataView.text = rowsBean.rsrp @@ -55,6 +60,7 @@ var batteryView: ImageView = view.findViewById(R.id.batteryView) var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView) var wellNameView: TextView = view.findViewById(R.id.wellNameView) + var batteryDataView: TextView = view.findViewById(R.id.batteryDataView) var snrDataView: TextView = view.findViewById(R.id.snrDataView) var pciDataView: TextView = view.findViewById(R.id.pciDataView) var rsrpDataView: TextView = view.findViewById(R.id.rsrpDataView) 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 32358e3..0305fad 100644 --- a/app/src/main/java/com/casic/smarttube/extensions/String.kt +++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt @@ -1,10 +1,13 @@ package com.casic.smarttube.extensions +import android.content.Context +import android.graphics.Color import com.casic.smarttube.R import com.casic.smarttube.model.ErrorMessageModel import com.casic.smarttube.utils.LocaleConstant import com.google.gson.Gson import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.dateToTimestamp import com.pengxh.kt.lite.utils.SaveKeyValues import org.json.JSONObject @@ -67,11 +70,29 @@ return R.drawable.ic_battery_0 } +fun String.toTextColor(context: Context): Int { + if (this.isBlank()) { + return R.color.redTextColor.convertColor(context) + } + try { + when (this.toInt()) { + in 0..10 -> return R.color.redTextColor.convertColor(context) + in 11..30 -> return R.color.orangeTextColor.convertColor(context) + in 31..60 -> return Color.parseColor("#FFFF00") + in 61..90 -> return Color.parseColor("#90B030") + in 91..100 -> return Color.parseColor("#33CC33") + } + } catch (e: ClassCastException) { + e.printStackTrace() + } + return R.color.redTextColor.convertColor(context) +} + /** * 时间转月日 */ fun String.dateToMonthDay(): String { val timestamp = this.dateToTimestamp() - val dateFormat = SimpleDateFormat("MM-dd", Locale.CHINA) + val dateFormat = SimpleDateFormat("MM-dd HH:mm", Locale.CHINA) return dateFormat.format(Date(timestamp)) } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt index acde78f..44bdee7 100644 --- a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt +++ b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt @@ -53,7 +53,7 @@ chart.marker = markerView //设置X轴坐标 val xAxis = chart.xAxis - xAxis.labelRotationAngle = -45f +// xAxis.labelRotationAngle = -45f xAxis.valueFormatter = object : ValueFormatter() { override fun getFormattedValue(value: Float): String { return xAxisDate[value.toInt()] diff --git a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt index 292f041..c7c4db0 100644 --- a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt @@ -18,7 +18,6 @@ import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import kotlinx.android.synthetic.main.activity_history_data.* -import kotlinx.android.synthetic.main.include_base_title.* import java.util.* class HistoryDataActivity : KotlinBaseActivity() { @@ -32,7 +31,6 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(false).init() ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) - titleView.text = "历史数据" leftBackView.setOnClickListener { finish() } } @@ -126,32 +124,21 @@ val xAxisLabels: MutableList = ArrayList() val strengthEntryModel = LineChartEntryModel() - val cellEntryModel = LineChartEntryModel() //每个entries都是一条折线 val strengthEntries: ArrayList = ArrayList() - val cellEntries: ArrayList = ArrayList() it.data!!.forEachIndexed { i, rowsBean -> // x 轴坐标 - // 2022-07-06 16:41:00 需要改为 07-06 + // 2022-07-06 16:41:00 需要改为 07-06 16:41 xAxisLabels.add(rowsBean.uptime.dateToMonthDay()) //浓度线 strengthEntries.add( Entry(i.toFloat(), rowsBean.stregnth!!.toFloat(), "浓度") ) - - //电量线 - cellEntries.add( - Entry(i.toFloat(), rowsBean.cell!!.toFloat(), "设备电量") - ) } strengthEntryModel.lineColor = R.color.redTextColor.convertColor(this) strengthEntryModel.entries = strengthEntries ChartViewHelper.setLineChartData(dataLineChart, xAxisLabels, strengthEntryModel) - - cellEntryModel.lineColor = R.color.greenColor.convertColor(this) - cellEntryModel.entries = cellEntries - ChartViewHelper.setLineChartData(batteryDataChart, xAxisLabels, cellEntryModel) } }) } 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 ca0bddd..23b1e91 100644 --- a/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt +++ b/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt @@ -7,14 +7,12 @@ import com.github.mikephil.charting.data.Entry import com.github.mikephil.charting.highlight.Highlight import com.github.mikephil.charting.utils.MPPointF -import java.text.DecimalFormat import java.util.* class LineChartMarkerView(context: Context?) : MarkerView(context, R.layout.popu_line_chart_marker) { private val kTag = "LineChartMarkerView" - private val decimalFormat = DecimalFormat("##0.0") private val dayView: TextView = findViewById(R.id.dayView) private val dataView: TextView = findViewById(R.id.dataView) private var xAxisDate: MutableList = ArrayList() @@ -28,10 +26,7 @@ super.refreshContent(e, highlight) val data = e.data as String try { - when (data) { - "浓度" -> dataView.text = "浓度:${e.y}%" - "设备电量" -> dataView.text = String.format("设备电量:${e.y.toInt()}") - } + dataView.text = "浓度:${e.y}%" dayView.text = xAxisDate[(e.x).toInt()] } catch (e: Exception) { e.printStackTrace() diff --git a/app/src/main/res/layout/activity_history_data.xml b/app/src/main/res/layout/activity_history_data.xml index 28e5366..f6fd64d 100644 --- a/app/src/main/res/layout/activity_history_data.xml +++ b/app/src/main/res/layout/activity_history_data.xml @@ -7,59 +7,37 @@ android:orientation="vertical" tools:context=".view.HistoryDataActivity"> - - + android:layout_height="wrap_content" + android:orientation="horizontal"> - - - - - - - - - - - + - - - - + + + \ No newline at end of file diff --git a/app/src/main/res/layout/include_data_excel.xml b/app/src/main/res/layout/include_data_excel.xml index 04f2cd4..c3dc153 100644 --- a/app/src/main/res/layout/include_data_excel.xml +++ b/app/src/main/res/layout/include_data_excel.xml @@ -10,8 +10,21 @@ android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" - android:background="#FAFAFA" - android:weightSum="4"> + android:background="#FAFAFA"> + + + + + + + +