diff --git a/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt b/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt index 47a2ac0..b343b59 100644 --- a/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt +++ b/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt @@ -30,7 +30,7 @@ holder.groupNameView.text = rowsBean.projectName holder.projectAreaView.text = rowsBean.area - holder.projectTypeView.text = rowsBean.type + holder.projectTypeView.text = rowsBean.projectType holder.projectLocationView.text = rowsBean.location //绑定事件 diff --git a/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt b/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt index 47a2ac0..b343b59 100644 --- a/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt +++ b/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt @@ -30,7 +30,7 @@ holder.groupNameView.text = rowsBean.projectName holder.projectAreaView.text = rowsBean.area - holder.projectTypeView.text = rowsBean.type + holder.projectTypeView.text = rowsBean.projectType holder.projectLocationView.text = rowsBean.location //绑定事件 diff --git a/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java new file mode 100644 index 0000000..c632c8a --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java @@ -0,0 +1,134 @@ +package com.casic.br.operationsite.model; + +public class AlarmDetailModel { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean 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; + } + + public static class DataBean { + private String alarmDescription; + private String alarmLat; + private String alarmLng; + private String area; + private String createTime; + private String id; + private String illegalAvatar; + private String location; + private String projectName; + private String projectType; + + public String getAlarmDescription() { + return alarmDescription; + } + + public void setAlarmDescription(String alarmDescription) { + this.alarmDescription = alarmDescription; + } + + public String getAlarmLat() { + return alarmLat; + } + + public void setAlarmLat(String alarmLat) { + this.alarmLat = alarmLat; + } + + public String getAlarmLng() { + return alarmLng; + } + + public void setAlarmLng(String alarmLng) { + this.alarmLng = alarmLng; + } + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIllegalAvatar() { + return illegalAvatar; + } + + public void setIllegalAvatar(String illegalAvatar) { + this.illegalAvatar = illegalAvatar; + } + + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectType() { + return projectType; + } + + public void setProjectType(String projectType) { + this.projectType = projectType; + } + } +} diff --git a/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt b/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt index 47a2ac0..b343b59 100644 --- a/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt +++ b/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt @@ -30,7 +30,7 @@ holder.groupNameView.text = rowsBean.projectName holder.projectAreaView.text = rowsBean.area - holder.projectTypeView.text = rowsBean.type + holder.projectTypeView.text = rowsBean.projectType holder.projectLocationView.text = rowsBean.location //绑定事件 diff --git a/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java new file mode 100644 index 0000000..c632c8a --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java @@ -0,0 +1,134 @@ +package com.casic.br.operationsite.model; + +public class AlarmDetailModel { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean 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; + } + + public static class DataBean { + private String alarmDescription; + private String alarmLat; + private String alarmLng; + private String area; + private String createTime; + private String id; + private String illegalAvatar; + private String location; + private String projectName; + private String projectType; + + public String getAlarmDescription() { + return alarmDescription; + } + + public void setAlarmDescription(String alarmDescription) { + this.alarmDescription = alarmDescription; + } + + public String getAlarmLat() { + return alarmLat; + } + + public void setAlarmLat(String alarmLat) { + this.alarmLat = alarmLat; + } + + public String getAlarmLng() { + return alarmLng; + } + + public void setAlarmLng(String alarmLng) { + this.alarmLng = alarmLng; + } + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIllegalAvatar() { + return illegalAvatar; + } + + public void setIllegalAvatar(String illegalAvatar) { + this.illegalAvatar = illegalAvatar; + } + + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectType() { + return projectType; + } + + public void setProjectType(String projectType) { + this.projectType = projectType; + } + } +} diff --git a/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java b/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java index 7979a74..97c7284 100644 --- a/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java +++ b/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java @@ -62,12 +62,40 @@ } public static class RowsBean { + private String alarmDescription; + private String alarmLat; + private String alarmLng; private String area; private String createTime; private String id; + private String illegalAvatar; private String location; private String projectName; - private String type; + private String projectType; + + public String getAlarmDescription() { + return alarmDescription; + } + + public void setAlarmDescription(String alarmDescription) { + this.alarmDescription = alarmDescription; + } + + public String getAlarmLat() { + return alarmLat; + } + + public void setAlarmLat(String alarmLat) { + this.alarmLat = alarmLat; + } + + public String getAlarmLng() { + return alarmLng; + } + + public void setAlarmLng(String alarmLng) { + this.alarmLng = alarmLng; + } public String getArea() { return area; @@ -93,6 +121,14 @@ this.id = id; } + public String getIllegalAvatar() { + return illegalAvatar; + } + + public void setIllegalAvatar(String illegalAvatar) { + this.illegalAvatar = illegalAvatar; + } + public String getLocation() { return location; } @@ -109,12 +145,12 @@ this.projectName = projectName; } - public String getType() { - return type; + public String getProjectType() { + return projectType; } - public void setType(String type) { - this.type = type; + public void setProjectType(String projectType) { + this.projectType = projectType; } } } diff --git a/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt b/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt index 47a2ac0..b343b59 100644 --- a/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt +++ b/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt @@ -30,7 +30,7 @@ holder.groupNameView.text = rowsBean.projectName holder.projectAreaView.text = rowsBean.area - holder.projectTypeView.text = rowsBean.type + holder.projectTypeView.text = rowsBean.projectType holder.projectLocationView.text = rowsBean.location //绑定事件 diff --git a/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java new file mode 100644 index 0000000..c632c8a --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java @@ -0,0 +1,134 @@ +package com.casic.br.operationsite.model; + +public class AlarmDetailModel { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean 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; + } + + public static class DataBean { + private String alarmDescription; + private String alarmLat; + private String alarmLng; + private String area; + private String createTime; + private String id; + private String illegalAvatar; + private String location; + private String projectName; + private String projectType; + + public String getAlarmDescription() { + return alarmDescription; + } + + public void setAlarmDescription(String alarmDescription) { + this.alarmDescription = alarmDescription; + } + + public String getAlarmLat() { + return alarmLat; + } + + public void setAlarmLat(String alarmLat) { + this.alarmLat = alarmLat; + } + + public String getAlarmLng() { + return alarmLng; + } + + public void setAlarmLng(String alarmLng) { + this.alarmLng = alarmLng; + } + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIllegalAvatar() { + return illegalAvatar; + } + + public void setIllegalAvatar(String illegalAvatar) { + this.illegalAvatar = illegalAvatar; + } + + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectType() { + return projectType; + } + + public void setProjectType(String projectType) { + this.projectType = projectType; + } + } +} diff --git a/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java b/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java index 7979a74..97c7284 100644 --- a/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java +++ b/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java @@ -62,12 +62,40 @@ } public static class RowsBean { + private String alarmDescription; + private String alarmLat; + private String alarmLng; private String area; private String createTime; private String id; + private String illegalAvatar; private String location; private String projectName; - private String type; + private String projectType; + + public String getAlarmDescription() { + return alarmDescription; + } + + public void setAlarmDescription(String alarmDescription) { + this.alarmDescription = alarmDescription; + } + + public String getAlarmLat() { + return alarmLat; + } + + public void setAlarmLat(String alarmLat) { + this.alarmLat = alarmLat; + } + + public String getAlarmLng() { + return alarmLng; + } + + public void setAlarmLng(String alarmLng) { + this.alarmLng = alarmLng; + } public String getArea() { return area; @@ -93,6 +121,14 @@ this.id = id; } + public String getIllegalAvatar() { + return illegalAvatar; + } + + public void setIllegalAvatar(String illegalAvatar) { + this.illegalAvatar = illegalAvatar; + } + public String getLocation() { return location; } @@ -109,12 +145,12 @@ this.projectName = projectName; } - public String getType() { - return type; + public String getProjectType() { + return projectType; } - public void setType(String type) { - this.type = type; + public void setProjectType(String projectType) { + this.projectType = projectType; } } } diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index c7890de..552a08c 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -58,11 +58,21 @@ @GET("/alarm/listPage") suspend fun obtainAlarmListByPage( @Header("token") token: String, + @Query("keywords") keywords: String, @Query("offset") offset: Int, @Query("limit") limit: Int ): String /** + * 报警详情 + */ + @GET("/alarm/detail") + suspend fun obtainAlarmDetail( + @Header("token") token: String, + @Query("id") id: String + ): String + + /** * 上传图片 * 系统路径static拼接图片返回路径 * http://xx.com/static/2019-10/8050891248624f2bbefedcb196ce89cb.jpeg diff --git a/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt b/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt index 47a2ac0..b343b59 100644 --- a/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt +++ b/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt @@ -30,7 +30,7 @@ holder.groupNameView.text = rowsBean.projectName holder.projectAreaView.text = rowsBean.area - holder.projectTypeView.text = rowsBean.type + holder.projectTypeView.text = rowsBean.projectType holder.projectLocationView.text = rowsBean.location //绑定事件 diff --git a/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java new file mode 100644 index 0000000..c632c8a --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java @@ -0,0 +1,134 @@ +package com.casic.br.operationsite.model; + +public class AlarmDetailModel { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean 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; + } + + public static class DataBean { + private String alarmDescription; + private String alarmLat; + private String alarmLng; + private String area; + private String createTime; + private String id; + private String illegalAvatar; + private String location; + private String projectName; + private String projectType; + + public String getAlarmDescription() { + return alarmDescription; + } + + public void setAlarmDescription(String alarmDescription) { + this.alarmDescription = alarmDescription; + } + + public String getAlarmLat() { + return alarmLat; + } + + public void setAlarmLat(String alarmLat) { + this.alarmLat = alarmLat; + } + + public String getAlarmLng() { + return alarmLng; + } + + public void setAlarmLng(String alarmLng) { + this.alarmLng = alarmLng; + } + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIllegalAvatar() { + return illegalAvatar; + } + + public void setIllegalAvatar(String illegalAvatar) { + this.illegalAvatar = illegalAvatar; + } + + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectType() { + return projectType; + } + + public void setProjectType(String projectType) { + this.projectType = projectType; + } + } +} diff --git a/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java b/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java index 7979a74..97c7284 100644 --- a/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java +++ b/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java @@ -62,12 +62,40 @@ } public static class RowsBean { + private String alarmDescription; + private String alarmLat; + private String alarmLng; private String area; private String createTime; private String id; + private String illegalAvatar; private String location; private String projectName; - private String type; + private String projectType; + + public String getAlarmDescription() { + return alarmDescription; + } + + public void setAlarmDescription(String alarmDescription) { + this.alarmDescription = alarmDescription; + } + + public String getAlarmLat() { + return alarmLat; + } + + public void setAlarmLat(String alarmLat) { + this.alarmLat = alarmLat; + } + + public String getAlarmLng() { + return alarmLng; + } + + public void setAlarmLng(String alarmLng) { + this.alarmLng = alarmLng; + } public String getArea() { return area; @@ -93,6 +121,14 @@ this.id = id; } + public String getIllegalAvatar() { + return illegalAvatar; + } + + public void setIllegalAvatar(String illegalAvatar) { + this.illegalAvatar = illegalAvatar; + } + public String getLocation() { return location; } @@ -109,12 +145,12 @@ this.projectName = projectName; } - public String getType() { - return type; + public String getProjectType() { + return projectType; } - public void setType(String type) { - this.type = type; + public void setProjectType(String projectType) { + this.projectType = projectType; } } } diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index c7890de..552a08c 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -58,11 +58,21 @@ @GET("/alarm/listPage") suspend fun obtainAlarmListByPage( @Header("token") token: String, + @Query("keywords") keywords: String, @Query("offset") offset: Int, @Query("limit") limit: Int ): String /** + * 报警详情 + */ + @GET("/alarm/detail") + suspend fun obtainAlarmDetail( + @Header("token") token: String, + @Query("id") id: String + ): String + + /** * 上传图片 * 系统路径static拼接图片返回路径 * http://xx.com/static/2019-10/8050891248624f2bbefedcb196ce89cb.jpeg diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index 3a6f684..40ad053 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -58,15 +58,20 @@ /** * 报警列表 */ - suspend fun obtainAlarmListByPage(page: Int): String { + suspend fun obtainAlarmListByPage(keywords: String, page: Int): String { return api.obtainAlarmListByPage( - AuthenticationHelper.token!!, - page, - LocaleConstant.PAGE_LIMIT + AuthenticationHelper.token!!, keywords, page, LocaleConstant.PAGE_LIMIT ) } /** + * 报警详情 + */ + suspend fun obtainAlarmDetail(id: String): String { + return api.obtainAlarmDetail(AuthenticationHelper.token!!, id) + } + + /** * 上传图片 */ suspend fun uploadImage(image: File): String { diff --git a/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt b/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt index 47a2ac0..b343b59 100644 --- a/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt +++ b/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt @@ -30,7 +30,7 @@ holder.groupNameView.text = rowsBean.projectName holder.projectAreaView.text = rowsBean.area - holder.projectTypeView.text = rowsBean.type + holder.projectTypeView.text = rowsBean.projectType holder.projectLocationView.text = rowsBean.location //绑定事件 diff --git a/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java new file mode 100644 index 0000000..c632c8a --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java @@ -0,0 +1,134 @@ +package com.casic.br.operationsite.model; + +public class AlarmDetailModel { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean 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; + } + + public static class DataBean { + private String alarmDescription; + private String alarmLat; + private String alarmLng; + private String area; + private String createTime; + private String id; + private String illegalAvatar; + private String location; + private String projectName; + private String projectType; + + public String getAlarmDescription() { + return alarmDescription; + } + + public void setAlarmDescription(String alarmDescription) { + this.alarmDescription = alarmDescription; + } + + public String getAlarmLat() { + return alarmLat; + } + + public void setAlarmLat(String alarmLat) { + this.alarmLat = alarmLat; + } + + public String getAlarmLng() { + return alarmLng; + } + + public void setAlarmLng(String alarmLng) { + this.alarmLng = alarmLng; + } + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIllegalAvatar() { + return illegalAvatar; + } + + public void setIllegalAvatar(String illegalAvatar) { + this.illegalAvatar = illegalAvatar; + } + + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectType() { + return projectType; + } + + public void setProjectType(String projectType) { + this.projectType = projectType; + } + } +} diff --git a/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java b/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java index 7979a74..97c7284 100644 --- a/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java +++ b/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java @@ -62,12 +62,40 @@ } public static class RowsBean { + private String alarmDescription; + private String alarmLat; + private String alarmLng; private String area; private String createTime; private String id; + private String illegalAvatar; private String location; private String projectName; - private String type; + private String projectType; + + public String getAlarmDescription() { + return alarmDescription; + } + + public void setAlarmDescription(String alarmDescription) { + this.alarmDescription = alarmDescription; + } + + public String getAlarmLat() { + return alarmLat; + } + + public void setAlarmLat(String alarmLat) { + this.alarmLat = alarmLat; + } + + public String getAlarmLng() { + return alarmLng; + } + + public void setAlarmLng(String alarmLng) { + this.alarmLng = alarmLng; + } public String getArea() { return area; @@ -93,6 +121,14 @@ this.id = id; } + public String getIllegalAvatar() { + return illegalAvatar; + } + + public void setIllegalAvatar(String illegalAvatar) { + this.illegalAvatar = illegalAvatar; + } + public String getLocation() { return location; } @@ -109,12 +145,12 @@ this.projectName = projectName; } - public String getType() { - return type; + public String getProjectType() { + return projectType; } - public void setType(String type) { - this.type = type; + public void setProjectType(String projectType) { + this.projectType = projectType; } } } diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index c7890de..552a08c 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -58,11 +58,21 @@ @GET("/alarm/listPage") suspend fun obtainAlarmListByPage( @Header("token") token: String, + @Query("keywords") keywords: String, @Query("offset") offset: Int, @Query("limit") limit: Int ): String /** + * 报警详情 + */ + @GET("/alarm/detail") + suspend fun obtainAlarmDetail( + @Header("token") token: String, + @Query("id") id: String + ): String + + /** * 上传图片 * 系统路径static拼接图片返回路径 * http://xx.com/static/2019-10/8050891248624f2bbefedcb196ce89cb.jpeg diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index 3a6f684..40ad053 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -58,15 +58,20 @@ /** * 报警列表 */ - suspend fun obtainAlarmListByPage(page: Int): String { + suspend fun obtainAlarmListByPage(keywords: String, page: Int): String { return api.obtainAlarmListByPage( - AuthenticationHelper.token!!, - page, - LocaleConstant.PAGE_LIMIT + AuthenticationHelper.token!!, keywords, page, LocaleConstant.PAGE_LIMIT ) } /** + * 报警详情 + */ + suspend fun obtainAlarmDetail(id: String): String { + return api.obtainAlarmDetail(AuthenticationHelper.token!!, id) + } + + /** * 上传图片 */ suspend fun uploadImage(image: File): String { diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index fba0d2c..adadca0 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -2,6 +2,7 @@ import android.os.Bundle import android.view.View +import androidx.lifecycle.ViewModelProvider import com.amap.api.maps.AMap import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory @@ -9,20 +10,26 @@ import com.amap.api.maps.model.CameraPosition import com.amap.api.maps.model.LatLng import com.amap.api.maps.model.MarkerOptions +import com.bumptech.glide.Glide +import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.combineImagePath +import com.casic.br.operationsite.utils.DialogHelper +import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil -import kotlinx.android.synthetic.main.activity_site_tab.* +import com.pengxh.kt.lite.vm.LoadState +import kotlinx.android.synthetic.main.activity_alarm_detail.* +import kotlinx.android.synthetic.main.activity_site_tab.mapView import kotlinx.android.synthetic.main.include_base_title.* -class AlarmDetailActivity : KotlinBaseActivity() , AMap.OnMapLoadedListener{ +class AlarmDetailActivity : KotlinBaseActivity() { private lateinit var aMap: AMap - private var latLng: LatLng? = null + private lateinit var alarmViewModel: AlarmViewModel override fun initLayoutView(): Int = R.layout.activity_alarm_detail @@ -46,35 +53,52 @@ uiSettings.isTiltGesturesEnabled = false//不许地图随手势倾斜角度 uiSettings.isRotateGesturesEnabled = false//不允许地图旋转 - //地图加载成功之后调用 - aMap.addOnMapLoadedListener(this) - } - - override fun onMapLoaded() { - if (latLng == null) { - "经纬度异常,无法在地图显示".show(this) - return - } /** - * 参数1---要移动到的经纬度 - * 参数2---地图的放缩级别zoom - * 参数3---地图倾斜度 - * 参数4---地图的旋转角度 + * 数据初始化 * */ - val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f) - val newCameraPosition = CameraUpdateFactory.newCameraPosition(cameraPosition) - aMap.animateCamera(newCameraPosition, 1500, object : AMap.CancelableCallback { - override fun onFinish() { - //添加Marker - val markerOptions = MarkerOptions() - .position(latLng) - .icon(BitmapDescriptorFactory.fromResource(R.mipmap.well_location)) - .draggable(true) - aMap.addMarker(markerOptions) + alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + alarmViewModel.obtainAlarmDetail(id) + alarmViewModel.detailModel.observe(this, { + if (it.code == 200) { + val detailData = it.data + + val latLng = LatLng( + detailData.alarmLat.toDouble(), detailData.alarmLng.toDouble() + ) + val cameraPosition = CameraPosition(latLng, 18f, 0f, 0f) + val newCameraPosition = CameraUpdateFactory.newCameraPosition(cameraPosition) + aMap.animateCamera(newCameraPosition, 1500, object : AMap.CancelableCallback { + override fun onFinish() { + //添加Marker + val markerOptions = MarkerOptions() + .position(latLng) + .icon(BitmapDescriptorFactory.fromResource(R.mipmap.well_location)) + .draggable(true) + aMap.addMarker(markerOptions) + } + + override fun onCancel() { + + } + }) + + Glide.with(this) + .load(detailData.illegalAvatar.combineImagePath()) + .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) + .into(avatarView) + timeView.text = detailData.createTime + descriptionView.text = detailData.alarmDescription } + }) - override fun onCancel() { - + alarmViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "数据加载中,请稍后...") + } + else -> { + DialogHelper.dismissLoadingDialog() + } } }) } diff --git a/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt b/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt index 47a2ac0..b343b59 100644 --- a/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt +++ b/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt @@ -30,7 +30,7 @@ holder.groupNameView.text = rowsBean.projectName holder.projectAreaView.text = rowsBean.area - holder.projectTypeView.text = rowsBean.type + holder.projectTypeView.text = rowsBean.projectType holder.projectLocationView.text = rowsBean.location //绑定事件 diff --git a/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java new file mode 100644 index 0000000..c632c8a --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java @@ -0,0 +1,134 @@ +package com.casic.br.operationsite.model; + +public class AlarmDetailModel { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean 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; + } + + public static class DataBean { + private String alarmDescription; + private String alarmLat; + private String alarmLng; + private String area; + private String createTime; + private String id; + private String illegalAvatar; + private String location; + private String projectName; + private String projectType; + + public String getAlarmDescription() { + return alarmDescription; + } + + public void setAlarmDescription(String alarmDescription) { + this.alarmDescription = alarmDescription; + } + + public String getAlarmLat() { + return alarmLat; + } + + public void setAlarmLat(String alarmLat) { + this.alarmLat = alarmLat; + } + + public String getAlarmLng() { + return alarmLng; + } + + public void setAlarmLng(String alarmLng) { + this.alarmLng = alarmLng; + } + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIllegalAvatar() { + return illegalAvatar; + } + + public void setIllegalAvatar(String illegalAvatar) { + this.illegalAvatar = illegalAvatar; + } + + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectType() { + return projectType; + } + + public void setProjectType(String projectType) { + this.projectType = projectType; + } + } +} diff --git a/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java b/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java index 7979a74..97c7284 100644 --- a/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java +++ b/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java @@ -62,12 +62,40 @@ } public static class RowsBean { + private String alarmDescription; + private String alarmLat; + private String alarmLng; private String area; private String createTime; private String id; + private String illegalAvatar; private String location; private String projectName; - private String type; + private String projectType; + + public String getAlarmDescription() { + return alarmDescription; + } + + public void setAlarmDescription(String alarmDescription) { + this.alarmDescription = alarmDescription; + } + + public String getAlarmLat() { + return alarmLat; + } + + public void setAlarmLat(String alarmLat) { + this.alarmLat = alarmLat; + } + + public String getAlarmLng() { + return alarmLng; + } + + public void setAlarmLng(String alarmLng) { + this.alarmLng = alarmLng; + } public String getArea() { return area; @@ -93,6 +121,14 @@ this.id = id; } + public String getIllegalAvatar() { + return illegalAvatar; + } + + public void setIllegalAvatar(String illegalAvatar) { + this.illegalAvatar = illegalAvatar; + } + public String getLocation() { return location; } @@ -109,12 +145,12 @@ this.projectName = projectName; } - public String getType() { - return type; + public String getProjectType() { + return projectType; } - public void setType(String type) { - this.type = type; + public void setProjectType(String projectType) { + this.projectType = projectType; } } } diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index c7890de..552a08c 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -58,11 +58,21 @@ @GET("/alarm/listPage") suspend fun obtainAlarmListByPage( @Header("token") token: String, + @Query("keywords") keywords: String, @Query("offset") offset: Int, @Query("limit") limit: Int ): String /** + * 报警详情 + */ + @GET("/alarm/detail") + suspend fun obtainAlarmDetail( + @Header("token") token: String, + @Query("id") id: String + ): String + + /** * 上传图片 * 系统路径static拼接图片返回路径 * http://xx.com/static/2019-10/8050891248624f2bbefedcb196ce89cb.jpeg diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index 3a6f684..40ad053 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -58,15 +58,20 @@ /** * 报警列表 */ - suspend fun obtainAlarmListByPage(page: Int): String { + suspend fun obtainAlarmListByPage(keywords: String, page: Int): String { return api.obtainAlarmListByPage( - AuthenticationHelper.token!!, - page, - LocaleConstant.PAGE_LIMIT + AuthenticationHelper.token!!, keywords, page, LocaleConstant.PAGE_LIMIT ) } /** + * 报警详情 + */ + suspend fun obtainAlarmDetail(id: String): String { + return api.obtainAlarmDetail(AuthenticationHelper.token!!, id) + } + + /** * 上传图片 */ suspend fun uploadImage(image: File): String { diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index fba0d2c..adadca0 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -2,6 +2,7 @@ import android.os.Bundle import android.view.View +import androidx.lifecycle.ViewModelProvider import com.amap.api.maps.AMap import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory @@ -9,20 +10,26 @@ import com.amap.api.maps.model.CameraPosition import com.amap.api.maps.model.LatLng import com.amap.api.maps.model.MarkerOptions +import com.bumptech.glide.Glide +import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.combineImagePath +import com.casic.br.operationsite.utils.DialogHelper +import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil -import kotlinx.android.synthetic.main.activity_site_tab.* +import com.pengxh.kt.lite.vm.LoadState +import kotlinx.android.synthetic.main.activity_alarm_detail.* +import kotlinx.android.synthetic.main.activity_site_tab.mapView import kotlinx.android.synthetic.main.include_base_title.* -class AlarmDetailActivity : KotlinBaseActivity() , AMap.OnMapLoadedListener{ +class AlarmDetailActivity : KotlinBaseActivity() { private lateinit var aMap: AMap - private var latLng: LatLng? = null + private lateinit var alarmViewModel: AlarmViewModel override fun initLayoutView(): Int = R.layout.activity_alarm_detail @@ -46,35 +53,52 @@ uiSettings.isTiltGesturesEnabled = false//不许地图随手势倾斜角度 uiSettings.isRotateGesturesEnabled = false//不允许地图旋转 - //地图加载成功之后调用 - aMap.addOnMapLoadedListener(this) - } - - override fun onMapLoaded() { - if (latLng == null) { - "经纬度异常,无法在地图显示".show(this) - return - } /** - * 参数1---要移动到的经纬度 - * 参数2---地图的放缩级别zoom - * 参数3---地图倾斜度 - * 参数4---地图的旋转角度 + * 数据初始化 * */ - val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f) - val newCameraPosition = CameraUpdateFactory.newCameraPosition(cameraPosition) - aMap.animateCamera(newCameraPosition, 1500, object : AMap.CancelableCallback { - override fun onFinish() { - //添加Marker - val markerOptions = MarkerOptions() - .position(latLng) - .icon(BitmapDescriptorFactory.fromResource(R.mipmap.well_location)) - .draggable(true) - aMap.addMarker(markerOptions) + alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + alarmViewModel.obtainAlarmDetail(id) + alarmViewModel.detailModel.observe(this, { + if (it.code == 200) { + val detailData = it.data + + val latLng = LatLng( + detailData.alarmLat.toDouble(), detailData.alarmLng.toDouble() + ) + val cameraPosition = CameraPosition(latLng, 18f, 0f, 0f) + val newCameraPosition = CameraUpdateFactory.newCameraPosition(cameraPosition) + aMap.animateCamera(newCameraPosition, 1500, object : AMap.CancelableCallback { + override fun onFinish() { + //添加Marker + val markerOptions = MarkerOptions() + .position(latLng) + .icon(BitmapDescriptorFactory.fromResource(R.mipmap.well_location)) + .draggable(true) + aMap.addMarker(markerOptions) + } + + override fun onCancel() { + + } + }) + + Glide.with(this) + .load(detailData.illegalAvatar.combineImagePath()) + .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) + .into(avatarView) + timeView.text = detailData.createTime + descriptionView.text = detailData.alarmDescription } + }) - override fun onCancel() { - + alarmViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "数据加载中,请稍后...") + } + else -> { + DialogHelper.dismissLoadingDialog() + } } }) } diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index d6594c7..0e5be23 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -32,6 +32,7 @@ private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.activity_alarm_list @@ -40,9 +41,10 @@ ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) searchTextView.setOnClickListener { - if (searchInputView.text.isNullOrBlank()) { - "错误!请重新输入!".show(this) - } + keywords = searchInputView.text.toString() + + pageIndex = 1 + obtainAlarmListByPage() } } @@ -110,7 +112,7 @@ } private fun obtainAlarmListByPage() { - alarmViewModel.obtainAlarmListByPage(pageIndex) + alarmViewModel.obtainAlarmListByPage(keywords, pageIndex) } private val callback = Handler.Callback { diff --git a/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt b/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt index 47a2ac0..b343b59 100644 --- a/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt +++ b/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt @@ -30,7 +30,7 @@ holder.groupNameView.text = rowsBean.projectName holder.projectAreaView.text = rowsBean.area - holder.projectTypeView.text = rowsBean.type + holder.projectTypeView.text = rowsBean.projectType holder.projectLocationView.text = rowsBean.location //绑定事件 diff --git a/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java new file mode 100644 index 0000000..c632c8a --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java @@ -0,0 +1,134 @@ +package com.casic.br.operationsite.model; + +public class AlarmDetailModel { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean 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; + } + + public static class DataBean { + private String alarmDescription; + private String alarmLat; + private String alarmLng; + private String area; + private String createTime; + private String id; + private String illegalAvatar; + private String location; + private String projectName; + private String projectType; + + public String getAlarmDescription() { + return alarmDescription; + } + + public void setAlarmDescription(String alarmDescription) { + this.alarmDescription = alarmDescription; + } + + public String getAlarmLat() { + return alarmLat; + } + + public void setAlarmLat(String alarmLat) { + this.alarmLat = alarmLat; + } + + public String getAlarmLng() { + return alarmLng; + } + + public void setAlarmLng(String alarmLng) { + this.alarmLng = alarmLng; + } + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIllegalAvatar() { + return illegalAvatar; + } + + public void setIllegalAvatar(String illegalAvatar) { + this.illegalAvatar = illegalAvatar; + } + + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectType() { + return projectType; + } + + public void setProjectType(String projectType) { + this.projectType = projectType; + } + } +} diff --git a/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java b/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java index 7979a74..97c7284 100644 --- a/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java +++ b/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java @@ -62,12 +62,40 @@ } public static class RowsBean { + private String alarmDescription; + private String alarmLat; + private String alarmLng; private String area; private String createTime; private String id; + private String illegalAvatar; private String location; private String projectName; - private String type; + private String projectType; + + public String getAlarmDescription() { + return alarmDescription; + } + + public void setAlarmDescription(String alarmDescription) { + this.alarmDescription = alarmDescription; + } + + public String getAlarmLat() { + return alarmLat; + } + + public void setAlarmLat(String alarmLat) { + this.alarmLat = alarmLat; + } + + public String getAlarmLng() { + return alarmLng; + } + + public void setAlarmLng(String alarmLng) { + this.alarmLng = alarmLng; + } public String getArea() { return area; @@ -93,6 +121,14 @@ this.id = id; } + public String getIllegalAvatar() { + return illegalAvatar; + } + + public void setIllegalAvatar(String illegalAvatar) { + this.illegalAvatar = illegalAvatar; + } + public String getLocation() { return location; } @@ -109,12 +145,12 @@ this.projectName = projectName; } - public String getType() { - return type; + public String getProjectType() { + return projectType; } - public void setType(String type) { - this.type = type; + public void setProjectType(String projectType) { + this.projectType = projectType; } } } diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index c7890de..552a08c 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -58,11 +58,21 @@ @GET("/alarm/listPage") suspend fun obtainAlarmListByPage( @Header("token") token: String, + @Query("keywords") keywords: String, @Query("offset") offset: Int, @Query("limit") limit: Int ): String /** + * 报警详情 + */ + @GET("/alarm/detail") + suspend fun obtainAlarmDetail( + @Header("token") token: String, + @Query("id") id: String + ): String + + /** * 上传图片 * 系统路径static拼接图片返回路径 * http://xx.com/static/2019-10/8050891248624f2bbefedcb196ce89cb.jpeg diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index 3a6f684..40ad053 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -58,15 +58,20 @@ /** * 报警列表 */ - suspend fun obtainAlarmListByPage(page: Int): String { + suspend fun obtainAlarmListByPage(keywords: String, page: Int): String { return api.obtainAlarmListByPage( - AuthenticationHelper.token!!, - page, - LocaleConstant.PAGE_LIMIT + AuthenticationHelper.token!!, keywords, page, LocaleConstant.PAGE_LIMIT ) } /** + * 报警详情 + */ + suspend fun obtainAlarmDetail(id: String): String { + return api.obtainAlarmDetail(AuthenticationHelper.token!!, id) + } + + /** * 上传图片 */ suspend fun uploadImage(image: File): String { diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index fba0d2c..adadca0 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -2,6 +2,7 @@ import android.os.Bundle import android.view.View +import androidx.lifecycle.ViewModelProvider import com.amap.api.maps.AMap import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory @@ -9,20 +10,26 @@ import com.amap.api.maps.model.CameraPosition import com.amap.api.maps.model.LatLng import com.amap.api.maps.model.MarkerOptions +import com.bumptech.glide.Glide +import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.combineImagePath +import com.casic.br.operationsite.utils.DialogHelper +import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil -import kotlinx.android.synthetic.main.activity_site_tab.* +import com.pengxh.kt.lite.vm.LoadState +import kotlinx.android.synthetic.main.activity_alarm_detail.* +import kotlinx.android.synthetic.main.activity_site_tab.mapView import kotlinx.android.synthetic.main.include_base_title.* -class AlarmDetailActivity : KotlinBaseActivity() , AMap.OnMapLoadedListener{ +class AlarmDetailActivity : KotlinBaseActivity() { private lateinit var aMap: AMap - private var latLng: LatLng? = null + private lateinit var alarmViewModel: AlarmViewModel override fun initLayoutView(): Int = R.layout.activity_alarm_detail @@ -46,35 +53,52 @@ uiSettings.isTiltGesturesEnabled = false//不许地图随手势倾斜角度 uiSettings.isRotateGesturesEnabled = false//不允许地图旋转 - //地图加载成功之后调用 - aMap.addOnMapLoadedListener(this) - } - - override fun onMapLoaded() { - if (latLng == null) { - "经纬度异常,无法在地图显示".show(this) - return - } /** - * 参数1---要移动到的经纬度 - * 参数2---地图的放缩级别zoom - * 参数3---地图倾斜度 - * 参数4---地图的旋转角度 + * 数据初始化 * */ - val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f) - val newCameraPosition = CameraUpdateFactory.newCameraPosition(cameraPosition) - aMap.animateCamera(newCameraPosition, 1500, object : AMap.CancelableCallback { - override fun onFinish() { - //添加Marker - val markerOptions = MarkerOptions() - .position(latLng) - .icon(BitmapDescriptorFactory.fromResource(R.mipmap.well_location)) - .draggable(true) - aMap.addMarker(markerOptions) + alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + alarmViewModel.obtainAlarmDetail(id) + alarmViewModel.detailModel.observe(this, { + if (it.code == 200) { + val detailData = it.data + + val latLng = LatLng( + detailData.alarmLat.toDouble(), detailData.alarmLng.toDouble() + ) + val cameraPosition = CameraPosition(latLng, 18f, 0f, 0f) + val newCameraPosition = CameraUpdateFactory.newCameraPosition(cameraPosition) + aMap.animateCamera(newCameraPosition, 1500, object : AMap.CancelableCallback { + override fun onFinish() { + //添加Marker + val markerOptions = MarkerOptions() + .position(latLng) + .icon(BitmapDescriptorFactory.fromResource(R.mipmap.well_location)) + .draggable(true) + aMap.addMarker(markerOptions) + } + + override fun onCancel() { + + } + }) + + Glide.with(this) + .load(detailData.illegalAvatar.combineImagePath()) + .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) + .into(avatarView) + timeView.text = detailData.createTime + descriptionView.text = detailData.alarmDescription } + }) - override fun onCancel() { - + alarmViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "数据加载中,请稍后...") + } + else -> { + DialogHelper.dismissLoadingDialog() + } } }) } diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index d6594c7..0e5be23 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -32,6 +32,7 @@ private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.activity_alarm_list @@ -40,9 +41,10 @@ ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) searchTextView.setOnClickListener { - if (searchInputView.text.isNullOrBlank()) { - "错误!请重新输入!".show(this) - } + keywords = searchInputView.text.toString() + + pageIndex = 1 + obtainAlarmListByPage() } } @@ -110,7 +112,7 @@ } private fun obtainAlarmListByPage() { - alarmViewModel.obtainAlarmListByPage(pageIndex) + alarmViewModel.obtainAlarmListByPage(keywords, pageIndex) } private val callback = Handler.Callback { diff --git a/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt index f438b3b..6ed8f20 100644 --- a/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt +++ b/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt @@ -4,6 +4,7 @@ import com.casic.br.operationsite.base.BaseApplication import com.casic.br.operationsite.extensions.separateResponseCode import com.casic.br.operationsite.extensions.toErrorMessage +import com.casic.br.operationsite.model.AlarmDetailModel import com.casic.br.operationsite.model.AlarmListModel import com.casic.br.operationsite.retrofit.RetrofitServiceManager import com.google.gson.Gson @@ -17,10 +18,11 @@ private val gson = Gson() val alarmModel = MutableLiveData() + val detailModel = MutableLiveData() - fun obtainAlarmListByPage(page: Int) = launch({ + fun obtainAlarmListByPage(keywords: String, page: Int) = launch({ loadState.value = LoadState.Loading - val response = RetrofitServiceManager.obtainAlarmListByPage(page) + val response = RetrofitServiceManager.obtainAlarmListByPage(keywords, page) val responseCode = response.separateResponseCode() if (responseCode == 200) { alarmModel.value = gson.fromJson( @@ -34,4 +36,21 @@ }, { it.printStackTrace() }) + + fun obtainAlarmDetail(id: String) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.obtainAlarmDetail(id) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + detailModel.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + loadState.value = LoadState.Success + } else { + loadState.value = LoadState.Fail + response.toErrorMessage().show(BaseApplication.obtainInstance()) + } + }, { + it.printStackTrace() + }) } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt b/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt index 47a2ac0..b343b59 100644 --- a/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt +++ b/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt @@ -30,7 +30,7 @@ holder.groupNameView.text = rowsBean.projectName holder.projectAreaView.text = rowsBean.area - holder.projectTypeView.text = rowsBean.type + holder.projectTypeView.text = rowsBean.projectType holder.projectLocationView.text = rowsBean.location //绑定事件 diff --git a/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java new file mode 100644 index 0000000..c632c8a --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java @@ -0,0 +1,134 @@ +package com.casic.br.operationsite.model; + +public class AlarmDetailModel { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean 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; + } + + public static class DataBean { + private String alarmDescription; + private String alarmLat; + private String alarmLng; + private String area; + private String createTime; + private String id; + private String illegalAvatar; + private String location; + private String projectName; + private String projectType; + + public String getAlarmDescription() { + return alarmDescription; + } + + public void setAlarmDescription(String alarmDescription) { + this.alarmDescription = alarmDescription; + } + + public String getAlarmLat() { + return alarmLat; + } + + public void setAlarmLat(String alarmLat) { + this.alarmLat = alarmLat; + } + + public String getAlarmLng() { + return alarmLng; + } + + public void setAlarmLng(String alarmLng) { + this.alarmLng = alarmLng; + } + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIllegalAvatar() { + return illegalAvatar; + } + + public void setIllegalAvatar(String illegalAvatar) { + this.illegalAvatar = illegalAvatar; + } + + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectType() { + return projectType; + } + + public void setProjectType(String projectType) { + this.projectType = projectType; + } + } +} diff --git a/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java b/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java index 7979a74..97c7284 100644 --- a/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java +++ b/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java @@ -62,12 +62,40 @@ } public static class RowsBean { + private String alarmDescription; + private String alarmLat; + private String alarmLng; private String area; private String createTime; private String id; + private String illegalAvatar; private String location; private String projectName; - private String type; + private String projectType; + + public String getAlarmDescription() { + return alarmDescription; + } + + public void setAlarmDescription(String alarmDescription) { + this.alarmDescription = alarmDescription; + } + + public String getAlarmLat() { + return alarmLat; + } + + public void setAlarmLat(String alarmLat) { + this.alarmLat = alarmLat; + } + + public String getAlarmLng() { + return alarmLng; + } + + public void setAlarmLng(String alarmLng) { + this.alarmLng = alarmLng; + } public String getArea() { return area; @@ -93,6 +121,14 @@ this.id = id; } + public String getIllegalAvatar() { + return illegalAvatar; + } + + public void setIllegalAvatar(String illegalAvatar) { + this.illegalAvatar = illegalAvatar; + } + public String getLocation() { return location; } @@ -109,12 +145,12 @@ this.projectName = projectName; } - public String getType() { - return type; + public String getProjectType() { + return projectType; } - public void setType(String type) { - this.type = type; + public void setProjectType(String projectType) { + this.projectType = projectType; } } } diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index c7890de..552a08c 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -58,11 +58,21 @@ @GET("/alarm/listPage") suspend fun obtainAlarmListByPage( @Header("token") token: String, + @Query("keywords") keywords: String, @Query("offset") offset: Int, @Query("limit") limit: Int ): String /** + * 报警详情 + */ + @GET("/alarm/detail") + suspend fun obtainAlarmDetail( + @Header("token") token: String, + @Query("id") id: String + ): String + + /** * 上传图片 * 系统路径static拼接图片返回路径 * http://xx.com/static/2019-10/8050891248624f2bbefedcb196ce89cb.jpeg diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index 3a6f684..40ad053 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -58,15 +58,20 @@ /** * 报警列表 */ - suspend fun obtainAlarmListByPage(page: Int): String { + suspend fun obtainAlarmListByPage(keywords: String, page: Int): String { return api.obtainAlarmListByPage( - AuthenticationHelper.token!!, - page, - LocaleConstant.PAGE_LIMIT + AuthenticationHelper.token!!, keywords, page, LocaleConstant.PAGE_LIMIT ) } /** + * 报警详情 + */ + suspend fun obtainAlarmDetail(id: String): String { + return api.obtainAlarmDetail(AuthenticationHelper.token!!, id) + } + + /** * 上传图片 */ suspend fun uploadImage(image: File): String { diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index fba0d2c..adadca0 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -2,6 +2,7 @@ import android.os.Bundle import android.view.View +import androidx.lifecycle.ViewModelProvider import com.amap.api.maps.AMap import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory @@ -9,20 +10,26 @@ import com.amap.api.maps.model.CameraPosition import com.amap.api.maps.model.LatLng import com.amap.api.maps.model.MarkerOptions +import com.bumptech.glide.Glide +import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.combineImagePath +import com.casic.br.operationsite.utils.DialogHelper +import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil -import kotlinx.android.synthetic.main.activity_site_tab.* +import com.pengxh.kt.lite.vm.LoadState +import kotlinx.android.synthetic.main.activity_alarm_detail.* +import kotlinx.android.synthetic.main.activity_site_tab.mapView import kotlinx.android.synthetic.main.include_base_title.* -class AlarmDetailActivity : KotlinBaseActivity() , AMap.OnMapLoadedListener{ +class AlarmDetailActivity : KotlinBaseActivity() { private lateinit var aMap: AMap - private var latLng: LatLng? = null + private lateinit var alarmViewModel: AlarmViewModel override fun initLayoutView(): Int = R.layout.activity_alarm_detail @@ -46,35 +53,52 @@ uiSettings.isTiltGesturesEnabled = false//不许地图随手势倾斜角度 uiSettings.isRotateGesturesEnabled = false//不允许地图旋转 - //地图加载成功之后调用 - aMap.addOnMapLoadedListener(this) - } - - override fun onMapLoaded() { - if (latLng == null) { - "经纬度异常,无法在地图显示".show(this) - return - } /** - * 参数1---要移动到的经纬度 - * 参数2---地图的放缩级别zoom - * 参数3---地图倾斜度 - * 参数4---地图的旋转角度 + * 数据初始化 * */ - val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f) - val newCameraPosition = CameraUpdateFactory.newCameraPosition(cameraPosition) - aMap.animateCamera(newCameraPosition, 1500, object : AMap.CancelableCallback { - override fun onFinish() { - //添加Marker - val markerOptions = MarkerOptions() - .position(latLng) - .icon(BitmapDescriptorFactory.fromResource(R.mipmap.well_location)) - .draggable(true) - aMap.addMarker(markerOptions) + alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + alarmViewModel.obtainAlarmDetail(id) + alarmViewModel.detailModel.observe(this, { + if (it.code == 200) { + val detailData = it.data + + val latLng = LatLng( + detailData.alarmLat.toDouble(), detailData.alarmLng.toDouble() + ) + val cameraPosition = CameraPosition(latLng, 18f, 0f, 0f) + val newCameraPosition = CameraUpdateFactory.newCameraPosition(cameraPosition) + aMap.animateCamera(newCameraPosition, 1500, object : AMap.CancelableCallback { + override fun onFinish() { + //添加Marker + val markerOptions = MarkerOptions() + .position(latLng) + .icon(BitmapDescriptorFactory.fromResource(R.mipmap.well_location)) + .draggable(true) + aMap.addMarker(markerOptions) + } + + override fun onCancel() { + + } + }) + + Glide.with(this) + .load(detailData.illegalAvatar.combineImagePath()) + .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) + .into(avatarView) + timeView.text = detailData.createTime + descriptionView.text = detailData.alarmDescription } + }) - override fun onCancel() { - + alarmViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "数据加载中,请稍后...") + } + else -> { + DialogHelper.dismissLoadingDialog() + } } }) } diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index d6594c7..0e5be23 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -32,6 +32,7 @@ private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.activity_alarm_list @@ -40,9 +41,10 @@ ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) searchTextView.setOnClickListener { - if (searchInputView.text.isNullOrBlank()) { - "错误!请重新输入!".show(this) - } + keywords = searchInputView.text.toString() + + pageIndex = 1 + obtainAlarmListByPage() } } @@ -110,7 +112,7 @@ } private fun obtainAlarmListByPage() { - alarmViewModel.obtainAlarmListByPage(pageIndex) + alarmViewModel.obtainAlarmListByPage(keywords, pageIndex) } private val callback = Handler.Callback { diff --git a/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt index f438b3b..6ed8f20 100644 --- a/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt +++ b/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt @@ -4,6 +4,7 @@ import com.casic.br.operationsite.base.BaseApplication import com.casic.br.operationsite.extensions.separateResponseCode import com.casic.br.operationsite.extensions.toErrorMessage +import com.casic.br.operationsite.model.AlarmDetailModel import com.casic.br.operationsite.model.AlarmListModel import com.casic.br.operationsite.retrofit.RetrofitServiceManager import com.google.gson.Gson @@ -17,10 +18,11 @@ private val gson = Gson() val alarmModel = MutableLiveData() + val detailModel = MutableLiveData() - fun obtainAlarmListByPage(page: Int) = launch({ + fun obtainAlarmListByPage(keywords: String, page: Int) = launch({ loadState.value = LoadState.Loading - val response = RetrofitServiceManager.obtainAlarmListByPage(page) + val response = RetrofitServiceManager.obtainAlarmListByPage(keywords, page) val responseCode = response.separateResponseCode() if (responseCode == 200) { alarmModel.value = gson.fromJson( @@ -34,4 +36,21 @@ }, { it.printStackTrace() }) + + fun obtainAlarmDetail(id: String) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.obtainAlarmDetail(id) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + detailModel.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + loadState.value = LoadState.Success + } else { + loadState.value = LoadState.Fail + response.toErrorMessage().show(BaseApplication.obtainInstance()) + } + }, { + it.printStackTrace() + }) } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_alarm_detail.xml b/app/src/main/res/layout/activity_alarm_detail.xml index fbd0e59..e442aa7 100644 --- a/app/src/main/res/layout/activity_alarm_detail.xml +++ b/app/src/main/res/layout/activity_alarm_detail.xml @@ -16,7 +16,7 @@ android:id="@+id/mapView" android:layout_width="match_parent" android:layout_height="0dp" - android:layout_weight="1.5" /> + android:layout_weight="1.75" /> @@ -68,7 +68,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/dp_15" - android:text="未经授权进入燃气管线施工作业区域" + android:text="@string/unknown" android:textColor="@color/mainTextColor" android:textSize="@dimen/sp_16" /> diff --git a/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt b/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt index 47a2ac0..b343b59 100644 --- a/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt +++ b/app/src/main/java/com/casic/br/operationsite/adapter/AlarmListAdapter.kt @@ -30,7 +30,7 @@ holder.groupNameView.text = rowsBean.projectName holder.projectAreaView.text = rowsBean.area - holder.projectTypeView.text = rowsBean.type + holder.projectTypeView.text = rowsBean.projectType holder.projectLocationView.text = rowsBean.location //绑定事件 diff --git a/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java new file mode 100644 index 0000000..c632c8a --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/model/AlarmDetailModel.java @@ -0,0 +1,134 @@ +package com.casic.br.operationsite.model; + +public class AlarmDetailModel { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean 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; + } + + public static class DataBean { + private String alarmDescription; + private String alarmLat; + private String alarmLng; + private String area; + private String createTime; + private String id; + private String illegalAvatar; + private String location; + private String projectName; + private String projectType; + + public String getAlarmDescription() { + return alarmDescription; + } + + public void setAlarmDescription(String alarmDescription) { + this.alarmDescription = alarmDescription; + } + + public String getAlarmLat() { + return alarmLat; + } + + public void setAlarmLat(String alarmLat) { + this.alarmLat = alarmLat; + } + + public String getAlarmLng() { + return alarmLng; + } + + public void setAlarmLng(String alarmLng) { + this.alarmLng = alarmLng; + } + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIllegalAvatar() { + return illegalAvatar; + } + + public void setIllegalAvatar(String illegalAvatar) { + this.illegalAvatar = illegalAvatar; + } + + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectType() { + return projectType; + } + + public void setProjectType(String projectType) { + this.projectType = projectType; + } + } +} diff --git a/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java b/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java index 7979a74..97c7284 100644 --- a/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java +++ b/app/src/main/java/com/casic/br/operationsite/model/AlarmListModel.java @@ -62,12 +62,40 @@ } public static class RowsBean { + private String alarmDescription; + private String alarmLat; + private String alarmLng; private String area; private String createTime; private String id; + private String illegalAvatar; private String location; private String projectName; - private String type; + private String projectType; + + public String getAlarmDescription() { + return alarmDescription; + } + + public void setAlarmDescription(String alarmDescription) { + this.alarmDescription = alarmDescription; + } + + public String getAlarmLat() { + return alarmLat; + } + + public void setAlarmLat(String alarmLat) { + this.alarmLat = alarmLat; + } + + public String getAlarmLng() { + return alarmLng; + } + + public void setAlarmLng(String alarmLng) { + this.alarmLng = alarmLng; + } public String getArea() { return area; @@ -93,6 +121,14 @@ this.id = id; } + public String getIllegalAvatar() { + return illegalAvatar; + } + + public void setIllegalAvatar(String illegalAvatar) { + this.illegalAvatar = illegalAvatar; + } + public String getLocation() { return location; } @@ -109,12 +145,12 @@ this.projectName = projectName; } - public String getType() { - return type; + public String getProjectType() { + return projectType; } - public void setType(String type) { - this.type = type; + public void setProjectType(String projectType) { + this.projectType = projectType; } } } diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index c7890de..552a08c 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -58,11 +58,21 @@ @GET("/alarm/listPage") suspend fun obtainAlarmListByPage( @Header("token") token: String, + @Query("keywords") keywords: String, @Query("offset") offset: Int, @Query("limit") limit: Int ): String /** + * 报警详情 + */ + @GET("/alarm/detail") + suspend fun obtainAlarmDetail( + @Header("token") token: String, + @Query("id") id: String + ): String + + /** * 上传图片 * 系统路径static拼接图片返回路径 * http://xx.com/static/2019-10/8050891248624f2bbefedcb196ce89cb.jpeg diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index 3a6f684..40ad053 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -58,15 +58,20 @@ /** * 报警列表 */ - suspend fun obtainAlarmListByPage(page: Int): String { + suspend fun obtainAlarmListByPage(keywords: String, page: Int): String { return api.obtainAlarmListByPage( - AuthenticationHelper.token!!, - page, - LocaleConstant.PAGE_LIMIT + AuthenticationHelper.token!!, keywords, page, LocaleConstant.PAGE_LIMIT ) } /** + * 报警详情 + */ + suspend fun obtainAlarmDetail(id: String): String { + return api.obtainAlarmDetail(AuthenticationHelper.token!!, id) + } + + /** * 上传图片 */ suspend fun uploadImage(image: File): String { diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index fba0d2c..adadca0 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -2,6 +2,7 @@ import android.os.Bundle import android.view.View +import androidx.lifecycle.ViewModelProvider import com.amap.api.maps.AMap import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory @@ -9,20 +10,26 @@ import com.amap.api.maps.model.CameraPosition import com.amap.api.maps.model.LatLng import com.amap.api.maps.model.MarkerOptions +import com.bumptech.glide.Glide +import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.combineImagePath +import com.casic.br.operationsite.utils.DialogHelper +import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil -import kotlinx.android.synthetic.main.activity_site_tab.* +import com.pengxh.kt.lite.vm.LoadState +import kotlinx.android.synthetic.main.activity_alarm_detail.* +import kotlinx.android.synthetic.main.activity_site_tab.mapView import kotlinx.android.synthetic.main.include_base_title.* -class AlarmDetailActivity : KotlinBaseActivity() , AMap.OnMapLoadedListener{ +class AlarmDetailActivity : KotlinBaseActivity() { private lateinit var aMap: AMap - private var latLng: LatLng? = null + private lateinit var alarmViewModel: AlarmViewModel override fun initLayoutView(): Int = R.layout.activity_alarm_detail @@ -46,35 +53,52 @@ uiSettings.isTiltGesturesEnabled = false//不许地图随手势倾斜角度 uiSettings.isRotateGesturesEnabled = false//不允许地图旋转 - //地图加载成功之后调用 - aMap.addOnMapLoadedListener(this) - } - - override fun onMapLoaded() { - if (latLng == null) { - "经纬度异常,无法在地图显示".show(this) - return - } /** - * 参数1---要移动到的经纬度 - * 参数2---地图的放缩级别zoom - * 参数3---地图倾斜度 - * 参数4---地图的旋转角度 + * 数据初始化 * */ - val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f) - val newCameraPosition = CameraUpdateFactory.newCameraPosition(cameraPosition) - aMap.animateCamera(newCameraPosition, 1500, object : AMap.CancelableCallback { - override fun onFinish() { - //添加Marker - val markerOptions = MarkerOptions() - .position(latLng) - .icon(BitmapDescriptorFactory.fromResource(R.mipmap.well_location)) - .draggable(true) - aMap.addMarker(markerOptions) + alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + alarmViewModel.obtainAlarmDetail(id) + alarmViewModel.detailModel.observe(this, { + if (it.code == 200) { + val detailData = it.data + + val latLng = LatLng( + detailData.alarmLat.toDouble(), detailData.alarmLng.toDouble() + ) + val cameraPosition = CameraPosition(latLng, 18f, 0f, 0f) + val newCameraPosition = CameraUpdateFactory.newCameraPosition(cameraPosition) + aMap.animateCamera(newCameraPosition, 1500, object : AMap.CancelableCallback { + override fun onFinish() { + //添加Marker + val markerOptions = MarkerOptions() + .position(latLng) + .icon(BitmapDescriptorFactory.fromResource(R.mipmap.well_location)) + .draggable(true) + aMap.addMarker(markerOptions) + } + + override fun onCancel() { + + } + }) + + Glide.with(this) + .load(detailData.illegalAvatar.combineImagePath()) + .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) + .into(avatarView) + timeView.text = detailData.createTime + descriptionView.text = detailData.alarmDescription } + }) - override fun onCancel() { - + alarmViewModel.loadState.observe(this, { + when (it) { + LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "数据加载中,请稍后...") + } + else -> { + DialogHelper.dismissLoadingDialog() + } } }) } diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index d6594c7..0e5be23 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -32,6 +32,7 @@ private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.activity_alarm_list @@ -40,9 +41,10 @@ ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) searchTextView.setOnClickListener { - if (searchInputView.text.isNullOrBlank()) { - "错误!请重新输入!".show(this) - } + keywords = searchInputView.text.toString() + + pageIndex = 1 + obtainAlarmListByPage() } } @@ -110,7 +112,7 @@ } private fun obtainAlarmListByPage() { - alarmViewModel.obtainAlarmListByPage(pageIndex) + alarmViewModel.obtainAlarmListByPage(keywords, pageIndex) } private val callback = Handler.Callback { diff --git a/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt index f438b3b..6ed8f20 100644 --- a/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt +++ b/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt @@ -4,6 +4,7 @@ import com.casic.br.operationsite.base.BaseApplication import com.casic.br.operationsite.extensions.separateResponseCode import com.casic.br.operationsite.extensions.toErrorMessage +import com.casic.br.operationsite.model.AlarmDetailModel import com.casic.br.operationsite.model.AlarmListModel import com.casic.br.operationsite.retrofit.RetrofitServiceManager import com.google.gson.Gson @@ -17,10 +18,11 @@ private val gson = Gson() val alarmModel = MutableLiveData() + val detailModel = MutableLiveData() - fun obtainAlarmListByPage(page: Int) = launch({ + fun obtainAlarmListByPage(keywords: String, page: Int) = launch({ loadState.value = LoadState.Loading - val response = RetrofitServiceManager.obtainAlarmListByPage(page) + val response = RetrofitServiceManager.obtainAlarmListByPage(keywords, page) val responseCode = response.separateResponseCode() if (responseCode == 200) { alarmModel.value = gson.fromJson( @@ -34,4 +36,21 @@ }, { it.printStackTrace() }) + + fun obtainAlarmDetail(id: String) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.obtainAlarmDetail(id) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + detailModel.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + loadState.value = LoadState.Success + } else { + loadState.value = LoadState.Fail + response.toErrorMessage().show(BaseApplication.obtainInstance()) + } + }, { + it.printStackTrace() + }) } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_alarm_detail.xml b/app/src/main/res/layout/activity_alarm_detail.xml index fbd0e59..e442aa7 100644 --- a/app/src/main/res/layout/activity_alarm_detail.xml +++ b/app/src/main/res/layout/activity_alarm_detail.xml @@ -16,7 +16,7 @@ android:id="@+id/mapView" android:layout_width="match_parent" android:layout_height="0dp" - android:layout_weight="1.5" /> + android:layout_weight="1.75" /> @@ -68,7 +68,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/dp_15" - android:text="未经授权进入燃气管线施工作业区域" + android:text="@string/unknown" android:textColor="@color/mainTextColor" android:textSize="@dimen/sp_16" /> diff --git a/app/src/main/res/layout/item_alarm_rv.xml b/app/src/main/res/layout/item_alarm_rv.xml index d948356..a1b9e65 100644 --- a/app/src/main/res/layout/item_alarm_rv.xml +++ b/app/src/main/res/layout/item_alarm_rv.xml @@ -11,7 +11,6 @@ android:id="@+id/groupNameView" android:layout_width="match_parent" android:layout_height="wrap_content" - android:fontFamily="sans-serif-black" android:text="城投湖畔四季城一期中坝七号地块" android:textColor="@color/mainTextColor" android:textSize="@dimen/sp_16" /> @@ -32,7 +31,7 @@ android:textColor="@color/white" app:qmui_backgroundColor="@color/greenColor" app:qmui_borderWidth="0dp" - app:qmui_radius="@dimen/dp_5" /> + app:qmui_radius="@dimen/dp_3" /> + app:qmui_radius="@dimen/dp_3" /> { + DialogHelper.showLoadingDialog(this, "数据加载中,请稍后...") + } + else -> { + DialogHelper.dismissLoadingDialog() + } } }) } diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index d6594c7..0e5be23 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -32,6 +32,7 @@ private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var keywords = "" override fun initLayoutView(): Int = R.layout.activity_alarm_list @@ -40,9 +41,10 @@ ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) searchTextView.setOnClickListener { - if (searchInputView.text.isNullOrBlank()) { - "错误!请重新输入!".show(this) - } + keywords = searchInputView.text.toString() + + pageIndex = 1 + obtainAlarmListByPage() } } @@ -110,7 +112,7 @@ } private fun obtainAlarmListByPage() { - alarmViewModel.obtainAlarmListByPage(pageIndex) + alarmViewModel.obtainAlarmListByPage(keywords, pageIndex) } private val callback = Handler.Callback { diff --git a/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt index f438b3b..6ed8f20 100644 --- a/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt +++ b/app/src/main/java/com/casic/br/operationsite/vm/AlarmViewModel.kt @@ -4,6 +4,7 @@ import com.casic.br.operationsite.base.BaseApplication import com.casic.br.operationsite.extensions.separateResponseCode import com.casic.br.operationsite.extensions.toErrorMessage +import com.casic.br.operationsite.model.AlarmDetailModel import com.casic.br.operationsite.model.AlarmListModel import com.casic.br.operationsite.retrofit.RetrofitServiceManager import com.google.gson.Gson @@ -17,10 +18,11 @@ private val gson = Gson() val alarmModel = MutableLiveData() + val detailModel = MutableLiveData() - fun obtainAlarmListByPage(page: Int) = launch({ + fun obtainAlarmListByPage(keywords: String, page: Int) = launch({ loadState.value = LoadState.Loading - val response = RetrofitServiceManager.obtainAlarmListByPage(page) + val response = RetrofitServiceManager.obtainAlarmListByPage(keywords, page) val responseCode = response.separateResponseCode() if (responseCode == 200) { alarmModel.value = gson.fromJson( @@ -34,4 +36,21 @@ }, { it.printStackTrace() }) + + fun obtainAlarmDetail(id: String) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.obtainAlarmDetail(id) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + detailModel.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + loadState.value = LoadState.Success + } else { + loadState.value = LoadState.Fail + response.toErrorMessage().show(BaseApplication.obtainInstance()) + } + }, { + it.printStackTrace() + }) } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_alarm_detail.xml b/app/src/main/res/layout/activity_alarm_detail.xml index fbd0e59..e442aa7 100644 --- a/app/src/main/res/layout/activity_alarm_detail.xml +++ b/app/src/main/res/layout/activity_alarm_detail.xml @@ -16,7 +16,7 @@ android:id="@+id/mapView" android:layout_width="match_parent" android:layout_height="0dp" - android:layout_weight="1.5" /> + android:layout_weight="1.75" /> @@ -68,7 +68,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/dp_15" - android:text="未经授权进入燃气管线施工作业区域" + android:text="@string/unknown" android:textColor="@color/mainTextColor" android:textSize="@dimen/sp_16" /> diff --git a/app/src/main/res/layout/item_alarm_rv.xml b/app/src/main/res/layout/item_alarm_rv.xml index d948356..a1b9e65 100644 --- a/app/src/main/res/layout/item_alarm_rv.xml +++ b/app/src/main/res/layout/item_alarm_rv.xml @@ -11,7 +11,6 @@ android:id="@+id/groupNameView" android:layout_width="match_parent" android:layout_height="wrap_content" - android:fontFamily="sans-serif-black" android:text="城投湖畔四季城一期中坝七号地块" android:textColor="@color/mainTextColor" android:textSize="@dimen/sp_16" /> @@ -32,7 +31,7 @@ android:textColor="@color/white" app:qmui_backgroundColor="@color/greenColor" app:qmui_borderWidth="0dp" - app:qmui_radius="@dimen/dp_5" /> + app:qmui_radius="@dimen/dp_3" /> + app:qmui_radius="@dimen/dp_3" />