diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f968fe0..ecf8037 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -81,6 +81,12 @@ android:name=".view.HiddenTroubleActivity" android:screenOrientation="landscape" /> + + + + , + private val viewWidth: Int, private val spanCount: Int +) : BaseAdapter() { + + override fun getItemId(position: Int): Long = position.toLong() + + override fun getCount(): Int = images.size + + override fun getItem(position: Int): Any = images[position] + + override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { + val view: View + val holder: ItemViewHolder + if (convertView == null) { + view = LayoutInflater.from(context).inflate(R.layout.item_readonly_gv, null) + holder = ItemViewHolder() + holder.imageView = view.findViewById(R.id.imageView) + view.tag = holder + } else { + view = convertView + holder = view.tag as ItemViewHolder + } + Glide.with(context) + .load(images[position]) + .apply(RequestOptions().error(R.mipmap.load_image_error)) + .into(holder.imageView) + + //动态设置图片高度,和图片宽度保持一致 + val margin = (view.marginStart + view.marginEnd) * spanCount + val imageSize = (viewWidth - margin) / spanCount + val params = LinearLayout.LayoutParams(imageSize, imageSize) + holder.imageView.layoutParams = params + return view + } + + private class ItemViewHolder { + lateinit var imageView: ImageView + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f968fe0..ecf8037 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -81,6 +81,12 @@ android:name=".view.HiddenTroubleActivity" android:screenOrientation="landscape" /> + + , + private val viewWidth: Int, private val spanCount: Int +) : BaseAdapter() { + + override fun getItemId(position: Int): Long = position.toLong() + + override fun getCount(): Int = images.size + + override fun getItem(position: Int): Any = images[position] + + override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { + val view: View + val holder: ItemViewHolder + if (convertView == null) { + view = LayoutInflater.from(context).inflate(R.layout.item_readonly_gv, null) + holder = ItemViewHolder() + holder.imageView = view.findViewById(R.id.imageView) + view.tag = holder + } else { + view = convertView + holder = view.tag as ItemViewHolder + } + Glide.with(context) + .load(images[position]) + .apply(RequestOptions().error(R.mipmap.load_image_error)) + .into(holder.imageView) + + //动态设置图片高度,和图片宽度保持一致 + val margin = (view.marginStart + view.marginEnd) * spanCount + val imageSize = (viewWidth - margin) / spanCount + val params = LinearLayout.LayoutParams(imageSize, imageSize) + holder.imageView.layoutParams = params + return view + } + + private class ItemViewHolder { + lateinit var imageView: ImageView + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java new file mode 100644 index 0000000..030008f --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java @@ -0,0 +1,318 @@ +package com.casic.br.ar.app.model; + +import java.util.List; + +public class HiddenTroubleDetailModel { + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private String alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private String normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(String alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(String normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + + public static class AlarmImageListModel { + private String alarmMenuId; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String imagePath; + private String imageType; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmMenuId() { + return alarmMenuId; + } + + public void setAlarmMenuId(String alarmMenuId) { + this.alarmMenuId = alarmMenuId; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getImagePath() { + return imagePath; + } + + public void setImagePath(String imagePath) { + this.imagePath = imagePath; + } + + public String getImageType() { + return imageType; + } + + public void setImageType(String imageType) { + this.imageType = imageType; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f968fe0..ecf8037 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -81,6 +81,12 @@ android:name=".view.HiddenTroubleActivity" android:screenOrientation="landscape" /> + + , + private val viewWidth: Int, private val spanCount: Int +) : BaseAdapter() { + + override fun getItemId(position: Int): Long = position.toLong() + + override fun getCount(): Int = images.size + + override fun getItem(position: Int): Any = images[position] + + override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { + val view: View + val holder: ItemViewHolder + if (convertView == null) { + view = LayoutInflater.from(context).inflate(R.layout.item_readonly_gv, null) + holder = ItemViewHolder() + holder.imageView = view.findViewById(R.id.imageView) + view.tag = holder + } else { + view = convertView + holder = view.tag as ItemViewHolder + } + Glide.with(context) + .load(images[position]) + .apply(RequestOptions().error(R.mipmap.load_image_error)) + .into(holder.imageView) + + //动态设置图片高度,和图片宽度保持一致 + val margin = (view.marginStart + view.marginEnd) * spanCount + val imageSize = (viewWidth - margin) / spanCount + val params = LinearLayout.LayoutParams(imageSize, imageSize) + holder.imageView.layoutParams = params + return view + } + + private class ItemViewHolder { + lateinit var imageView: ImageView + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java new file mode 100644 index 0000000..030008f --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java @@ -0,0 +1,318 @@ +package com.casic.br.ar.app.model; + +import java.util.List; + +public class HiddenTroubleDetailModel { + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private String alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private String normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(String alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(String normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + + public static class AlarmImageListModel { + private String alarmMenuId; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String imagePath; + private String imageType; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmMenuId() { + return alarmMenuId; + } + + public void setAlarmMenuId(String alarmMenuId) { + this.alarmMenuId = alarmMenuId; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getImagePath() { + return imagePath; + } + + public void setImagePath(String imagePath) { + this.imagePath = imagePath; + } + + public String getImageType() { + return imageType; + } + + public void setImageType(String imageType) { + this.imageType = imageType; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } +} diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java index 53ea071..40047ac 100644 --- a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java @@ -1,4 +1,247 @@ package com.casic.br.ar.app.model; +import java.util.List; + public class HiddenTroubleModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsModel { + private int alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private int normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public int getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(int alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(int normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f968fe0..ecf8037 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -81,6 +81,12 @@ android:name=".view.HiddenTroubleActivity" android:screenOrientation="landscape" /> + + , + private val viewWidth: Int, private val spanCount: Int +) : BaseAdapter() { + + override fun getItemId(position: Int): Long = position.toLong() + + override fun getCount(): Int = images.size + + override fun getItem(position: Int): Any = images[position] + + override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { + val view: View + val holder: ItemViewHolder + if (convertView == null) { + view = LayoutInflater.from(context).inflate(R.layout.item_readonly_gv, null) + holder = ItemViewHolder() + holder.imageView = view.findViewById(R.id.imageView) + view.tag = holder + } else { + view = convertView + holder = view.tag as ItemViewHolder + } + Glide.with(context) + .load(images[position]) + .apply(RequestOptions().error(R.mipmap.load_image_error)) + .into(holder.imageView) + + //动态设置图片高度,和图片宽度保持一致 + val margin = (view.marginStart + view.marginEnd) * spanCount + val imageSize = (viewWidth - margin) / spanCount + val params = LinearLayout.LayoutParams(imageSize, imageSize) + holder.imageView.layoutParams = params + return view + } + + private class ItemViewHolder { + lateinit var imageView: ImageView + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java new file mode 100644 index 0000000..030008f --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java @@ -0,0 +1,318 @@ +package com.casic.br.ar.app.model; + +import java.util.List; + +public class HiddenTroubleDetailModel { + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private String alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private String normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(String alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(String normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + + public static class AlarmImageListModel { + private String alarmMenuId; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String imagePath; + private String imageType; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmMenuId() { + return alarmMenuId; + } + + public void setAlarmMenuId(String alarmMenuId) { + this.alarmMenuId = alarmMenuId; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getImagePath() { + return imagePath; + } + + public void setImagePath(String imagePath) { + this.imagePath = imagePath; + } + + public String getImageType() { + return imageType; + } + + public void setImageType(String imageType) { + this.imageType = imageType; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } +} diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java index 53ea071..40047ac 100644 --- a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java @@ -1,4 +1,247 @@ package com.casic.br.ar.app.model; +import java.util.List; + public class HiddenTroubleModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsModel { + private int alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private int normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public int getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(int alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(int normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } } diff --git a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt index cf6a4b1..cd3b0a0 100644 --- a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt @@ -64,14 +64,23 @@ ): String /** - * 获取隐患目录列表 + * 根据场景获取获取隐患目录 */ - @POST("/meter/file/listPage") - suspend fun getHiddenTroubleMenuByPage( + @GET("/alarm-menu/listPage") + suspend fun getHiddenTroubleByScene( @Header("token") token: String, - @Body requestBody: RequestBody, - @QueryMap limit: Map, - @QueryMap offset: Map + @Query("keyword") keyword: String, + @Query("offset") offset: Int, + @Query("limit") limit: Int + ): String + + /** + * 获取隐患详情 + */ + @GET("/alarm-menu/detail") + suspend fun getHiddenTroubleDetail( + @Header("token") token: String, + @Query("id") id: String ): String /** diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f968fe0..ecf8037 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -81,6 +81,12 @@ android:name=".view.HiddenTroubleActivity" android:screenOrientation="landscape" /> + + , + private val viewWidth: Int, private val spanCount: Int +) : BaseAdapter() { + + override fun getItemId(position: Int): Long = position.toLong() + + override fun getCount(): Int = images.size + + override fun getItem(position: Int): Any = images[position] + + override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { + val view: View + val holder: ItemViewHolder + if (convertView == null) { + view = LayoutInflater.from(context).inflate(R.layout.item_readonly_gv, null) + holder = ItemViewHolder() + holder.imageView = view.findViewById(R.id.imageView) + view.tag = holder + } else { + view = convertView + holder = view.tag as ItemViewHolder + } + Glide.with(context) + .load(images[position]) + .apply(RequestOptions().error(R.mipmap.load_image_error)) + .into(holder.imageView) + + //动态设置图片高度,和图片宽度保持一致 + val margin = (view.marginStart + view.marginEnd) * spanCount + val imageSize = (viewWidth - margin) / spanCount + val params = LinearLayout.LayoutParams(imageSize, imageSize) + holder.imageView.layoutParams = params + return view + } + + private class ItemViewHolder { + lateinit var imageView: ImageView + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java new file mode 100644 index 0000000..030008f --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java @@ -0,0 +1,318 @@ +package com.casic.br.ar.app.model; + +import java.util.List; + +public class HiddenTroubleDetailModel { + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private String alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private String normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(String alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(String normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + + public static class AlarmImageListModel { + private String alarmMenuId; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String imagePath; + private String imageType; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmMenuId() { + return alarmMenuId; + } + + public void setAlarmMenuId(String alarmMenuId) { + this.alarmMenuId = alarmMenuId; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getImagePath() { + return imagePath; + } + + public void setImagePath(String imagePath) { + this.imagePath = imagePath; + } + + public String getImageType() { + return imageType; + } + + public void setImageType(String imageType) { + this.imageType = imageType; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } +} diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java index 53ea071..40047ac 100644 --- a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java @@ -1,4 +1,247 @@ package com.casic.br.ar.app.model; +import java.util.List; + public class HiddenTroubleModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsModel { + private int alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private int normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public int getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(int alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(int normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } } diff --git a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt index cf6a4b1..cd3b0a0 100644 --- a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt @@ -64,14 +64,23 @@ ): String /** - * 获取隐患目录列表 + * 根据场景获取获取隐患目录 */ - @POST("/meter/file/listPage") - suspend fun getHiddenTroubleMenuByPage( + @GET("/alarm-menu/listPage") + suspend fun getHiddenTroubleByScene( @Header("token") token: String, - @Body requestBody: RequestBody, - @QueryMap limit: Map, - @QueryMap offset: Map + @Query("keyword") keyword: String, + @Query("offset") offset: Int, + @Query("limit") limit: Int + ): String + + /** + * 获取隐患详情 + */ + @GET("/alarm-menu/detail") + suspend fun getHiddenTroubleDetail( + @Header("token") token: String, + @Query("id") id: String ): String /** diff --git a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt index cabd011..4ca4bdd 100644 --- a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt @@ -89,23 +89,19 @@ } /** - * 获取隐患目录列表 + * 根据场景获取获取隐患目录 */ - suspend fun getHiddenTroubleMenuByPage(keywords: String, offset: Int): String { - val param = JsonObject() - param.addProperty("keywords", keywords) - val requestBody = param.toString().toRequestBody( - "application/json;charset=UTF-8".toMediaType() + suspend fun getHiddenTroubleByScene(keywords: String, offset: Int): String { + return api.getHiddenTroubleByScene( + AuthenticationHelper.token, keywords, offset, LocaleConstant.PAGE_LIMIT ) + } - val limitMap = HashMap() - limitMap["limit"] = LocaleConstant.PAGE_LIMIT - - val offsetMap = HashMap() - offsetMap["offset"] = offset - return api.getHiddenTroubleMenuByPage( - AuthenticationHelper.token, requestBody, limitMap, offsetMap - ) + /** + * 获取隐患详情 + */ + suspend fun getHiddenTroubleDetail(id: String): String { + return api.getHiddenTroubleDetail(AuthenticationHelper.token, id) } /** diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f968fe0..ecf8037 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -81,6 +81,12 @@ android:name=".view.HiddenTroubleActivity" android:screenOrientation="landscape" /> + + , + private val viewWidth: Int, private val spanCount: Int +) : BaseAdapter() { + + override fun getItemId(position: Int): Long = position.toLong() + + override fun getCount(): Int = images.size + + override fun getItem(position: Int): Any = images[position] + + override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { + val view: View + val holder: ItemViewHolder + if (convertView == null) { + view = LayoutInflater.from(context).inflate(R.layout.item_readonly_gv, null) + holder = ItemViewHolder() + holder.imageView = view.findViewById(R.id.imageView) + view.tag = holder + } else { + view = convertView + holder = view.tag as ItemViewHolder + } + Glide.with(context) + .load(images[position]) + .apply(RequestOptions().error(R.mipmap.load_image_error)) + .into(holder.imageView) + + //动态设置图片高度,和图片宽度保持一致 + val margin = (view.marginStart + view.marginEnd) * spanCount + val imageSize = (viewWidth - margin) / spanCount + val params = LinearLayout.LayoutParams(imageSize, imageSize) + holder.imageView.layoutParams = params + return view + } + + private class ItemViewHolder { + lateinit var imageView: ImageView + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java new file mode 100644 index 0000000..030008f --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java @@ -0,0 +1,318 @@ +package com.casic.br.ar.app.model; + +import java.util.List; + +public class HiddenTroubleDetailModel { + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private String alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private String normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(String alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(String normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + + public static class AlarmImageListModel { + private String alarmMenuId; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String imagePath; + private String imageType; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmMenuId() { + return alarmMenuId; + } + + public void setAlarmMenuId(String alarmMenuId) { + this.alarmMenuId = alarmMenuId; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getImagePath() { + return imagePath; + } + + public void setImagePath(String imagePath) { + this.imagePath = imagePath; + } + + public String getImageType() { + return imageType; + } + + public void setImageType(String imageType) { + this.imageType = imageType; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } +} diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java index 53ea071..40047ac 100644 --- a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java @@ -1,4 +1,247 @@ package com.casic.br.ar.app.model; +import java.util.List; + public class HiddenTroubleModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsModel { + private int alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private int normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public int getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(int alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(int normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } } diff --git a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt index cf6a4b1..cd3b0a0 100644 --- a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt @@ -64,14 +64,23 @@ ): String /** - * 获取隐患目录列表 + * 根据场景获取获取隐患目录 */ - @POST("/meter/file/listPage") - suspend fun getHiddenTroubleMenuByPage( + @GET("/alarm-menu/listPage") + suspend fun getHiddenTroubleByScene( @Header("token") token: String, - @Body requestBody: RequestBody, - @QueryMap limit: Map, - @QueryMap offset: Map + @Query("keyword") keyword: String, + @Query("offset") offset: Int, + @Query("limit") limit: Int + ): String + + /** + * 获取隐患详情 + */ + @GET("/alarm-menu/detail") + suspend fun getHiddenTroubleDetail( + @Header("token") token: String, + @Query("id") id: String ): String /** diff --git a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt index cabd011..4ca4bdd 100644 --- a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt @@ -89,23 +89,19 @@ } /** - * 获取隐患目录列表 + * 根据场景获取获取隐患目录 */ - suspend fun getHiddenTroubleMenuByPage(keywords: String, offset: Int): String { - val param = JsonObject() - param.addProperty("keywords", keywords) - val requestBody = param.toString().toRequestBody( - "application/json;charset=UTF-8".toMediaType() + suspend fun getHiddenTroubleByScene(keywords: String, offset: Int): String { + return api.getHiddenTroubleByScene( + AuthenticationHelper.token, keywords, offset, LocaleConstant.PAGE_LIMIT ) + } - val limitMap = HashMap() - limitMap["limit"] = LocaleConstant.PAGE_LIMIT - - val offsetMap = HashMap() - offsetMap["offset"] = offset - return api.getHiddenTroubleMenuByPage( - AuthenticationHelper.token, requestBody, limitMap, offsetMap - ) + /** + * 获取隐患详情 + */ + suspend fun getHiddenTroubleDetail(id: String): String { + return api.getHiddenTroubleDetail(AuthenticationHelper.token, id) } /** diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt index 3bf93f1..43c418d 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt @@ -1,6 +1,5 @@ package com.casic.br.ar.app.view -import android.graphics.Color import android.os.Bundle import android.os.Handler import android.os.Message @@ -13,7 +12,6 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson @@ -73,7 +71,6 @@ } } binding.recyclerView.adapter = checkHistoryAdapter - binding.recyclerView.addItemDecoration(RecyclerViewItemDivider(1, Color.WHITE)) checkHistoryAdapter.setOnItemClickedListener(object : NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked( diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f968fe0..ecf8037 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -81,6 +81,12 @@ android:name=".view.HiddenTroubleActivity" android:screenOrientation="landscape" /> + + , + private val viewWidth: Int, private val spanCount: Int +) : BaseAdapter() { + + override fun getItemId(position: Int): Long = position.toLong() + + override fun getCount(): Int = images.size + + override fun getItem(position: Int): Any = images[position] + + override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { + val view: View + val holder: ItemViewHolder + if (convertView == null) { + view = LayoutInflater.from(context).inflate(R.layout.item_readonly_gv, null) + holder = ItemViewHolder() + holder.imageView = view.findViewById(R.id.imageView) + view.tag = holder + } else { + view = convertView + holder = view.tag as ItemViewHolder + } + Glide.with(context) + .load(images[position]) + .apply(RequestOptions().error(R.mipmap.load_image_error)) + .into(holder.imageView) + + //动态设置图片高度,和图片宽度保持一致 + val margin = (view.marginStart + view.marginEnd) * spanCount + val imageSize = (viewWidth - margin) / spanCount + val params = LinearLayout.LayoutParams(imageSize, imageSize) + holder.imageView.layoutParams = params + return view + } + + private class ItemViewHolder { + lateinit var imageView: ImageView + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java new file mode 100644 index 0000000..030008f --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java @@ -0,0 +1,318 @@ +package com.casic.br.ar.app.model; + +import java.util.List; + +public class HiddenTroubleDetailModel { + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private String alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private String normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(String alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(String normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + + public static class AlarmImageListModel { + private String alarmMenuId; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String imagePath; + private String imageType; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmMenuId() { + return alarmMenuId; + } + + public void setAlarmMenuId(String alarmMenuId) { + this.alarmMenuId = alarmMenuId; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getImagePath() { + return imagePath; + } + + public void setImagePath(String imagePath) { + this.imagePath = imagePath; + } + + public String getImageType() { + return imageType; + } + + public void setImageType(String imageType) { + this.imageType = imageType; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } +} diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java index 53ea071..40047ac 100644 --- a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java @@ -1,4 +1,247 @@ package com.casic.br.ar.app.model; +import java.util.List; + public class HiddenTroubleModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsModel { + private int alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private int normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public int getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(int alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(int normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } } diff --git a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt index cf6a4b1..cd3b0a0 100644 --- a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt @@ -64,14 +64,23 @@ ): String /** - * 获取隐患目录列表 + * 根据场景获取获取隐患目录 */ - @POST("/meter/file/listPage") - suspend fun getHiddenTroubleMenuByPage( + @GET("/alarm-menu/listPage") + suspend fun getHiddenTroubleByScene( @Header("token") token: String, - @Body requestBody: RequestBody, - @QueryMap limit: Map, - @QueryMap offset: Map + @Query("keyword") keyword: String, + @Query("offset") offset: Int, + @Query("limit") limit: Int + ): String + + /** + * 获取隐患详情 + */ + @GET("/alarm-menu/detail") + suspend fun getHiddenTroubleDetail( + @Header("token") token: String, + @Query("id") id: String ): String /** diff --git a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt index cabd011..4ca4bdd 100644 --- a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt @@ -89,23 +89,19 @@ } /** - * 获取隐患目录列表 + * 根据场景获取获取隐患目录 */ - suspend fun getHiddenTroubleMenuByPage(keywords: String, offset: Int): String { - val param = JsonObject() - param.addProperty("keywords", keywords) - val requestBody = param.toString().toRequestBody( - "application/json;charset=UTF-8".toMediaType() + suspend fun getHiddenTroubleByScene(keywords: String, offset: Int): String { + return api.getHiddenTroubleByScene( + AuthenticationHelper.token, keywords, offset, LocaleConstant.PAGE_LIMIT ) + } - val limitMap = HashMap() - limitMap["limit"] = LocaleConstant.PAGE_LIMIT - - val offsetMap = HashMap() - offsetMap["offset"] = offset - return api.getHiddenTroubleMenuByPage( - AuthenticationHelper.token, requestBody, limitMap, offsetMap - ) + /** + * 获取隐患详情 + */ + suspend fun getHiddenTroubleDetail(id: String): String { + return api.getHiddenTroubleDetail(AuthenticationHelper.token, id) } /** diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt index 3bf93f1..43c418d 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt @@ -1,6 +1,5 @@ package com.casic.br.ar.app.view -import android.graphics.Color import android.os.Bundle import android.os.Handler import android.os.Message @@ -13,7 +12,6 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson @@ -73,7 +71,6 @@ } } binding.recyclerView.adapter = checkHistoryAdapter - binding.recyclerView.addItemDecoration(RecyclerViewItemDivider(1, Color.WHITE)) checkHistoryAdapter.setOnItemClickedListener(object : NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked( diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt index e7a6775..be23bf5 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt @@ -6,6 +6,7 @@ import android.widget.GridView import androidx.lifecycle.ViewModelProvider import com.casic.br.ar.app.R +import com.casic.br.ar.app.adapter.ImageGridAdapter import com.casic.br.ar.app.databinding.ActivityCheckHistoryDetailBinding import com.casic.br.ar.app.extensions.combineFilePath import com.casic.br.ar.app.model.CheckHistoryDetailModel @@ -14,11 +15,11 @@ import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter -import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.getScreenWidth import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant @@ -68,7 +69,9 @@ item.imageList.forEach { imageModel -> images.add(imageModel.alarmImage.combineFilePath()) } - val imageAdapter = ReadOnlyImageAdapter(context, images) + + val viewWidth = (getScreenWidth() shr 1) - 75.dp2px(context) + val imageAdapter = ImageGridAdapter(context, images, viewWidth, 2) gridView.adapter = imageAdapter gridView.onItemClickListener = AdapterView.OnItemClickListener { _, _, index, _ -> diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f968fe0..ecf8037 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -81,6 +81,12 @@ android:name=".view.HiddenTroubleActivity" android:screenOrientation="landscape" /> + + , + private val viewWidth: Int, private val spanCount: Int +) : BaseAdapter() { + + override fun getItemId(position: Int): Long = position.toLong() + + override fun getCount(): Int = images.size + + override fun getItem(position: Int): Any = images[position] + + override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { + val view: View + val holder: ItemViewHolder + if (convertView == null) { + view = LayoutInflater.from(context).inflate(R.layout.item_readonly_gv, null) + holder = ItemViewHolder() + holder.imageView = view.findViewById(R.id.imageView) + view.tag = holder + } else { + view = convertView + holder = view.tag as ItemViewHolder + } + Glide.with(context) + .load(images[position]) + .apply(RequestOptions().error(R.mipmap.load_image_error)) + .into(holder.imageView) + + //动态设置图片高度,和图片宽度保持一致 + val margin = (view.marginStart + view.marginEnd) * spanCount + val imageSize = (viewWidth - margin) / spanCount + val params = LinearLayout.LayoutParams(imageSize, imageSize) + holder.imageView.layoutParams = params + return view + } + + private class ItemViewHolder { + lateinit var imageView: ImageView + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java new file mode 100644 index 0000000..030008f --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java @@ -0,0 +1,318 @@ +package com.casic.br.ar.app.model; + +import java.util.List; + +public class HiddenTroubleDetailModel { + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private String alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private String normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(String alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(String normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + + public static class AlarmImageListModel { + private String alarmMenuId; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String imagePath; + private String imageType; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmMenuId() { + return alarmMenuId; + } + + public void setAlarmMenuId(String alarmMenuId) { + this.alarmMenuId = alarmMenuId; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getImagePath() { + return imagePath; + } + + public void setImagePath(String imagePath) { + this.imagePath = imagePath; + } + + public String getImageType() { + return imageType; + } + + public void setImageType(String imageType) { + this.imageType = imageType; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } +} diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java index 53ea071..40047ac 100644 --- a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java @@ -1,4 +1,247 @@ package com.casic.br.ar.app.model; +import java.util.List; + public class HiddenTroubleModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsModel { + private int alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private int normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public int getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(int alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(int normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } } diff --git a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt index cf6a4b1..cd3b0a0 100644 --- a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt @@ -64,14 +64,23 @@ ): String /** - * 获取隐患目录列表 + * 根据场景获取获取隐患目录 */ - @POST("/meter/file/listPage") - suspend fun getHiddenTroubleMenuByPage( + @GET("/alarm-menu/listPage") + suspend fun getHiddenTroubleByScene( @Header("token") token: String, - @Body requestBody: RequestBody, - @QueryMap limit: Map, - @QueryMap offset: Map + @Query("keyword") keyword: String, + @Query("offset") offset: Int, + @Query("limit") limit: Int + ): String + + /** + * 获取隐患详情 + */ + @GET("/alarm-menu/detail") + suspend fun getHiddenTroubleDetail( + @Header("token") token: String, + @Query("id") id: String ): String /** diff --git a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt index cabd011..4ca4bdd 100644 --- a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt @@ -89,23 +89,19 @@ } /** - * 获取隐患目录列表 + * 根据场景获取获取隐患目录 */ - suspend fun getHiddenTroubleMenuByPage(keywords: String, offset: Int): String { - val param = JsonObject() - param.addProperty("keywords", keywords) - val requestBody = param.toString().toRequestBody( - "application/json;charset=UTF-8".toMediaType() + suspend fun getHiddenTroubleByScene(keywords: String, offset: Int): String { + return api.getHiddenTroubleByScene( + AuthenticationHelper.token, keywords, offset, LocaleConstant.PAGE_LIMIT ) + } - val limitMap = HashMap() - limitMap["limit"] = LocaleConstant.PAGE_LIMIT - - val offsetMap = HashMap() - offsetMap["offset"] = offset - return api.getHiddenTroubleMenuByPage( - AuthenticationHelper.token, requestBody, limitMap, offsetMap - ) + /** + * 获取隐患详情 + */ + suspend fun getHiddenTroubleDetail(id: String): String { + return api.getHiddenTroubleDetail(AuthenticationHelper.token, id) } /** diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt index 3bf93f1..43c418d 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt @@ -1,6 +1,5 @@ package com.casic.br.ar.app.view -import android.graphics.Color import android.os.Bundle import android.os.Handler import android.os.Message @@ -13,7 +12,6 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson @@ -73,7 +71,6 @@ } } binding.recyclerView.adapter = checkHistoryAdapter - binding.recyclerView.addItemDecoration(RecyclerViewItemDivider(1, Color.WHITE)) checkHistoryAdapter.setOnItemClickedListener(object : NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked( diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt index e7a6775..be23bf5 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt @@ -6,6 +6,7 @@ import android.widget.GridView import androidx.lifecycle.ViewModelProvider import com.casic.br.ar.app.R +import com.casic.br.ar.app.adapter.ImageGridAdapter import com.casic.br.ar.app.databinding.ActivityCheckHistoryDetailBinding import com.casic.br.ar.app.extensions.combineFilePath import com.casic.br.ar.app.model.CheckHistoryDetailModel @@ -14,11 +15,11 @@ import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter -import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.getScreenWidth import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant @@ -68,7 +69,9 @@ item.imageList.forEach { imageModel -> images.add(imageModel.alarmImage.combineFilePath()) } - val imageAdapter = ReadOnlyImageAdapter(context, images) + + val viewWidth = (getScreenWidth() shr 1) - 75.dp2px(context) + val imageAdapter = ImageGridAdapter(context, images, viewWidth, 2) gridView.adapter = imageAdapter gridView.onItemClickListener = AdapterView.OnItemClickListener { _, _, index, _ -> diff --git a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt index 70fa9ac..c46b050 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt @@ -5,6 +5,7 @@ import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityHiddenTroubleBinding import com.casic.br.ar.app.model.DictionaryModel +import com.casic.br.ar.app.view.hidden.ElectricBoxActivity import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -12,6 +13,7 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.utils.Constant class HiddenTroubleActivity : KotlinBaseActivity() { @@ -57,8 +59,8 @@ NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked(position: Int, t: DictionaryModel.DataModel) { when (t.name) { - //TODO 未完 -// "配电箱" -> navigatePageTo<>() + // TODO 未完 + "配电箱" -> navigatePageTo() // "调压站" -> navigatePageTo<>() // "非居民用户" -> navigatePageTo<>() // "建筑消防" -> navigatePageTo<>() diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f968fe0..ecf8037 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -81,6 +81,12 @@ android:name=".view.HiddenTroubleActivity" android:screenOrientation="landscape" /> + + , + private val viewWidth: Int, private val spanCount: Int +) : BaseAdapter() { + + override fun getItemId(position: Int): Long = position.toLong() + + override fun getCount(): Int = images.size + + override fun getItem(position: Int): Any = images[position] + + override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { + val view: View + val holder: ItemViewHolder + if (convertView == null) { + view = LayoutInflater.from(context).inflate(R.layout.item_readonly_gv, null) + holder = ItemViewHolder() + holder.imageView = view.findViewById(R.id.imageView) + view.tag = holder + } else { + view = convertView + holder = view.tag as ItemViewHolder + } + Glide.with(context) + .load(images[position]) + .apply(RequestOptions().error(R.mipmap.load_image_error)) + .into(holder.imageView) + + //动态设置图片高度,和图片宽度保持一致 + val margin = (view.marginStart + view.marginEnd) * spanCount + val imageSize = (viewWidth - margin) / spanCount + val params = LinearLayout.LayoutParams(imageSize, imageSize) + holder.imageView.layoutParams = params + return view + } + + private class ItemViewHolder { + lateinit var imageView: ImageView + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java new file mode 100644 index 0000000..030008f --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java @@ -0,0 +1,318 @@ +package com.casic.br.ar.app.model; + +import java.util.List; + +public class HiddenTroubleDetailModel { + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private String alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private String normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(String alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(String normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + + public static class AlarmImageListModel { + private String alarmMenuId; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String imagePath; + private String imageType; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmMenuId() { + return alarmMenuId; + } + + public void setAlarmMenuId(String alarmMenuId) { + this.alarmMenuId = alarmMenuId; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getImagePath() { + return imagePath; + } + + public void setImagePath(String imagePath) { + this.imagePath = imagePath; + } + + public String getImageType() { + return imageType; + } + + public void setImageType(String imageType) { + this.imageType = imageType; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } +} diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java index 53ea071..40047ac 100644 --- a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java @@ -1,4 +1,247 @@ package com.casic.br.ar.app.model; +import java.util.List; + public class HiddenTroubleModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsModel { + private int alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private int normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public int getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(int alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(int normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } } diff --git a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt index cf6a4b1..cd3b0a0 100644 --- a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt @@ -64,14 +64,23 @@ ): String /** - * 获取隐患目录列表 + * 根据场景获取获取隐患目录 */ - @POST("/meter/file/listPage") - suspend fun getHiddenTroubleMenuByPage( + @GET("/alarm-menu/listPage") + suspend fun getHiddenTroubleByScene( @Header("token") token: String, - @Body requestBody: RequestBody, - @QueryMap limit: Map, - @QueryMap offset: Map + @Query("keyword") keyword: String, + @Query("offset") offset: Int, + @Query("limit") limit: Int + ): String + + /** + * 获取隐患详情 + */ + @GET("/alarm-menu/detail") + suspend fun getHiddenTroubleDetail( + @Header("token") token: String, + @Query("id") id: String ): String /** diff --git a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt index cabd011..4ca4bdd 100644 --- a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt @@ -89,23 +89,19 @@ } /** - * 获取隐患目录列表 + * 根据场景获取获取隐患目录 */ - suspend fun getHiddenTroubleMenuByPage(keywords: String, offset: Int): String { - val param = JsonObject() - param.addProperty("keywords", keywords) - val requestBody = param.toString().toRequestBody( - "application/json;charset=UTF-8".toMediaType() + suspend fun getHiddenTroubleByScene(keywords: String, offset: Int): String { + return api.getHiddenTroubleByScene( + AuthenticationHelper.token, keywords, offset, LocaleConstant.PAGE_LIMIT ) + } - val limitMap = HashMap() - limitMap["limit"] = LocaleConstant.PAGE_LIMIT - - val offsetMap = HashMap() - offsetMap["offset"] = offset - return api.getHiddenTroubleMenuByPage( - AuthenticationHelper.token, requestBody, limitMap, offsetMap - ) + /** + * 获取隐患详情 + */ + suspend fun getHiddenTroubleDetail(id: String): String { + return api.getHiddenTroubleDetail(AuthenticationHelper.token, id) } /** diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt index 3bf93f1..43c418d 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt @@ -1,6 +1,5 @@ package com.casic.br.ar.app.view -import android.graphics.Color import android.os.Bundle import android.os.Handler import android.os.Message @@ -13,7 +12,6 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson @@ -73,7 +71,6 @@ } } binding.recyclerView.adapter = checkHistoryAdapter - binding.recyclerView.addItemDecoration(RecyclerViewItemDivider(1, Color.WHITE)) checkHistoryAdapter.setOnItemClickedListener(object : NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked( diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt index e7a6775..be23bf5 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt @@ -6,6 +6,7 @@ import android.widget.GridView import androidx.lifecycle.ViewModelProvider import com.casic.br.ar.app.R +import com.casic.br.ar.app.adapter.ImageGridAdapter import com.casic.br.ar.app.databinding.ActivityCheckHistoryDetailBinding import com.casic.br.ar.app.extensions.combineFilePath import com.casic.br.ar.app.model.CheckHistoryDetailModel @@ -14,11 +15,11 @@ import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter -import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.getScreenWidth import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant @@ -68,7 +69,9 @@ item.imageList.forEach { imageModel -> images.add(imageModel.alarmImage.combineFilePath()) } - val imageAdapter = ReadOnlyImageAdapter(context, images) + + val viewWidth = (getScreenWidth() shr 1) - 75.dp2px(context) + val imageAdapter = ImageGridAdapter(context, images, viewWidth, 2) gridView.adapter = imageAdapter gridView.onItemClickListener = AdapterView.OnItemClickListener { _, _, index, _ -> diff --git a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt index 70fa9ac..c46b050 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt @@ -5,6 +5,7 @@ import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityHiddenTroubleBinding import com.casic.br.ar.app.model.DictionaryModel +import com.casic.br.ar.app.view.hidden.ElectricBoxActivity import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -12,6 +13,7 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.utils.Constant class HiddenTroubleActivity : KotlinBaseActivity() { @@ -57,8 +59,8 @@ NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked(position: Int, t: DictionaryModel.DataModel) { when (t.name) { - //TODO 未完 -// "配电箱" -> navigatePageTo<>() + // TODO 未完 + "配电箱" -> navigatePageTo() // "调压站" -> navigatePageTo<>() // "非居民用户" -> navigatePageTo<>() // "建筑消防" -> navigatePageTo<>() diff --git a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleDetailActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleDetailActivity.kt new file mode 100644 index 0000000..b200743 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleDetailActivity.kt @@ -0,0 +1,100 @@ +package com.casic.br.ar.app.view + +import android.os.Bundle +import android.view.View +import android.widget.AdapterView +import androidx.lifecycle.ViewModelProvider +import com.casic.br.ar.app.adapter.ImageGridAdapter +import com.casic.br.ar.app.databinding.ActivityHiddenTroubleDetailBinding +import com.casic.br.ar.app.extensions.combineFilePath +import com.casic.br.ar.app.vm.HiddenTroubleViewModel +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.getScreenWidth +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LoadState +import com.pengxh.kt.lite.utils.LoadingDialogHub + +class HiddenTroubleDetailActivity : KotlinBaseActivity() { + + private val context = this + private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + + override fun initEvent() { + + } + + override fun initOnCreate(savedInstanceState: Bundle?) { + val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM) as ArrayList + + binding.titleView.text = "${args[0]}隐患目录" + + val viewWidth = (getScreenWidth() shr 1) - 75.dp2px(context) + + hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java] + hiddenTroubleViewModel.getHiddenTroubleDetail(this, args[1]) + hiddenTroubleViewModel.troubleDetailResult.observe(this) { + if (it.code == 200) { + binding.troubleTypeView.text = "${it.data.mainClassName}/${it.data.subClassName}" + binding.troubleNameView.text = it.data.name + binding.troubleContentView.text = it.data.content + binding.basisView.text = it.data.basis + + val alarmImageList = it.data.alarmImageList + if (alarmImageList.isNotEmpty()) { + val images = ArrayList() + alarmImageList.forEach { imageModel -> + images.add(imageModel.imagePath.combineFilePath()) + } + val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3) + binding.troubleImageGridView.adapter = imageAdapter + binding.troubleImageGridView.onItemClickListener = + AdapterView.OnItemClickListener { _, _, index, _ -> + navigatePageTo(index, images) + } + } + + val normalImageList = it.data.normalImageList + if (normalImageList.isNotEmpty()) { + val images = ArrayList() + normalImageList.forEach { imageModel -> + images.add(imageModel.imagePath.combineFilePath()) + } + val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3) + binding.normalImageGridView.adapter = imageAdapter + binding.normalImageGridView.onItemClickListener = + AdapterView.OnItemClickListener { _, _, index, _ -> + navigatePageTo(index, images) + } + } + } + } + } + + override fun initViewBinding(): ActivityHiddenTroubleDetailBinding { + return ActivityHiddenTroubleDetailBinding.inflate(layoutInflater) + } + + override fun observeRequestState() { + hiddenTroubleViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + LoadState.Success -> { + LoadingDialogHub.dismiss() + } + + LoadState.Fail -> { + LoadingDialogHub.dismiss() + "数据加载失败,请重试".show(this) + } + } + } + } + + override fun setupTopBarLayout() { + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f968fe0..ecf8037 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -81,6 +81,12 @@ android:name=".view.HiddenTroubleActivity" android:screenOrientation="landscape" /> + + , + private val viewWidth: Int, private val spanCount: Int +) : BaseAdapter() { + + override fun getItemId(position: Int): Long = position.toLong() + + override fun getCount(): Int = images.size + + override fun getItem(position: Int): Any = images[position] + + override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { + val view: View + val holder: ItemViewHolder + if (convertView == null) { + view = LayoutInflater.from(context).inflate(R.layout.item_readonly_gv, null) + holder = ItemViewHolder() + holder.imageView = view.findViewById(R.id.imageView) + view.tag = holder + } else { + view = convertView + holder = view.tag as ItemViewHolder + } + Glide.with(context) + .load(images[position]) + .apply(RequestOptions().error(R.mipmap.load_image_error)) + .into(holder.imageView) + + //动态设置图片高度,和图片宽度保持一致 + val margin = (view.marginStart + view.marginEnd) * spanCount + val imageSize = (viewWidth - margin) / spanCount + val params = LinearLayout.LayoutParams(imageSize, imageSize) + holder.imageView.layoutParams = params + return view + } + + private class ItemViewHolder { + lateinit var imageView: ImageView + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java new file mode 100644 index 0000000..030008f --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java @@ -0,0 +1,318 @@ +package com.casic.br.ar.app.model; + +import java.util.List; + +public class HiddenTroubleDetailModel { + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private String alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private String normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(String alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(String normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + + public static class AlarmImageListModel { + private String alarmMenuId; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String imagePath; + private String imageType; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmMenuId() { + return alarmMenuId; + } + + public void setAlarmMenuId(String alarmMenuId) { + this.alarmMenuId = alarmMenuId; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getImagePath() { + return imagePath; + } + + public void setImagePath(String imagePath) { + this.imagePath = imagePath; + } + + public String getImageType() { + return imageType; + } + + public void setImageType(String imageType) { + this.imageType = imageType; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } +} diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java index 53ea071..40047ac 100644 --- a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java @@ -1,4 +1,247 @@ package com.casic.br.ar.app.model; +import java.util.List; + public class HiddenTroubleModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsModel { + private int alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private int normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public int getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(int alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(int normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } } diff --git a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt index cf6a4b1..cd3b0a0 100644 --- a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt @@ -64,14 +64,23 @@ ): String /** - * 获取隐患目录列表 + * 根据场景获取获取隐患目录 */ - @POST("/meter/file/listPage") - suspend fun getHiddenTroubleMenuByPage( + @GET("/alarm-menu/listPage") + suspend fun getHiddenTroubleByScene( @Header("token") token: String, - @Body requestBody: RequestBody, - @QueryMap limit: Map, - @QueryMap offset: Map + @Query("keyword") keyword: String, + @Query("offset") offset: Int, + @Query("limit") limit: Int + ): String + + /** + * 获取隐患详情 + */ + @GET("/alarm-menu/detail") + suspend fun getHiddenTroubleDetail( + @Header("token") token: String, + @Query("id") id: String ): String /** diff --git a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt index cabd011..4ca4bdd 100644 --- a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt @@ -89,23 +89,19 @@ } /** - * 获取隐患目录列表 + * 根据场景获取获取隐患目录 */ - suspend fun getHiddenTroubleMenuByPage(keywords: String, offset: Int): String { - val param = JsonObject() - param.addProperty("keywords", keywords) - val requestBody = param.toString().toRequestBody( - "application/json;charset=UTF-8".toMediaType() + suspend fun getHiddenTroubleByScene(keywords: String, offset: Int): String { + return api.getHiddenTroubleByScene( + AuthenticationHelper.token, keywords, offset, LocaleConstant.PAGE_LIMIT ) + } - val limitMap = HashMap() - limitMap["limit"] = LocaleConstant.PAGE_LIMIT - - val offsetMap = HashMap() - offsetMap["offset"] = offset - return api.getHiddenTroubleMenuByPage( - AuthenticationHelper.token, requestBody, limitMap, offsetMap - ) + /** + * 获取隐患详情 + */ + suspend fun getHiddenTroubleDetail(id: String): String { + return api.getHiddenTroubleDetail(AuthenticationHelper.token, id) } /** diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt index 3bf93f1..43c418d 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt @@ -1,6 +1,5 @@ package com.casic.br.ar.app.view -import android.graphics.Color import android.os.Bundle import android.os.Handler import android.os.Message @@ -13,7 +12,6 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson @@ -73,7 +71,6 @@ } } binding.recyclerView.adapter = checkHistoryAdapter - binding.recyclerView.addItemDecoration(RecyclerViewItemDivider(1, Color.WHITE)) checkHistoryAdapter.setOnItemClickedListener(object : NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked( diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt index e7a6775..be23bf5 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt @@ -6,6 +6,7 @@ import android.widget.GridView import androidx.lifecycle.ViewModelProvider import com.casic.br.ar.app.R +import com.casic.br.ar.app.adapter.ImageGridAdapter import com.casic.br.ar.app.databinding.ActivityCheckHistoryDetailBinding import com.casic.br.ar.app.extensions.combineFilePath import com.casic.br.ar.app.model.CheckHistoryDetailModel @@ -14,11 +15,11 @@ import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter -import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.getScreenWidth import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant @@ -68,7 +69,9 @@ item.imageList.forEach { imageModel -> images.add(imageModel.alarmImage.combineFilePath()) } - val imageAdapter = ReadOnlyImageAdapter(context, images) + + val viewWidth = (getScreenWidth() shr 1) - 75.dp2px(context) + val imageAdapter = ImageGridAdapter(context, images, viewWidth, 2) gridView.adapter = imageAdapter gridView.onItemClickListener = AdapterView.OnItemClickListener { _, _, index, _ -> diff --git a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt index 70fa9ac..c46b050 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt @@ -5,6 +5,7 @@ import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityHiddenTroubleBinding import com.casic.br.ar.app.model.DictionaryModel +import com.casic.br.ar.app.view.hidden.ElectricBoxActivity import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -12,6 +13,7 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.utils.Constant class HiddenTroubleActivity : KotlinBaseActivity() { @@ -57,8 +59,8 @@ NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked(position: Int, t: DictionaryModel.DataModel) { when (t.name) { - //TODO 未完 -// "配电箱" -> navigatePageTo<>() + // TODO 未完 + "配电箱" -> navigatePageTo() // "调压站" -> navigatePageTo<>() // "非居民用户" -> navigatePageTo<>() // "建筑消防" -> navigatePageTo<>() diff --git a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleDetailActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleDetailActivity.kt new file mode 100644 index 0000000..b200743 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleDetailActivity.kt @@ -0,0 +1,100 @@ +package com.casic.br.ar.app.view + +import android.os.Bundle +import android.view.View +import android.widget.AdapterView +import androidx.lifecycle.ViewModelProvider +import com.casic.br.ar.app.adapter.ImageGridAdapter +import com.casic.br.ar.app.databinding.ActivityHiddenTroubleDetailBinding +import com.casic.br.ar.app.extensions.combineFilePath +import com.casic.br.ar.app.vm.HiddenTroubleViewModel +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.getScreenWidth +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LoadState +import com.pengxh.kt.lite.utils.LoadingDialogHub + +class HiddenTroubleDetailActivity : KotlinBaseActivity() { + + private val context = this + private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + + override fun initEvent() { + + } + + override fun initOnCreate(savedInstanceState: Bundle?) { + val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM) as ArrayList + + binding.titleView.text = "${args[0]}隐患目录" + + val viewWidth = (getScreenWidth() shr 1) - 75.dp2px(context) + + hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java] + hiddenTroubleViewModel.getHiddenTroubleDetail(this, args[1]) + hiddenTroubleViewModel.troubleDetailResult.observe(this) { + if (it.code == 200) { + binding.troubleTypeView.text = "${it.data.mainClassName}/${it.data.subClassName}" + binding.troubleNameView.text = it.data.name + binding.troubleContentView.text = it.data.content + binding.basisView.text = it.data.basis + + val alarmImageList = it.data.alarmImageList + if (alarmImageList.isNotEmpty()) { + val images = ArrayList() + alarmImageList.forEach { imageModel -> + images.add(imageModel.imagePath.combineFilePath()) + } + val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3) + binding.troubleImageGridView.adapter = imageAdapter + binding.troubleImageGridView.onItemClickListener = + AdapterView.OnItemClickListener { _, _, index, _ -> + navigatePageTo(index, images) + } + } + + val normalImageList = it.data.normalImageList + if (normalImageList.isNotEmpty()) { + val images = ArrayList() + normalImageList.forEach { imageModel -> + images.add(imageModel.imagePath.combineFilePath()) + } + val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3) + binding.normalImageGridView.adapter = imageAdapter + binding.normalImageGridView.onItemClickListener = + AdapterView.OnItemClickListener { _, _, index, _ -> + navigatePageTo(index, images) + } + } + } + } + } + + override fun initViewBinding(): ActivityHiddenTroubleDetailBinding { + return ActivityHiddenTroubleDetailBinding.inflate(layoutInflater) + } + + override fun observeRequestState() { + hiddenTroubleViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + LoadState.Success -> { + LoadingDialogHub.dismiss() + } + + LoadState.Fail -> { + LoadingDialogHub.dismiss() + "数据加载失败,请重试".show(this) + } + } + } + } + + override fun setupTopBarLayout() { + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/hidden/ElectricBoxActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/hidden/ElectricBoxActivity.kt new file mode 100644 index 0000000..341c944 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/view/hidden/ElectricBoxActivity.kt @@ -0,0 +1,109 @@ +package com.casic.br.ar.app.view.hidden + +import android.os.Bundle +import android.os.Handler +import android.os.Message +import android.view.View +import androidx.lifecycle.ViewModelProvider +import com.casic.br.ar.app.R +import com.casic.br.ar.app.databinding.ActivityHiddenElectricBoxBinding +import com.casic.br.ar.app.model.HiddenTroubleModel +import com.casic.br.ar.app.view.HiddenTroubleDetailActivity +import com.casic.br.ar.app.vm.HiddenTroubleViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.LoadState +import com.pengxh.kt.lite.utils.LoadingDialogHub +import com.pengxh.kt.lite.utils.WeakReferenceHandler + +class ElectricBoxActivity : KotlinBaseActivity(), + Handler.Callback { + + private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + private lateinit var troubleAdapter: NormalRecyclerAdapter + private var dataBeans: MutableList = ArrayList() + private var page = 1 + + override fun initEvent() { + + } + + override fun initOnCreate(savedInstanceState: Bundle?) { + weakReferenceHandler = WeakReferenceHandler(this) + hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java] + getHiddenTroubleByScene() + hiddenTroubleViewModel.troublesResult.observe(this) { + if (it.code == 200) { + it.data?.rows?.apply { + dataBeans = this + weakReferenceHandler.sendEmptyMessage(2024052701) + } + } + } + } + + private fun getHiddenTroubleByScene() { + hiddenTroubleViewModel.getHiddenTroubleByScene(this, "配电箱", page) + } + + override fun handleMessage(msg: Message): Boolean { + when (msg.what) { + 2024052701 -> { + troubleAdapter = object : + NormalRecyclerAdapter( + R.layout.item_hidden_electric_box_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, + item: HiddenTroubleModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.indexView, "${position + 1}") + .setText(R.id.mainTypeView, item.mainClassName) + .setText(R.id.subTypeView, item.subClassName) + .setText(R.id.troubleNameView, item.name) + .setText(R.id.troubleContentView, item.content) + } + } + binding.recyclerView.adapter = troubleAdapter + troubleAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: HiddenTroubleModel.DataModel.RowsModel + ) { + navigatePageTo(arrayListOf("配电箱", t.id)) + } + }) + } + } + return true + } + + override fun initViewBinding(): ActivityHiddenElectricBoxBinding { + return ActivityHiddenElectricBoxBinding.inflate(layoutInflater) + } + + override fun observeRequestState() { + hiddenTroubleViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + LoadState.Success -> { + LoadingDialogHub.dismiss() + } + + LoadState.Fail -> { + LoadingDialogHub.dismiss() + "数据加载失败,请重试".show(this) + } + } + } + } + + override fun setupTopBarLayout() { + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f968fe0..ecf8037 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -81,6 +81,12 @@ android:name=".view.HiddenTroubleActivity" android:screenOrientation="landscape" /> + + , + private val viewWidth: Int, private val spanCount: Int +) : BaseAdapter() { + + override fun getItemId(position: Int): Long = position.toLong() + + override fun getCount(): Int = images.size + + override fun getItem(position: Int): Any = images[position] + + override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { + val view: View + val holder: ItemViewHolder + if (convertView == null) { + view = LayoutInflater.from(context).inflate(R.layout.item_readonly_gv, null) + holder = ItemViewHolder() + holder.imageView = view.findViewById(R.id.imageView) + view.tag = holder + } else { + view = convertView + holder = view.tag as ItemViewHolder + } + Glide.with(context) + .load(images[position]) + .apply(RequestOptions().error(R.mipmap.load_image_error)) + .into(holder.imageView) + + //动态设置图片高度,和图片宽度保持一致 + val margin = (view.marginStart + view.marginEnd) * spanCount + val imageSize = (viewWidth - margin) / spanCount + val params = LinearLayout.LayoutParams(imageSize, imageSize) + holder.imageView.layoutParams = params + return view + } + + private class ItemViewHolder { + lateinit var imageView: ImageView + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java new file mode 100644 index 0000000..030008f --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java @@ -0,0 +1,318 @@ +package com.casic.br.ar.app.model; + +import java.util.List; + +public class HiddenTroubleDetailModel { + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private String alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private String normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(String alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(String normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + + public static class AlarmImageListModel { + private String alarmMenuId; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String imagePath; + private String imageType; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmMenuId() { + return alarmMenuId; + } + + public void setAlarmMenuId(String alarmMenuId) { + this.alarmMenuId = alarmMenuId; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getImagePath() { + return imagePath; + } + + public void setImagePath(String imagePath) { + this.imagePath = imagePath; + } + + public String getImageType() { + return imageType; + } + + public void setImageType(String imageType) { + this.imageType = imageType; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } +} diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java index 53ea071..40047ac 100644 --- a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java @@ -1,4 +1,247 @@ package com.casic.br.ar.app.model; +import java.util.List; + public class HiddenTroubleModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsModel { + private int alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private int normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public int getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(int alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(int normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } } diff --git a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt index cf6a4b1..cd3b0a0 100644 --- a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt @@ -64,14 +64,23 @@ ): String /** - * 获取隐患目录列表 + * 根据场景获取获取隐患目录 */ - @POST("/meter/file/listPage") - suspend fun getHiddenTroubleMenuByPage( + @GET("/alarm-menu/listPage") + suspend fun getHiddenTroubleByScene( @Header("token") token: String, - @Body requestBody: RequestBody, - @QueryMap limit: Map, - @QueryMap offset: Map + @Query("keyword") keyword: String, + @Query("offset") offset: Int, + @Query("limit") limit: Int + ): String + + /** + * 获取隐患详情 + */ + @GET("/alarm-menu/detail") + suspend fun getHiddenTroubleDetail( + @Header("token") token: String, + @Query("id") id: String ): String /** diff --git a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt index cabd011..4ca4bdd 100644 --- a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt @@ -89,23 +89,19 @@ } /** - * 获取隐患目录列表 + * 根据场景获取获取隐患目录 */ - suspend fun getHiddenTroubleMenuByPage(keywords: String, offset: Int): String { - val param = JsonObject() - param.addProperty("keywords", keywords) - val requestBody = param.toString().toRequestBody( - "application/json;charset=UTF-8".toMediaType() + suspend fun getHiddenTroubleByScene(keywords: String, offset: Int): String { + return api.getHiddenTroubleByScene( + AuthenticationHelper.token, keywords, offset, LocaleConstant.PAGE_LIMIT ) + } - val limitMap = HashMap() - limitMap["limit"] = LocaleConstant.PAGE_LIMIT - - val offsetMap = HashMap() - offsetMap["offset"] = offset - return api.getHiddenTroubleMenuByPage( - AuthenticationHelper.token, requestBody, limitMap, offsetMap - ) + /** + * 获取隐患详情 + */ + suspend fun getHiddenTroubleDetail(id: String): String { + return api.getHiddenTroubleDetail(AuthenticationHelper.token, id) } /** diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt index 3bf93f1..43c418d 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt @@ -1,6 +1,5 @@ package com.casic.br.ar.app.view -import android.graphics.Color import android.os.Bundle import android.os.Handler import android.os.Message @@ -13,7 +12,6 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson @@ -73,7 +71,6 @@ } } binding.recyclerView.adapter = checkHistoryAdapter - binding.recyclerView.addItemDecoration(RecyclerViewItemDivider(1, Color.WHITE)) checkHistoryAdapter.setOnItemClickedListener(object : NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked( diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt index e7a6775..be23bf5 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt @@ -6,6 +6,7 @@ import android.widget.GridView import androidx.lifecycle.ViewModelProvider import com.casic.br.ar.app.R +import com.casic.br.ar.app.adapter.ImageGridAdapter import com.casic.br.ar.app.databinding.ActivityCheckHistoryDetailBinding import com.casic.br.ar.app.extensions.combineFilePath import com.casic.br.ar.app.model.CheckHistoryDetailModel @@ -14,11 +15,11 @@ import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter -import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.getScreenWidth import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant @@ -68,7 +69,9 @@ item.imageList.forEach { imageModel -> images.add(imageModel.alarmImage.combineFilePath()) } - val imageAdapter = ReadOnlyImageAdapter(context, images) + + val viewWidth = (getScreenWidth() shr 1) - 75.dp2px(context) + val imageAdapter = ImageGridAdapter(context, images, viewWidth, 2) gridView.adapter = imageAdapter gridView.onItemClickListener = AdapterView.OnItemClickListener { _, _, index, _ -> diff --git a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt index 70fa9ac..c46b050 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt @@ -5,6 +5,7 @@ import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityHiddenTroubleBinding import com.casic.br.ar.app.model.DictionaryModel +import com.casic.br.ar.app.view.hidden.ElectricBoxActivity import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -12,6 +13,7 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.utils.Constant class HiddenTroubleActivity : KotlinBaseActivity() { @@ -57,8 +59,8 @@ NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked(position: Int, t: DictionaryModel.DataModel) { when (t.name) { - //TODO 未完 -// "配电箱" -> navigatePageTo<>() + // TODO 未完 + "配电箱" -> navigatePageTo() // "调压站" -> navigatePageTo<>() // "非居民用户" -> navigatePageTo<>() // "建筑消防" -> navigatePageTo<>() diff --git a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleDetailActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleDetailActivity.kt new file mode 100644 index 0000000..b200743 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleDetailActivity.kt @@ -0,0 +1,100 @@ +package com.casic.br.ar.app.view + +import android.os.Bundle +import android.view.View +import android.widget.AdapterView +import androidx.lifecycle.ViewModelProvider +import com.casic.br.ar.app.adapter.ImageGridAdapter +import com.casic.br.ar.app.databinding.ActivityHiddenTroubleDetailBinding +import com.casic.br.ar.app.extensions.combineFilePath +import com.casic.br.ar.app.vm.HiddenTroubleViewModel +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.getScreenWidth +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LoadState +import com.pengxh.kt.lite.utils.LoadingDialogHub + +class HiddenTroubleDetailActivity : KotlinBaseActivity() { + + private val context = this + private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + + override fun initEvent() { + + } + + override fun initOnCreate(savedInstanceState: Bundle?) { + val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM) as ArrayList + + binding.titleView.text = "${args[0]}隐患目录" + + val viewWidth = (getScreenWidth() shr 1) - 75.dp2px(context) + + hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java] + hiddenTroubleViewModel.getHiddenTroubleDetail(this, args[1]) + hiddenTroubleViewModel.troubleDetailResult.observe(this) { + if (it.code == 200) { + binding.troubleTypeView.text = "${it.data.mainClassName}/${it.data.subClassName}" + binding.troubleNameView.text = it.data.name + binding.troubleContentView.text = it.data.content + binding.basisView.text = it.data.basis + + val alarmImageList = it.data.alarmImageList + if (alarmImageList.isNotEmpty()) { + val images = ArrayList() + alarmImageList.forEach { imageModel -> + images.add(imageModel.imagePath.combineFilePath()) + } + val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3) + binding.troubleImageGridView.adapter = imageAdapter + binding.troubleImageGridView.onItemClickListener = + AdapterView.OnItemClickListener { _, _, index, _ -> + navigatePageTo(index, images) + } + } + + val normalImageList = it.data.normalImageList + if (normalImageList.isNotEmpty()) { + val images = ArrayList() + normalImageList.forEach { imageModel -> + images.add(imageModel.imagePath.combineFilePath()) + } + val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3) + binding.normalImageGridView.adapter = imageAdapter + binding.normalImageGridView.onItemClickListener = + AdapterView.OnItemClickListener { _, _, index, _ -> + navigatePageTo(index, images) + } + } + } + } + } + + override fun initViewBinding(): ActivityHiddenTroubleDetailBinding { + return ActivityHiddenTroubleDetailBinding.inflate(layoutInflater) + } + + override fun observeRequestState() { + hiddenTroubleViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + LoadState.Success -> { + LoadingDialogHub.dismiss() + } + + LoadState.Fail -> { + LoadingDialogHub.dismiss() + "数据加载失败,请重试".show(this) + } + } + } + } + + override fun setupTopBarLayout() { + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/hidden/ElectricBoxActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/hidden/ElectricBoxActivity.kt new file mode 100644 index 0000000..341c944 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/view/hidden/ElectricBoxActivity.kt @@ -0,0 +1,109 @@ +package com.casic.br.ar.app.view.hidden + +import android.os.Bundle +import android.os.Handler +import android.os.Message +import android.view.View +import androidx.lifecycle.ViewModelProvider +import com.casic.br.ar.app.R +import com.casic.br.ar.app.databinding.ActivityHiddenElectricBoxBinding +import com.casic.br.ar.app.model.HiddenTroubleModel +import com.casic.br.ar.app.view.HiddenTroubleDetailActivity +import com.casic.br.ar.app.vm.HiddenTroubleViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.LoadState +import com.pengxh.kt.lite.utils.LoadingDialogHub +import com.pengxh.kt.lite.utils.WeakReferenceHandler + +class ElectricBoxActivity : KotlinBaseActivity(), + Handler.Callback { + + private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + private lateinit var troubleAdapter: NormalRecyclerAdapter + private var dataBeans: MutableList = ArrayList() + private var page = 1 + + override fun initEvent() { + + } + + override fun initOnCreate(savedInstanceState: Bundle?) { + weakReferenceHandler = WeakReferenceHandler(this) + hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java] + getHiddenTroubleByScene() + hiddenTroubleViewModel.troublesResult.observe(this) { + if (it.code == 200) { + it.data?.rows?.apply { + dataBeans = this + weakReferenceHandler.sendEmptyMessage(2024052701) + } + } + } + } + + private fun getHiddenTroubleByScene() { + hiddenTroubleViewModel.getHiddenTroubleByScene(this, "配电箱", page) + } + + override fun handleMessage(msg: Message): Boolean { + when (msg.what) { + 2024052701 -> { + troubleAdapter = object : + NormalRecyclerAdapter( + R.layout.item_hidden_electric_box_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, + item: HiddenTroubleModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.indexView, "${position + 1}") + .setText(R.id.mainTypeView, item.mainClassName) + .setText(R.id.subTypeView, item.subClassName) + .setText(R.id.troubleNameView, item.name) + .setText(R.id.troubleContentView, item.content) + } + } + binding.recyclerView.adapter = troubleAdapter + troubleAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: HiddenTroubleModel.DataModel.RowsModel + ) { + navigatePageTo(arrayListOf("配电箱", t.id)) + } + }) + } + } + return true + } + + override fun initViewBinding(): ActivityHiddenElectricBoxBinding { + return ActivityHiddenElectricBoxBinding.inflate(layoutInflater) + } + + override fun observeRequestState() { + hiddenTroubleViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + LoadState.Success -> { + LoadingDialogHub.dismiss() + } + + LoadState.Fail -> { + LoadingDialogHub.dismiss() + "数据加载失败,请重试".show(this) + } + } + } + } + + override fun setupTopBarLayout() { + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/manifest/ElectricBoxActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/manifest/ElectricBoxActivity.kt new file mode 100644 index 0000000..9b40f15 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/view/manifest/ElectricBoxActivity.kt @@ -0,0 +1,4 @@ +package com.casic.br.ar.app.view.manifest + +class ElectricBoxActivity { +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f968fe0..ecf8037 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -81,6 +81,12 @@ android:name=".view.HiddenTroubleActivity" android:screenOrientation="landscape" /> + + , + private val viewWidth: Int, private val spanCount: Int +) : BaseAdapter() { + + override fun getItemId(position: Int): Long = position.toLong() + + override fun getCount(): Int = images.size + + override fun getItem(position: Int): Any = images[position] + + override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { + val view: View + val holder: ItemViewHolder + if (convertView == null) { + view = LayoutInflater.from(context).inflate(R.layout.item_readonly_gv, null) + holder = ItemViewHolder() + holder.imageView = view.findViewById(R.id.imageView) + view.tag = holder + } else { + view = convertView + holder = view.tag as ItemViewHolder + } + Glide.with(context) + .load(images[position]) + .apply(RequestOptions().error(R.mipmap.load_image_error)) + .into(holder.imageView) + + //动态设置图片高度,和图片宽度保持一致 + val margin = (view.marginStart + view.marginEnd) * spanCount + val imageSize = (viewWidth - margin) / spanCount + val params = LinearLayout.LayoutParams(imageSize, imageSize) + holder.imageView.layoutParams = params + return view + } + + private class ItemViewHolder { + lateinit var imageView: ImageView + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java new file mode 100644 index 0000000..030008f --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java @@ -0,0 +1,318 @@ +package com.casic.br.ar.app.model; + +import java.util.List; + +public class HiddenTroubleDetailModel { + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private String alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private String normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(String alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(String normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + + public static class AlarmImageListModel { + private String alarmMenuId; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String imagePath; + private String imageType; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmMenuId() { + return alarmMenuId; + } + + public void setAlarmMenuId(String alarmMenuId) { + this.alarmMenuId = alarmMenuId; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getImagePath() { + return imagePath; + } + + public void setImagePath(String imagePath) { + this.imagePath = imagePath; + } + + public String getImageType() { + return imageType; + } + + public void setImageType(String imageType) { + this.imageType = imageType; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } +} diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java index 53ea071..40047ac 100644 --- a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java @@ -1,4 +1,247 @@ package com.casic.br.ar.app.model; +import java.util.List; + public class HiddenTroubleModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsModel { + private int alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private int normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public int getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(int alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(int normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } } diff --git a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt index cf6a4b1..cd3b0a0 100644 --- a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt @@ -64,14 +64,23 @@ ): String /** - * 获取隐患目录列表 + * 根据场景获取获取隐患目录 */ - @POST("/meter/file/listPage") - suspend fun getHiddenTroubleMenuByPage( + @GET("/alarm-menu/listPage") + suspend fun getHiddenTroubleByScene( @Header("token") token: String, - @Body requestBody: RequestBody, - @QueryMap limit: Map, - @QueryMap offset: Map + @Query("keyword") keyword: String, + @Query("offset") offset: Int, + @Query("limit") limit: Int + ): String + + /** + * 获取隐患详情 + */ + @GET("/alarm-menu/detail") + suspend fun getHiddenTroubleDetail( + @Header("token") token: String, + @Query("id") id: String ): String /** diff --git a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt index cabd011..4ca4bdd 100644 --- a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt @@ -89,23 +89,19 @@ } /** - * 获取隐患目录列表 + * 根据场景获取获取隐患目录 */ - suspend fun getHiddenTroubleMenuByPage(keywords: String, offset: Int): String { - val param = JsonObject() - param.addProperty("keywords", keywords) - val requestBody = param.toString().toRequestBody( - "application/json;charset=UTF-8".toMediaType() + suspend fun getHiddenTroubleByScene(keywords: String, offset: Int): String { + return api.getHiddenTroubleByScene( + AuthenticationHelper.token, keywords, offset, LocaleConstant.PAGE_LIMIT ) + } - val limitMap = HashMap() - limitMap["limit"] = LocaleConstant.PAGE_LIMIT - - val offsetMap = HashMap() - offsetMap["offset"] = offset - return api.getHiddenTroubleMenuByPage( - AuthenticationHelper.token, requestBody, limitMap, offsetMap - ) + /** + * 获取隐患详情 + */ + suspend fun getHiddenTroubleDetail(id: String): String { + return api.getHiddenTroubleDetail(AuthenticationHelper.token, id) } /** diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt index 3bf93f1..43c418d 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt @@ -1,6 +1,5 @@ package com.casic.br.ar.app.view -import android.graphics.Color import android.os.Bundle import android.os.Handler import android.os.Message @@ -13,7 +12,6 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson @@ -73,7 +71,6 @@ } } binding.recyclerView.adapter = checkHistoryAdapter - binding.recyclerView.addItemDecoration(RecyclerViewItemDivider(1, Color.WHITE)) checkHistoryAdapter.setOnItemClickedListener(object : NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked( diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt index e7a6775..be23bf5 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt @@ -6,6 +6,7 @@ import android.widget.GridView import androidx.lifecycle.ViewModelProvider import com.casic.br.ar.app.R +import com.casic.br.ar.app.adapter.ImageGridAdapter import com.casic.br.ar.app.databinding.ActivityCheckHistoryDetailBinding import com.casic.br.ar.app.extensions.combineFilePath import com.casic.br.ar.app.model.CheckHistoryDetailModel @@ -14,11 +15,11 @@ import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter -import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.getScreenWidth import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant @@ -68,7 +69,9 @@ item.imageList.forEach { imageModel -> images.add(imageModel.alarmImage.combineFilePath()) } - val imageAdapter = ReadOnlyImageAdapter(context, images) + + val viewWidth = (getScreenWidth() shr 1) - 75.dp2px(context) + val imageAdapter = ImageGridAdapter(context, images, viewWidth, 2) gridView.adapter = imageAdapter gridView.onItemClickListener = AdapterView.OnItemClickListener { _, _, index, _ -> diff --git a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt index 70fa9ac..c46b050 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt @@ -5,6 +5,7 @@ import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityHiddenTroubleBinding import com.casic.br.ar.app.model.DictionaryModel +import com.casic.br.ar.app.view.hidden.ElectricBoxActivity import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -12,6 +13,7 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.utils.Constant class HiddenTroubleActivity : KotlinBaseActivity() { @@ -57,8 +59,8 @@ NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked(position: Int, t: DictionaryModel.DataModel) { when (t.name) { - //TODO 未完 -// "配电箱" -> navigatePageTo<>() + // TODO 未完 + "配电箱" -> navigatePageTo() // "调压站" -> navigatePageTo<>() // "非居民用户" -> navigatePageTo<>() // "建筑消防" -> navigatePageTo<>() diff --git a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleDetailActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleDetailActivity.kt new file mode 100644 index 0000000..b200743 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleDetailActivity.kt @@ -0,0 +1,100 @@ +package com.casic.br.ar.app.view + +import android.os.Bundle +import android.view.View +import android.widget.AdapterView +import androidx.lifecycle.ViewModelProvider +import com.casic.br.ar.app.adapter.ImageGridAdapter +import com.casic.br.ar.app.databinding.ActivityHiddenTroubleDetailBinding +import com.casic.br.ar.app.extensions.combineFilePath +import com.casic.br.ar.app.vm.HiddenTroubleViewModel +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.getScreenWidth +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LoadState +import com.pengxh.kt.lite.utils.LoadingDialogHub + +class HiddenTroubleDetailActivity : KotlinBaseActivity() { + + private val context = this + private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + + override fun initEvent() { + + } + + override fun initOnCreate(savedInstanceState: Bundle?) { + val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM) as ArrayList + + binding.titleView.text = "${args[0]}隐患目录" + + val viewWidth = (getScreenWidth() shr 1) - 75.dp2px(context) + + hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java] + hiddenTroubleViewModel.getHiddenTroubleDetail(this, args[1]) + hiddenTroubleViewModel.troubleDetailResult.observe(this) { + if (it.code == 200) { + binding.troubleTypeView.text = "${it.data.mainClassName}/${it.data.subClassName}" + binding.troubleNameView.text = it.data.name + binding.troubleContentView.text = it.data.content + binding.basisView.text = it.data.basis + + val alarmImageList = it.data.alarmImageList + if (alarmImageList.isNotEmpty()) { + val images = ArrayList() + alarmImageList.forEach { imageModel -> + images.add(imageModel.imagePath.combineFilePath()) + } + val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3) + binding.troubleImageGridView.adapter = imageAdapter + binding.troubleImageGridView.onItemClickListener = + AdapterView.OnItemClickListener { _, _, index, _ -> + navigatePageTo(index, images) + } + } + + val normalImageList = it.data.normalImageList + if (normalImageList.isNotEmpty()) { + val images = ArrayList() + normalImageList.forEach { imageModel -> + images.add(imageModel.imagePath.combineFilePath()) + } + val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3) + binding.normalImageGridView.adapter = imageAdapter + binding.normalImageGridView.onItemClickListener = + AdapterView.OnItemClickListener { _, _, index, _ -> + navigatePageTo(index, images) + } + } + } + } + } + + override fun initViewBinding(): ActivityHiddenTroubleDetailBinding { + return ActivityHiddenTroubleDetailBinding.inflate(layoutInflater) + } + + override fun observeRequestState() { + hiddenTroubleViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + LoadState.Success -> { + LoadingDialogHub.dismiss() + } + + LoadState.Fail -> { + LoadingDialogHub.dismiss() + "数据加载失败,请重试".show(this) + } + } + } + } + + override fun setupTopBarLayout() { + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/hidden/ElectricBoxActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/hidden/ElectricBoxActivity.kt new file mode 100644 index 0000000..341c944 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/view/hidden/ElectricBoxActivity.kt @@ -0,0 +1,109 @@ +package com.casic.br.ar.app.view.hidden + +import android.os.Bundle +import android.os.Handler +import android.os.Message +import android.view.View +import androidx.lifecycle.ViewModelProvider +import com.casic.br.ar.app.R +import com.casic.br.ar.app.databinding.ActivityHiddenElectricBoxBinding +import com.casic.br.ar.app.model.HiddenTroubleModel +import com.casic.br.ar.app.view.HiddenTroubleDetailActivity +import com.casic.br.ar.app.vm.HiddenTroubleViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.LoadState +import com.pengxh.kt.lite.utils.LoadingDialogHub +import com.pengxh.kt.lite.utils.WeakReferenceHandler + +class ElectricBoxActivity : KotlinBaseActivity(), + Handler.Callback { + + private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + private lateinit var troubleAdapter: NormalRecyclerAdapter + private var dataBeans: MutableList = ArrayList() + private var page = 1 + + override fun initEvent() { + + } + + override fun initOnCreate(savedInstanceState: Bundle?) { + weakReferenceHandler = WeakReferenceHandler(this) + hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java] + getHiddenTroubleByScene() + hiddenTroubleViewModel.troublesResult.observe(this) { + if (it.code == 200) { + it.data?.rows?.apply { + dataBeans = this + weakReferenceHandler.sendEmptyMessage(2024052701) + } + } + } + } + + private fun getHiddenTroubleByScene() { + hiddenTroubleViewModel.getHiddenTroubleByScene(this, "配电箱", page) + } + + override fun handleMessage(msg: Message): Boolean { + when (msg.what) { + 2024052701 -> { + troubleAdapter = object : + NormalRecyclerAdapter( + R.layout.item_hidden_electric_box_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, + item: HiddenTroubleModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.indexView, "${position + 1}") + .setText(R.id.mainTypeView, item.mainClassName) + .setText(R.id.subTypeView, item.subClassName) + .setText(R.id.troubleNameView, item.name) + .setText(R.id.troubleContentView, item.content) + } + } + binding.recyclerView.adapter = troubleAdapter + troubleAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: HiddenTroubleModel.DataModel.RowsModel + ) { + navigatePageTo(arrayListOf("配电箱", t.id)) + } + }) + } + } + return true + } + + override fun initViewBinding(): ActivityHiddenElectricBoxBinding { + return ActivityHiddenElectricBoxBinding.inflate(layoutInflater) + } + + override fun observeRequestState() { + hiddenTroubleViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + LoadState.Success -> { + LoadingDialogHub.dismiss() + } + + LoadState.Fail -> { + LoadingDialogHub.dismiss() + "数据加载失败,请重试".show(this) + } + } + } + } + + override fun setupTopBarLayout() { + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/manifest/ElectricBoxActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/manifest/ElectricBoxActivity.kt new file mode 100644 index 0000000..9b40f15 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/view/manifest/ElectricBoxActivity.kt @@ -0,0 +1,4 @@ +package com.casic.br.ar.app.view.manifest + +class ElectricBoxActivity { +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/vm/HiddenTroubleViewModel.kt b/app/src/main/java/com/casic/br/ar/app/vm/HiddenTroubleViewModel.kt index c283c0e..d4d4ecf 100644 --- a/app/src/main/java/com/casic/br/ar/app/vm/HiddenTroubleViewModel.kt +++ b/app/src/main/java/com/casic/br/ar/app/vm/HiddenTroubleViewModel.kt @@ -4,6 +4,7 @@ import androidx.lifecycle.MutableLiveData import com.casic.br.ar.app.extensions.getResponseCode import com.casic.br.ar.app.extensions.getResponseMessage +import com.casic.br.ar.app.model.HiddenTroubleDetailModel import com.casic.br.ar.app.model.HiddenTroubleModel import com.casic.br.ar.app.retrofit.RetrofitServiceManager import com.google.gson.Gson @@ -17,10 +18,11 @@ private val gson by lazy { Gson() } val troublesResult = MutableLiveData() + val troubleDetailResult = MutableLiveData() - fun getHiddenTroubleMenuByPage(context: Context, keywords: String, offset: Int) = launch({ + fun getHiddenTroubleByScene(context: Context, keywords: String, offset: Int) = launch({ loadState.value = LoadState.Loading - val response = RetrofitServiceManager.getHiddenTroubleMenuByPage(keywords, offset) + val response = RetrofitServiceManager.getHiddenTroubleByScene(keywords, offset) when (response.getResponseCode()) { 200 -> { loadState.value = LoadState.Success @@ -38,4 +40,25 @@ loadState.value = LoadState.Fail it.localizedMessage?.show(context) }) + + fun getHiddenTroubleDetail(context: Context, id: String) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.getHiddenTroubleDetail(id) + when (response.getResponseCode()) { + 200 -> { + loadState.value = LoadState.Success + troubleDetailResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + + else -> { + loadState.value = LoadState.Fail + response.getResponseMessage().show(context) + } + } + }, { + loadState.value = LoadState.Fail + it.localizedMessage?.show(context) + }) } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f968fe0..ecf8037 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -81,6 +81,12 @@ android:name=".view.HiddenTroubleActivity" android:screenOrientation="landscape" /> + + , + private val viewWidth: Int, private val spanCount: Int +) : BaseAdapter() { + + override fun getItemId(position: Int): Long = position.toLong() + + override fun getCount(): Int = images.size + + override fun getItem(position: Int): Any = images[position] + + override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { + val view: View + val holder: ItemViewHolder + if (convertView == null) { + view = LayoutInflater.from(context).inflate(R.layout.item_readonly_gv, null) + holder = ItemViewHolder() + holder.imageView = view.findViewById(R.id.imageView) + view.tag = holder + } else { + view = convertView + holder = view.tag as ItemViewHolder + } + Glide.with(context) + .load(images[position]) + .apply(RequestOptions().error(R.mipmap.load_image_error)) + .into(holder.imageView) + + //动态设置图片高度,和图片宽度保持一致 + val margin = (view.marginStart + view.marginEnd) * spanCount + val imageSize = (viewWidth - margin) / spanCount + val params = LinearLayout.LayoutParams(imageSize, imageSize) + holder.imageView.layoutParams = params + return view + } + + private class ItemViewHolder { + lateinit var imageView: ImageView + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java new file mode 100644 index 0000000..030008f --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java @@ -0,0 +1,318 @@ +package com.casic.br.ar.app.model; + +import java.util.List; + +public class HiddenTroubleDetailModel { + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private String alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private String normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(String alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(String normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + + public static class AlarmImageListModel { + private String alarmMenuId; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String imagePath; + private String imageType; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmMenuId() { + return alarmMenuId; + } + + public void setAlarmMenuId(String alarmMenuId) { + this.alarmMenuId = alarmMenuId; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getImagePath() { + return imagePath; + } + + public void setImagePath(String imagePath) { + this.imagePath = imagePath; + } + + public String getImageType() { + return imageType; + } + + public void setImageType(String imageType) { + this.imageType = imageType; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } +} diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java index 53ea071..40047ac 100644 --- a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java @@ -1,4 +1,247 @@ package com.casic.br.ar.app.model; +import java.util.List; + public class HiddenTroubleModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsModel { + private int alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private int normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public int getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(int alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(int normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } } diff --git a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt index cf6a4b1..cd3b0a0 100644 --- a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt @@ -64,14 +64,23 @@ ): String /** - * 获取隐患目录列表 + * 根据场景获取获取隐患目录 */ - @POST("/meter/file/listPage") - suspend fun getHiddenTroubleMenuByPage( + @GET("/alarm-menu/listPage") + suspend fun getHiddenTroubleByScene( @Header("token") token: String, - @Body requestBody: RequestBody, - @QueryMap limit: Map, - @QueryMap offset: Map + @Query("keyword") keyword: String, + @Query("offset") offset: Int, + @Query("limit") limit: Int + ): String + + /** + * 获取隐患详情 + */ + @GET("/alarm-menu/detail") + suspend fun getHiddenTroubleDetail( + @Header("token") token: String, + @Query("id") id: String ): String /** diff --git a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt index cabd011..4ca4bdd 100644 --- a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt @@ -89,23 +89,19 @@ } /** - * 获取隐患目录列表 + * 根据场景获取获取隐患目录 */ - suspend fun getHiddenTroubleMenuByPage(keywords: String, offset: Int): String { - val param = JsonObject() - param.addProperty("keywords", keywords) - val requestBody = param.toString().toRequestBody( - "application/json;charset=UTF-8".toMediaType() + suspend fun getHiddenTroubleByScene(keywords: String, offset: Int): String { + return api.getHiddenTroubleByScene( + AuthenticationHelper.token, keywords, offset, LocaleConstant.PAGE_LIMIT ) + } - val limitMap = HashMap() - limitMap["limit"] = LocaleConstant.PAGE_LIMIT - - val offsetMap = HashMap() - offsetMap["offset"] = offset - return api.getHiddenTroubleMenuByPage( - AuthenticationHelper.token, requestBody, limitMap, offsetMap - ) + /** + * 获取隐患详情 + */ + suspend fun getHiddenTroubleDetail(id: String): String { + return api.getHiddenTroubleDetail(AuthenticationHelper.token, id) } /** diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt index 3bf93f1..43c418d 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt @@ -1,6 +1,5 @@ package com.casic.br.ar.app.view -import android.graphics.Color import android.os.Bundle import android.os.Handler import android.os.Message @@ -13,7 +12,6 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson @@ -73,7 +71,6 @@ } } binding.recyclerView.adapter = checkHistoryAdapter - binding.recyclerView.addItemDecoration(RecyclerViewItemDivider(1, Color.WHITE)) checkHistoryAdapter.setOnItemClickedListener(object : NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked( diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt index e7a6775..be23bf5 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt @@ -6,6 +6,7 @@ import android.widget.GridView import androidx.lifecycle.ViewModelProvider import com.casic.br.ar.app.R +import com.casic.br.ar.app.adapter.ImageGridAdapter import com.casic.br.ar.app.databinding.ActivityCheckHistoryDetailBinding import com.casic.br.ar.app.extensions.combineFilePath import com.casic.br.ar.app.model.CheckHistoryDetailModel @@ -14,11 +15,11 @@ import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter -import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.getScreenWidth import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant @@ -68,7 +69,9 @@ item.imageList.forEach { imageModel -> images.add(imageModel.alarmImage.combineFilePath()) } - val imageAdapter = ReadOnlyImageAdapter(context, images) + + val viewWidth = (getScreenWidth() shr 1) - 75.dp2px(context) + val imageAdapter = ImageGridAdapter(context, images, viewWidth, 2) gridView.adapter = imageAdapter gridView.onItemClickListener = AdapterView.OnItemClickListener { _, _, index, _ -> diff --git a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt index 70fa9ac..c46b050 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt @@ -5,6 +5,7 @@ import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityHiddenTroubleBinding import com.casic.br.ar.app.model.DictionaryModel +import com.casic.br.ar.app.view.hidden.ElectricBoxActivity import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -12,6 +13,7 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.utils.Constant class HiddenTroubleActivity : KotlinBaseActivity() { @@ -57,8 +59,8 @@ NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked(position: Int, t: DictionaryModel.DataModel) { when (t.name) { - //TODO 未完 -// "配电箱" -> navigatePageTo<>() + // TODO 未完 + "配电箱" -> navigatePageTo() // "调压站" -> navigatePageTo<>() // "非居民用户" -> navigatePageTo<>() // "建筑消防" -> navigatePageTo<>() diff --git a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleDetailActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleDetailActivity.kt new file mode 100644 index 0000000..b200743 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleDetailActivity.kt @@ -0,0 +1,100 @@ +package com.casic.br.ar.app.view + +import android.os.Bundle +import android.view.View +import android.widget.AdapterView +import androidx.lifecycle.ViewModelProvider +import com.casic.br.ar.app.adapter.ImageGridAdapter +import com.casic.br.ar.app.databinding.ActivityHiddenTroubleDetailBinding +import com.casic.br.ar.app.extensions.combineFilePath +import com.casic.br.ar.app.vm.HiddenTroubleViewModel +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.getScreenWidth +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LoadState +import com.pengxh.kt.lite.utils.LoadingDialogHub + +class HiddenTroubleDetailActivity : KotlinBaseActivity() { + + private val context = this + private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + + override fun initEvent() { + + } + + override fun initOnCreate(savedInstanceState: Bundle?) { + val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM) as ArrayList + + binding.titleView.text = "${args[0]}隐患目录" + + val viewWidth = (getScreenWidth() shr 1) - 75.dp2px(context) + + hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java] + hiddenTroubleViewModel.getHiddenTroubleDetail(this, args[1]) + hiddenTroubleViewModel.troubleDetailResult.observe(this) { + if (it.code == 200) { + binding.troubleTypeView.text = "${it.data.mainClassName}/${it.data.subClassName}" + binding.troubleNameView.text = it.data.name + binding.troubleContentView.text = it.data.content + binding.basisView.text = it.data.basis + + val alarmImageList = it.data.alarmImageList + if (alarmImageList.isNotEmpty()) { + val images = ArrayList() + alarmImageList.forEach { imageModel -> + images.add(imageModel.imagePath.combineFilePath()) + } + val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3) + binding.troubleImageGridView.adapter = imageAdapter + binding.troubleImageGridView.onItemClickListener = + AdapterView.OnItemClickListener { _, _, index, _ -> + navigatePageTo(index, images) + } + } + + val normalImageList = it.data.normalImageList + if (normalImageList.isNotEmpty()) { + val images = ArrayList() + normalImageList.forEach { imageModel -> + images.add(imageModel.imagePath.combineFilePath()) + } + val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3) + binding.normalImageGridView.adapter = imageAdapter + binding.normalImageGridView.onItemClickListener = + AdapterView.OnItemClickListener { _, _, index, _ -> + navigatePageTo(index, images) + } + } + } + } + } + + override fun initViewBinding(): ActivityHiddenTroubleDetailBinding { + return ActivityHiddenTroubleDetailBinding.inflate(layoutInflater) + } + + override fun observeRequestState() { + hiddenTroubleViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + LoadState.Success -> { + LoadingDialogHub.dismiss() + } + + LoadState.Fail -> { + LoadingDialogHub.dismiss() + "数据加载失败,请重试".show(this) + } + } + } + } + + override fun setupTopBarLayout() { + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/hidden/ElectricBoxActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/hidden/ElectricBoxActivity.kt new file mode 100644 index 0000000..341c944 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/view/hidden/ElectricBoxActivity.kt @@ -0,0 +1,109 @@ +package com.casic.br.ar.app.view.hidden + +import android.os.Bundle +import android.os.Handler +import android.os.Message +import android.view.View +import androidx.lifecycle.ViewModelProvider +import com.casic.br.ar.app.R +import com.casic.br.ar.app.databinding.ActivityHiddenElectricBoxBinding +import com.casic.br.ar.app.model.HiddenTroubleModel +import com.casic.br.ar.app.view.HiddenTroubleDetailActivity +import com.casic.br.ar.app.vm.HiddenTroubleViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.LoadState +import com.pengxh.kt.lite.utils.LoadingDialogHub +import com.pengxh.kt.lite.utils.WeakReferenceHandler + +class ElectricBoxActivity : KotlinBaseActivity(), + Handler.Callback { + + private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + private lateinit var troubleAdapter: NormalRecyclerAdapter + private var dataBeans: MutableList = ArrayList() + private var page = 1 + + override fun initEvent() { + + } + + override fun initOnCreate(savedInstanceState: Bundle?) { + weakReferenceHandler = WeakReferenceHandler(this) + hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java] + getHiddenTroubleByScene() + hiddenTroubleViewModel.troublesResult.observe(this) { + if (it.code == 200) { + it.data?.rows?.apply { + dataBeans = this + weakReferenceHandler.sendEmptyMessage(2024052701) + } + } + } + } + + private fun getHiddenTroubleByScene() { + hiddenTroubleViewModel.getHiddenTroubleByScene(this, "配电箱", page) + } + + override fun handleMessage(msg: Message): Boolean { + when (msg.what) { + 2024052701 -> { + troubleAdapter = object : + NormalRecyclerAdapter( + R.layout.item_hidden_electric_box_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, + item: HiddenTroubleModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.indexView, "${position + 1}") + .setText(R.id.mainTypeView, item.mainClassName) + .setText(R.id.subTypeView, item.subClassName) + .setText(R.id.troubleNameView, item.name) + .setText(R.id.troubleContentView, item.content) + } + } + binding.recyclerView.adapter = troubleAdapter + troubleAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: HiddenTroubleModel.DataModel.RowsModel + ) { + navigatePageTo(arrayListOf("配电箱", t.id)) + } + }) + } + } + return true + } + + override fun initViewBinding(): ActivityHiddenElectricBoxBinding { + return ActivityHiddenElectricBoxBinding.inflate(layoutInflater) + } + + override fun observeRequestState() { + hiddenTroubleViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + LoadState.Success -> { + LoadingDialogHub.dismiss() + } + + LoadState.Fail -> { + LoadingDialogHub.dismiss() + "数据加载失败,请重试".show(this) + } + } + } + } + + override fun setupTopBarLayout() { + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/manifest/ElectricBoxActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/manifest/ElectricBoxActivity.kt new file mode 100644 index 0000000..9b40f15 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/view/manifest/ElectricBoxActivity.kt @@ -0,0 +1,4 @@ +package com.casic.br.ar.app.view.manifest + +class ElectricBoxActivity { +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/vm/HiddenTroubleViewModel.kt b/app/src/main/java/com/casic/br/ar/app/vm/HiddenTroubleViewModel.kt index c283c0e..d4d4ecf 100644 --- a/app/src/main/java/com/casic/br/ar/app/vm/HiddenTroubleViewModel.kt +++ b/app/src/main/java/com/casic/br/ar/app/vm/HiddenTroubleViewModel.kt @@ -4,6 +4,7 @@ import androidx.lifecycle.MutableLiveData import com.casic.br.ar.app.extensions.getResponseCode import com.casic.br.ar.app.extensions.getResponseMessage +import com.casic.br.ar.app.model.HiddenTroubleDetailModel import com.casic.br.ar.app.model.HiddenTroubleModel import com.casic.br.ar.app.retrofit.RetrofitServiceManager import com.google.gson.Gson @@ -17,10 +18,11 @@ private val gson by lazy { Gson() } val troublesResult = MutableLiveData() + val troubleDetailResult = MutableLiveData() - fun getHiddenTroubleMenuByPage(context: Context, keywords: String, offset: Int) = launch({ + fun getHiddenTroubleByScene(context: Context, keywords: String, offset: Int) = launch({ loadState.value = LoadState.Loading - val response = RetrofitServiceManager.getHiddenTroubleMenuByPage(keywords, offset) + val response = RetrofitServiceManager.getHiddenTroubleByScene(keywords, offset) when (response.getResponseCode()) { 200 -> { loadState.value = LoadState.Success @@ -38,4 +40,25 @@ loadState.value = LoadState.Fail it.localizedMessage?.show(context) }) + + fun getHiddenTroubleDetail(context: Context, id: String) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.getHiddenTroubleDetail(id) + when (response.getResponseCode()) { + 200 -> { + loadState.value = LoadState.Success + troubleDetailResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + + else -> { + loadState.value = LoadState.Fail + response.getResponseMessage().show(context) + } + } + }, { + loadState.value = LoadState.Fail + it.localizedMessage?.show(context) + }) } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_hidden_electric_box.xml b/app/src/main/res/layout/activity_hidden_electric_box.xml new file mode 100644 index 0000000..3a69ac1 --- /dev/null +++ b/app/src/main/res/layout/activity_hidden_electric_box.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f968fe0..ecf8037 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -81,6 +81,12 @@ android:name=".view.HiddenTroubleActivity" android:screenOrientation="landscape" /> + + , + private val viewWidth: Int, private val spanCount: Int +) : BaseAdapter() { + + override fun getItemId(position: Int): Long = position.toLong() + + override fun getCount(): Int = images.size + + override fun getItem(position: Int): Any = images[position] + + override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { + val view: View + val holder: ItemViewHolder + if (convertView == null) { + view = LayoutInflater.from(context).inflate(R.layout.item_readonly_gv, null) + holder = ItemViewHolder() + holder.imageView = view.findViewById(R.id.imageView) + view.tag = holder + } else { + view = convertView + holder = view.tag as ItemViewHolder + } + Glide.with(context) + .load(images[position]) + .apply(RequestOptions().error(R.mipmap.load_image_error)) + .into(holder.imageView) + + //动态设置图片高度,和图片宽度保持一致 + val margin = (view.marginStart + view.marginEnd) * spanCount + val imageSize = (viewWidth - margin) / spanCount + val params = LinearLayout.LayoutParams(imageSize, imageSize) + holder.imageView.layoutParams = params + return view + } + + private class ItemViewHolder { + lateinit var imageView: ImageView + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java new file mode 100644 index 0000000..030008f --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java @@ -0,0 +1,318 @@ +package com.casic.br.ar.app.model; + +import java.util.List; + +public class HiddenTroubleDetailModel { + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private String alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private String normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(String alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(String normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + + public static class AlarmImageListModel { + private String alarmMenuId; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String imagePath; + private String imageType; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmMenuId() { + return alarmMenuId; + } + + public void setAlarmMenuId(String alarmMenuId) { + this.alarmMenuId = alarmMenuId; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getImagePath() { + return imagePath; + } + + public void setImagePath(String imagePath) { + this.imagePath = imagePath; + } + + public String getImageType() { + return imageType; + } + + public void setImageType(String imageType) { + this.imageType = imageType; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } +} diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java index 53ea071..40047ac 100644 --- a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java @@ -1,4 +1,247 @@ package com.casic.br.ar.app.model; +import java.util.List; + public class HiddenTroubleModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsModel { + private int alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private int normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public int getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(int alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(int normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } } diff --git a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt index cf6a4b1..cd3b0a0 100644 --- a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt @@ -64,14 +64,23 @@ ): String /** - * 获取隐患目录列表 + * 根据场景获取获取隐患目录 */ - @POST("/meter/file/listPage") - suspend fun getHiddenTroubleMenuByPage( + @GET("/alarm-menu/listPage") + suspend fun getHiddenTroubleByScene( @Header("token") token: String, - @Body requestBody: RequestBody, - @QueryMap limit: Map, - @QueryMap offset: Map + @Query("keyword") keyword: String, + @Query("offset") offset: Int, + @Query("limit") limit: Int + ): String + + /** + * 获取隐患详情 + */ + @GET("/alarm-menu/detail") + suspend fun getHiddenTroubleDetail( + @Header("token") token: String, + @Query("id") id: String ): String /** diff --git a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt index cabd011..4ca4bdd 100644 --- a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt @@ -89,23 +89,19 @@ } /** - * 获取隐患目录列表 + * 根据场景获取获取隐患目录 */ - suspend fun getHiddenTroubleMenuByPage(keywords: String, offset: Int): String { - val param = JsonObject() - param.addProperty("keywords", keywords) - val requestBody = param.toString().toRequestBody( - "application/json;charset=UTF-8".toMediaType() + suspend fun getHiddenTroubleByScene(keywords: String, offset: Int): String { + return api.getHiddenTroubleByScene( + AuthenticationHelper.token, keywords, offset, LocaleConstant.PAGE_LIMIT ) + } - val limitMap = HashMap() - limitMap["limit"] = LocaleConstant.PAGE_LIMIT - - val offsetMap = HashMap() - offsetMap["offset"] = offset - return api.getHiddenTroubleMenuByPage( - AuthenticationHelper.token, requestBody, limitMap, offsetMap - ) + /** + * 获取隐患详情 + */ + suspend fun getHiddenTroubleDetail(id: String): String { + return api.getHiddenTroubleDetail(AuthenticationHelper.token, id) } /** diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt index 3bf93f1..43c418d 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt @@ -1,6 +1,5 @@ package com.casic.br.ar.app.view -import android.graphics.Color import android.os.Bundle import android.os.Handler import android.os.Message @@ -13,7 +12,6 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson @@ -73,7 +71,6 @@ } } binding.recyclerView.adapter = checkHistoryAdapter - binding.recyclerView.addItemDecoration(RecyclerViewItemDivider(1, Color.WHITE)) checkHistoryAdapter.setOnItemClickedListener(object : NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked( diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt index e7a6775..be23bf5 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt @@ -6,6 +6,7 @@ import android.widget.GridView import androidx.lifecycle.ViewModelProvider import com.casic.br.ar.app.R +import com.casic.br.ar.app.adapter.ImageGridAdapter import com.casic.br.ar.app.databinding.ActivityCheckHistoryDetailBinding import com.casic.br.ar.app.extensions.combineFilePath import com.casic.br.ar.app.model.CheckHistoryDetailModel @@ -14,11 +15,11 @@ import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter -import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.getScreenWidth import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant @@ -68,7 +69,9 @@ item.imageList.forEach { imageModel -> images.add(imageModel.alarmImage.combineFilePath()) } - val imageAdapter = ReadOnlyImageAdapter(context, images) + + val viewWidth = (getScreenWidth() shr 1) - 75.dp2px(context) + val imageAdapter = ImageGridAdapter(context, images, viewWidth, 2) gridView.adapter = imageAdapter gridView.onItemClickListener = AdapterView.OnItemClickListener { _, _, index, _ -> diff --git a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt index 70fa9ac..c46b050 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt @@ -5,6 +5,7 @@ import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityHiddenTroubleBinding import com.casic.br.ar.app.model.DictionaryModel +import com.casic.br.ar.app.view.hidden.ElectricBoxActivity import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -12,6 +13,7 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.utils.Constant class HiddenTroubleActivity : KotlinBaseActivity() { @@ -57,8 +59,8 @@ NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked(position: Int, t: DictionaryModel.DataModel) { when (t.name) { - //TODO 未完 -// "配电箱" -> navigatePageTo<>() + // TODO 未完 + "配电箱" -> navigatePageTo() // "调压站" -> navigatePageTo<>() // "非居民用户" -> navigatePageTo<>() // "建筑消防" -> navigatePageTo<>() diff --git a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleDetailActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleDetailActivity.kt new file mode 100644 index 0000000..b200743 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleDetailActivity.kt @@ -0,0 +1,100 @@ +package com.casic.br.ar.app.view + +import android.os.Bundle +import android.view.View +import android.widget.AdapterView +import androidx.lifecycle.ViewModelProvider +import com.casic.br.ar.app.adapter.ImageGridAdapter +import com.casic.br.ar.app.databinding.ActivityHiddenTroubleDetailBinding +import com.casic.br.ar.app.extensions.combineFilePath +import com.casic.br.ar.app.vm.HiddenTroubleViewModel +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.getScreenWidth +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LoadState +import com.pengxh.kt.lite.utils.LoadingDialogHub + +class HiddenTroubleDetailActivity : KotlinBaseActivity() { + + private val context = this + private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + + override fun initEvent() { + + } + + override fun initOnCreate(savedInstanceState: Bundle?) { + val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM) as ArrayList + + binding.titleView.text = "${args[0]}隐患目录" + + val viewWidth = (getScreenWidth() shr 1) - 75.dp2px(context) + + hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java] + hiddenTroubleViewModel.getHiddenTroubleDetail(this, args[1]) + hiddenTroubleViewModel.troubleDetailResult.observe(this) { + if (it.code == 200) { + binding.troubleTypeView.text = "${it.data.mainClassName}/${it.data.subClassName}" + binding.troubleNameView.text = it.data.name + binding.troubleContentView.text = it.data.content + binding.basisView.text = it.data.basis + + val alarmImageList = it.data.alarmImageList + if (alarmImageList.isNotEmpty()) { + val images = ArrayList() + alarmImageList.forEach { imageModel -> + images.add(imageModel.imagePath.combineFilePath()) + } + val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3) + binding.troubleImageGridView.adapter = imageAdapter + binding.troubleImageGridView.onItemClickListener = + AdapterView.OnItemClickListener { _, _, index, _ -> + navigatePageTo(index, images) + } + } + + val normalImageList = it.data.normalImageList + if (normalImageList.isNotEmpty()) { + val images = ArrayList() + normalImageList.forEach { imageModel -> + images.add(imageModel.imagePath.combineFilePath()) + } + val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3) + binding.normalImageGridView.adapter = imageAdapter + binding.normalImageGridView.onItemClickListener = + AdapterView.OnItemClickListener { _, _, index, _ -> + navigatePageTo(index, images) + } + } + } + } + } + + override fun initViewBinding(): ActivityHiddenTroubleDetailBinding { + return ActivityHiddenTroubleDetailBinding.inflate(layoutInflater) + } + + override fun observeRequestState() { + hiddenTroubleViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + LoadState.Success -> { + LoadingDialogHub.dismiss() + } + + LoadState.Fail -> { + LoadingDialogHub.dismiss() + "数据加载失败,请重试".show(this) + } + } + } + } + + override fun setupTopBarLayout() { + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/hidden/ElectricBoxActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/hidden/ElectricBoxActivity.kt new file mode 100644 index 0000000..341c944 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/view/hidden/ElectricBoxActivity.kt @@ -0,0 +1,109 @@ +package com.casic.br.ar.app.view.hidden + +import android.os.Bundle +import android.os.Handler +import android.os.Message +import android.view.View +import androidx.lifecycle.ViewModelProvider +import com.casic.br.ar.app.R +import com.casic.br.ar.app.databinding.ActivityHiddenElectricBoxBinding +import com.casic.br.ar.app.model.HiddenTroubleModel +import com.casic.br.ar.app.view.HiddenTroubleDetailActivity +import com.casic.br.ar.app.vm.HiddenTroubleViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.LoadState +import com.pengxh.kt.lite.utils.LoadingDialogHub +import com.pengxh.kt.lite.utils.WeakReferenceHandler + +class ElectricBoxActivity : KotlinBaseActivity(), + Handler.Callback { + + private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + private lateinit var troubleAdapter: NormalRecyclerAdapter + private var dataBeans: MutableList = ArrayList() + private var page = 1 + + override fun initEvent() { + + } + + override fun initOnCreate(savedInstanceState: Bundle?) { + weakReferenceHandler = WeakReferenceHandler(this) + hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java] + getHiddenTroubleByScene() + hiddenTroubleViewModel.troublesResult.observe(this) { + if (it.code == 200) { + it.data?.rows?.apply { + dataBeans = this + weakReferenceHandler.sendEmptyMessage(2024052701) + } + } + } + } + + private fun getHiddenTroubleByScene() { + hiddenTroubleViewModel.getHiddenTroubleByScene(this, "配电箱", page) + } + + override fun handleMessage(msg: Message): Boolean { + when (msg.what) { + 2024052701 -> { + troubleAdapter = object : + NormalRecyclerAdapter( + R.layout.item_hidden_electric_box_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, + item: HiddenTroubleModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.indexView, "${position + 1}") + .setText(R.id.mainTypeView, item.mainClassName) + .setText(R.id.subTypeView, item.subClassName) + .setText(R.id.troubleNameView, item.name) + .setText(R.id.troubleContentView, item.content) + } + } + binding.recyclerView.adapter = troubleAdapter + troubleAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: HiddenTroubleModel.DataModel.RowsModel + ) { + navigatePageTo(arrayListOf("配电箱", t.id)) + } + }) + } + } + return true + } + + override fun initViewBinding(): ActivityHiddenElectricBoxBinding { + return ActivityHiddenElectricBoxBinding.inflate(layoutInflater) + } + + override fun observeRequestState() { + hiddenTroubleViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + LoadState.Success -> { + LoadingDialogHub.dismiss() + } + + LoadState.Fail -> { + LoadingDialogHub.dismiss() + "数据加载失败,请重试".show(this) + } + } + } + } + + override fun setupTopBarLayout() { + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/manifest/ElectricBoxActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/manifest/ElectricBoxActivity.kt new file mode 100644 index 0000000..9b40f15 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/view/manifest/ElectricBoxActivity.kt @@ -0,0 +1,4 @@ +package com.casic.br.ar.app.view.manifest + +class ElectricBoxActivity { +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/vm/HiddenTroubleViewModel.kt b/app/src/main/java/com/casic/br/ar/app/vm/HiddenTroubleViewModel.kt index c283c0e..d4d4ecf 100644 --- a/app/src/main/java/com/casic/br/ar/app/vm/HiddenTroubleViewModel.kt +++ b/app/src/main/java/com/casic/br/ar/app/vm/HiddenTroubleViewModel.kt @@ -4,6 +4,7 @@ import androidx.lifecycle.MutableLiveData import com.casic.br.ar.app.extensions.getResponseCode import com.casic.br.ar.app.extensions.getResponseMessage +import com.casic.br.ar.app.model.HiddenTroubleDetailModel import com.casic.br.ar.app.model.HiddenTroubleModel import com.casic.br.ar.app.retrofit.RetrofitServiceManager import com.google.gson.Gson @@ -17,10 +18,11 @@ private val gson by lazy { Gson() } val troublesResult = MutableLiveData() + val troubleDetailResult = MutableLiveData() - fun getHiddenTroubleMenuByPage(context: Context, keywords: String, offset: Int) = launch({ + fun getHiddenTroubleByScene(context: Context, keywords: String, offset: Int) = launch({ loadState.value = LoadState.Loading - val response = RetrofitServiceManager.getHiddenTroubleMenuByPage(keywords, offset) + val response = RetrofitServiceManager.getHiddenTroubleByScene(keywords, offset) when (response.getResponseCode()) { 200 -> { loadState.value = LoadState.Success @@ -38,4 +40,25 @@ loadState.value = LoadState.Fail it.localizedMessage?.show(context) }) + + fun getHiddenTroubleDetail(context: Context, id: String) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.getHiddenTroubleDetail(id) + when (response.getResponseCode()) { + 200 -> { + loadState.value = LoadState.Success + troubleDetailResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + + else -> { + loadState.value = LoadState.Fail + response.getResponseMessage().show(context) + } + } + }, { + loadState.value = LoadState.Fail + it.localizedMessage?.show(context) + }) } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_hidden_electric_box.xml b/app/src/main/res/layout/activity_hidden_electric_box.xml new file mode 100644 index 0000000..3a69ac1 --- /dev/null +++ b/app/src/main/res/layout/activity_hidden_electric_box.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_hidden_trouble_detail.xml b/app/src/main/res/layout/activity_hidden_trouble_detail.xml new file mode 100644 index 0000000..af30ed7 --- /dev/null +++ b/app/src/main/res/layout/activity_hidden_trouble_detail.xml @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f968fe0..ecf8037 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -81,6 +81,12 @@ android:name=".view.HiddenTroubleActivity" android:screenOrientation="landscape" /> + + , + private val viewWidth: Int, private val spanCount: Int +) : BaseAdapter() { + + override fun getItemId(position: Int): Long = position.toLong() + + override fun getCount(): Int = images.size + + override fun getItem(position: Int): Any = images[position] + + override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { + val view: View + val holder: ItemViewHolder + if (convertView == null) { + view = LayoutInflater.from(context).inflate(R.layout.item_readonly_gv, null) + holder = ItemViewHolder() + holder.imageView = view.findViewById(R.id.imageView) + view.tag = holder + } else { + view = convertView + holder = view.tag as ItemViewHolder + } + Glide.with(context) + .load(images[position]) + .apply(RequestOptions().error(R.mipmap.load_image_error)) + .into(holder.imageView) + + //动态设置图片高度,和图片宽度保持一致 + val margin = (view.marginStart + view.marginEnd) * spanCount + val imageSize = (viewWidth - margin) / spanCount + val params = LinearLayout.LayoutParams(imageSize, imageSize) + holder.imageView.layoutParams = params + return view + } + + private class ItemViewHolder { + lateinit var imageView: ImageView + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java new file mode 100644 index 0000000..030008f --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java @@ -0,0 +1,318 @@ +package com.casic.br.ar.app.model; + +import java.util.List; + +public class HiddenTroubleDetailModel { + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private String alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private String normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(String alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(String normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + + public static class AlarmImageListModel { + private String alarmMenuId; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String imagePath; + private String imageType; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmMenuId() { + return alarmMenuId; + } + + public void setAlarmMenuId(String alarmMenuId) { + this.alarmMenuId = alarmMenuId; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getImagePath() { + return imagePath; + } + + public void setImagePath(String imagePath) { + this.imagePath = imagePath; + } + + public String getImageType() { + return imageType; + } + + public void setImageType(String imageType) { + this.imageType = imageType; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } +} diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java index 53ea071..40047ac 100644 --- a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java @@ -1,4 +1,247 @@ package com.casic.br.ar.app.model; +import java.util.List; + public class HiddenTroubleModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsModel { + private int alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private int normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public int getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(int alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(int normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } } diff --git a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt index cf6a4b1..cd3b0a0 100644 --- a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt @@ -64,14 +64,23 @@ ): String /** - * 获取隐患目录列表 + * 根据场景获取获取隐患目录 */ - @POST("/meter/file/listPage") - suspend fun getHiddenTroubleMenuByPage( + @GET("/alarm-menu/listPage") + suspend fun getHiddenTroubleByScene( @Header("token") token: String, - @Body requestBody: RequestBody, - @QueryMap limit: Map, - @QueryMap offset: Map + @Query("keyword") keyword: String, + @Query("offset") offset: Int, + @Query("limit") limit: Int + ): String + + /** + * 获取隐患详情 + */ + @GET("/alarm-menu/detail") + suspend fun getHiddenTroubleDetail( + @Header("token") token: String, + @Query("id") id: String ): String /** diff --git a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt index cabd011..4ca4bdd 100644 --- a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt @@ -89,23 +89,19 @@ } /** - * 获取隐患目录列表 + * 根据场景获取获取隐患目录 */ - suspend fun getHiddenTroubleMenuByPage(keywords: String, offset: Int): String { - val param = JsonObject() - param.addProperty("keywords", keywords) - val requestBody = param.toString().toRequestBody( - "application/json;charset=UTF-8".toMediaType() + suspend fun getHiddenTroubleByScene(keywords: String, offset: Int): String { + return api.getHiddenTroubleByScene( + AuthenticationHelper.token, keywords, offset, LocaleConstant.PAGE_LIMIT ) + } - val limitMap = HashMap() - limitMap["limit"] = LocaleConstant.PAGE_LIMIT - - val offsetMap = HashMap() - offsetMap["offset"] = offset - return api.getHiddenTroubleMenuByPage( - AuthenticationHelper.token, requestBody, limitMap, offsetMap - ) + /** + * 获取隐患详情 + */ + suspend fun getHiddenTroubleDetail(id: String): String { + return api.getHiddenTroubleDetail(AuthenticationHelper.token, id) } /** diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt index 3bf93f1..43c418d 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt @@ -1,6 +1,5 @@ package com.casic.br.ar.app.view -import android.graphics.Color import android.os.Bundle import android.os.Handler import android.os.Message @@ -13,7 +12,6 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson @@ -73,7 +71,6 @@ } } binding.recyclerView.adapter = checkHistoryAdapter - binding.recyclerView.addItemDecoration(RecyclerViewItemDivider(1, Color.WHITE)) checkHistoryAdapter.setOnItemClickedListener(object : NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked( diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt index e7a6775..be23bf5 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt @@ -6,6 +6,7 @@ import android.widget.GridView import androidx.lifecycle.ViewModelProvider import com.casic.br.ar.app.R +import com.casic.br.ar.app.adapter.ImageGridAdapter import com.casic.br.ar.app.databinding.ActivityCheckHistoryDetailBinding import com.casic.br.ar.app.extensions.combineFilePath import com.casic.br.ar.app.model.CheckHistoryDetailModel @@ -14,11 +15,11 @@ import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter -import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.getScreenWidth import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant @@ -68,7 +69,9 @@ item.imageList.forEach { imageModel -> images.add(imageModel.alarmImage.combineFilePath()) } - val imageAdapter = ReadOnlyImageAdapter(context, images) + + val viewWidth = (getScreenWidth() shr 1) - 75.dp2px(context) + val imageAdapter = ImageGridAdapter(context, images, viewWidth, 2) gridView.adapter = imageAdapter gridView.onItemClickListener = AdapterView.OnItemClickListener { _, _, index, _ -> diff --git a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt index 70fa9ac..c46b050 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt @@ -5,6 +5,7 @@ import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityHiddenTroubleBinding import com.casic.br.ar.app.model.DictionaryModel +import com.casic.br.ar.app.view.hidden.ElectricBoxActivity import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -12,6 +13,7 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.utils.Constant class HiddenTroubleActivity : KotlinBaseActivity() { @@ -57,8 +59,8 @@ NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked(position: Int, t: DictionaryModel.DataModel) { when (t.name) { - //TODO 未完 -// "配电箱" -> navigatePageTo<>() + // TODO 未完 + "配电箱" -> navigatePageTo() // "调压站" -> navigatePageTo<>() // "非居民用户" -> navigatePageTo<>() // "建筑消防" -> navigatePageTo<>() diff --git a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleDetailActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleDetailActivity.kt new file mode 100644 index 0000000..b200743 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleDetailActivity.kt @@ -0,0 +1,100 @@ +package com.casic.br.ar.app.view + +import android.os.Bundle +import android.view.View +import android.widget.AdapterView +import androidx.lifecycle.ViewModelProvider +import com.casic.br.ar.app.adapter.ImageGridAdapter +import com.casic.br.ar.app.databinding.ActivityHiddenTroubleDetailBinding +import com.casic.br.ar.app.extensions.combineFilePath +import com.casic.br.ar.app.vm.HiddenTroubleViewModel +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.getScreenWidth +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LoadState +import com.pengxh.kt.lite.utils.LoadingDialogHub + +class HiddenTroubleDetailActivity : KotlinBaseActivity() { + + private val context = this + private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + + override fun initEvent() { + + } + + override fun initOnCreate(savedInstanceState: Bundle?) { + val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM) as ArrayList + + binding.titleView.text = "${args[0]}隐患目录" + + val viewWidth = (getScreenWidth() shr 1) - 75.dp2px(context) + + hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java] + hiddenTroubleViewModel.getHiddenTroubleDetail(this, args[1]) + hiddenTroubleViewModel.troubleDetailResult.observe(this) { + if (it.code == 200) { + binding.troubleTypeView.text = "${it.data.mainClassName}/${it.data.subClassName}" + binding.troubleNameView.text = it.data.name + binding.troubleContentView.text = it.data.content + binding.basisView.text = it.data.basis + + val alarmImageList = it.data.alarmImageList + if (alarmImageList.isNotEmpty()) { + val images = ArrayList() + alarmImageList.forEach { imageModel -> + images.add(imageModel.imagePath.combineFilePath()) + } + val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3) + binding.troubleImageGridView.adapter = imageAdapter + binding.troubleImageGridView.onItemClickListener = + AdapterView.OnItemClickListener { _, _, index, _ -> + navigatePageTo(index, images) + } + } + + val normalImageList = it.data.normalImageList + if (normalImageList.isNotEmpty()) { + val images = ArrayList() + normalImageList.forEach { imageModel -> + images.add(imageModel.imagePath.combineFilePath()) + } + val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3) + binding.normalImageGridView.adapter = imageAdapter + binding.normalImageGridView.onItemClickListener = + AdapterView.OnItemClickListener { _, _, index, _ -> + navigatePageTo(index, images) + } + } + } + } + } + + override fun initViewBinding(): ActivityHiddenTroubleDetailBinding { + return ActivityHiddenTroubleDetailBinding.inflate(layoutInflater) + } + + override fun observeRequestState() { + hiddenTroubleViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + LoadState.Success -> { + LoadingDialogHub.dismiss() + } + + LoadState.Fail -> { + LoadingDialogHub.dismiss() + "数据加载失败,请重试".show(this) + } + } + } + } + + override fun setupTopBarLayout() { + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/hidden/ElectricBoxActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/hidden/ElectricBoxActivity.kt new file mode 100644 index 0000000..341c944 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/view/hidden/ElectricBoxActivity.kt @@ -0,0 +1,109 @@ +package com.casic.br.ar.app.view.hidden + +import android.os.Bundle +import android.os.Handler +import android.os.Message +import android.view.View +import androidx.lifecycle.ViewModelProvider +import com.casic.br.ar.app.R +import com.casic.br.ar.app.databinding.ActivityHiddenElectricBoxBinding +import com.casic.br.ar.app.model.HiddenTroubleModel +import com.casic.br.ar.app.view.HiddenTroubleDetailActivity +import com.casic.br.ar.app.vm.HiddenTroubleViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.LoadState +import com.pengxh.kt.lite.utils.LoadingDialogHub +import com.pengxh.kt.lite.utils.WeakReferenceHandler + +class ElectricBoxActivity : KotlinBaseActivity(), + Handler.Callback { + + private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + private lateinit var troubleAdapter: NormalRecyclerAdapter + private var dataBeans: MutableList = ArrayList() + private var page = 1 + + override fun initEvent() { + + } + + override fun initOnCreate(savedInstanceState: Bundle?) { + weakReferenceHandler = WeakReferenceHandler(this) + hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java] + getHiddenTroubleByScene() + hiddenTroubleViewModel.troublesResult.observe(this) { + if (it.code == 200) { + it.data?.rows?.apply { + dataBeans = this + weakReferenceHandler.sendEmptyMessage(2024052701) + } + } + } + } + + private fun getHiddenTroubleByScene() { + hiddenTroubleViewModel.getHiddenTroubleByScene(this, "配电箱", page) + } + + override fun handleMessage(msg: Message): Boolean { + when (msg.what) { + 2024052701 -> { + troubleAdapter = object : + NormalRecyclerAdapter( + R.layout.item_hidden_electric_box_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, + item: HiddenTroubleModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.indexView, "${position + 1}") + .setText(R.id.mainTypeView, item.mainClassName) + .setText(R.id.subTypeView, item.subClassName) + .setText(R.id.troubleNameView, item.name) + .setText(R.id.troubleContentView, item.content) + } + } + binding.recyclerView.adapter = troubleAdapter + troubleAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: HiddenTroubleModel.DataModel.RowsModel + ) { + navigatePageTo(arrayListOf("配电箱", t.id)) + } + }) + } + } + return true + } + + override fun initViewBinding(): ActivityHiddenElectricBoxBinding { + return ActivityHiddenElectricBoxBinding.inflate(layoutInflater) + } + + override fun observeRequestState() { + hiddenTroubleViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + LoadState.Success -> { + LoadingDialogHub.dismiss() + } + + LoadState.Fail -> { + LoadingDialogHub.dismiss() + "数据加载失败,请重试".show(this) + } + } + } + } + + override fun setupTopBarLayout() { + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/manifest/ElectricBoxActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/manifest/ElectricBoxActivity.kt new file mode 100644 index 0000000..9b40f15 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/view/manifest/ElectricBoxActivity.kt @@ -0,0 +1,4 @@ +package com.casic.br.ar.app.view.manifest + +class ElectricBoxActivity { +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/vm/HiddenTroubleViewModel.kt b/app/src/main/java/com/casic/br/ar/app/vm/HiddenTroubleViewModel.kt index c283c0e..d4d4ecf 100644 --- a/app/src/main/java/com/casic/br/ar/app/vm/HiddenTroubleViewModel.kt +++ b/app/src/main/java/com/casic/br/ar/app/vm/HiddenTroubleViewModel.kt @@ -4,6 +4,7 @@ import androidx.lifecycle.MutableLiveData import com.casic.br.ar.app.extensions.getResponseCode import com.casic.br.ar.app.extensions.getResponseMessage +import com.casic.br.ar.app.model.HiddenTroubleDetailModel import com.casic.br.ar.app.model.HiddenTroubleModel import com.casic.br.ar.app.retrofit.RetrofitServiceManager import com.google.gson.Gson @@ -17,10 +18,11 @@ private val gson by lazy { Gson() } val troublesResult = MutableLiveData() + val troubleDetailResult = MutableLiveData() - fun getHiddenTroubleMenuByPage(context: Context, keywords: String, offset: Int) = launch({ + fun getHiddenTroubleByScene(context: Context, keywords: String, offset: Int) = launch({ loadState.value = LoadState.Loading - val response = RetrofitServiceManager.getHiddenTroubleMenuByPage(keywords, offset) + val response = RetrofitServiceManager.getHiddenTroubleByScene(keywords, offset) when (response.getResponseCode()) { 200 -> { loadState.value = LoadState.Success @@ -38,4 +40,25 @@ loadState.value = LoadState.Fail it.localizedMessage?.show(context) }) + + fun getHiddenTroubleDetail(context: Context, id: String) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.getHiddenTroubleDetail(id) + when (response.getResponseCode()) { + 200 -> { + loadState.value = LoadState.Success + troubleDetailResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + + else -> { + loadState.value = LoadState.Fail + response.getResponseMessage().show(context) + } + } + }, { + loadState.value = LoadState.Fail + it.localizedMessage?.show(context) + }) } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_hidden_electric_box.xml b/app/src/main/res/layout/activity_hidden_electric_box.xml new file mode 100644 index 0000000..3a69ac1 --- /dev/null +++ b/app/src/main/res/layout/activity_hidden_electric_box.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_hidden_trouble_detail.xml b/app/src/main/res/layout/activity_hidden_trouble_detail.xml new file mode 100644 index 0000000..af30ed7 --- /dev/null +++ b/app/src/main/res/layout/activity_hidden_trouble_detail.xml @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_check_history_detail_g.xml b/app/src/main/res/layout/item_check_history_detail_g.xml index 2999c72..9915edf 100644 --- a/app/src/main/res/layout/item_check_history_detail_g.xml +++ b/app/src/main/res/layout/item_check_history_detail_g.xml @@ -79,13 +79,13 @@ @@ -95,8 +95,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="@dimen/dp_10" - android:horizontalSpacing="@dimen/dp_3" + android:horizontalSpacing="@dimen/dp_5" android:numColumns="2" - android:verticalSpacing="@dimen/dp_3" /> + android:verticalSpacing="@dimen/dp_5" /> \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f968fe0..ecf8037 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -81,6 +81,12 @@ android:name=".view.HiddenTroubleActivity" android:screenOrientation="landscape" /> + + , + private val viewWidth: Int, private val spanCount: Int +) : BaseAdapter() { + + override fun getItemId(position: Int): Long = position.toLong() + + override fun getCount(): Int = images.size + + override fun getItem(position: Int): Any = images[position] + + override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { + val view: View + val holder: ItemViewHolder + if (convertView == null) { + view = LayoutInflater.from(context).inflate(R.layout.item_readonly_gv, null) + holder = ItemViewHolder() + holder.imageView = view.findViewById(R.id.imageView) + view.tag = holder + } else { + view = convertView + holder = view.tag as ItemViewHolder + } + Glide.with(context) + .load(images[position]) + .apply(RequestOptions().error(R.mipmap.load_image_error)) + .into(holder.imageView) + + //动态设置图片高度,和图片宽度保持一致 + val margin = (view.marginStart + view.marginEnd) * spanCount + val imageSize = (viewWidth - margin) / spanCount + val params = LinearLayout.LayoutParams(imageSize, imageSize) + holder.imageView.layoutParams = params + return view + } + + private class ItemViewHolder { + lateinit var imageView: ImageView + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java new file mode 100644 index 0000000..030008f --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleDetailModel.java @@ -0,0 +1,318 @@ +package com.casic.br.ar.app.model; + +import java.util.List; + +public class HiddenTroubleDetailModel { + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private String alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private String normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(String alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(String normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + + public static class AlarmImageListModel { + private String alarmMenuId; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String imagePath; + private String imageType; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public String getAlarmMenuId() { + return alarmMenuId; + } + + public void setAlarmMenuId(String alarmMenuId) { + this.alarmMenuId = alarmMenuId; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getImagePath() { + return imagePath; + } + + public void setImagePath(String imagePath) { + this.imagePath = imagePath; + } + + public String getImageType() { + return imageType; + } + + public void setImageType(String imageType) { + this.imageType = imageType; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } +} diff --git a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java index 53ea071..40047ac 100644 --- a/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java +++ b/app/src/main/java/com/casic/br/ar/app/model/HiddenTroubleModel.java @@ -1,4 +1,247 @@ package com.casic.br.ar.app.model; +import java.util.List; + public class HiddenTroubleModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel 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 DataModel { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsModel { + private int alarmImageCount; + private List alarmImageList; + private String basis; + private String content; + private String createTime; + private String createUserId; + private String createUserName; + private String id; + private String mainClass; + private String mainClassName; + private String name; + private int normalImageCount; + private List normalImageList; + private String scene; + private String sceneName; + private String subClass; + private String subClassName; + private String updateTime; + private String updateUserId; + private String updateUserName; + + public int getAlarmImageCount() { + return alarmImageCount; + } + + public void setAlarmImageCount(int alarmImageCount) { + this.alarmImageCount = alarmImageCount; + } + + public List getAlarmImageList() { + return alarmImageList; + } + + public void setAlarmImageList(List alarmImageList) { + this.alarmImageList = alarmImageList; + } + + public String getBasis() { + return basis; + } + + public void setBasis(String basis) { + this.basis = basis; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMainClass() { + return mainClass; + } + + public void setMainClass(String mainClass) { + this.mainClass = mainClass; + } + + public String getMainClassName() { + return mainClassName; + } + + public void setMainClassName(String mainClassName) { + this.mainClassName = mainClassName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getNormalImageCount() { + return normalImageCount; + } + + public void setNormalImageCount(int normalImageCount) { + this.normalImageCount = normalImageCount; + } + + public List getNormalImageList() { + return normalImageList; + } + + public void setNormalImageList(List normalImageList) { + this.normalImageList = normalImageList; + } + + public String getScene() { + return scene; + } + + public void setScene(String scene) { + this.scene = scene; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSubClass() { + return subClass; + } + + public void setSubClass(String subClass) { + this.subClass = subClass; + } + + public String getSubClassName() { + return subClassName; + } + + public void setSubClassName(String subClassName) { + this.subClassName = subClassName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getUpdateUserName() { + return updateUserName; + } + + public void setUpdateUserName(String updateUserName) { + this.updateUserName = updateUserName; + } + } + } } diff --git a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt index cf6a4b1..cd3b0a0 100644 --- a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitService.kt @@ -64,14 +64,23 @@ ): String /** - * 获取隐患目录列表 + * 根据场景获取获取隐患目录 */ - @POST("/meter/file/listPage") - suspend fun getHiddenTroubleMenuByPage( + @GET("/alarm-menu/listPage") + suspend fun getHiddenTroubleByScene( @Header("token") token: String, - @Body requestBody: RequestBody, - @QueryMap limit: Map, - @QueryMap offset: Map + @Query("keyword") keyword: String, + @Query("offset") offset: Int, + @Query("limit") limit: Int + ): String + + /** + * 获取隐患详情 + */ + @GET("/alarm-menu/detail") + suspend fun getHiddenTroubleDetail( + @Header("token") token: String, + @Query("id") id: String ): String /** diff --git a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt index cabd011..4ca4bdd 100644 --- a/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/ar/app/retrofit/RetrofitServiceManager.kt @@ -89,23 +89,19 @@ } /** - * 获取隐患目录列表 + * 根据场景获取获取隐患目录 */ - suspend fun getHiddenTroubleMenuByPage(keywords: String, offset: Int): String { - val param = JsonObject() - param.addProperty("keywords", keywords) - val requestBody = param.toString().toRequestBody( - "application/json;charset=UTF-8".toMediaType() + suspend fun getHiddenTroubleByScene(keywords: String, offset: Int): String { + return api.getHiddenTroubleByScene( + AuthenticationHelper.token, keywords, offset, LocaleConstant.PAGE_LIMIT ) + } - val limitMap = HashMap() - limitMap["limit"] = LocaleConstant.PAGE_LIMIT - - val offsetMap = HashMap() - offsetMap["offset"] = offset - return api.getHiddenTroubleMenuByPage( - AuthenticationHelper.token, requestBody, limitMap, offsetMap - ) + /** + * 获取隐患详情 + */ + suspend fun getHiddenTroubleDetail(id: String): String { + return api.getHiddenTroubleDetail(AuthenticationHelper.token, id) } /** diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt index 3bf93f1..43c418d 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryActivity.kt @@ -1,6 +1,5 @@ package com.casic.br.ar.app.view -import android.graphics.Color import android.os.Bundle import android.os.Handler import android.os.Message @@ -13,7 +12,6 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson @@ -73,7 +71,6 @@ } } binding.recyclerView.adapter = checkHistoryAdapter - binding.recyclerView.addItemDecoration(RecyclerViewItemDivider(1, Color.WHITE)) checkHistoryAdapter.setOnItemClickedListener(object : NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked( diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt index e7a6775..be23bf5 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckHistoryDetailActivity.kt @@ -6,6 +6,7 @@ import android.widget.GridView import androidx.lifecycle.ViewModelProvider import com.casic.br.ar.app.R +import com.casic.br.ar.app.adapter.ImageGridAdapter import com.casic.br.ar.app.databinding.ActivityCheckHistoryDetailBinding import com.casic.br.ar.app.extensions.combineFilePath import com.casic.br.ar.app.model.CheckHistoryDetailModel @@ -14,11 +15,11 @@ import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter -import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.getScreenWidth import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant @@ -68,7 +69,9 @@ item.imageList.forEach { imageModel -> images.add(imageModel.alarmImage.combineFilePath()) } - val imageAdapter = ReadOnlyImageAdapter(context, images) + + val viewWidth = (getScreenWidth() shr 1) - 75.dp2px(context) + val imageAdapter = ImageGridAdapter(context, images, viewWidth, 2) gridView.adapter = imageAdapter gridView.onItemClickListener = AdapterView.OnItemClickListener { _, _, index, _ -> diff --git a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt index 70fa9ac..c46b050 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleActivity.kt @@ -5,6 +5,7 @@ import com.casic.br.ar.app.R import com.casic.br.ar.app.databinding.ActivityHiddenTroubleBinding import com.casic.br.ar.app.model.DictionaryModel +import com.casic.br.ar.app.view.hidden.ElectricBoxActivity import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -12,6 +13,7 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.utils.Constant class HiddenTroubleActivity : KotlinBaseActivity() { @@ -57,8 +59,8 @@ NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked(position: Int, t: DictionaryModel.DataModel) { when (t.name) { - //TODO 未完 -// "配电箱" -> navigatePageTo<>() + // TODO 未完 + "配电箱" -> navigatePageTo() // "调压站" -> navigatePageTo<>() // "非居民用户" -> navigatePageTo<>() // "建筑消防" -> navigatePageTo<>() diff --git a/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleDetailActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleDetailActivity.kt new file mode 100644 index 0000000..b200743 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/view/HiddenTroubleDetailActivity.kt @@ -0,0 +1,100 @@ +package com.casic.br.ar.app.view + +import android.os.Bundle +import android.view.View +import android.widget.AdapterView +import androidx.lifecycle.ViewModelProvider +import com.casic.br.ar.app.adapter.ImageGridAdapter +import com.casic.br.ar.app.databinding.ActivityHiddenTroubleDetailBinding +import com.casic.br.ar.app.extensions.combineFilePath +import com.casic.br.ar.app.vm.HiddenTroubleViewModel +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.getScreenWidth +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LoadState +import com.pengxh.kt.lite.utils.LoadingDialogHub + +class HiddenTroubleDetailActivity : KotlinBaseActivity() { + + private val context = this + private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + + override fun initEvent() { + + } + + override fun initOnCreate(savedInstanceState: Bundle?) { + val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM) as ArrayList + + binding.titleView.text = "${args[0]}隐患目录" + + val viewWidth = (getScreenWidth() shr 1) - 75.dp2px(context) + + hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java] + hiddenTroubleViewModel.getHiddenTroubleDetail(this, args[1]) + hiddenTroubleViewModel.troubleDetailResult.observe(this) { + if (it.code == 200) { + binding.troubleTypeView.text = "${it.data.mainClassName}/${it.data.subClassName}" + binding.troubleNameView.text = it.data.name + binding.troubleContentView.text = it.data.content + binding.basisView.text = it.data.basis + + val alarmImageList = it.data.alarmImageList + if (alarmImageList.isNotEmpty()) { + val images = ArrayList() + alarmImageList.forEach { imageModel -> + images.add(imageModel.imagePath.combineFilePath()) + } + val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3) + binding.troubleImageGridView.adapter = imageAdapter + binding.troubleImageGridView.onItemClickListener = + AdapterView.OnItemClickListener { _, _, index, _ -> + navigatePageTo(index, images) + } + } + + val normalImageList = it.data.normalImageList + if (normalImageList.isNotEmpty()) { + val images = ArrayList() + normalImageList.forEach { imageModel -> + images.add(imageModel.imagePath.combineFilePath()) + } + val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3) + binding.normalImageGridView.adapter = imageAdapter + binding.normalImageGridView.onItemClickListener = + AdapterView.OnItemClickListener { _, _, index, _ -> + navigatePageTo(index, images) + } + } + } + } + } + + override fun initViewBinding(): ActivityHiddenTroubleDetailBinding { + return ActivityHiddenTroubleDetailBinding.inflate(layoutInflater) + } + + override fun observeRequestState() { + hiddenTroubleViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + LoadState.Success -> { + LoadingDialogHub.dismiss() + } + + LoadState.Fail -> { + LoadingDialogHub.dismiss() + "数据加载失败,请重试".show(this) + } + } + } + } + + override fun setupTopBarLayout() { + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/hidden/ElectricBoxActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/hidden/ElectricBoxActivity.kt new file mode 100644 index 0000000..341c944 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/view/hidden/ElectricBoxActivity.kt @@ -0,0 +1,109 @@ +package com.casic.br.ar.app.view.hidden + +import android.os.Bundle +import android.os.Handler +import android.os.Message +import android.view.View +import androidx.lifecycle.ViewModelProvider +import com.casic.br.ar.app.R +import com.casic.br.ar.app.databinding.ActivityHiddenElectricBoxBinding +import com.casic.br.ar.app.model.HiddenTroubleModel +import com.casic.br.ar.app.view.HiddenTroubleDetailActivity +import com.casic.br.ar.app.vm.HiddenTroubleViewModel +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.LoadState +import com.pengxh.kt.lite.utils.LoadingDialogHub +import com.pengxh.kt.lite.utils.WeakReferenceHandler + +class ElectricBoxActivity : KotlinBaseActivity(), + Handler.Callback { + + private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + private lateinit var troubleAdapter: NormalRecyclerAdapter + private var dataBeans: MutableList = ArrayList() + private var page = 1 + + override fun initEvent() { + + } + + override fun initOnCreate(savedInstanceState: Bundle?) { + weakReferenceHandler = WeakReferenceHandler(this) + hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java] + getHiddenTroubleByScene() + hiddenTroubleViewModel.troublesResult.observe(this) { + if (it.code == 200) { + it.data?.rows?.apply { + dataBeans = this + weakReferenceHandler.sendEmptyMessage(2024052701) + } + } + } + } + + private fun getHiddenTroubleByScene() { + hiddenTroubleViewModel.getHiddenTroubleByScene(this, "配电箱", page) + } + + override fun handleMessage(msg: Message): Boolean { + when (msg.what) { + 2024052701 -> { + troubleAdapter = object : + NormalRecyclerAdapter( + R.layout.item_hidden_electric_box_l, dataBeans + ) { + override fun convertView( + viewHolder: ViewHolder, position: Int, + item: HiddenTroubleModel.DataModel.RowsModel + ) { + viewHolder.setText(R.id.indexView, "${position + 1}") + .setText(R.id.mainTypeView, item.mainClassName) + .setText(R.id.subTypeView, item.subClassName) + .setText(R.id.troubleNameView, item.name) + .setText(R.id.troubleContentView, item.content) + } + } + binding.recyclerView.adapter = troubleAdapter + troubleAdapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked( + position: Int, t: HiddenTroubleModel.DataModel.RowsModel + ) { + navigatePageTo(arrayListOf("配电箱", t.id)) + } + }) + } + } + return true + } + + override fun initViewBinding(): ActivityHiddenElectricBoxBinding { + return ActivityHiddenElectricBoxBinding.inflate(layoutInflater) + } + + override fun observeRequestState() { + hiddenTroubleViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + LoadState.Success -> { + LoadingDialogHub.dismiss() + } + + LoadState.Fail -> { + LoadingDialogHub.dismiss() + "数据加载失败,请重试".show(this) + } + } + } + } + + override fun setupTopBarLayout() { + val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = uiOptions + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/view/manifest/ElectricBoxActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/manifest/ElectricBoxActivity.kt new file mode 100644 index 0000000..9b40f15 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/view/manifest/ElectricBoxActivity.kt @@ -0,0 +1,4 @@ +package com.casic.br.ar.app.view.manifest + +class ElectricBoxActivity { +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/vm/HiddenTroubleViewModel.kt b/app/src/main/java/com/casic/br/ar/app/vm/HiddenTroubleViewModel.kt index c283c0e..d4d4ecf 100644 --- a/app/src/main/java/com/casic/br/ar/app/vm/HiddenTroubleViewModel.kt +++ b/app/src/main/java/com/casic/br/ar/app/vm/HiddenTroubleViewModel.kt @@ -4,6 +4,7 @@ import androidx.lifecycle.MutableLiveData import com.casic.br.ar.app.extensions.getResponseCode import com.casic.br.ar.app.extensions.getResponseMessage +import com.casic.br.ar.app.model.HiddenTroubleDetailModel import com.casic.br.ar.app.model.HiddenTroubleModel import com.casic.br.ar.app.retrofit.RetrofitServiceManager import com.google.gson.Gson @@ -17,10 +18,11 @@ private val gson by lazy { Gson() } val troublesResult = MutableLiveData() + val troubleDetailResult = MutableLiveData() - fun getHiddenTroubleMenuByPage(context: Context, keywords: String, offset: Int) = launch({ + fun getHiddenTroubleByScene(context: Context, keywords: String, offset: Int) = launch({ loadState.value = LoadState.Loading - val response = RetrofitServiceManager.getHiddenTroubleMenuByPage(keywords, offset) + val response = RetrofitServiceManager.getHiddenTroubleByScene(keywords, offset) when (response.getResponseCode()) { 200 -> { loadState.value = LoadState.Success @@ -38,4 +40,25 @@ loadState.value = LoadState.Fail it.localizedMessage?.show(context) }) + + fun getHiddenTroubleDetail(context: Context, id: String) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.getHiddenTroubleDetail(id) + when (response.getResponseCode()) { + 200 -> { + loadState.value = LoadState.Success + troubleDetailResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + + else -> { + loadState.value = LoadState.Fail + response.getResponseMessage().show(context) + } + } + }, { + loadState.value = LoadState.Fail + it.localizedMessage?.show(context) + }) } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_hidden_electric_box.xml b/app/src/main/res/layout/activity_hidden_electric_box.xml new file mode 100644 index 0000000..3a69ac1 --- /dev/null +++ b/app/src/main/res/layout/activity_hidden_electric_box.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_hidden_trouble_detail.xml b/app/src/main/res/layout/activity_hidden_trouble_detail.xml new file mode 100644 index 0000000..af30ed7 --- /dev/null +++ b/app/src/main/res/layout/activity_hidden_trouble_detail.xml @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_check_history_detail_g.xml b/app/src/main/res/layout/item_check_history_detail_g.xml index 2999c72..9915edf 100644 --- a/app/src/main/res/layout/item_check_history_detail_g.xml +++ b/app/src/main/res/layout/item_check_history_detail_g.xml @@ -79,13 +79,13 @@ @@ -95,8 +95,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="@dimen/dp_10" - android:horizontalSpacing="@dimen/dp_3" + android:horizontalSpacing="@dimen/dp_5" android:numColumns="2" - android:verticalSpacing="@dimen/dp_3" /> + android:verticalSpacing="@dimen/dp_5" /> \ No newline at end of file diff --git a/app/src/main/res/layout/item_hidden_electric_box_l.xml b/app/src/main/res/layout/item_hidden_electric_box_l.xml new file mode 100644 index 0000000..27c857b --- /dev/null +++ b/app/src/main/res/layout/item_hidden_electric_box_l.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + \ No newline at end of file