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 b27d3b4..12f1e79 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -14,7 +14,7 @@ import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton class DeviceListAdapter( - private val context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -31,7 +31,7 @@ //绑定数据 val rowsBean = dataRows[position] holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) - holder.deviceCodeView.text = rowsBean.devcode + holder.deviceCodeView.text = rowsBean.deviceCode holder.wellNameView.text = String.format("设备名:${rowsBean.deviceName}") holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { "0%" 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 b27d3b4..12f1e79 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -14,7 +14,7 @@ import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton class DeviceListAdapter( - private val context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -31,7 +31,7 @@ //绑定数据 val rowsBean = dataRows[position] holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) - holder.deviceCodeView.text = rowsBean.devcode + holder.deviceCodeView.text = rowsBean.deviceCode holder.wellNameView.text = String.format("设备名:${rowsBean.deviceName}") holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { "0%" 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 2137d0c..053cf17 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java @@ -5,7 +5,7 @@ public class DeviceListModel { private int code; - private List data; + private List data; private String message; private String success; @@ -17,11 +17,11 @@ this.code = code; } - public List getData() { + public List getData() { return data; } - public void setData(List data) { + public void setData(List data) { this.data = data; } @@ -41,25 +41,16 @@ this.success = success; } - public static class DataBean { - private String devcode; + public static class DataModel { private String strength; private String snr; private String pci; private String rsrp; + private String deviceCode; private String cell; private String deviceName; private String uptime; private String tubeId; - private String deviceCode; - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } public String getStrength() { return strength; @@ -93,6 +84,14 @@ this.rsrp = rsrp; } + public String getDeviceCode() { + return deviceCode; + } + + public void setDeviceCode(String deviceCode) { + this.deviceCode = deviceCode; + } + public String getCell() { return cell; } @@ -124,13 +123,5 @@ public void setTubeId(String tubeId) { this.tubeId = tubeId; } - - public String getDeviceCode() { - return deviceCode; - } - - public void setDeviceCode(String deviceCode) { - this.deviceCode = deviceCode; - } } } 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 b27d3b4..12f1e79 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -14,7 +14,7 @@ import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton class DeviceListAdapter( - private val context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -31,7 +31,7 @@ //绑定数据 val rowsBean = dataRows[position] holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) - holder.deviceCodeView.text = rowsBean.devcode + holder.deviceCodeView.text = rowsBean.deviceCode holder.wellNameView.text = String.format("设备名:${rowsBean.deviceName}") holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { "0%" 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 2137d0c..053cf17 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java @@ -5,7 +5,7 @@ public class DeviceListModel { private int code; - private List data; + private List data; private String message; private String success; @@ -17,11 +17,11 @@ this.code = code; } - public List getData() { + public List getData() { return data; } - public void setData(List data) { + public void setData(List data) { this.data = data; } @@ -41,25 +41,16 @@ this.success = success; } - public static class DataBean { - private String devcode; + public static class DataModel { private String strength; private String snr; private String pci; private String rsrp; + private String deviceCode; private String cell; private String deviceName; private String uptime; private String tubeId; - private String deviceCode; - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } public String getStrength() { return strength; @@ -93,6 +84,14 @@ this.rsrp = rsrp; } + public String getDeviceCode() { + return deviceCode; + } + + public void setDeviceCode(String deviceCode) { + this.deviceCode = deviceCode; + } + public String getCell() { return cell; } @@ -124,13 +123,5 @@ public void setTubeId(String tubeId) { this.tubeId = tubeId; } - - public String getDeviceCode() { - return deviceCode; - } - - public void setDeviceCode(String deviceCode) { - this.deviceCode = deviceCode; - } } } diff --git a/app/src/main/java/com/casic/smarttube/model/GroupListModel.java b/app/src/main/java/com/casic/smarttube/model/GroupListModel.java new file mode 100644 index 0000000..4d41687 --- /dev/null +++ b/app/src/main/java/com/casic/smarttube/model/GroupListModel.java @@ -0,0 +1,43 @@ +package com.casic.smarttube.model; + +import java.util.List; + +public class GroupListModel { + + private int code; + private List data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} 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 b27d3b4..12f1e79 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -14,7 +14,7 @@ import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton class DeviceListAdapter( - private val context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -31,7 +31,7 @@ //绑定数据 val rowsBean = dataRows[position] holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) - holder.deviceCodeView.text = rowsBean.devcode + holder.deviceCodeView.text = rowsBean.deviceCode holder.wellNameView.text = String.format("设备名:${rowsBean.deviceName}") holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { "0%" 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 2137d0c..053cf17 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java @@ -5,7 +5,7 @@ public class DeviceListModel { private int code; - private List data; + private List data; private String message; private String success; @@ -17,11 +17,11 @@ this.code = code; } - public List getData() { + public List getData() { return data; } - public void setData(List data) { + public void setData(List data) { this.data = data; } @@ -41,25 +41,16 @@ this.success = success; } - public static class DataBean { - private String devcode; + public static class DataModel { private String strength; private String snr; private String pci; private String rsrp; + private String deviceCode; private String cell; private String deviceName; private String uptime; private String tubeId; - private String deviceCode; - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } public String getStrength() { return strength; @@ -93,6 +84,14 @@ this.rsrp = rsrp; } + public String getDeviceCode() { + return deviceCode; + } + + public void setDeviceCode(String deviceCode) { + this.deviceCode = deviceCode; + } + public String getCell() { return cell; } @@ -124,13 +123,5 @@ public void setTubeId(String tubeId) { this.tubeId = tubeId; } - - public String getDeviceCode() { - return deviceCode; - } - - public void setDeviceCode(String deviceCode) { - this.deviceCode = deviceCode; - } } } diff --git a/app/src/main/java/com/casic/smarttube/model/GroupListModel.java b/app/src/main/java/com/casic/smarttube/model/GroupListModel.java new file mode 100644 index 0000000..4d41687 --- /dev/null +++ b/app/src/main/java/com/casic/smarttube/model/GroupListModel.java @@ -0,0 +1,43 @@ +package com.casic.smarttube.model; + +import java.util.List; + +public class GroupListModel { + + private int code; + private List data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt index d0f4d8f..f29fbb6 100644 --- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt @@ -107,12 +107,12 @@ /** * 获取设备详情 * - * @param tubeId 管盯ID + * @param deviceCode 管盯设备编号 */ - @GET("/tube/detail/{tubeId}") + @GET("/tube/detail/{deviceCode}") suspend fun obtainDeviceDetail( @Header("token") token: String, - @Path("tubeId") tubeId: String + @Path("deviceCode") deviceCode: String ): String /** @@ -208,4 +208,12 @@ @Header("token") token: String, @Body requestBody: RequestBody ): String + + /** + * 获取项目编号列表 + */ + @GET("/tube/groupdict") + suspend fun obtainGroupList( + @Header("token") token: String + ): String } \ No newline at end of file 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 b27d3b4..12f1e79 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -14,7 +14,7 @@ import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton class DeviceListAdapter( - private val context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -31,7 +31,7 @@ //绑定数据 val rowsBean = dataRows[position] holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) - holder.deviceCodeView.text = rowsBean.devcode + holder.deviceCodeView.text = rowsBean.deviceCode holder.wellNameView.text = String.format("设备名:${rowsBean.deviceName}") holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { "0%" 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 2137d0c..053cf17 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java @@ -5,7 +5,7 @@ public class DeviceListModel { private int code; - private List data; + private List data; private String message; private String success; @@ -17,11 +17,11 @@ this.code = code; } - public List getData() { + public List getData() { return data; } - public void setData(List data) { + public void setData(List data) { this.data = data; } @@ -41,25 +41,16 @@ this.success = success; } - public static class DataBean { - private String devcode; + public static class DataModel { private String strength; private String snr; private String pci; private String rsrp; + private String deviceCode; private String cell; private String deviceName; private String uptime; private String tubeId; - private String deviceCode; - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } public String getStrength() { return strength; @@ -93,6 +84,14 @@ this.rsrp = rsrp; } + public String getDeviceCode() { + return deviceCode; + } + + public void setDeviceCode(String deviceCode) { + this.deviceCode = deviceCode; + } + public String getCell() { return cell; } @@ -124,13 +123,5 @@ public void setTubeId(String tubeId) { this.tubeId = tubeId; } - - public String getDeviceCode() { - return deviceCode; - } - - public void setDeviceCode(String deviceCode) { - this.deviceCode = deviceCode; - } } } diff --git a/app/src/main/java/com/casic/smarttube/model/GroupListModel.java b/app/src/main/java/com/casic/smarttube/model/GroupListModel.java new file mode 100644 index 0000000..4d41687 --- /dev/null +++ b/app/src/main/java/com/casic/smarttube/model/GroupListModel.java @@ -0,0 +1,43 @@ +package com.casic.smarttube.model; + +import java.util.List; + +public class GroupListModel { + + private int code; + private List data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt index d0f4d8f..f29fbb6 100644 --- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt @@ -107,12 +107,12 @@ /** * 获取设备详情 * - * @param tubeId 管盯ID + * @param deviceCode 管盯设备编号 */ - @GET("/tube/detail/{tubeId}") + @GET("/tube/detail/{deviceCode}") suspend fun obtainDeviceDetail( @Header("token") token: String, - @Path("tubeId") tubeId: String + @Path("deviceCode") deviceCode: String ): String /** @@ -208,4 +208,12 @@ @Header("token") token: String, @Body requestBody: RequestBody ): String + + /** + * 获取项目编号列表 + */ + @GET("/tube/groupdict") + suspend fun obtainGroupList( + @Header("token") token: String + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt index 79f45d1..1d2b13d 100644 --- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt @@ -219,4 +219,11 @@ ) return api.addDevice(AuthenticationHelper.token!!, requestBody) } + + /** + * 获取项目编号列表 + */ + suspend fun obtainGroupList(): String { + return api.obtainGroupList(AuthenticationHelper.token!!) + } } \ No newline at end of file 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 b27d3b4..12f1e79 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -14,7 +14,7 @@ import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton class DeviceListAdapter( - private val context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -31,7 +31,7 @@ //绑定数据 val rowsBean = dataRows[position] holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) - holder.deviceCodeView.text = rowsBean.devcode + holder.deviceCodeView.text = rowsBean.deviceCode holder.wellNameView.text = String.format("设备名:${rowsBean.deviceName}") holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { "0%" 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 2137d0c..053cf17 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java @@ -5,7 +5,7 @@ public class DeviceListModel { private int code; - private List data; + private List data; private String message; private String success; @@ -17,11 +17,11 @@ this.code = code; } - public List getData() { + public List getData() { return data; } - public void setData(List data) { + public void setData(List data) { this.data = data; } @@ -41,25 +41,16 @@ this.success = success; } - public static class DataBean { - private String devcode; + public static class DataModel { private String strength; private String snr; private String pci; private String rsrp; + private String deviceCode; private String cell; private String deviceName; private String uptime; private String tubeId; - private String deviceCode; - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } public String getStrength() { return strength; @@ -93,6 +84,14 @@ this.rsrp = rsrp; } + public String getDeviceCode() { + return deviceCode; + } + + public void setDeviceCode(String deviceCode) { + this.deviceCode = deviceCode; + } + public String getCell() { return cell; } @@ -124,13 +123,5 @@ public void setTubeId(String tubeId) { this.tubeId = tubeId; } - - public String getDeviceCode() { - return deviceCode; - } - - public void setDeviceCode(String deviceCode) { - this.deviceCode = deviceCode; - } } } diff --git a/app/src/main/java/com/casic/smarttube/model/GroupListModel.java b/app/src/main/java/com/casic/smarttube/model/GroupListModel.java new file mode 100644 index 0000000..4d41687 --- /dev/null +++ b/app/src/main/java/com/casic/smarttube/model/GroupListModel.java @@ -0,0 +1,43 @@ +package com.casic.smarttube.model; + +import java.util.List; + +public class GroupListModel { + + private int code; + private List data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt index d0f4d8f..f29fbb6 100644 --- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt @@ -107,12 +107,12 @@ /** * 获取设备详情 * - * @param tubeId 管盯ID + * @param deviceCode 管盯设备编号 */ - @GET("/tube/detail/{tubeId}") + @GET("/tube/detail/{deviceCode}") suspend fun obtainDeviceDetail( @Header("token") token: String, - @Path("tubeId") tubeId: String + @Path("deviceCode") deviceCode: String ): String /** @@ -208,4 +208,12 @@ @Header("token") token: String, @Body requestBody: RequestBody ): String + + /** + * 获取项目编号列表 + */ + @GET("/tube/groupdict") + suspend fun obtainGroupList( + @Header("token") token: String + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt index 79f45d1..1d2b13d 100644 --- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt @@ -219,4 +219,11 @@ ) return api.addDevice(AuthenticationHelper.token!!, requestBody) } + + /** + * 获取项目编号列表 + */ + suspend fun obtainGroupList(): String { + return api.obtainGroupList(AuthenticationHelper.token!!) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt index fd78271..573cc61 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -13,13 +13,12 @@ import com.amap.api.location.AMapLocation import com.casic.smarttube.R import com.casic.smarttube.callback.OnImageCompressListener -import com.casic.smarttube.extensions.combineImagePath -import com.casic.smarttube.extensions.compressImage +import com.casic.smarttube.extensions.* import com.casic.smarttube.extensions.isNumber -import com.casic.smarttube.extensions.reformat import com.casic.smarttube.model.UserDetailModel import com.casic.smarttube.utils.* import com.casic.smarttube.vm.DeviceViewModel +import com.casic.smarttube.vm.ProjectGroupViewModel import com.casic.smarttube.vm.UploadImageViewModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -30,10 +29,7 @@ import com.luck.picture.lib.interfaces.OnResultCallbackListener import com.pengxh.kt.lite.adapter.EditableImageAdapter 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.extensions.timestampToCompleteDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -41,8 +37,12 @@ import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet import kotlinx.android.synthetic.main.activity_add_device.* +import kotlinx.android.synthetic.main.activity_history_data.* import kotlinx.android.synthetic.main.include_base_title.* +import kotlinx.android.synthetic.main.include_base_title.leftBackView import java.io.File +import java.util.* +import kotlin.collections.ArrayList class AddDeviceActivity : KotlinBaseActivity() { @@ -52,11 +52,13 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var uploadImageViewModel: UploadImageViewModel private lateinit var deviceViewModel: DeviceViewModel + private lateinit var groupViewModel: ProjectGroupViewModel private val context: Context = this@AddDeviceActivity private val imagePaths: ArrayList = ArrayList() //服务器返回的拍照数据集 private val realPaths: ArrayList = ArrayList() //真实图片路径 private val frequency = listOf("1min", "2min", "5min", "10min", "15min", "30min", "60min") private var selectedImages = ArrayList() + private var ownerShip = "" override fun initLayoutView(): Int = R.layout.activity_add_device @@ -72,6 +74,7 @@ weakReferenceHandler = WeakReferenceHandler(callback) uploadImageViewModel = ViewModelProvider(this).get(UploadImageViewModel::class.java) deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) + groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) } override fun initEvent() { @@ -87,24 +90,54 @@ } ownerShipView.setOnClickListener { - AlertInputDialog.Builder() - .setContext(context) - .setTitle("提示") - .setHintMessage("请输入该设备所属项目名,如:项目203") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(object : - AlertInputDialog.OnDialogButtonClickListener { - override fun onCancelClick() { - - } - - override fun onConfirmClick(value: String) { - ownerShipView.text = value - } - }) - .build().show() + groupViewModel.obtainGroupList() } + groupViewModel.groupListModel.observe(this, { + val groups = ArrayList() + if (it.code == 200) { + if (it.data.isEmpty()) { + groups.add("自定义") + } else { + it.data.forEach { id -> + groups.add(id) + } + groups.add("自定义") + } + } else { + groups.add("自定义") + } + if (groups.isNotEmpty()) { + BottomActionSheet.Builder() + .setContext(this) + .setItemTextColor(Color.BLUE) + .setActionItemTitle(groups) + .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { + override fun onActionItemClick(position: Int) { + if (groups[position] == "自定义") { + AlertInputDialog.Builder() + .setContext(context) + .setTitle("提示") + .setHintMessage("请输入该设备所属项目名,如:项目203") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertInputDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + + } + + override fun onConfirmClick(value: String) { + ownerShipView.text = value + } + }) + .build().show() + } else { + ownerShipView.text = groups[position] + } + } + }).build().show() + } + }) //默认频率1min collectIntervalView.text = frequency[0] @@ -121,7 +154,7 @@ } locationImageView.setOnClickListener { - dialogManager.showLoadingDialog("定位中中,请稍后...") + dialogManager.showLoadingDialog("定位中,请稍后...") LocationHelper.obtainCurrentLocation(this, object : LocationHelper.ILocationListener { override fun onAMapLocationGet(aMapLocation: AMapLocation?) { @@ -246,16 +279,13 @@ deviceViewModel.loadState.observe(this, { when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("处理中,请稍后") - } + LoadState.Loading -> dialogManager.showLoadingDialog("处理中,请稍后") LoadState.Success -> { + Log.d(kTag, "initEvent: 成功") dialogManager.dismissLoadingDialog() this.finish() } - LoadState.Fail -> { - dialogManager.dismissLoadingDialog() - } + LoadState.Fail -> dialogManager.dismissLoadingDialog() } }) } 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 b27d3b4..12f1e79 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -14,7 +14,7 @@ import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton class DeviceListAdapter( - private val context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -31,7 +31,7 @@ //绑定数据 val rowsBean = dataRows[position] holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) - holder.deviceCodeView.text = rowsBean.devcode + holder.deviceCodeView.text = rowsBean.deviceCode holder.wellNameView.text = String.format("设备名:${rowsBean.deviceName}") holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { "0%" 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 2137d0c..053cf17 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java @@ -5,7 +5,7 @@ public class DeviceListModel { private int code; - private List data; + private List data; private String message; private String success; @@ -17,11 +17,11 @@ this.code = code; } - public List getData() { + public List getData() { return data; } - public void setData(List data) { + public void setData(List data) { this.data = data; } @@ -41,25 +41,16 @@ this.success = success; } - public static class DataBean { - private String devcode; + public static class DataModel { private String strength; private String snr; private String pci; private String rsrp; + private String deviceCode; private String cell; private String deviceName; private String uptime; private String tubeId; - private String deviceCode; - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } public String getStrength() { return strength; @@ -93,6 +84,14 @@ this.rsrp = rsrp; } + public String getDeviceCode() { + return deviceCode; + } + + public void setDeviceCode(String deviceCode) { + this.deviceCode = deviceCode; + } + public String getCell() { return cell; } @@ -124,13 +123,5 @@ public void setTubeId(String tubeId) { this.tubeId = tubeId; } - - public String getDeviceCode() { - return deviceCode; - } - - public void setDeviceCode(String deviceCode) { - this.deviceCode = deviceCode; - } } } diff --git a/app/src/main/java/com/casic/smarttube/model/GroupListModel.java b/app/src/main/java/com/casic/smarttube/model/GroupListModel.java new file mode 100644 index 0000000..4d41687 --- /dev/null +++ b/app/src/main/java/com/casic/smarttube/model/GroupListModel.java @@ -0,0 +1,43 @@ +package com.casic.smarttube.model; + +import java.util.List; + +public class GroupListModel { + + private int code; + private List data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt index d0f4d8f..f29fbb6 100644 --- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt @@ -107,12 +107,12 @@ /** * 获取设备详情 * - * @param tubeId 管盯ID + * @param deviceCode 管盯设备编号 */ - @GET("/tube/detail/{tubeId}") + @GET("/tube/detail/{deviceCode}") suspend fun obtainDeviceDetail( @Header("token") token: String, - @Path("tubeId") tubeId: String + @Path("deviceCode") deviceCode: String ): String /** @@ -208,4 +208,12 @@ @Header("token") token: String, @Body requestBody: RequestBody ): String + + /** + * 获取项目编号列表 + */ + @GET("/tube/groupdict") + suspend fun obtainGroupList( + @Header("token") token: String + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt index 79f45d1..1d2b13d 100644 --- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt @@ -219,4 +219,11 @@ ) return api.addDevice(AuthenticationHelper.token!!, requestBody) } + + /** + * 获取项目编号列表 + */ + suspend fun obtainGroupList(): String { + return api.obtainGroupList(AuthenticationHelper.token!!) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt index fd78271..573cc61 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -13,13 +13,12 @@ import com.amap.api.location.AMapLocation import com.casic.smarttube.R import com.casic.smarttube.callback.OnImageCompressListener -import com.casic.smarttube.extensions.combineImagePath -import com.casic.smarttube.extensions.compressImage +import com.casic.smarttube.extensions.* import com.casic.smarttube.extensions.isNumber -import com.casic.smarttube.extensions.reformat import com.casic.smarttube.model.UserDetailModel import com.casic.smarttube.utils.* import com.casic.smarttube.vm.DeviceViewModel +import com.casic.smarttube.vm.ProjectGroupViewModel import com.casic.smarttube.vm.UploadImageViewModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -30,10 +29,7 @@ import com.luck.picture.lib.interfaces.OnResultCallbackListener import com.pengxh.kt.lite.adapter.EditableImageAdapter 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.extensions.timestampToCompleteDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -41,8 +37,12 @@ import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet import kotlinx.android.synthetic.main.activity_add_device.* +import kotlinx.android.synthetic.main.activity_history_data.* import kotlinx.android.synthetic.main.include_base_title.* +import kotlinx.android.synthetic.main.include_base_title.leftBackView import java.io.File +import java.util.* +import kotlin.collections.ArrayList class AddDeviceActivity : KotlinBaseActivity() { @@ -52,11 +52,13 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var uploadImageViewModel: UploadImageViewModel private lateinit var deviceViewModel: DeviceViewModel + private lateinit var groupViewModel: ProjectGroupViewModel private val context: Context = this@AddDeviceActivity private val imagePaths: ArrayList = ArrayList() //服务器返回的拍照数据集 private val realPaths: ArrayList = ArrayList() //真实图片路径 private val frequency = listOf("1min", "2min", "5min", "10min", "15min", "30min", "60min") private var selectedImages = ArrayList() + private var ownerShip = "" override fun initLayoutView(): Int = R.layout.activity_add_device @@ -72,6 +74,7 @@ weakReferenceHandler = WeakReferenceHandler(callback) uploadImageViewModel = ViewModelProvider(this).get(UploadImageViewModel::class.java) deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) + groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) } override fun initEvent() { @@ -87,24 +90,54 @@ } ownerShipView.setOnClickListener { - AlertInputDialog.Builder() - .setContext(context) - .setTitle("提示") - .setHintMessage("请输入该设备所属项目名,如:项目203") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(object : - AlertInputDialog.OnDialogButtonClickListener { - override fun onCancelClick() { - - } - - override fun onConfirmClick(value: String) { - ownerShipView.text = value - } - }) - .build().show() + groupViewModel.obtainGroupList() } + groupViewModel.groupListModel.observe(this, { + val groups = ArrayList() + if (it.code == 200) { + if (it.data.isEmpty()) { + groups.add("自定义") + } else { + it.data.forEach { id -> + groups.add(id) + } + groups.add("自定义") + } + } else { + groups.add("自定义") + } + if (groups.isNotEmpty()) { + BottomActionSheet.Builder() + .setContext(this) + .setItemTextColor(Color.BLUE) + .setActionItemTitle(groups) + .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { + override fun onActionItemClick(position: Int) { + if (groups[position] == "自定义") { + AlertInputDialog.Builder() + .setContext(context) + .setTitle("提示") + .setHintMessage("请输入该设备所属项目名,如:项目203") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertInputDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + + } + + override fun onConfirmClick(value: String) { + ownerShipView.text = value + } + }) + .build().show() + } else { + ownerShipView.text = groups[position] + } + } + }).build().show() + } + }) //默认频率1min collectIntervalView.text = frequency[0] @@ -121,7 +154,7 @@ } locationImageView.setOnClickListener { - dialogManager.showLoadingDialog("定位中中,请稍后...") + dialogManager.showLoadingDialog("定位中,请稍后...") LocationHelper.obtainCurrentLocation(this, object : LocationHelper.ILocationListener { override fun onAMapLocationGet(aMapLocation: AMapLocation?) { @@ -246,16 +279,13 @@ deviceViewModel.loadState.observe(this, { when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("处理中,请稍后") - } + LoadState.Loading -> dialogManager.showLoadingDialog("处理中,请稍后") LoadState.Success -> { + Log.d(kTag, "initEvent: 成功") dialogManager.dismissLoadingDialog() this.finish() } - LoadState.Fail -> { - dialogManager.dismissLoadingDialog() - } + LoadState.Fail -> dialogManager.dismissLoadingDialog() } }) } 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 a528a3d..4e9b844 100644 --- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt @@ -30,7 +30,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var groupViewModel: ProjectGroupViewModel private lateinit var deviceAdapter: DeviceListAdapter - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false @@ -131,19 +131,19 @@ deviceAdapter.setOnItemClickListener(object : DeviceListAdapter.OnItemClickListener { override fun onClicked(position: Int) { - if (dataBeans[position].devcode.isNullOrBlank()) { - "设备编号为空,无法查看历设备详情".show(this@GroupDeviceActivity) + if (dataBeans[position].deviceCode.isNullOrBlank()) { + "设备编号为空,无法查看设备详情".show(this@GroupDeviceActivity) return } - navigatePageTo(dataBeans[position].tubeId) + navigatePageTo(dataBeans[position].deviceCode) } override fun onHistoryClicked(position: Int) { - if (dataBeans[position].devcode.isNullOrBlank()) { + if (dataBeans[position].deviceCode.isNullOrBlank()) { "设备编号为空,无法查看历史数据".show(this@GroupDeviceActivity) return } - navigatePageTo(dataBeans[position].devcode) + navigatePageTo(dataBeans[position].deviceCode) } }) } 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 b27d3b4..12f1e79 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -14,7 +14,7 @@ import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton class DeviceListAdapter( - private val context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -31,7 +31,7 @@ //绑定数据 val rowsBean = dataRows[position] holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) - holder.deviceCodeView.text = rowsBean.devcode + holder.deviceCodeView.text = rowsBean.deviceCode holder.wellNameView.text = String.format("设备名:${rowsBean.deviceName}") holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { "0%" 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 2137d0c..053cf17 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java @@ -5,7 +5,7 @@ public class DeviceListModel { private int code; - private List data; + private List data; private String message; private String success; @@ -17,11 +17,11 @@ this.code = code; } - public List getData() { + public List getData() { return data; } - public void setData(List data) { + public void setData(List data) { this.data = data; } @@ -41,25 +41,16 @@ this.success = success; } - public static class DataBean { - private String devcode; + public static class DataModel { private String strength; private String snr; private String pci; private String rsrp; + private String deviceCode; private String cell; private String deviceName; private String uptime; private String tubeId; - private String deviceCode; - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } public String getStrength() { return strength; @@ -93,6 +84,14 @@ this.rsrp = rsrp; } + public String getDeviceCode() { + return deviceCode; + } + + public void setDeviceCode(String deviceCode) { + this.deviceCode = deviceCode; + } + public String getCell() { return cell; } @@ -124,13 +123,5 @@ public void setTubeId(String tubeId) { this.tubeId = tubeId; } - - public String getDeviceCode() { - return deviceCode; - } - - public void setDeviceCode(String deviceCode) { - this.deviceCode = deviceCode; - } } } diff --git a/app/src/main/java/com/casic/smarttube/model/GroupListModel.java b/app/src/main/java/com/casic/smarttube/model/GroupListModel.java new file mode 100644 index 0000000..4d41687 --- /dev/null +++ b/app/src/main/java/com/casic/smarttube/model/GroupListModel.java @@ -0,0 +1,43 @@ +package com.casic.smarttube.model; + +import java.util.List; + +public class GroupListModel { + + private int code; + private List data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt index d0f4d8f..f29fbb6 100644 --- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt @@ -107,12 +107,12 @@ /** * 获取设备详情 * - * @param tubeId 管盯ID + * @param deviceCode 管盯设备编号 */ - @GET("/tube/detail/{tubeId}") + @GET("/tube/detail/{deviceCode}") suspend fun obtainDeviceDetail( @Header("token") token: String, - @Path("tubeId") tubeId: String + @Path("deviceCode") deviceCode: String ): String /** @@ -208,4 +208,12 @@ @Header("token") token: String, @Body requestBody: RequestBody ): String + + /** + * 获取项目编号列表 + */ + @GET("/tube/groupdict") + suspend fun obtainGroupList( + @Header("token") token: String + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt index 79f45d1..1d2b13d 100644 --- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt @@ -219,4 +219,11 @@ ) return api.addDevice(AuthenticationHelper.token!!, requestBody) } + + /** + * 获取项目编号列表 + */ + suspend fun obtainGroupList(): String { + return api.obtainGroupList(AuthenticationHelper.token!!) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt index fd78271..573cc61 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -13,13 +13,12 @@ import com.amap.api.location.AMapLocation import com.casic.smarttube.R import com.casic.smarttube.callback.OnImageCompressListener -import com.casic.smarttube.extensions.combineImagePath -import com.casic.smarttube.extensions.compressImage +import com.casic.smarttube.extensions.* import com.casic.smarttube.extensions.isNumber -import com.casic.smarttube.extensions.reformat import com.casic.smarttube.model.UserDetailModel import com.casic.smarttube.utils.* import com.casic.smarttube.vm.DeviceViewModel +import com.casic.smarttube.vm.ProjectGroupViewModel import com.casic.smarttube.vm.UploadImageViewModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -30,10 +29,7 @@ import com.luck.picture.lib.interfaces.OnResultCallbackListener import com.pengxh.kt.lite.adapter.EditableImageAdapter 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.extensions.timestampToCompleteDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -41,8 +37,12 @@ import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet import kotlinx.android.synthetic.main.activity_add_device.* +import kotlinx.android.synthetic.main.activity_history_data.* import kotlinx.android.synthetic.main.include_base_title.* +import kotlinx.android.synthetic.main.include_base_title.leftBackView import java.io.File +import java.util.* +import kotlin.collections.ArrayList class AddDeviceActivity : KotlinBaseActivity() { @@ -52,11 +52,13 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var uploadImageViewModel: UploadImageViewModel private lateinit var deviceViewModel: DeviceViewModel + private lateinit var groupViewModel: ProjectGroupViewModel private val context: Context = this@AddDeviceActivity private val imagePaths: ArrayList = ArrayList() //服务器返回的拍照数据集 private val realPaths: ArrayList = ArrayList() //真实图片路径 private val frequency = listOf("1min", "2min", "5min", "10min", "15min", "30min", "60min") private var selectedImages = ArrayList() + private var ownerShip = "" override fun initLayoutView(): Int = R.layout.activity_add_device @@ -72,6 +74,7 @@ weakReferenceHandler = WeakReferenceHandler(callback) uploadImageViewModel = ViewModelProvider(this).get(UploadImageViewModel::class.java) deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) + groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) } override fun initEvent() { @@ -87,24 +90,54 @@ } ownerShipView.setOnClickListener { - AlertInputDialog.Builder() - .setContext(context) - .setTitle("提示") - .setHintMessage("请输入该设备所属项目名,如:项目203") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(object : - AlertInputDialog.OnDialogButtonClickListener { - override fun onCancelClick() { - - } - - override fun onConfirmClick(value: String) { - ownerShipView.text = value - } - }) - .build().show() + groupViewModel.obtainGroupList() } + groupViewModel.groupListModel.observe(this, { + val groups = ArrayList() + if (it.code == 200) { + if (it.data.isEmpty()) { + groups.add("自定义") + } else { + it.data.forEach { id -> + groups.add(id) + } + groups.add("自定义") + } + } else { + groups.add("自定义") + } + if (groups.isNotEmpty()) { + BottomActionSheet.Builder() + .setContext(this) + .setItemTextColor(Color.BLUE) + .setActionItemTitle(groups) + .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { + override fun onActionItemClick(position: Int) { + if (groups[position] == "自定义") { + AlertInputDialog.Builder() + .setContext(context) + .setTitle("提示") + .setHintMessage("请输入该设备所属项目名,如:项目203") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertInputDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + + } + + override fun onConfirmClick(value: String) { + ownerShipView.text = value + } + }) + .build().show() + } else { + ownerShipView.text = groups[position] + } + } + }).build().show() + } + }) //默认频率1min collectIntervalView.text = frequency[0] @@ -121,7 +154,7 @@ } locationImageView.setOnClickListener { - dialogManager.showLoadingDialog("定位中中,请稍后...") + dialogManager.showLoadingDialog("定位中,请稍后...") LocationHelper.obtainCurrentLocation(this, object : LocationHelper.ILocationListener { override fun onAMapLocationGet(aMapLocation: AMapLocation?) { @@ -246,16 +279,13 @@ deviceViewModel.loadState.observe(this, { when (it) { - LoadState.Loading -> { - dialogManager.showLoadingDialog("处理中,请稍后") - } + LoadState.Loading -> dialogManager.showLoadingDialog("处理中,请稍后") LoadState.Success -> { + Log.d(kTag, "initEvent: 成功") dialogManager.dismissLoadingDialog() this.finish() } - LoadState.Fail -> { - dialogManager.dismissLoadingDialog() - } + LoadState.Fail -> dialogManager.dismissLoadingDialog() } }) } 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 a528a3d..4e9b844 100644 --- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt @@ -30,7 +30,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var groupViewModel: ProjectGroupViewModel private lateinit var deviceAdapter: DeviceListAdapter - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false @@ -131,19 +131,19 @@ deviceAdapter.setOnItemClickListener(object : DeviceListAdapter.OnItemClickListener { override fun onClicked(position: Int) { - if (dataBeans[position].devcode.isNullOrBlank()) { - "设备编号为空,无法查看历设备详情".show(this@GroupDeviceActivity) + if (dataBeans[position].deviceCode.isNullOrBlank()) { + "设备编号为空,无法查看设备详情".show(this@GroupDeviceActivity) return } - navigatePageTo(dataBeans[position].tubeId) + navigatePageTo(dataBeans[position].deviceCode) } override fun onHistoryClicked(position: Int) { - if (dataBeans[position].devcode.isNullOrBlank()) { + if (dataBeans[position].deviceCode.isNullOrBlank()) { "设备编号为空,无法查看历史数据".show(this@GroupDeviceActivity) return } - navigatePageTo(dataBeans[position].devcode) + navigatePageTo(dataBeans[position].deviceCode) } }) } diff --git a/app/src/main/java/com/casic/smarttube/vm/ProjectGroupViewModel.kt b/app/src/main/java/com/casic/smarttube/vm/ProjectGroupViewModel.kt index c99b861..7f92187 100644 --- a/app/src/main/java/com/casic/smarttube/vm/ProjectGroupViewModel.kt +++ b/app/src/main/java/com/casic/smarttube/vm/ProjectGroupViewModel.kt @@ -6,6 +6,7 @@ import com.casic.smarttube.extensions.toErrorMessage import com.casic.smarttube.model.DeviceListModel import com.casic.smarttube.model.GroupDeviceModel +import com.casic.smarttube.model.GroupListModel import com.casic.smarttube.model.ProjectGroupModel import com.casic.smarttube.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson @@ -21,6 +22,7 @@ val groupModel = MutableLiveData() val groupDeviceModel = MutableLiveData() val deviceListModel = MutableLiveData() + val groupListModel = MutableLiveData() fun obtainProGroupList() = launch({ val response = RetrofitServiceManager.obtainProGroupList() @@ -69,4 +71,18 @@ }, { it.printStackTrace() }) + + fun obtainGroupList() = launch({ + val response = RetrofitServiceManager.obtainGroupList() + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + groupListModel.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { + response.toErrorMessage().show(BaseApplication.obtainInstance()) + } + }, { + it.printStackTrace() + }) } \ No newline at end of file