diff --git a/app/src/main/java/com/casic/smart/town/sanxi/adapter/DeviceRecyclerAdapter.kt b/app/src/main/java/com/casic/smart/town/sanxi/adapter/DeviceRecyclerAdapter.kt deleted file mode 100644 index 4f86f23..0000000 --- a/app/src/main/java/com/casic/smart/town/sanxi/adapter/DeviceRecyclerAdapter.kt +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.smart.town.sanxi.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.smart.town.sanxi.R -import com.casic.smart.town.sanxi.model.DeviceModel - -class DeviceRecyclerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_statistics_device_rv_g, parent, false) - ) - - override fun getItemCount(): Int = dataRows.size - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - val dataModel = dataRows[position] - - holder.onLineStateView.text = dataModel.onLineState - holder.offLineStateView.text = dataModel.offLineState - holder.deviceTypeView.text = dataModel.deviceType - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val onLineStateView: TextView = itemView.findViewById(R.id.onLineStateView) - val offLineStateView: TextView = itemView.findViewById(R.id.offLineStateView) - val deviceTypeView: TextView = itemView.findViewById(R.id.deviceTypeView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/smart/town/sanxi/adapter/DeviceRecyclerAdapter.kt b/app/src/main/java/com/casic/smart/town/sanxi/adapter/DeviceRecyclerAdapter.kt deleted file mode 100644 index 4f86f23..0000000 --- a/app/src/main/java/com/casic/smart/town/sanxi/adapter/DeviceRecyclerAdapter.kt +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.smart.town.sanxi.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.smart.town.sanxi.R -import com.casic.smart.town.sanxi.model.DeviceModel - -class DeviceRecyclerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_statistics_device_rv_g, parent, false) - ) - - override fun getItemCount(): Int = dataRows.size - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - val dataModel = dataRows[position] - - holder.onLineStateView.text = dataModel.onLineState - holder.offLineStateView.text = dataModel.offLineState - holder.deviceTypeView.text = dataModel.deviceType - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val onLineStateView: TextView = itemView.findViewById(R.id.onLineStateView) - val offLineStateView: TextView = itemView.findViewById(R.id.offLineStateView) - val deviceTypeView: TextView = itemView.findViewById(R.id.deviceTypeView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/smart/town/sanxi/adapter/InfrastructureAdapter.kt b/app/src/main/java/com/casic/smart/town/sanxi/adapter/InfrastructureAdapter.kt deleted file mode 100644 index 2ec96d3..0000000 --- a/app/src/main/java/com/casic/smart/town/sanxi/adapter/InfrastructureAdapter.kt +++ /dev/null @@ -1,35 +0,0 @@ -package com.casic.smart.town.sanxi.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.smart.town.sanxi.R -import com.casic.smart.town.sanxi.model.InfrastructureModel - -class InfrastructureAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_statistics_infrastructure_rv_g, parent, false) - ) - - override fun getItemCount(): Int = dataRows.size - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - val dataModel = dataRows[position] - - holder.facilitiesQuantityView.text = dataModel.facilitiesQuantity.toString() - holder.facilitiesNameView.text = dataModel.facilitiesName - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val facilitiesQuantityView: TextView = itemView.findViewById(R.id.facilitiesQuantityView) - val facilitiesNameView: TextView = itemView.findViewById(R.id.facilitiesNameView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/smart/town/sanxi/adapter/DeviceRecyclerAdapter.kt b/app/src/main/java/com/casic/smart/town/sanxi/adapter/DeviceRecyclerAdapter.kt deleted file mode 100644 index 4f86f23..0000000 --- a/app/src/main/java/com/casic/smart/town/sanxi/adapter/DeviceRecyclerAdapter.kt +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.smart.town.sanxi.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.smart.town.sanxi.R -import com.casic.smart.town.sanxi.model.DeviceModel - -class DeviceRecyclerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_statistics_device_rv_g, parent, false) - ) - - override fun getItemCount(): Int = dataRows.size - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - val dataModel = dataRows[position] - - holder.onLineStateView.text = dataModel.onLineState - holder.offLineStateView.text = dataModel.offLineState - holder.deviceTypeView.text = dataModel.deviceType - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val onLineStateView: TextView = itemView.findViewById(R.id.onLineStateView) - val offLineStateView: TextView = itemView.findViewById(R.id.offLineStateView) - val deviceTypeView: TextView = itemView.findViewById(R.id.deviceTypeView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/smart/town/sanxi/adapter/InfrastructureAdapter.kt b/app/src/main/java/com/casic/smart/town/sanxi/adapter/InfrastructureAdapter.kt deleted file mode 100644 index 2ec96d3..0000000 --- a/app/src/main/java/com/casic/smart/town/sanxi/adapter/InfrastructureAdapter.kt +++ /dev/null @@ -1,35 +0,0 @@ -package com.casic.smart.town.sanxi.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.smart.town.sanxi.R -import com.casic.smart.town.sanxi.model.InfrastructureModel - -class InfrastructureAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_statistics_infrastructure_rv_g, parent, false) - ) - - override fun getItemCount(): Int = dataRows.size - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - val dataModel = dataRows[position] - - holder.facilitiesQuantityView.text = dataModel.facilitiesQuantity.toString() - holder.facilitiesNameView.text = dataModel.facilitiesName - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val facilitiesQuantityView: TextView = itemView.findViewById(R.id.facilitiesQuantityView) - val facilitiesNameView: TextView = itemView.findViewById(R.id.facilitiesNameView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/smart/town/sanxi/adapter/OrderNotProcessedAdapter.kt b/app/src/main/java/com/casic/smart/town/sanxi/adapter/OrderNotProcessedAdapter.kt deleted file mode 100644 index 72405e1..0000000 --- a/app/src/main/java/com/casic/smart/town/sanxi/adapter/OrderNotProcessedAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.smart.town.sanxi.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.smart.town.sanxi.R -import com.casic.smart.town.sanxi.model.OrderListModel -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class OrderNotProcessedAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_order_not_processed_rv, parent, false) - ) - - override fun getItemCount(): Int = dataRows.size - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.alarmContentView.text = rowsBean.alarmContentName - holder.createTimeView.text = rowsBean.createTime - holder.wellCodeView.text = String.format("点位编号:${rowsBean.wellCode}") - val alarmValue = if (rowsBean.alarmValue.toString().isBlank()) { - "报警值:未知" - } else { - "报警值:" + rowsBean.alarmValue - } - holder.alarmValueView.text = alarmValue - holder.wellLocationView.text = String.format("点位置:${rowsBean.position}") - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onClicked(position) - } - holder.operationButton.setChangeAlphaWhenPress(true) - holder.operationButton.setOnClickListener { - listener?.onOperationClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var alarmContentView: TextView = view.findViewById(R.id.alarmContentView) - var createTimeView: TextView = view.findViewById(R.id.createTimeView) - var wellCodeView: TextView = view.findViewById(R.id.wellCodeView) - var alarmValueView: TextView = view.findViewById(R.id.alarmValueView) - var wellLocationView: TextView = view.findViewById(R.id.wellLocationView) - var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onClicked(position: Int) - - fun onOperationClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/smart/town/sanxi/adapter/DeviceRecyclerAdapter.kt b/app/src/main/java/com/casic/smart/town/sanxi/adapter/DeviceRecyclerAdapter.kt deleted file mode 100644 index 4f86f23..0000000 --- a/app/src/main/java/com/casic/smart/town/sanxi/adapter/DeviceRecyclerAdapter.kt +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.smart.town.sanxi.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.smart.town.sanxi.R -import com.casic.smart.town.sanxi.model.DeviceModel - -class DeviceRecyclerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_statistics_device_rv_g, parent, false) - ) - - override fun getItemCount(): Int = dataRows.size - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - val dataModel = dataRows[position] - - holder.onLineStateView.text = dataModel.onLineState - holder.offLineStateView.text = dataModel.offLineState - holder.deviceTypeView.text = dataModel.deviceType - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val onLineStateView: TextView = itemView.findViewById(R.id.onLineStateView) - val offLineStateView: TextView = itemView.findViewById(R.id.offLineStateView) - val deviceTypeView: TextView = itemView.findViewById(R.id.deviceTypeView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/smart/town/sanxi/adapter/InfrastructureAdapter.kt b/app/src/main/java/com/casic/smart/town/sanxi/adapter/InfrastructureAdapter.kt deleted file mode 100644 index 2ec96d3..0000000 --- a/app/src/main/java/com/casic/smart/town/sanxi/adapter/InfrastructureAdapter.kt +++ /dev/null @@ -1,35 +0,0 @@ -package com.casic.smart.town.sanxi.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.smart.town.sanxi.R -import com.casic.smart.town.sanxi.model.InfrastructureModel - -class InfrastructureAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_statistics_infrastructure_rv_g, parent, false) - ) - - override fun getItemCount(): Int = dataRows.size - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - val dataModel = dataRows[position] - - holder.facilitiesQuantityView.text = dataModel.facilitiesQuantity.toString() - holder.facilitiesNameView.text = dataModel.facilitiesName - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val facilitiesQuantityView: TextView = itemView.findViewById(R.id.facilitiesQuantityView) - val facilitiesNameView: TextView = itemView.findViewById(R.id.facilitiesNameView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/smart/town/sanxi/adapter/OrderNotProcessedAdapter.kt b/app/src/main/java/com/casic/smart/town/sanxi/adapter/OrderNotProcessedAdapter.kt deleted file mode 100644 index 72405e1..0000000 --- a/app/src/main/java/com/casic/smart/town/sanxi/adapter/OrderNotProcessedAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.smart.town.sanxi.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.smart.town.sanxi.R -import com.casic.smart.town.sanxi.model.OrderListModel -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class OrderNotProcessedAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_order_not_processed_rv, parent, false) - ) - - override fun getItemCount(): Int = dataRows.size - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.alarmContentView.text = rowsBean.alarmContentName - holder.createTimeView.text = rowsBean.createTime - holder.wellCodeView.text = String.format("点位编号:${rowsBean.wellCode}") - val alarmValue = if (rowsBean.alarmValue.toString().isBlank()) { - "报警值:未知" - } else { - "报警值:" + rowsBean.alarmValue - } - holder.alarmValueView.text = alarmValue - holder.wellLocationView.text = String.format("点位置:${rowsBean.position}") - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onClicked(position) - } - holder.operationButton.setChangeAlphaWhenPress(true) - holder.operationButton.setOnClickListener { - listener?.onOperationClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var alarmContentView: TextView = view.findViewById(R.id.alarmContentView) - var createTimeView: TextView = view.findViewById(R.id.createTimeView) - var wellCodeView: TextView = view.findViewById(R.id.wellCodeView) - var alarmValueView: TextView = view.findViewById(R.id.alarmValueView) - var wellLocationView: TextView = view.findViewById(R.id.wellLocationView) - var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onClicked(position: Int) - - fun onOperationClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt index 6638e7c..895c56b 100644 --- a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt +++ b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt @@ -3,9 +3,8 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.smart.town.sanxi.R -import com.casic.smart.town.sanxi.adapter.DeviceRecyclerAdapter -import com.casic.smart.town.sanxi.adapter.InfrastructureAdapter import com.casic.smart.town.sanxi.model.DeviceModel +import com.casic.smart.town.sanxi.model.InfrastructureModel import com.casic.smart.town.sanxi.util.ChartViewHelper import com.casic.smart.town.sanxi.util.LocaleConstant import com.casic.smart.town.sanxi.view.AllWellActivity @@ -17,6 +16,8 @@ import com.casic.smart.town.sanxi.vm.WellViewModel import com.github.mikephil.charting.data.BarEntry import com.github.mikephil.charting.data.Entry +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.timestampToCompleteDate @@ -125,13 +126,34 @@ deviceRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - deviceRecyclerView.adapter = DeviceRecyclerAdapter(requireContext(), dateRows) + deviceRecyclerView.adapter = object : NormalRecyclerAdapter( + R.layout.item_statistics_device_rv_g, dateRows + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, item: DeviceModel.DataModel + ) { + viewHolder.setText(R.id.onLineStateView, item.onLineState) + .setText(R.id.offLineStateView, item.offLineState) + .setText(R.id.deviceTypeView, item.deviceType) + } + } } } infrastructureViewModel.resultModel.observe(this) { if (it.code == 200) { - infrastructureRv.adapter = InfrastructureAdapter(requireContext(), it.data) + infrastructureRv.adapter = object : + NormalRecyclerAdapter( + R.layout.item_statistics_infrastructure_rv_g, it.data + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, item: InfrastructureModel.DataModel + ) { + viewHolder.setText( + R.id.facilitiesQuantityView, item.facilitiesQuantity.toString() + ).setText(R.id.facilitiesNameView, item.facilitiesName) + } + } SaveKeyValues.putValue(LocaleConstant.INFRASTRUCTURE, it.toJson()) } } diff --git a/app/src/main/java/com/casic/smart/town/sanxi/adapter/DeviceRecyclerAdapter.kt b/app/src/main/java/com/casic/smart/town/sanxi/adapter/DeviceRecyclerAdapter.kt deleted file mode 100644 index 4f86f23..0000000 --- a/app/src/main/java/com/casic/smart/town/sanxi/adapter/DeviceRecyclerAdapter.kt +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.smart.town.sanxi.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.smart.town.sanxi.R -import com.casic.smart.town.sanxi.model.DeviceModel - -class DeviceRecyclerAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_statistics_device_rv_g, parent, false) - ) - - override fun getItemCount(): Int = dataRows.size - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - val dataModel = dataRows[position] - - holder.onLineStateView.text = dataModel.onLineState - holder.offLineStateView.text = dataModel.offLineState - holder.deviceTypeView.text = dataModel.deviceType - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val onLineStateView: TextView = itemView.findViewById(R.id.onLineStateView) - val offLineStateView: TextView = itemView.findViewById(R.id.offLineStateView) - val deviceTypeView: TextView = itemView.findViewById(R.id.deviceTypeView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/smart/town/sanxi/adapter/InfrastructureAdapter.kt b/app/src/main/java/com/casic/smart/town/sanxi/adapter/InfrastructureAdapter.kt deleted file mode 100644 index 2ec96d3..0000000 --- a/app/src/main/java/com/casic/smart/town/sanxi/adapter/InfrastructureAdapter.kt +++ /dev/null @@ -1,35 +0,0 @@ -package com.casic.smart.town.sanxi.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.smart.town.sanxi.R -import com.casic.smart.town.sanxi.model.InfrastructureModel - -class InfrastructureAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_statistics_infrastructure_rv_g, parent, false) - ) - - override fun getItemCount(): Int = dataRows.size - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - val dataModel = dataRows[position] - - holder.facilitiesQuantityView.text = dataModel.facilitiesQuantity.toString() - holder.facilitiesNameView.text = dataModel.facilitiesName - } - - class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val facilitiesQuantityView: TextView = itemView.findViewById(R.id.facilitiesQuantityView) - val facilitiesNameView: TextView = itemView.findViewById(R.id.facilitiesNameView) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/smart/town/sanxi/adapter/OrderNotProcessedAdapter.kt b/app/src/main/java/com/casic/smart/town/sanxi/adapter/OrderNotProcessedAdapter.kt deleted file mode 100644 index 72405e1..0000000 --- a/app/src/main/java/com/casic/smart/town/sanxi/adapter/OrderNotProcessedAdapter.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.smart.town.sanxi.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.casic.smart.town.sanxi.R -import com.casic.smart.town.sanxi.model.OrderListModel -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class OrderNotProcessedAdapter( - context: Context, private val dataRows: MutableList -) : RecyclerView.Adapter() { - - private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( - layoutInflater.inflate(R.layout.item_order_not_processed_rv, parent, false) - ) - - override fun getItemCount(): Int = dataRows.size - - override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - //绑定数据 - val rowsBean = dataRows[position] - holder.alarmContentView.text = rowsBean.alarmContentName - holder.createTimeView.text = rowsBean.createTime - holder.wellCodeView.text = String.format("点位编号:${rowsBean.wellCode}") - val alarmValue = if (rowsBean.alarmValue.toString().isBlank()) { - "报警值:未知" - } else { - "报警值:" + rowsBean.alarmValue - } - holder.alarmValueView.text = alarmValue - holder.wellLocationView.text = String.format("点位置:${rowsBean.position}") - //绑定事件 - holder.itemView.setOnClickListener { - listener?.onClicked(position) - } - holder.operationButton.setChangeAlphaWhenPress(true) - holder.operationButton.setOnClickListener { - listener?.onOperationClicked(position) - } - } - - inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { - var alarmContentView: TextView = view.findViewById(R.id.alarmContentView) - var createTimeView: TextView = view.findViewById(R.id.createTimeView) - var wellCodeView: TextView = view.findViewById(R.id.wellCodeView) - var alarmValueView: TextView = view.findViewById(R.id.alarmValueView) - var wellLocationView: TextView = view.findViewById(R.id.wellLocationView) - var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onClicked(position: Int) - - fun onOperationClicked(position: Int) - } - - fun setOnItemClickListener(onClickListener: OnItemClickListener?) { - this.listener = onClickListener - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt index 6638e7c..895c56b 100644 --- a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt +++ b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt @@ -3,9 +3,8 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.smart.town.sanxi.R -import com.casic.smart.town.sanxi.adapter.DeviceRecyclerAdapter -import com.casic.smart.town.sanxi.adapter.InfrastructureAdapter import com.casic.smart.town.sanxi.model.DeviceModel +import com.casic.smart.town.sanxi.model.InfrastructureModel import com.casic.smart.town.sanxi.util.ChartViewHelper import com.casic.smart.town.sanxi.util.LocaleConstant import com.casic.smart.town.sanxi.view.AllWellActivity @@ -17,6 +16,8 @@ import com.casic.smart.town.sanxi.vm.WellViewModel import com.github.mikephil.charting.data.BarEntry import com.github.mikephil.charting.data.Entry +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.timestampToCompleteDate @@ -125,13 +126,34 @@ deviceRecyclerView.addItemDecoration( DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) - deviceRecyclerView.adapter = DeviceRecyclerAdapter(requireContext(), dateRows) + deviceRecyclerView.adapter = object : NormalRecyclerAdapter( + R.layout.item_statistics_device_rv_g, dateRows + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, item: DeviceModel.DataModel + ) { + viewHolder.setText(R.id.onLineStateView, item.onLineState) + .setText(R.id.offLineStateView, item.offLineState) + .setText(R.id.deviceTypeView, item.deviceType) + } + } } } infrastructureViewModel.resultModel.observe(this) { if (it.code == 200) { - infrastructureRv.adapter = InfrastructureAdapter(requireContext(), it.data) + infrastructureRv.adapter = object : + NormalRecyclerAdapter( + R.layout.item_statistics_infrastructure_rv_g, it.data + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, item: InfrastructureModel.DataModel + ) { + viewHolder.setText( + R.id.facilitiesQuantityView, item.facilitiesQuantity.toString() + ).setText(R.id.facilitiesNameView, item.facilitiesName) + } + } SaveKeyValues.putValue(LocaleConstant.INFRASTRUCTURE, it.toJson()) } } diff --git a/app/src/main/java/com/casic/smart/town/sanxi/fragment/order/NotProcessedFragment.kt b/app/src/main/java/com/casic/smart/town/sanxi/fragment/order/NotProcessedFragment.kt index 403741a..d487036 100644 --- a/app/src/main/java/com/casic/smart/town/sanxi/fragment/order/NotProcessedFragment.kt +++ b/app/src/main/java/com/casic/smart/town/sanxi/fragment/order/NotProcessedFragment.kt @@ -1,15 +1,17 @@ package com.casic.smart.town.sanxi.fragment.order import android.os.Handler +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.smart.town.sanxi.R -import com.casic.smart.town.sanxi.adapter.OrderNotProcessedAdapter import com.casic.smart.town.sanxi.extensions.showEmptyPage import com.casic.smart.town.sanxi.model.OrderListModel import com.casic.smart.town.sanxi.util.LoadingDialogHub import com.casic.smart.town.sanxi.view.order.NotProcessedDetailActivity import com.casic.smart.town.sanxi.vm.OperationViewModel import com.casic.smart.town.sanxi.vm.OrderListViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -24,7 +26,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var orderListViewModel: OrderListViewModel private lateinit var operationViewModel: OperationViewModel - private lateinit var notProcessedAdapter: OrderNotProcessedAdapter + private lateinit var notProcessedAdapter: NormalRecyclerAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -35,7 +37,7 @@ override fun observeRequestState() { //接单状态处理 - operationViewModel.loadState.observe(this, { + operationViewModel.loadState.observe(this) { when (it) { is LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "接单中,请稍后") is LoadState.Success -> { @@ -49,7 +51,7 @@ } else -> LoadingDialogHub.dismiss() } - }) + } } override fun setupTopBarLayout() { @@ -61,7 +63,7 @@ orderListViewModel = ViewModelProvider(this)[OrderListViewModel::class.java] operationViewModel = ViewModelProvider(this)[OperationViewModel::class.java] - orderListViewModel.resultModel.observe(this, { + orderListViewModel.resultModel.observe(this) { if (it.code == 200) { val dataRows = it.data?.rows when { @@ -85,7 +87,7 @@ } weakReferenceHandler.sendEmptyMessage(2022111003) } - }) + } } override fun initEvent() { @@ -124,44 +126,70 @@ } } else { emptyView!!.hide() - notProcessedAdapter = OrderNotProcessedAdapter(requireContext(), dataBeans) + notProcessedAdapter = object : + NormalRecyclerAdapter( + R.layout.item_order_not_processed_rv, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, + position: Int, + item: OrderListModel.DataBean.RowsBean + ) { + val alarmValue = if (item.alarmValue.toString().isBlank()) { + "报警值:未知" + } else { + "报警值:" + item.alarmValue + } + viewHolder.setText(R.id.alarmContentView, item.alarmContentName) + .setText(R.id.createTimeView, item.createTime) + .setText(R.id.wellCodeView, "点位编号:${item.wellCode}") + .setText(R.id.alarmValueView, alarmValue) + .setText(R.id.wellLocationView, "点位置:${item.position}") + + viewHolder.setOnClickListener( + R.id.operationButton, + object : View.OnClickListener { + override fun onClick(v: View?) { + //标记被点击的item位置 + clickedPosition = position + AlertControlDialog.Builder() + .setContext(requireContext()) + .setTitle("操作提示") + .setMessage("确定要接单吗") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val jobId = dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单ID异常,无法接单".show(requireContext()) + return + } + operationViewModel.acceptWorkOrder(jobId) + } + + override fun onCancelClick() { + + } + }).build().show() + } + }) + } + } orderRecyclerView!!.adapter = notProcessedAdapter - notProcessedAdapter.setOnItemClickListener(object : - OrderNotProcessedAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val jobId = dataBeans[position].jobId.toString() + notProcessedAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: OrderListModel.DataBean.RowsBean + ) { + val jobId = t.jobId.toString() if (jobId.isBlank()) { "工单编号异常,无法查看详情".show(requireContext()) return } requireContext().navigatePageTo(jobId) } - - override fun onOperationClicked(position: Int) { - //标记被点击的item位置 - clickedPosition = position - AlertControlDialog.Builder() - .setContext(requireContext()) - .setTitle("操作提示") - .setMessage("确定要接单吗") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(object : - AlertControlDialog.OnDialogButtonClickListener { - override fun onConfirmClick() { - val jobId = dataBeans[position].jobId.toString() - if (jobId.isBlank()) { - "工单ID异常,无法接单".show(requireContext()) - return - } - operationViewModel.acceptWorkOrder(jobId) - } - - override fun onCancelClick() { - - } - }).build().show() - } }) } }