diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java index acfe225..21e2c76 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java @@ -2,9 +2,8 @@ public class DeviceDetailModel { - private int code; - private DataBean data; + private DataModel data; private String message; private String success; @@ -16,11 +15,11 @@ this.code = code; } - public DataBean getData() { + public DataModel getData() { return data; } - public void setData(DataBean data) { + public void setData(DataModel data) { this.data = data; } @@ -40,22 +39,33 @@ this.success = success; } - public static class DataBean { + public static class DataModel { + private String isUse; private String wellCode; private String groupId; private String rsrp; private String cell; private String stregnth; + private String descn; + private String photos; private String deviceName; private String uptime; private String devcode; private String lngGaode; private String latGaode; + private String installDate; private String snr; private String pci; - private String id; private String onlineState; + public String getIsUse() { + return isUse; + } + + public void setIsUse(String isUse) { + this.isUse = isUse; + } + public String getWellCode() { return wellCode; } @@ -96,6 +106,22 @@ this.stregnth = stregnth; } + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + public String getDeviceName() { return deviceName; } @@ -136,6 +162,14 @@ this.latGaode = latGaode; } + public String getInstallDate() { + return installDate; + } + + public void setInstallDate(String installDate) { + this.installDate = installDate; + } + public String getSnr() { return snr; } @@ -152,14 +186,6 @@ this.pci = pci; } - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - public String getOnlineState() { return onlineState; } diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java index acfe225..21e2c76 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java @@ -2,9 +2,8 @@ public class DeviceDetailModel { - private int code; - private DataBean data; + private DataModel data; private String message; private String success; @@ -16,11 +15,11 @@ this.code = code; } - public DataBean getData() { + public DataModel getData() { return data; } - public void setData(DataBean data) { + public void setData(DataModel data) { this.data = data; } @@ -40,22 +39,33 @@ this.success = success; } - public static class DataBean { + public static class DataModel { + private String isUse; private String wellCode; private String groupId; private String rsrp; private String cell; private String stregnth; + private String descn; + private String photos; private String deviceName; private String uptime; private String devcode; private String lngGaode; private String latGaode; + private String installDate; private String snr; private String pci; - private String id; private String onlineState; + public String getIsUse() { + return isUse; + } + + public void setIsUse(String isUse) { + this.isUse = isUse; + } + public String getWellCode() { return wellCode; } @@ -96,6 +106,22 @@ this.stregnth = stregnth; } + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + public String getDeviceName() { return deviceName; } @@ -136,6 +162,14 @@ this.latGaode = latGaode; } + public String getInstallDate() { + return installDate; + } + + public void setInstallDate(String installDate) { + this.installDate = installDate; + } + public String getSnr() { return snr; } @@ -152,14 +186,6 @@ this.pci = pci; } - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - public String getOnlineState() { return onlineState; } diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java index 7073dab..fddb074 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java @@ -50,6 +50,7 @@ private String deviceName; private String uptime; private String tubeId; + private String deviceId; private String devcode; private String lngGaode; private String latGaode; @@ -122,6 +123,14 @@ this.tubeId = tubeId; } + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + public String getDevcode() { return devcode; } diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java index acfe225..21e2c76 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java @@ -2,9 +2,8 @@ public class DeviceDetailModel { - private int code; - private DataBean data; + private DataModel data; private String message; private String success; @@ -16,11 +15,11 @@ this.code = code; } - public DataBean getData() { + public DataModel getData() { return data; } - public void setData(DataBean data) { + public void setData(DataModel data) { this.data = data; } @@ -40,22 +39,33 @@ this.success = success; } - public static class DataBean { + public static class DataModel { + private String isUse; private String wellCode; private String groupId; private String rsrp; private String cell; private String stregnth; + private String descn; + private String photos; private String deviceName; private String uptime; private String devcode; private String lngGaode; private String latGaode; + private String installDate; private String snr; private String pci; - private String id; private String onlineState; + public String getIsUse() { + return isUse; + } + + public void setIsUse(String isUse) { + this.isUse = isUse; + } + public String getWellCode() { return wellCode; } @@ -96,6 +106,22 @@ this.stregnth = stregnth; } + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + public String getDeviceName() { return deviceName; } @@ -136,6 +162,14 @@ this.latGaode = latGaode; } + public String getInstallDate() { + return installDate; + } + + public void setInstallDate(String installDate) { + this.installDate = installDate; + } + public String getSnr() { return snr; } @@ -152,14 +186,6 @@ this.pci = pci; } - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - public String getOnlineState() { return onlineState; } diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java index 7073dab..fddb074 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java @@ -50,6 +50,7 @@ private String deviceName; private String uptime; private String tubeId; + private String deviceId; private String devcode; private String lngGaode; private String latGaode; @@ -122,6 +123,14 @@ this.tubeId = tubeId; } + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + public String getDevcode() { return devcode; } diff --git a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt index d0786e8..d8ee265 100644 --- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt @@ -18,6 +18,8 @@ ) val POPUP_IMAGES = intArrayOf(R.drawable.ic_menu_map, R.drawable.ic_satellite) val POPUP_TITLES = arrayOf("标准地图", "卫星地图") + val DEVICE_OPERATE_IMAGES = intArrayOf(R.drawable.ic_order, R.drawable.ic_delete_white) + val DEVICE_OPERATE_TITLES = arrayOf("浓度排序", "批量删除") /** * ============================================================================================= diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java index acfe225..21e2c76 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java @@ -2,9 +2,8 @@ public class DeviceDetailModel { - private int code; - private DataBean data; + private DataModel data; private String message; private String success; @@ -16,11 +15,11 @@ this.code = code; } - public DataBean getData() { + public DataModel getData() { return data; } - public void setData(DataBean data) { + public void setData(DataModel data) { this.data = data; } @@ -40,22 +39,33 @@ this.success = success; } - public static class DataBean { + public static class DataModel { + private String isUse; private String wellCode; private String groupId; private String rsrp; private String cell; private String stregnth; + private String descn; + private String photos; private String deviceName; private String uptime; private String devcode; private String lngGaode; private String latGaode; + private String installDate; private String snr; private String pci; - private String id; private String onlineState; + public String getIsUse() { + return isUse; + } + + public void setIsUse(String isUse) { + this.isUse = isUse; + } + public String getWellCode() { return wellCode; } @@ -96,6 +106,22 @@ this.stregnth = stregnth; } + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + public String getDeviceName() { return deviceName; } @@ -136,6 +162,14 @@ this.latGaode = latGaode; } + public String getInstallDate() { + return installDate; + } + + public void setInstallDate(String installDate) { + this.installDate = installDate; + } + public String getSnr() { return snr; } @@ -152,14 +186,6 @@ this.pci = pci; } - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - public String getOnlineState() { return onlineState; } diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java index 7073dab..fddb074 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java @@ -50,6 +50,7 @@ private String deviceName; private String uptime; private String tubeId; + private String deviceId; private String devcode; private String lngGaode; private String latGaode; @@ -122,6 +123,14 @@ this.tubeId = tubeId; } + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + public String getDevcode() { return devcode; } diff --git a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt index d0786e8..d8ee265 100644 --- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt @@ -18,6 +18,8 @@ ) val POPUP_IMAGES = intArrayOf(R.drawable.ic_menu_map, R.drawable.ic_satellite) val POPUP_TITLES = arrayOf("标准地图", "卫星地图") + val DEVICE_OPERATE_IMAGES = intArrayOf(R.drawable.ic_order, R.drawable.ic_delete_white) + val DEVICE_OPERATE_TITLES = arrayOf("浓度排序", "批量删除") /** * ============================================================================================= 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 988d02e..781965e 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -1,5 +1,8 @@ package com.casic.smarttube.view +import android.graphics.Color +import android.util.Log +import android.view.View import androidx.lifecycle.ViewModelProvider import com.amap.api.services.core.LatLonPoint import com.amap.api.services.geocoder.GeocodeResult @@ -7,11 +10,15 @@ import com.amap.api.services.geocoder.RegeocodeQuery import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R +import com.casic.smarttube.extensions.combineImagePath import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.vm.DeviceViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState @@ -20,6 +27,7 @@ class DeviceDetailActivity : KotlinBaseActivity() { + private val kTag = "DeviceDetailActivity" private lateinit var dialogManager: DialogManager private lateinit var deviceViewModel: DeviceViewModel private val geocoderSearch by lazy { GeocodeSearch(this) } @@ -67,39 +75,43 @@ } }) } - //TODO 描述 + descriptionView.text = device.descn - //TODO 图片 -// if (orderDetail.firstStatePhotos.toString().isBlank()) { -// imageGridView.visibility = View.GONE -// } else { -// imageGridView.visibility = View.VISIBLE -// //处理图片地址 -// val urls: ArrayList = ArrayList() -// val imageArray = orderDetail.firstStatePhotos.toString().split(",") -// imageArray.forEach { path -> -// if (path.isNotBlank()) { -// urls.add(path.combineImagePath()) -// } -// } -// val imageAdapter = ReadOnlyImageAdapter(this) -// imageAdapter.setImageList(urls) -// imageGridView.adapter = imageAdapter -// imageGridView.setOnItemClickListener { _, _, position, _ -> -// if (urls[position].isEmpty()) { -// "图片加载失败,无法查看大图".show(this) -// } else { -// navigatePageTo(position, urls) -// } -// } -// } + if (device.photos.toString().isBlank()) { + imageGridView.visibility = View.GONE + } else { + imageGridView.visibility = View.VISIBLE + //处理图片地址 + val urls: ArrayList = ArrayList() + val imageArray = device.photos.toString().split(",") + imageArray.forEach { path -> + if (path.isNotBlank()) { + urls.add(path.combineImagePath()) + } + } + urls.forEach { url -> + Log.d(kTag, url) + } + val imageAdapter = ReadOnlyImageAdapter(this) + imageAdapter.setImageList(urls) + imageGridView.adapter = imageAdapter + imageGridView.setOnItemClickListener { _, _, position, _ -> + if (urls[position].isEmpty()) { + "图片加载失败,无法查看大图".show(this) + } else { + navigatePageTo(position, urls) + } + } + } densityView.text = device.stregnth lastDataView.text = device.uptime - deviceStateView.text = if (device.onlineState == "0") { - "离线" + if (device.onlineState == "0") { + deviceStateView.text = "离线" + deviceStateView.setTextColor(Color.RED) } else { - "在线" + deviceStateView.text = "在线" + deviceStateView.setTextColor(Color.GREEN) } deviceRsrpView.text = device.rsrp deviceBatteryView.text = device.cell diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java index acfe225..21e2c76 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java @@ -2,9 +2,8 @@ public class DeviceDetailModel { - private int code; - private DataBean data; + private DataModel data; private String message; private String success; @@ -16,11 +15,11 @@ this.code = code; } - public DataBean getData() { + public DataModel getData() { return data; } - public void setData(DataBean data) { + public void setData(DataModel data) { this.data = data; } @@ -40,22 +39,33 @@ this.success = success; } - public static class DataBean { + public static class DataModel { + private String isUse; private String wellCode; private String groupId; private String rsrp; private String cell; private String stregnth; + private String descn; + private String photos; private String deviceName; private String uptime; private String devcode; private String lngGaode; private String latGaode; + private String installDate; private String snr; private String pci; - private String id; private String onlineState; + public String getIsUse() { + return isUse; + } + + public void setIsUse(String isUse) { + this.isUse = isUse; + } + public String getWellCode() { return wellCode; } @@ -96,6 +106,22 @@ this.stregnth = stregnth; } + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + public String getDeviceName() { return deviceName; } @@ -136,6 +162,14 @@ this.latGaode = latGaode; } + public String getInstallDate() { + return installDate; + } + + public void setInstallDate(String installDate) { + this.installDate = installDate; + } + public String getSnr() { return snr; } @@ -152,14 +186,6 @@ this.pci = pci; } - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - public String getOnlineState() { return onlineState; } diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java index 7073dab..fddb074 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java @@ -50,6 +50,7 @@ private String deviceName; private String uptime; private String tubeId; + private String deviceId; private String devcode; private String lngGaode; private String latGaode; @@ -122,6 +123,14 @@ this.tubeId = tubeId; } + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + public String getDevcode() { return devcode; } diff --git a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt index d0786e8..d8ee265 100644 --- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt @@ -18,6 +18,8 @@ ) val POPUP_IMAGES = intArrayOf(R.drawable.ic_menu_map, R.drawable.ic_satellite) val POPUP_TITLES = arrayOf("标准地图", "卫星地图") + val DEVICE_OPERATE_IMAGES = intArrayOf(R.drawable.ic_order, R.drawable.ic_delete_white) + val DEVICE_OPERATE_TITLES = arrayOf("浓度排序", "批量删除") /** * ============================================================================================= 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 988d02e..781965e 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -1,5 +1,8 @@ package com.casic.smarttube.view +import android.graphics.Color +import android.util.Log +import android.view.View import androidx.lifecycle.ViewModelProvider import com.amap.api.services.core.LatLonPoint import com.amap.api.services.geocoder.GeocodeResult @@ -7,11 +10,15 @@ import com.amap.api.services.geocoder.RegeocodeQuery import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R +import com.casic.smarttube.extensions.combineImagePath import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.vm.DeviceViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState @@ -20,6 +27,7 @@ class DeviceDetailActivity : KotlinBaseActivity() { + private val kTag = "DeviceDetailActivity" private lateinit var dialogManager: DialogManager private lateinit var deviceViewModel: DeviceViewModel private val geocoderSearch by lazy { GeocodeSearch(this) } @@ -67,39 +75,43 @@ } }) } - //TODO 描述 + descriptionView.text = device.descn - //TODO 图片 -// if (orderDetail.firstStatePhotos.toString().isBlank()) { -// imageGridView.visibility = View.GONE -// } else { -// imageGridView.visibility = View.VISIBLE -// //处理图片地址 -// val urls: ArrayList = ArrayList() -// val imageArray = orderDetail.firstStatePhotos.toString().split(",") -// imageArray.forEach { path -> -// if (path.isNotBlank()) { -// urls.add(path.combineImagePath()) -// } -// } -// val imageAdapter = ReadOnlyImageAdapter(this) -// imageAdapter.setImageList(urls) -// imageGridView.adapter = imageAdapter -// imageGridView.setOnItemClickListener { _, _, position, _ -> -// if (urls[position].isEmpty()) { -// "图片加载失败,无法查看大图".show(this) -// } else { -// navigatePageTo(position, urls) -// } -// } -// } + if (device.photos.toString().isBlank()) { + imageGridView.visibility = View.GONE + } else { + imageGridView.visibility = View.VISIBLE + //处理图片地址 + val urls: ArrayList = ArrayList() + val imageArray = device.photos.toString().split(",") + imageArray.forEach { path -> + if (path.isNotBlank()) { + urls.add(path.combineImagePath()) + } + } + urls.forEach { url -> + Log.d(kTag, url) + } + val imageAdapter = ReadOnlyImageAdapter(this) + imageAdapter.setImageList(urls) + imageGridView.adapter = imageAdapter + imageGridView.setOnItemClickListener { _, _, position, _ -> + if (urls[position].isEmpty()) { + "图片加载失败,无法查看大图".show(this) + } else { + navigatePageTo(position, urls) + } + } + } densityView.text = device.stregnth lastDataView.text = device.uptime - deviceStateView.text = if (device.onlineState == "0") { - "离线" + if (device.onlineState == "0") { + deviceStateView.text = "离线" + deviceStateView.setTextColor(Color.RED) } else { - "在线" + deviceStateView.text = "在线" + deviceStateView.setTextColor(Color.GREEN) } deviceRsrpView.text = device.rsrp deviceBatteryView.text = device.cell diff --git a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt index d4e080b..ce3649a 100644 --- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt @@ -10,6 +10,7 @@ import com.casic.smarttube.extensions.showEmptyPage import com.casic.smarttube.model.DeviceListModel import com.casic.smarttube.utils.DialogManager +import com.casic.smarttube.utils.LocaleConstant import com.casic.smarttube.vm.DeviceViewModel import com.casic.smarttube.vm.ProjectGroupViewModel import com.gyf.immersionbar.ImmersionBar @@ -21,10 +22,12 @@ import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState +import com.pengxh.kt.lite.widget.EasyPopupWindow import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.qmuiteam.qmui.recyclerView.QMUIRVItemSwipeAction import com.qmuiteam.qmui.recyclerView.QMUISwipeAction import kotlinx.android.synthetic.main.activity_group_device.* +import kotlinx.android.synthetic.main.fragment_home.view.* import kotlinx.android.synthetic.main.include_empty_view.* class GroupDeviceActivity : KotlinBaseActivity() { @@ -49,13 +52,56 @@ ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) leftBackView.setOnClickListener { finish() } rightOptionView.setOnClickListener { - order = if (order == 0) { - 1 - } else { - 0 - } - pageIndex = 1 - obtainDeviceListByPage() + //改为Popup + val easyPopupWindow = EasyPopupWindow(this) + easyPopupWindow.setPopupMenuItem( + LocaleConstant.DEVICE_OPERATE_IMAGES, + LocaleConstant.DEVICE_OPERATE_TITLES + ) + easyPopupWindow.setOnPopupWindowClickListener(object : + EasyPopupWindow.OnPopupWindowClickListener { + override fun onPopupItemClicked(position: Int) { + when (position) { + 0 -> { + order = if (order == 0) { + 1 + } else { + 0 + } + pageIndex = 1 + obtainDeviceListByPage() + } + 1 -> { + AlertControlDialog.Builder() + .setContext(this@GroupDeviceActivity) + .setTitle("提示") + .setMessage("删除后将无法恢复,是否继续?") + .setNegativeButton("容我想想") + .setPositiveButton("已经想好") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + + } + + override fun onConfirmClick() { + val ids = ArrayList() + dataBeans.forEach { + if (!it.deviceId.isNullOrBlank()) { + ids.add(it.deviceId.toLong()) + } + } + deviceViewModel.deleteDeviceById(ids) + + } + }).build().show() + } + } + } + }) + easyPopupWindow.setBackgroundDrawable(null) + val x: Int = rightOptionView.width - easyPopupWindow.width + easyPopupWindow.showAsDropDown(rightOptionView, x, 0) } } @@ -190,20 +236,12 @@ override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) { clickedPosition = viewHolder.bindingAdapterPosition //删除数据库里对应的数据 - deviceViewModel.deleteDeviceById(arrayListOf(dataBeans[clickedPosition].tubeId.toLong())) - - //刷新列表 - dataBeans.removeAt(clickedPosition) - deviceAdapter.notifyItemRemoved(clickedPosition) - deviceAdapter.notifyItemRangeRemoved( - clickedPosition, dataBeans.size - clickedPosition - ) - if (dataBeans.size == 0) { - emptyView.showEmptyPage("这里什么都没有") { - pageIndex = 1 - obtainDeviceListByPage() - } + val deviceId = dataBeans[clickedPosition].deviceId + if (deviceId.isNullOrBlank()) { + "管盯ID错误,不可删除,请检查数据源".show(this@GroupDeviceActivity) + return } + deviceViewModel.deleteDeviceById(arrayListOf(deviceId.toLong())) } override fun getSwipeDirection( @@ -239,20 +277,12 @@ override fun onConfirmClick() { clickedPosition = adapterPosition //删除数据库里对应的数据 - deviceViewModel.deleteDeviceById(arrayListOf(dataBeans[clickedPosition].tubeId.toLong())) - - //刷新列表 - dataBeans.removeAt(clickedPosition) - deviceAdapter.notifyItemRemoved(clickedPosition) - deviceAdapter.notifyItemRangeRemoved( - clickedPosition, dataBeans.size - clickedPosition - ) - if (dataBeans.size == 0) { - emptyView.showEmptyPage("这里什么都没有") { - pageIndex = 1 - obtainDeviceListByPage() - } + val deviceId = dataBeans[clickedPosition].deviceId + if (deviceId.isNullOrBlank()) { + "管盯ID错误,不可删除,请检查数据源".show(this@GroupDeviceActivity) + return } + deviceViewModel.deleteDeviceById(arrayListOf(deviceId.toLong())) } }).build().show() } diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java index acfe225..21e2c76 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java @@ -2,9 +2,8 @@ public class DeviceDetailModel { - private int code; - private DataBean data; + private DataModel data; private String message; private String success; @@ -16,11 +15,11 @@ this.code = code; } - public DataBean getData() { + public DataModel getData() { return data; } - public void setData(DataBean data) { + public void setData(DataModel data) { this.data = data; } @@ -40,22 +39,33 @@ this.success = success; } - public static class DataBean { + public static class DataModel { + private String isUse; private String wellCode; private String groupId; private String rsrp; private String cell; private String stregnth; + private String descn; + private String photos; private String deviceName; private String uptime; private String devcode; private String lngGaode; private String latGaode; + private String installDate; private String snr; private String pci; - private String id; private String onlineState; + public String getIsUse() { + return isUse; + } + + public void setIsUse(String isUse) { + this.isUse = isUse; + } + public String getWellCode() { return wellCode; } @@ -96,6 +106,22 @@ this.stregnth = stregnth; } + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + public String getDeviceName() { return deviceName; } @@ -136,6 +162,14 @@ this.latGaode = latGaode; } + public String getInstallDate() { + return installDate; + } + + public void setInstallDate(String installDate) { + this.installDate = installDate; + } + public String getSnr() { return snr; } @@ -152,14 +186,6 @@ this.pci = pci; } - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - public String getOnlineState() { return onlineState; } diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java index 7073dab..fddb074 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java @@ -50,6 +50,7 @@ private String deviceName; private String uptime; private String tubeId; + private String deviceId; private String devcode; private String lngGaode; private String latGaode; @@ -122,6 +123,14 @@ this.tubeId = tubeId; } + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + public String getDevcode() { return devcode; } diff --git a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt index d0786e8..d8ee265 100644 --- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt @@ -18,6 +18,8 @@ ) val POPUP_IMAGES = intArrayOf(R.drawable.ic_menu_map, R.drawable.ic_satellite) val POPUP_TITLES = arrayOf("标准地图", "卫星地图") + val DEVICE_OPERATE_IMAGES = intArrayOf(R.drawable.ic_order, R.drawable.ic_delete_white) + val DEVICE_OPERATE_TITLES = arrayOf("浓度排序", "批量删除") /** * ============================================================================================= 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 988d02e..781965e 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -1,5 +1,8 @@ package com.casic.smarttube.view +import android.graphics.Color +import android.util.Log +import android.view.View import androidx.lifecycle.ViewModelProvider import com.amap.api.services.core.LatLonPoint import com.amap.api.services.geocoder.GeocodeResult @@ -7,11 +10,15 @@ import com.amap.api.services.geocoder.RegeocodeQuery import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R +import com.casic.smarttube.extensions.combineImagePath import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.vm.DeviceViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState @@ -20,6 +27,7 @@ class DeviceDetailActivity : KotlinBaseActivity() { + private val kTag = "DeviceDetailActivity" private lateinit var dialogManager: DialogManager private lateinit var deviceViewModel: DeviceViewModel private val geocoderSearch by lazy { GeocodeSearch(this) } @@ -67,39 +75,43 @@ } }) } - //TODO 描述 + descriptionView.text = device.descn - //TODO 图片 -// if (orderDetail.firstStatePhotos.toString().isBlank()) { -// imageGridView.visibility = View.GONE -// } else { -// imageGridView.visibility = View.VISIBLE -// //处理图片地址 -// val urls: ArrayList = ArrayList() -// val imageArray = orderDetail.firstStatePhotos.toString().split(",") -// imageArray.forEach { path -> -// if (path.isNotBlank()) { -// urls.add(path.combineImagePath()) -// } -// } -// val imageAdapter = ReadOnlyImageAdapter(this) -// imageAdapter.setImageList(urls) -// imageGridView.adapter = imageAdapter -// imageGridView.setOnItemClickListener { _, _, position, _ -> -// if (urls[position].isEmpty()) { -// "图片加载失败,无法查看大图".show(this) -// } else { -// navigatePageTo(position, urls) -// } -// } -// } + if (device.photos.toString().isBlank()) { + imageGridView.visibility = View.GONE + } else { + imageGridView.visibility = View.VISIBLE + //处理图片地址 + val urls: ArrayList = ArrayList() + val imageArray = device.photos.toString().split(",") + imageArray.forEach { path -> + if (path.isNotBlank()) { + urls.add(path.combineImagePath()) + } + } + urls.forEach { url -> + Log.d(kTag, url) + } + val imageAdapter = ReadOnlyImageAdapter(this) + imageAdapter.setImageList(urls) + imageGridView.adapter = imageAdapter + imageGridView.setOnItemClickListener { _, _, position, _ -> + if (urls[position].isEmpty()) { + "图片加载失败,无法查看大图".show(this) + } else { + navigatePageTo(position, urls) + } + } + } densityView.text = device.stregnth lastDataView.text = device.uptime - deviceStateView.text = if (device.onlineState == "0") { - "离线" + if (device.onlineState == "0") { + deviceStateView.text = "离线" + deviceStateView.setTextColor(Color.RED) } else { - "在线" + deviceStateView.text = "在线" + deviceStateView.setTextColor(Color.GREEN) } deviceRsrpView.text = device.rsrp deviceBatteryView.text = device.cell diff --git a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt index d4e080b..ce3649a 100644 --- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt @@ -10,6 +10,7 @@ import com.casic.smarttube.extensions.showEmptyPage import com.casic.smarttube.model.DeviceListModel import com.casic.smarttube.utils.DialogManager +import com.casic.smarttube.utils.LocaleConstant import com.casic.smarttube.vm.DeviceViewModel import com.casic.smarttube.vm.ProjectGroupViewModel import com.gyf.immersionbar.ImmersionBar @@ -21,10 +22,12 @@ import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState +import com.pengxh.kt.lite.widget.EasyPopupWindow import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.qmuiteam.qmui.recyclerView.QMUIRVItemSwipeAction import com.qmuiteam.qmui.recyclerView.QMUISwipeAction import kotlinx.android.synthetic.main.activity_group_device.* +import kotlinx.android.synthetic.main.fragment_home.view.* import kotlinx.android.synthetic.main.include_empty_view.* class GroupDeviceActivity : KotlinBaseActivity() { @@ -49,13 +52,56 @@ ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) leftBackView.setOnClickListener { finish() } rightOptionView.setOnClickListener { - order = if (order == 0) { - 1 - } else { - 0 - } - pageIndex = 1 - obtainDeviceListByPage() + //改为Popup + val easyPopupWindow = EasyPopupWindow(this) + easyPopupWindow.setPopupMenuItem( + LocaleConstant.DEVICE_OPERATE_IMAGES, + LocaleConstant.DEVICE_OPERATE_TITLES + ) + easyPopupWindow.setOnPopupWindowClickListener(object : + EasyPopupWindow.OnPopupWindowClickListener { + override fun onPopupItemClicked(position: Int) { + when (position) { + 0 -> { + order = if (order == 0) { + 1 + } else { + 0 + } + pageIndex = 1 + obtainDeviceListByPage() + } + 1 -> { + AlertControlDialog.Builder() + .setContext(this@GroupDeviceActivity) + .setTitle("提示") + .setMessage("删除后将无法恢复,是否继续?") + .setNegativeButton("容我想想") + .setPositiveButton("已经想好") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + + } + + override fun onConfirmClick() { + val ids = ArrayList() + dataBeans.forEach { + if (!it.deviceId.isNullOrBlank()) { + ids.add(it.deviceId.toLong()) + } + } + deviceViewModel.deleteDeviceById(ids) + + } + }).build().show() + } + } + } + }) + easyPopupWindow.setBackgroundDrawable(null) + val x: Int = rightOptionView.width - easyPopupWindow.width + easyPopupWindow.showAsDropDown(rightOptionView, x, 0) } } @@ -190,20 +236,12 @@ override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) { clickedPosition = viewHolder.bindingAdapterPosition //删除数据库里对应的数据 - deviceViewModel.deleteDeviceById(arrayListOf(dataBeans[clickedPosition].tubeId.toLong())) - - //刷新列表 - dataBeans.removeAt(clickedPosition) - deviceAdapter.notifyItemRemoved(clickedPosition) - deviceAdapter.notifyItemRangeRemoved( - clickedPosition, dataBeans.size - clickedPosition - ) - if (dataBeans.size == 0) { - emptyView.showEmptyPage("这里什么都没有") { - pageIndex = 1 - obtainDeviceListByPage() - } + val deviceId = dataBeans[clickedPosition].deviceId + if (deviceId.isNullOrBlank()) { + "管盯ID错误,不可删除,请检查数据源".show(this@GroupDeviceActivity) + return } + deviceViewModel.deleteDeviceById(arrayListOf(deviceId.toLong())) } override fun getSwipeDirection( @@ -239,20 +277,12 @@ override fun onConfirmClick() { clickedPosition = adapterPosition //删除数据库里对应的数据 - deviceViewModel.deleteDeviceById(arrayListOf(dataBeans[clickedPosition].tubeId.toLong())) - - //刷新列表 - dataBeans.removeAt(clickedPosition) - deviceAdapter.notifyItemRemoved(clickedPosition) - deviceAdapter.notifyItemRangeRemoved( - clickedPosition, dataBeans.size - clickedPosition - ) - if (dataBeans.size == 0) { - emptyView.showEmptyPage("这里什么都没有") { - pageIndex = 1 - obtainDeviceListByPage() - } + val deviceId = dataBeans[clickedPosition].deviceId + if (deviceId.isNullOrBlank()) { + "管盯ID错误,不可删除,请检查数据源".show(this@GroupDeviceActivity) + return } + deviceViewModel.deleteDeviceById(arrayListOf(deviceId.toLong())) } }).build().show() } diff --git a/app/src/main/res/drawable/ic_delete_white.xml b/app/src/main/res/drawable/ic_delete_white.xml index 40313ad..a75af6c 100644 --- a/app/src/main/res/drawable/ic_delete_white.xml +++ b/app/src/main/res/drawable/ic_delete_white.xml @@ -1,6 +1,6 @@ = ArrayList() -// val imageArray = orderDetail.firstStatePhotos.toString().split(",") -// imageArray.forEach { path -> -// if (path.isNotBlank()) { -// urls.add(path.combineImagePath()) -// } -// } -// val imageAdapter = ReadOnlyImageAdapter(this) -// imageAdapter.setImageList(urls) -// imageGridView.adapter = imageAdapter -// imageGridView.setOnItemClickListener { _, _, position, _ -> -// if (urls[position].isEmpty()) { -// "图片加载失败,无法查看大图".show(this) -// } else { -// navigatePageTo(position, urls) -// } -// } -// } + if (device.photos.toString().isBlank()) { + imageGridView.visibility = View.GONE + } else { + imageGridView.visibility = View.VISIBLE + //处理图片地址 + val urls: ArrayList = ArrayList() + val imageArray = device.photos.toString().split(",") + imageArray.forEach { path -> + if (path.isNotBlank()) { + urls.add(path.combineImagePath()) + } + } + urls.forEach { url -> + Log.d(kTag, url) + } + val imageAdapter = ReadOnlyImageAdapter(this) + imageAdapter.setImageList(urls) + imageGridView.adapter = imageAdapter + imageGridView.setOnItemClickListener { _, _, position, _ -> + if (urls[position].isEmpty()) { + "图片加载失败,无法查看大图".show(this) + } else { + navigatePageTo(position, urls) + } + } + } densityView.text = device.stregnth lastDataView.text = device.uptime - deviceStateView.text = if (device.onlineState == "0") { - "离线" + if (device.onlineState == "0") { + deviceStateView.text = "离线" + deviceStateView.setTextColor(Color.RED) } else { - "在线" + deviceStateView.text = "在线" + deviceStateView.setTextColor(Color.GREEN) } deviceRsrpView.text = device.rsrp deviceBatteryView.text = device.cell diff --git a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt index d4e080b..ce3649a 100644 --- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt @@ -10,6 +10,7 @@ import com.casic.smarttube.extensions.showEmptyPage import com.casic.smarttube.model.DeviceListModel import com.casic.smarttube.utils.DialogManager +import com.casic.smarttube.utils.LocaleConstant import com.casic.smarttube.vm.DeviceViewModel import com.casic.smarttube.vm.ProjectGroupViewModel import com.gyf.immersionbar.ImmersionBar @@ -21,10 +22,12 @@ import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState +import com.pengxh.kt.lite.widget.EasyPopupWindow import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.qmuiteam.qmui.recyclerView.QMUIRVItemSwipeAction import com.qmuiteam.qmui.recyclerView.QMUISwipeAction import kotlinx.android.synthetic.main.activity_group_device.* +import kotlinx.android.synthetic.main.fragment_home.view.* import kotlinx.android.synthetic.main.include_empty_view.* class GroupDeviceActivity : KotlinBaseActivity() { @@ -49,13 +52,56 @@ ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) leftBackView.setOnClickListener { finish() } rightOptionView.setOnClickListener { - order = if (order == 0) { - 1 - } else { - 0 - } - pageIndex = 1 - obtainDeviceListByPage() + //改为Popup + val easyPopupWindow = EasyPopupWindow(this) + easyPopupWindow.setPopupMenuItem( + LocaleConstant.DEVICE_OPERATE_IMAGES, + LocaleConstant.DEVICE_OPERATE_TITLES + ) + easyPopupWindow.setOnPopupWindowClickListener(object : + EasyPopupWindow.OnPopupWindowClickListener { + override fun onPopupItemClicked(position: Int) { + when (position) { + 0 -> { + order = if (order == 0) { + 1 + } else { + 0 + } + pageIndex = 1 + obtainDeviceListByPage() + } + 1 -> { + AlertControlDialog.Builder() + .setContext(this@GroupDeviceActivity) + .setTitle("提示") + .setMessage("删除后将无法恢复,是否继续?") + .setNegativeButton("容我想想") + .setPositiveButton("已经想好") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + + } + + override fun onConfirmClick() { + val ids = ArrayList() + dataBeans.forEach { + if (!it.deviceId.isNullOrBlank()) { + ids.add(it.deviceId.toLong()) + } + } + deviceViewModel.deleteDeviceById(ids) + + } + }).build().show() + } + } + } + }) + easyPopupWindow.setBackgroundDrawable(null) + val x: Int = rightOptionView.width - easyPopupWindow.width + easyPopupWindow.showAsDropDown(rightOptionView, x, 0) } } @@ -190,20 +236,12 @@ override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) { clickedPosition = viewHolder.bindingAdapterPosition //删除数据库里对应的数据 - deviceViewModel.deleteDeviceById(arrayListOf(dataBeans[clickedPosition].tubeId.toLong())) - - //刷新列表 - dataBeans.removeAt(clickedPosition) - deviceAdapter.notifyItemRemoved(clickedPosition) - deviceAdapter.notifyItemRangeRemoved( - clickedPosition, dataBeans.size - clickedPosition - ) - if (dataBeans.size == 0) { - emptyView.showEmptyPage("这里什么都没有") { - pageIndex = 1 - obtainDeviceListByPage() - } + val deviceId = dataBeans[clickedPosition].deviceId + if (deviceId.isNullOrBlank()) { + "管盯ID错误,不可删除,请检查数据源".show(this@GroupDeviceActivity) + return } + deviceViewModel.deleteDeviceById(arrayListOf(deviceId.toLong())) } override fun getSwipeDirection( @@ -239,20 +277,12 @@ override fun onConfirmClick() { clickedPosition = adapterPosition //删除数据库里对应的数据 - deviceViewModel.deleteDeviceById(arrayListOf(dataBeans[clickedPosition].tubeId.toLong())) - - //刷新列表 - dataBeans.removeAt(clickedPosition) - deviceAdapter.notifyItemRemoved(clickedPosition) - deviceAdapter.notifyItemRangeRemoved( - clickedPosition, dataBeans.size - clickedPosition - ) - if (dataBeans.size == 0) { - emptyView.showEmptyPage("这里什么都没有") { - pageIndex = 1 - obtainDeviceListByPage() - } + val deviceId = dataBeans[clickedPosition].deviceId + if (deviceId.isNullOrBlank()) { + "管盯ID错误,不可删除,请检查数据源".show(this@GroupDeviceActivity) + return } + deviceViewModel.deleteDeviceById(arrayListOf(deviceId.toLong())) } }).build().show() } diff --git a/app/src/main/res/drawable/ic_delete_white.xml b/app/src/main/res/drawable/ic_delete_white.xml index 40313ad..a75af6c 100644 --- a/app/src/main/res/drawable/ic_delete_white.xml +++ b/app/src/main/res/drawable/ic_delete_white.xml @@ -1,6 +1,6 @@ diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java index acfe225..21e2c76 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceDetailModel.java @@ -2,9 +2,8 @@ public class DeviceDetailModel { - private int code; - private DataBean data; + private DataModel data; private String message; private String success; @@ -16,11 +15,11 @@ this.code = code; } - public DataBean getData() { + public DataModel getData() { return data; } - public void setData(DataBean data) { + public void setData(DataModel data) { this.data = data; } @@ -40,22 +39,33 @@ this.success = success; } - public static class DataBean { + public static class DataModel { + private String isUse; private String wellCode; private String groupId; private String rsrp; private String cell; private String stregnth; + private String descn; + private String photos; private String deviceName; private String uptime; private String devcode; private String lngGaode; private String latGaode; + private String installDate; private String snr; private String pci; - private String id; private String onlineState; + public String getIsUse() { + return isUse; + } + + public void setIsUse(String isUse) { + this.isUse = isUse; + } + public String getWellCode() { return wellCode; } @@ -96,6 +106,22 @@ this.stregnth = stregnth; } + public String getDescn() { + return descn; + } + + public void setDescn(String descn) { + this.descn = descn; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + public String getDeviceName() { return deviceName; } @@ -136,6 +162,14 @@ this.latGaode = latGaode; } + public String getInstallDate() { + return installDate; + } + + public void setInstallDate(String installDate) { + this.installDate = installDate; + } + public String getSnr() { return snr; } @@ -152,14 +186,6 @@ this.pci = pci; } - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - public String getOnlineState() { return onlineState; } diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java index 7073dab..fddb074 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java @@ -50,6 +50,7 @@ private String deviceName; private String uptime; private String tubeId; + private String deviceId; private String devcode; private String lngGaode; private String latGaode; @@ -122,6 +123,14 @@ this.tubeId = tubeId; } + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + public String getDevcode() { return devcode; } diff --git a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt index d0786e8..d8ee265 100644 --- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt @@ -18,6 +18,8 @@ ) val POPUP_IMAGES = intArrayOf(R.drawable.ic_menu_map, R.drawable.ic_satellite) val POPUP_TITLES = arrayOf("标准地图", "卫星地图") + val DEVICE_OPERATE_IMAGES = intArrayOf(R.drawable.ic_order, R.drawable.ic_delete_white) + val DEVICE_OPERATE_TITLES = arrayOf("浓度排序", "批量删除") /** * ============================================================================================= 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 988d02e..781965e 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -1,5 +1,8 @@ package com.casic.smarttube.view +import android.graphics.Color +import android.util.Log +import android.view.View import androidx.lifecycle.ViewModelProvider import com.amap.api.services.core.LatLonPoint import com.amap.api.services.geocoder.GeocodeResult @@ -7,11 +10,15 @@ import com.amap.api.services.geocoder.RegeocodeQuery import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R +import com.casic.smarttube.extensions.combineImagePath import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.vm.DeviceViewModel import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState @@ -20,6 +27,7 @@ class DeviceDetailActivity : KotlinBaseActivity() { + private val kTag = "DeviceDetailActivity" private lateinit var dialogManager: DialogManager private lateinit var deviceViewModel: DeviceViewModel private val geocoderSearch by lazy { GeocodeSearch(this) } @@ -67,39 +75,43 @@ } }) } - //TODO 描述 + descriptionView.text = device.descn - //TODO 图片 -// if (orderDetail.firstStatePhotos.toString().isBlank()) { -// imageGridView.visibility = View.GONE -// } else { -// imageGridView.visibility = View.VISIBLE -// //处理图片地址 -// val urls: ArrayList = ArrayList() -// val imageArray = orderDetail.firstStatePhotos.toString().split(",") -// imageArray.forEach { path -> -// if (path.isNotBlank()) { -// urls.add(path.combineImagePath()) -// } -// } -// val imageAdapter = ReadOnlyImageAdapter(this) -// imageAdapter.setImageList(urls) -// imageGridView.adapter = imageAdapter -// imageGridView.setOnItemClickListener { _, _, position, _ -> -// if (urls[position].isEmpty()) { -// "图片加载失败,无法查看大图".show(this) -// } else { -// navigatePageTo(position, urls) -// } -// } -// } + if (device.photos.toString().isBlank()) { + imageGridView.visibility = View.GONE + } else { + imageGridView.visibility = View.VISIBLE + //处理图片地址 + val urls: ArrayList = ArrayList() + val imageArray = device.photos.toString().split(",") + imageArray.forEach { path -> + if (path.isNotBlank()) { + urls.add(path.combineImagePath()) + } + } + urls.forEach { url -> + Log.d(kTag, url) + } + val imageAdapter = ReadOnlyImageAdapter(this) + imageAdapter.setImageList(urls) + imageGridView.adapter = imageAdapter + imageGridView.setOnItemClickListener { _, _, position, _ -> + if (urls[position].isEmpty()) { + "图片加载失败,无法查看大图".show(this) + } else { + navigatePageTo(position, urls) + } + } + } densityView.text = device.stregnth lastDataView.text = device.uptime - deviceStateView.text = if (device.onlineState == "0") { - "离线" + if (device.onlineState == "0") { + deviceStateView.text = "离线" + deviceStateView.setTextColor(Color.RED) } else { - "在线" + deviceStateView.text = "在线" + deviceStateView.setTextColor(Color.GREEN) } deviceRsrpView.text = device.rsrp deviceBatteryView.text = device.cell diff --git a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt index d4e080b..ce3649a 100644 --- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt @@ -10,6 +10,7 @@ import com.casic.smarttube.extensions.showEmptyPage import com.casic.smarttube.model.DeviceListModel import com.casic.smarttube.utils.DialogManager +import com.casic.smarttube.utils.LocaleConstant import com.casic.smarttube.vm.DeviceViewModel import com.casic.smarttube.vm.ProjectGroupViewModel import com.gyf.immersionbar.ImmersionBar @@ -21,10 +22,12 @@ import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState +import com.pengxh.kt.lite.widget.EasyPopupWindow import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.qmuiteam.qmui.recyclerView.QMUIRVItemSwipeAction import com.qmuiteam.qmui.recyclerView.QMUISwipeAction import kotlinx.android.synthetic.main.activity_group_device.* +import kotlinx.android.synthetic.main.fragment_home.view.* import kotlinx.android.synthetic.main.include_empty_view.* class GroupDeviceActivity : KotlinBaseActivity() { @@ -49,13 +52,56 @@ ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) leftBackView.setOnClickListener { finish() } rightOptionView.setOnClickListener { - order = if (order == 0) { - 1 - } else { - 0 - } - pageIndex = 1 - obtainDeviceListByPage() + //改为Popup + val easyPopupWindow = EasyPopupWindow(this) + easyPopupWindow.setPopupMenuItem( + LocaleConstant.DEVICE_OPERATE_IMAGES, + LocaleConstant.DEVICE_OPERATE_TITLES + ) + easyPopupWindow.setOnPopupWindowClickListener(object : + EasyPopupWindow.OnPopupWindowClickListener { + override fun onPopupItemClicked(position: Int) { + when (position) { + 0 -> { + order = if (order == 0) { + 1 + } else { + 0 + } + pageIndex = 1 + obtainDeviceListByPage() + } + 1 -> { + AlertControlDialog.Builder() + .setContext(this@GroupDeviceActivity) + .setTitle("提示") + .setMessage("删除后将无法恢复,是否继续?") + .setNegativeButton("容我想想") + .setPositiveButton("已经想好") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + + } + + override fun onConfirmClick() { + val ids = ArrayList() + dataBeans.forEach { + if (!it.deviceId.isNullOrBlank()) { + ids.add(it.deviceId.toLong()) + } + } + deviceViewModel.deleteDeviceById(ids) + + } + }).build().show() + } + } + } + }) + easyPopupWindow.setBackgroundDrawable(null) + val x: Int = rightOptionView.width - easyPopupWindow.width + easyPopupWindow.showAsDropDown(rightOptionView, x, 0) } } @@ -190,20 +236,12 @@ override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) { clickedPosition = viewHolder.bindingAdapterPosition //删除数据库里对应的数据 - deviceViewModel.deleteDeviceById(arrayListOf(dataBeans[clickedPosition].tubeId.toLong())) - - //刷新列表 - dataBeans.removeAt(clickedPosition) - deviceAdapter.notifyItemRemoved(clickedPosition) - deviceAdapter.notifyItemRangeRemoved( - clickedPosition, dataBeans.size - clickedPosition - ) - if (dataBeans.size == 0) { - emptyView.showEmptyPage("这里什么都没有") { - pageIndex = 1 - obtainDeviceListByPage() - } + val deviceId = dataBeans[clickedPosition].deviceId + if (deviceId.isNullOrBlank()) { + "管盯ID错误,不可删除,请检查数据源".show(this@GroupDeviceActivity) + return } + deviceViewModel.deleteDeviceById(arrayListOf(deviceId.toLong())) } override fun getSwipeDirection( @@ -239,20 +277,12 @@ override fun onConfirmClick() { clickedPosition = adapterPosition //删除数据库里对应的数据 - deviceViewModel.deleteDeviceById(arrayListOf(dataBeans[clickedPosition].tubeId.toLong())) - - //刷新列表 - dataBeans.removeAt(clickedPosition) - deviceAdapter.notifyItemRemoved(clickedPosition) - deviceAdapter.notifyItemRangeRemoved( - clickedPosition, dataBeans.size - clickedPosition - ) - if (dataBeans.size == 0) { - emptyView.showEmptyPage("这里什么都没有") { - pageIndex = 1 - obtainDeviceListByPage() - } + val deviceId = dataBeans[clickedPosition].deviceId + if (deviceId.isNullOrBlank()) { + "管盯ID错误,不可删除,请检查数据源".show(this@GroupDeviceActivity) + return } + deviceViewModel.deleteDeviceById(arrayListOf(deviceId.toLong())) } }).build().show() } diff --git a/app/src/main/res/drawable/ic_delete_white.xml b/app/src/main/res/drawable/ic_delete_white.xml index 40313ad..a75af6c 100644 --- a/app/src/main/res/drawable/ic_delete_white.xml +++ b/app/src/main/res/drawable/ic_delete_white.xml @@ -1,6 +1,6 @@ diff --git a/app/src/main/res/layout/activity_group_device.xml b/app/src/main/res/layout/activity_group_device.xml index 57f842d..4ff7750 100644 --- a/app/src/main/res/layout/activity_group_device.xml +++ b/app/src/main/res/layout/activity_group_device.xml @@ -38,7 +38,7 @@ android:layout_centerVertical="true" android:layout_marginStart="@dimen/dp_10" android:layout_marginEnd="@dimen/dp_10" - android:background="@drawable/ic_order" /> + android:background="@drawable/ic_change_map" />