diff --git a/app/build.gradle b/app/build.gradle
index f5edb66..4e8aa5b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 15
- versionName "v1.0.0.7"
+ versionCode 16
+ versionName "v1.0.0.8"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
@@ -99,4 +99,6 @@
implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2'
//定位功能
implementation 'com.amap.api:location:5.3.1'
+ //图片压缩
+ implementation 'top.zibin:Luban:1.1.8'
}
diff --git a/app/build.gradle b/app/build.gradle
index f5edb66..4e8aa5b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 15
- versionName "v1.0.0.7"
+ versionCode 16
+ versionName "v1.0.0.8"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
@@ -99,4 +99,6 @@
implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2'
//定位功能
implementation 'com.amap.api:location:5.3.1'
+ //图片压缩
+ implementation 'top.zibin:Luban:1.1.8'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c4a50de..6ea35aa 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,6 +80,8 @@
+
+
diff --git a/app/build.gradle b/app/build.gradle
index f5edb66..4e8aa5b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 15
- versionName "v1.0.0.7"
+ versionCode 16
+ versionName "v1.0.0.8"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
@@ -99,4 +99,6 @@
implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2'
//定位功能
implementation 'com.amap.api:location:5.3.1'
+ //图片压缩
+ implementation 'top.zibin:Luban:1.1.8'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c4a50de..6ea35aa 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,6 +80,8 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
new file mode 100644
index 0000000..4957e67
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
@@ -0,0 +1,81 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.CleanRecordBean;
+
+import java.util.List;
+
+public class RecordListAdapter extends RecyclerView.Adapter {
+
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+
+ public RecordListAdapter(Context context, List dataRows) {
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_record_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ if (clickListener != null) {
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+ static class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView workTimeView;
+ private TextView toiletNameView;
+ private TextView workerNameView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ workTimeView = itemView.findViewById(R.id.workTimeView);
+ toiletNameView = itemView.findViewById(R.id.toiletNameView);
+ workerNameView = itemView.findViewById(R.id.workerNameView);
+ }
+
+ void bindView(CleanRecordBean.DataBean.RowsBean rowsBean) {
+ workTimeView.setText(rowsBean.getCreateTime());
+ toiletNameView.setText(rowsBean.getToiletName().equals("") ? "未知" : rowsBean.getToiletName());
+ workerNameView.setText(rowsBean.getUserName().equals("") ? "未知" : rowsBean.getUserName());
+ }
+ }
+}
diff --git a/app/build.gradle b/app/build.gradle
index f5edb66..4e8aa5b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 15
- versionName "v1.0.0.7"
+ versionCode 16
+ versionName "v1.0.0.8"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
@@ -99,4 +99,6 @@
implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2'
//定位功能
implementation 'com.amap.api:location:5.3.1'
+ //图片压缩
+ implementation 'top.zibin:Luban:1.1.8'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c4a50de..6ea35aa 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,6 +80,8 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
new file mode 100644
index 0000000..4957e67
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
@@ -0,0 +1,81 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.CleanRecordBean;
+
+import java.util.List;
+
+public class RecordListAdapter extends RecyclerView.Adapter {
+
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+
+ public RecordListAdapter(Context context, List dataRows) {
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_record_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ if (clickListener != null) {
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+ static class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView workTimeView;
+ private TextView toiletNameView;
+ private TextView workerNameView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ workTimeView = itemView.findViewById(R.id.workTimeView);
+ toiletNameView = itemView.findViewById(R.id.toiletNameView);
+ workerNameView = itemView.findViewById(R.id.workerNameView);
+ }
+
+ void bindView(CleanRecordBean.DataBean.RowsBean rowsBean) {
+ workTimeView.setText(rowsBean.getCreateTime());
+ toiletNameView.setText(rowsBean.getToiletName().equals("") ? "未知" : rowsBean.getToiletName());
+ workerNameView.setText(rowsBean.getUserName().equals("") ? "未知" : rowsBean.getUserName());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
new file mode 100644
index 0000000..77c0fba
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
@@ -0,0 +1,202 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class CleanRecordBean {
+
+ /**
+ * code : 200.0
+ * data : {"rows":[{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}],"total":6}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ /**
+ * rows : [{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}]
+ * total : 6.0
+ */
+
+ private double total;
+ private List rows;
+
+ public double getTotal() {
+ return total;
+ }
+
+ public void setTotal(double total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * createTime : 2021-05-31
+ * defFlag : 0
+ * id : 1399290564295921665
+ * lat : 39.91570858
+ * lng : 116.26856423
+ * photo : 2021-05\9cd59072bb40498dba03e07db0d3f79c.png
+ * toiletId : 1120210531170001
+ * toiletName :
+ * updateTime : 2021-05-31
+ * userId : 1394828956022857730
+ * userName :
+ * workContent : 日常保洁
+ */
+
+ private String createTime;
+ private String defFlag;
+ private String id;
+ private String lat;
+ private String lng;
+ private String photo;
+ private String toiletId;
+ private String toiletName;
+ private String updateTime;
+ private String userId;
+ private String userName;
+ private String workContent;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDefFlag() {
+ return defFlag;
+ }
+
+ public void setDefFlag(String defFlag) {
+ this.defFlag = defFlag;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getPhoto() {
+ return photo;
+ }
+
+ public void setPhoto(String photo) {
+ this.photo = photo;
+ }
+
+ public String getToiletId() {
+ return toiletId;
+ }
+
+ public void setToiletId(String toiletId) {
+ this.toiletId = toiletId;
+ }
+
+ public String getToiletName() {
+ return toiletName;
+ }
+
+ public void setToiletName(String toiletName) {
+ this.toiletName = toiletName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getWorkContent() {
+ return workContent;
+ }
+
+ public void setWorkContent(String workContent) {
+ this.workContent = workContent;
+ }
+ }
+ }
+}
diff --git a/app/build.gradle b/app/build.gradle
index f5edb66..4e8aa5b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 15
- versionName "v1.0.0.7"
+ versionCode 16
+ versionName "v1.0.0.8"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
@@ -99,4 +99,6 @@
implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2'
//定位功能
implementation 'com.amap.api:location:5.3.1'
+ //图片压缩
+ implementation 'top.zibin:Luban:1.1.8'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c4a50de..6ea35aa 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,6 +80,8 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
new file mode 100644
index 0000000..4957e67
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
@@ -0,0 +1,81 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.CleanRecordBean;
+
+import java.util.List;
+
+public class RecordListAdapter extends RecyclerView.Adapter {
+
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+
+ public RecordListAdapter(Context context, List dataRows) {
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_record_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ if (clickListener != null) {
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+ static class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView workTimeView;
+ private TextView toiletNameView;
+ private TextView workerNameView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ workTimeView = itemView.findViewById(R.id.workTimeView);
+ toiletNameView = itemView.findViewById(R.id.toiletNameView);
+ workerNameView = itemView.findViewById(R.id.workerNameView);
+ }
+
+ void bindView(CleanRecordBean.DataBean.RowsBean rowsBean) {
+ workTimeView.setText(rowsBean.getCreateTime());
+ toiletNameView.setText(rowsBean.getToiletName().equals("") ? "未知" : rowsBean.getToiletName());
+ workerNameView.setText(rowsBean.getUserName().equals("") ? "未知" : rowsBean.getUserName());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
new file mode 100644
index 0000000..77c0fba
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
@@ -0,0 +1,202 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class CleanRecordBean {
+
+ /**
+ * code : 200.0
+ * data : {"rows":[{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}],"total":6}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ /**
+ * rows : [{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}]
+ * total : 6.0
+ */
+
+ private double total;
+ private List rows;
+
+ public double getTotal() {
+ return total;
+ }
+
+ public void setTotal(double total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * createTime : 2021-05-31
+ * defFlag : 0
+ * id : 1399290564295921665
+ * lat : 39.91570858
+ * lng : 116.26856423
+ * photo : 2021-05\9cd59072bb40498dba03e07db0d3f79c.png
+ * toiletId : 1120210531170001
+ * toiletName :
+ * updateTime : 2021-05-31
+ * userId : 1394828956022857730
+ * userName :
+ * workContent : 日常保洁
+ */
+
+ private String createTime;
+ private String defFlag;
+ private String id;
+ private String lat;
+ private String lng;
+ private String photo;
+ private String toiletId;
+ private String toiletName;
+ private String updateTime;
+ private String userId;
+ private String userName;
+ private String workContent;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDefFlag() {
+ return defFlag;
+ }
+
+ public void setDefFlag(String defFlag) {
+ this.defFlag = defFlag;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getPhoto() {
+ return photo;
+ }
+
+ public void setPhoto(String photo) {
+ this.photo = photo;
+ }
+
+ public String getToiletId() {
+ return toiletId;
+ }
+
+ public void setToiletId(String toiletId) {
+ this.toiletId = toiletId;
+ }
+
+ public String getToiletName() {
+ return toiletName;
+ }
+
+ public void setToiletName(String toiletName) {
+ this.toiletName = toiletName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getWorkContent() {
+ return workContent;
+ }
+
+ public void setWorkContent(String workContent) {
+ this.workContent = workContent;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
new file mode 100644
index 0000000..f50849c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class CleanRecordModelImpl implements ICleanRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public CleanRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(CleanRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ Observable observable = RetrofitServiceManager.getCleanRecordResult(userId, keywords, beginDate, endDate);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(CleanRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/build.gradle b/app/build.gradle
index f5edb66..4e8aa5b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 15
- versionName "v1.0.0.7"
+ versionCode 16
+ versionName "v1.0.0.8"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
@@ -99,4 +99,6 @@
implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2'
//定位功能
implementation 'com.amap.api:location:5.3.1'
+ //图片压缩
+ implementation 'top.zibin:Luban:1.1.8'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c4a50de..6ea35aa 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,6 +80,8 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
new file mode 100644
index 0000000..4957e67
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
@@ -0,0 +1,81 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.CleanRecordBean;
+
+import java.util.List;
+
+public class RecordListAdapter extends RecyclerView.Adapter {
+
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+
+ public RecordListAdapter(Context context, List dataRows) {
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_record_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ if (clickListener != null) {
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+ static class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView workTimeView;
+ private TextView toiletNameView;
+ private TextView workerNameView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ workTimeView = itemView.findViewById(R.id.workTimeView);
+ toiletNameView = itemView.findViewById(R.id.toiletNameView);
+ workerNameView = itemView.findViewById(R.id.workerNameView);
+ }
+
+ void bindView(CleanRecordBean.DataBean.RowsBean rowsBean) {
+ workTimeView.setText(rowsBean.getCreateTime());
+ toiletNameView.setText(rowsBean.getToiletName().equals("") ? "未知" : rowsBean.getToiletName());
+ workerNameView.setText(rowsBean.getUserName().equals("") ? "未知" : rowsBean.getUserName());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
new file mode 100644
index 0000000..77c0fba
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
@@ -0,0 +1,202 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class CleanRecordBean {
+
+ /**
+ * code : 200.0
+ * data : {"rows":[{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}],"total":6}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ /**
+ * rows : [{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}]
+ * total : 6.0
+ */
+
+ private double total;
+ private List rows;
+
+ public double getTotal() {
+ return total;
+ }
+
+ public void setTotal(double total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * createTime : 2021-05-31
+ * defFlag : 0
+ * id : 1399290564295921665
+ * lat : 39.91570858
+ * lng : 116.26856423
+ * photo : 2021-05\9cd59072bb40498dba03e07db0d3f79c.png
+ * toiletId : 1120210531170001
+ * toiletName :
+ * updateTime : 2021-05-31
+ * userId : 1394828956022857730
+ * userName :
+ * workContent : 日常保洁
+ */
+
+ private String createTime;
+ private String defFlag;
+ private String id;
+ private String lat;
+ private String lng;
+ private String photo;
+ private String toiletId;
+ private String toiletName;
+ private String updateTime;
+ private String userId;
+ private String userName;
+ private String workContent;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDefFlag() {
+ return defFlag;
+ }
+
+ public void setDefFlag(String defFlag) {
+ this.defFlag = defFlag;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getPhoto() {
+ return photo;
+ }
+
+ public void setPhoto(String photo) {
+ this.photo = photo;
+ }
+
+ public String getToiletId() {
+ return toiletId;
+ }
+
+ public void setToiletId(String toiletId) {
+ this.toiletId = toiletId;
+ }
+
+ public String getToiletName() {
+ return toiletName;
+ }
+
+ public void setToiletName(String toiletName) {
+ this.toiletName = toiletName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getWorkContent() {
+ return workContent;
+ }
+
+ public void setWorkContent(String workContent) {
+ this.workContent = workContent;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
new file mode 100644
index 0000000..f50849c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class CleanRecordModelImpl implements ICleanRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public CleanRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(CleanRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ Observable observable = RetrofitServiceManager.getCleanRecordResult(userId, keywords, beginDate, endDate);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(CleanRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
new file mode 100644
index 0000000..3ffe8c4
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ICleanRecordModel {
+ Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+}
diff --git a/app/build.gradle b/app/build.gradle
index f5edb66..4e8aa5b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 15
- versionName "v1.0.0.7"
+ versionCode 16
+ versionName "v1.0.0.8"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
@@ -99,4 +99,6 @@
implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2'
//定位功能
implementation 'com.amap.api:location:5.3.1'
+ //图片压缩
+ implementation 'top.zibin:Luban:1.1.8'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c4a50de..6ea35aa 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,6 +80,8 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
new file mode 100644
index 0000000..4957e67
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
@@ -0,0 +1,81 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.CleanRecordBean;
+
+import java.util.List;
+
+public class RecordListAdapter extends RecyclerView.Adapter {
+
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+
+ public RecordListAdapter(Context context, List dataRows) {
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_record_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ if (clickListener != null) {
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+ static class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView workTimeView;
+ private TextView toiletNameView;
+ private TextView workerNameView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ workTimeView = itemView.findViewById(R.id.workTimeView);
+ toiletNameView = itemView.findViewById(R.id.toiletNameView);
+ workerNameView = itemView.findViewById(R.id.workerNameView);
+ }
+
+ void bindView(CleanRecordBean.DataBean.RowsBean rowsBean) {
+ workTimeView.setText(rowsBean.getCreateTime());
+ toiletNameView.setText(rowsBean.getToiletName().equals("") ? "未知" : rowsBean.getToiletName());
+ workerNameView.setText(rowsBean.getUserName().equals("") ? "未知" : rowsBean.getUserName());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
new file mode 100644
index 0000000..77c0fba
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
@@ -0,0 +1,202 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class CleanRecordBean {
+
+ /**
+ * code : 200.0
+ * data : {"rows":[{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}],"total":6}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ /**
+ * rows : [{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}]
+ * total : 6.0
+ */
+
+ private double total;
+ private List rows;
+
+ public double getTotal() {
+ return total;
+ }
+
+ public void setTotal(double total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * createTime : 2021-05-31
+ * defFlag : 0
+ * id : 1399290564295921665
+ * lat : 39.91570858
+ * lng : 116.26856423
+ * photo : 2021-05\9cd59072bb40498dba03e07db0d3f79c.png
+ * toiletId : 1120210531170001
+ * toiletName :
+ * updateTime : 2021-05-31
+ * userId : 1394828956022857730
+ * userName :
+ * workContent : 日常保洁
+ */
+
+ private String createTime;
+ private String defFlag;
+ private String id;
+ private String lat;
+ private String lng;
+ private String photo;
+ private String toiletId;
+ private String toiletName;
+ private String updateTime;
+ private String userId;
+ private String userName;
+ private String workContent;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDefFlag() {
+ return defFlag;
+ }
+
+ public void setDefFlag(String defFlag) {
+ this.defFlag = defFlag;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getPhoto() {
+ return photo;
+ }
+
+ public void setPhoto(String photo) {
+ this.photo = photo;
+ }
+
+ public String getToiletId() {
+ return toiletId;
+ }
+
+ public void setToiletId(String toiletId) {
+ this.toiletId = toiletId;
+ }
+
+ public String getToiletName() {
+ return toiletName;
+ }
+
+ public void setToiletName(String toiletName) {
+ this.toiletName = toiletName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getWorkContent() {
+ return workContent;
+ }
+
+ public void setWorkContent(String workContent) {
+ this.workContent = workContent;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
new file mode 100644
index 0000000..f50849c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class CleanRecordModelImpl implements ICleanRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public CleanRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(CleanRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ Observable observable = RetrofitServiceManager.getCleanRecordResult(userId, keywords, beginDate, endDate);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(CleanRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
new file mode 100644
index 0000000..3ffe8c4
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ICleanRecordModel {
+ Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
new file mode 100644
index 0000000..5b37216
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.CleanRecordModelImpl;
+import com.casic.dcms.mvp.view.ICleanToiletRecordView;
+
+public class CleanRecordPresenterImpl extends BasePresenter implements ICleanRecordPresenter, CleanRecordModelImpl.OnGetRecordListener {
+
+ private ICleanToiletRecordView view;
+ private CleanRecordModelImpl model;
+
+ public CleanRecordPresenterImpl(ICleanToiletRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new CleanRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ addSubscription(model.sendRetrofitRequest(userId, keywords, beginDate, endDate));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(CleanRecordBean result) {
+ view.obtainCleanRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+}
diff --git a/app/build.gradle b/app/build.gradle
index f5edb66..4e8aa5b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 15
- versionName "v1.0.0.7"
+ versionCode 16
+ versionName "v1.0.0.8"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
@@ -99,4 +99,6 @@
implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2'
//定位功能
implementation 'com.amap.api:location:5.3.1'
+ //图片压缩
+ implementation 'top.zibin:Luban:1.1.8'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c4a50de..6ea35aa 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,6 +80,8 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
new file mode 100644
index 0000000..4957e67
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
@@ -0,0 +1,81 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.CleanRecordBean;
+
+import java.util.List;
+
+public class RecordListAdapter extends RecyclerView.Adapter {
+
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+
+ public RecordListAdapter(Context context, List dataRows) {
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_record_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ if (clickListener != null) {
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+ static class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView workTimeView;
+ private TextView toiletNameView;
+ private TextView workerNameView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ workTimeView = itemView.findViewById(R.id.workTimeView);
+ toiletNameView = itemView.findViewById(R.id.toiletNameView);
+ workerNameView = itemView.findViewById(R.id.workerNameView);
+ }
+
+ void bindView(CleanRecordBean.DataBean.RowsBean rowsBean) {
+ workTimeView.setText(rowsBean.getCreateTime());
+ toiletNameView.setText(rowsBean.getToiletName().equals("") ? "未知" : rowsBean.getToiletName());
+ workerNameView.setText(rowsBean.getUserName().equals("") ? "未知" : rowsBean.getUserName());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
new file mode 100644
index 0000000..77c0fba
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
@@ -0,0 +1,202 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class CleanRecordBean {
+
+ /**
+ * code : 200.0
+ * data : {"rows":[{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}],"total":6}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ /**
+ * rows : [{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}]
+ * total : 6.0
+ */
+
+ private double total;
+ private List rows;
+
+ public double getTotal() {
+ return total;
+ }
+
+ public void setTotal(double total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * createTime : 2021-05-31
+ * defFlag : 0
+ * id : 1399290564295921665
+ * lat : 39.91570858
+ * lng : 116.26856423
+ * photo : 2021-05\9cd59072bb40498dba03e07db0d3f79c.png
+ * toiletId : 1120210531170001
+ * toiletName :
+ * updateTime : 2021-05-31
+ * userId : 1394828956022857730
+ * userName :
+ * workContent : 日常保洁
+ */
+
+ private String createTime;
+ private String defFlag;
+ private String id;
+ private String lat;
+ private String lng;
+ private String photo;
+ private String toiletId;
+ private String toiletName;
+ private String updateTime;
+ private String userId;
+ private String userName;
+ private String workContent;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDefFlag() {
+ return defFlag;
+ }
+
+ public void setDefFlag(String defFlag) {
+ this.defFlag = defFlag;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getPhoto() {
+ return photo;
+ }
+
+ public void setPhoto(String photo) {
+ this.photo = photo;
+ }
+
+ public String getToiletId() {
+ return toiletId;
+ }
+
+ public void setToiletId(String toiletId) {
+ this.toiletId = toiletId;
+ }
+
+ public String getToiletName() {
+ return toiletName;
+ }
+
+ public void setToiletName(String toiletName) {
+ this.toiletName = toiletName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getWorkContent() {
+ return workContent;
+ }
+
+ public void setWorkContent(String workContent) {
+ this.workContent = workContent;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
new file mode 100644
index 0000000..f50849c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class CleanRecordModelImpl implements ICleanRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public CleanRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(CleanRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ Observable observable = RetrofitServiceManager.getCleanRecordResult(userId, keywords, beginDate, endDate);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(CleanRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
new file mode 100644
index 0000000..3ffe8c4
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ICleanRecordModel {
+ Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
new file mode 100644
index 0000000..5b37216
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.CleanRecordModelImpl;
+import com.casic.dcms.mvp.view.ICleanToiletRecordView;
+
+public class CleanRecordPresenterImpl extends BasePresenter implements ICleanRecordPresenter, CleanRecordModelImpl.OnGetRecordListener {
+
+ private ICleanToiletRecordView view;
+ private CleanRecordModelImpl model;
+
+ public CleanRecordPresenterImpl(ICleanToiletRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new CleanRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ addSubscription(model.sendRetrofitRequest(userId, keywords, beginDate, endDate));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(CleanRecordBean result) {
+ view.obtainCleanRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
new file mode 100644
index 0000000..2b9acdd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ICleanRecordPresenter {
+ void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/build.gradle b/app/build.gradle
index f5edb66..4e8aa5b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 15
- versionName "v1.0.0.7"
+ versionCode 16
+ versionName "v1.0.0.8"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
@@ -99,4 +99,6 @@
implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2'
//定位功能
implementation 'com.amap.api:location:5.3.1'
+ //图片压缩
+ implementation 'top.zibin:Luban:1.1.8'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c4a50de..6ea35aa 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,6 +80,8 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
new file mode 100644
index 0000000..4957e67
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
@@ -0,0 +1,81 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.CleanRecordBean;
+
+import java.util.List;
+
+public class RecordListAdapter extends RecyclerView.Adapter {
+
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+
+ public RecordListAdapter(Context context, List dataRows) {
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_record_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ if (clickListener != null) {
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+ static class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView workTimeView;
+ private TextView toiletNameView;
+ private TextView workerNameView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ workTimeView = itemView.findViewById(R.id.workTimeView);
+ toiletNameView = itemView.findViewById(R.id.toiletNameView);
+ workerNameView = itemView.findViewById(R.id.workerNameView);
+ }
+
+ void bindView(CleanRecordBean.DataBean.RowsBean rowsBean) {
+ workTimeView.setText(rowsBean.getCreateTime());
+ toiletNameView.setText(rowsBean.getToiletName().equals("") ? "未知" : rowsBean.getToiletName());
+ workerNameView.setText(rowsBean.getUserName().equals("") ? "未知" : rowsBean.getUserName());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
new file mode 100644
index 0000000..77c0fba
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
@@ -0,0 +1,202 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class CleanRecordBean {
+
+ /**
+ * code : 200.0
+ * data : {"rows":[{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}],"total":6}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ /**
+ * rows : [{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}]
+ * total : 6.0
+ */
+
+ private double total;
+ private List rows;
+
+ public double getTotal() {
+ return total;
+ }
+
+ public void setTotal(double total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * createTime : 2021-05-31
+ * defFlag : 0
+ * id : 1399290564295921665
+ * lat : 39.91570858
+ * lng : 116.26856423
+ * photo : 2021-05\9cd59072bb40498dba03e07db0d3f79c.png
+ * toiletId : 1120210531170001
+ * toiletName :
+ * updateTime : 2021-05-31
+ * userId : 1394828956022857730
+ * userName :
+ * workContent : 日常保洁
+ */
+
+ private String createTime;
+ private String defFlag;
+ private String id;
+ private String lat;
+ private String lng;
+ private String photo;
+ private String toiletId;
+ private String toiletName;
+ private String updateTime;
+ private String userId;
+ private String userName;
+ private String workContent;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDefFlag() {
+ return defFlag;
+ }
+
+ public void setDefFlag(String defFlag) {
+ this.defFlag = defFlag;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getPhoto() {
+ return photo;
+ }
+
+ public void setPhoto(String photo) {
+ this.photo = photo;
+ }
+
+ public String getToiletId() {
+ return toiletId;
+ }
+
+ public void setToiletId(String toiletId) {
+ this.toiletId = toiletId;
+ }
+
+ public String getToiletName() {
+ return toiletName;
+ }
+
+ public void setToiletName(String toiletName) {
+ this.toiletName = toiletName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getWorkContent() {
+ return workContent;
+ }
+
+ public void setWorkContent(String workContent) {
+ this.workContent = workContent;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
new file mode 100644
index 0000000..f50849c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class CleanRecordModelImpl implements ICleanRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public CleanRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(CleanRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ Observable observable = RetrofitServiceManager.getCleanRecordResult(userId, keywords, beginDate, endDate);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(CleanRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
new file mode 100644
index 0000000..3ffe8c4
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ICleanRecordModel {
+ Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
new file mode 100644
index 0000000..5b37216
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.CleanRecordModelImpl;
+import com.casic.dcms.mvp.view.ICleanToiletRecordView;
+
+public class CleanRecordPresenterImpl extends BasePresenter implements ICleanRecordPresenter, CleanRecordModelImpl.OnGetRecordListener {
+
+ private ICleanToiletRecordView view;
+ private CleanRecordModelImpl model;
+
+ public CleanRecordPresenterImpl(ICleanToiletRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new CleanRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ addSubscription(model.sendRetrofitRequest(userId, keywords, beginDate, endDate));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(CleanRecordBean result) {
+ view.obtainCleanRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
new file mode 100644
index 0000000..2b9acdd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ICleanRecordPresenter {
+ void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
index d0313e9..e53c5ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
@@ -1,9 +1,17 @@
package com.casic.dcms.mvp.presenter;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+
+import com.casic.dcms.base.BaseApplication;
import com.casic.dcms.bean.ActionResultBean;
import com.casic.dcms.mvp.BasePresenter;
import com.casic.dcms.mvp.model.UploadImageModelImpl;
import com.casic.dcms.mvp.view.IUploadFileView;
+import com.casic.dcms.utils.ImageHelper;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.utils.callback.IWaterMarkAddListener;
import java.io.File;
@@ -20,7 +28,27 @@
@Override
public void onReadyRetrofitRequest(File file) {
view.showProgress();
- addSubscription(actionModel.sendRetrofitRequest(file));
+ //改为上传带水印的图片
+ Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
+ ImageHelper.drawTextToRightBottom(BaseApplication.getInstance(), bitmap,
+ StringHelper.getUserAccount(),
+ TimeOrDateUtil.timestampToDate(System.currentTimeMillis()),
+ TimeOrDateUtil.timestampToTime(System.currentTimeMillis()),
+ new IWaterMarkAddListener() {
+ @Override
+ public void onSuccess(File file) {
+ if (file != null) {
+ addSubscription(actionModel.sendRetrofitRequest(file));
+ } else {
+ view.obtainDataFail();
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ view.obtainDataFail();
+ }
+ });
}
@Override
diff --git a/app/build.gradle b/app/build.gradle
index f5edb66..4e8aa5b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 15
- versionName "v1.0.0.7"
+ versionCode 16
+ versionName "v1.0.0.8"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
@@ -99,4 +99,6 @@
implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2'
//定位功能
implementation 'com.amap.api:location:5.3.1'
+ //图片压缩
+ implementation 'top.zibin:Luban:1.1.8'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c4a50de..6ea35aa 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,6 +80,8 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
new file mode 100644
index 0000000..4957e67
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
@@ -0,0 +1,81 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.CleanRecordBean;
+
+import java.util.List;
+
+public class RecordListAdapter extends RecyclerView.Adapter {
+
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+
+ public RecordListAdapter(Context context, List dataRows) {
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_record_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ if (clickListener != null) {
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+ static class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView workTimeView;
+ private TextView toiletNameView;
+ private TextView workerNameView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ workTimeView = itemView.findViewById(R.id.workTimeView);
+ toiletNameView = itemView.findViewById(R.id.toiletNameView);
+ workerNameView = itemView.findViewById(R.id.workerNameView);
+ }
+
+ void bindView(CleanRecordBean.DataBean.RowsBean rowsBean) {
+ workTimeView.setText(rowsBean.getCreateTime());
+ toiletNameView.setText(rowsBean.getToiletName().equals("") ? "未知" : rowsBean.getToiletName());
+ workerNameView.setText(rowsBean.getUserName().equals("") ? "未知" : rowsBean.getUserName());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
new file mode 100644
index 0000000..77c0fba
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
@@ -0,0 +1,202 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class CleanRecordBean {
+
+ /**
+ * code : 200.0
+ * data : {"rows":[{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}],"total":6}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ /**
+ * rows : [{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}]
+ * total : 6.0
+ */
+
+ private double total;
+ private List rows;
+
+ public double getTotal() {
+ return total;
+ }
+
+ public void setTotal(double total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * createTime : 2021-05-31
+ * defFlag : 0
+ * id : 1399290564295921665
+ * lat : 39.91570858
+ * lng : 116.26856423
+ * photo : 2021-05\9cd59072bb40498dba03e07db0d3f79c.png
+ * toiletId : 1120210531170001
+ * toiletName :
+ * updateTime : 2021-05-31
+ * userId : 1394828956022857730
+ * userName :
+ * workContent : 日常保洁
+ */
+
+ private String createTime;
+ private String defFlag;
+ private String id;
+ private String lat;
+ private String lng;
+ private String photo;
+ private String toiletId;
+ private String toiletName;
+ private String updateTime;
+ private String userId;
+ private String userName;
+ private String workContent;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDefFlag() {
+ return defFlag;
+ }
+
+ public void setDefFlag(String defFlag) {
+ this.defFlag = defFlag;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getPhoto() {
+ return photo;
+ }
+
+ public void setPhoto(String photo) {
+ this.photo = photo;
+ }
+
+ public String getToiletId() {
+ return toiletId;
+ }
+
+ public void setToiletId(String toiletId) {
+ this.toiletId = toiletId;
+ }
+
+ public String getToiletName() {
+ return toiletName;
+ }
+
+ public void setToiletName(String toiletName) {
+ this.toiletName = toiletName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getWorkContent() {
+ return workContent;
+ }
+
+ public void setWorkContent(String workContent) {
+ this.workContent = workContent;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
new file mode 100644
index 0000000..f50849c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class CleanRecordModelImpl implements ICleanRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public CleanRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(CleanRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ Observable observable = RetrofitServiceManager.getCleanRecordResult(userId, keywords, beginDate, endDate);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(CleanRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
new file mode 100644
index 0000000..3ffe8c4
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ICleanRecordModel {
+ Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
new file mode 100644
index 0000000..5b37216
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.CleanRecordModelImpl;
+import com.casic.dcms.mvp.view.ICleanToiletRecordView;
+
+public class CleanRecordPresenterImpl extends BasePresenter implements ICleanRecordPresenter, CleanRecordModelImpl.OnGetRecordListener {
+
+ private ICleanToiletRecordView view;
+ private CleanRecordModelImpl model;
+
+ public CleanRecordPresenterImpl(ICleanToiletRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new CleanRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ addSubscription(model.sendRetrofitRequest(userId, keywords, beginDate, endDate));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(CleanRecordBean result) {
+ view.obtainCleanRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
new file mode 100644
index 0000000..2b9acdd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ICleanRecordPresenter {
+ void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
index d0313e9..e53c5ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
@@ -1,9 +1,17 @@
package com.casic.dcms.mvp.presenter;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+
+import com.casic.dcms.base.BaseApplication;
import com.casic.dcms.bean.ActionResultBean;
import com.casic.dcms.mvp.BasePresenter;
import com.casic.dcms.mvp.model.UploadImageModelImpl;
import com.casic.dcms.mvp.view.IUploadFileView;
+import com.casic.dcms.utils.ImageHelper;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.utils.callback.IWaterMarkAddListener;
import java.io.File;
@@ -20,7 +28,27 @@
@Override
public void onReadyRetrofitRequest(File file) {
view.showProgress();
- addSubscription(actionModel.sendRetrofitRequest(file));
+ //改为上传带水印的图片
+ Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
+ ImageHelper.drawTextToRightBottom(BaseApplication.getInstance(), bitmap,
+ StringHelper.getUserAccount(),
+ TimeOrDateUtil.timestampToDate(System.currentTimeMillis()),
+ TimeOrDateUtil.timestampToTime(System.currentTimeMillis()),
+ new IWaterMarkAddListener() {
+ @Override
+ public void onSuccess(File file) {
+ if (file != null) {
+ addSubscription(actionModel.sendRetrofitRequest(file));
+ } else {
+ view.obtainDataFail();
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ view.obtainDataFail();
+ }
+ });
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
new file mode 100644
index 0000000..9df83d9
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.CleanRecordBean;
+
+public interface ICleanToiletRecordView {
+ void obtainCleanRecordResult(CleanRecordBean resultBean);
+}
diff --git a/app/build.gradle b/app/build.gradle
index f5edb66..4e8aa5b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 15
- versionName "v1.0.0.7"
+ versionCode 16
+ versionName "v1.0.0.8"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
@@ -99,4 +99,6 @@
implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2'
//定位功能
implementation 'com.amap.api:location:5.3.1'
+ //图片压缩
+ implementation 'top.zibin:Luban:1.1.8'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c4a50de..6ea35aa 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,6 +80,8 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
new file mode 100644
index 0000000..4957e67
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
@@ -0,0 +1,81 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.CleanRecordBean;
+
+import java.util.List;
+
+public class RecordListAdapter extends RecyclerView.Adapter {
+
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+
+ public RecordListAdapter(Context context, List dataRows) {
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_record_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ if (clickListener != null) {
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+ static class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView workTimeView;
+ private TextView toiletNameView;
+ private TextView workerNameView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ workTimeView = itemView.findViewById(R.id.workTimeView);
+ toiletNameView = itemView.findViewById(R.id.toiletNameView);
+ workerNameView = itemView.findViewById(R.id.workerNameView);
+ }
+
+ void bindView(CleanRecordBean.DataBean.RowsBean rowsBean) {
+ workTimeView.setText(rowsBean.getCreateTime());
+ toiletNameView.setText(rowsBean.getToiletName().equals("") ? "未知" : rowsBean.getToiletName());
+ workerNameView.setText(rowsBean.getUserName().equals("") ? "未知" : rowsBean.getUserName());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
new file mode 100644
index 0000000..77c0fba
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
@@ -0,0 +1,202 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class CleanRecordBean {
+
+ /**
+ * code : 200.0
+ * data : {"rows":[{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}],"total":6}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ /**
+ * rows : [{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}]
+ * total : 6.0
+ */
+
+ private double total;
+ private List rows;
+
+ public double getTotal() {
+ return total;
+ }
+
+ public void setTotal(double total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * createTime : 2021-05-31
+ * defFlag : 0
+ * id : 1399290564295921665
+ * lat : 39.91570858
+ * lng : 116.26856423
+ * photo : 2021-05\9cd59072bb40498dba03e07db0d3f79c.png
+ * toiletId : 1120210531170001
+ * toiletName :
+ * updateTime : 2021-05-31
+ * userId : 1394828956022857730
+ * userName :
+ * workContent : 日常保洁
+ */
+
+ private String createTime;
+ private String defFlag;
+ private String id;
+ private String lat;
+ private String lng;
+ private String photo;
+ private String toiletId;
+ private String toiletName;
+ private String updateTime;
+ private String userId;
+ private String userName;
+ private String workContent;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDefFlag() {
+ return defFlag;
+ }
+
+ public void setDefFlag(String defFlag) {
+ this.defFlag = defFlag;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getPhoto() {
+ return photo;
+ }
+
+ public void setPhoto(String photo) {
+ this.photo = photo;
+ }
+
+ public String getToiletId() {
+ return toiletId;
+ }
+
+ public void setToiletId(String toiletId) {
+ this.toiletId = toiletId;
+ }
+
+ public String getToiletName() {
+ return toiletName;
+ }
+
+ public void setToiletName(String toiletName) {
+ this.toiletName = toiletName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getWorkContent() {
+ return workContent;
+ }
+
+ public void setWorkContent(String workContent) {
+ this.workContent = workContent;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
new file mode 100644
index 0000000..f50849c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class CleanRecordModelImpl implements ICleanRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public CleanRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(CleanRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ Observable observable = RetrofitServiceManager.getCleanRecordResult(userId, keywords, beginDate, endDate);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(CleanRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
new file mode 100644
index 0000000..3ffe8c4
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ICleanRecordModel {
+ Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
new file mode 100644
index 0000000..5b37216
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.CleanRecordModelImpl;
+import com.casic.dcms.mvp.view.ICleanToiletRecordView;
+
+public class CleanRecordPresenterImpl extends BasePresenter implements ICleanRecordPresenter, CleanRecordModelImpl.OnGetRecordListener {
+
+ private ICleanToiletRecordView view;
+ private CleanRecordModelImpl model;
+
+ public CleanRecordPresenterImpl(ICleanToiletRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new CleanRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ addSubscription(model.sendRetrofitRequest(userId, keywords, beginDate, endDate));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(CleanRecordBean result) {
+ view.obtainCleanRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
new file mode 100644
index 0000000..2b9acdd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ICleanRecordPresenter {
+ void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
index d0313e9..e53c5ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
@@ -1,9 +1,17 @@
package com.casic.dcms.mvp.presenter;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+
+import com.casic.dcms.base.BaseApplication;
import com.casic.dcms.bean.ActionResultBean;
import com.casic.dcms.mvp.BasePresenter;
import com.casic.dcms.mvp.model.UploadImageModelImpl;
import com.casic.dcms.mvp.view.IUploadFileView;
+import com.casic.dcms.utils.ImageHelper;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.utils.callback.IWaterMarkAddListener;
import java.io.File;
@@ -20,7 +28,27 @@
@Override
public void onReadyRetrofitRequest(File file) {
view.showProgress();
- addSubscription(actionModel.sendRetrofitRequest(file));
+ //改为上传带水印的图片
+ Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
+ ImageHelper.drawTextToRightBottom(BaseApplication.getInstance(), bitmap,
+ StringHelper.getUserAccount(),
+ TimeOrDateUtil.timestampToDate(System.currentTimeMillis()),
+ TimeOrDateUtil.timestampToTime(System.currentTimeMillis()),
+ new IWaterMarkAddListener() {
+ @Override
+ public void onSuccess(File file) {
+ if (file != null) {
+ addSubscription(actionModel.sendRetrofitRequest(file));
+ } else {
+ view.obtainDataFail();
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ view.obtainDataFail();
+ }
+ });
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
new file mode 100644
index 0000000..9df83d9
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.CleanRecordBean;
+
+public interface ICleanToiletRecordView {
+ void obtainCleanRecordResult(CleanRecordBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
index f02a4d7..aac6084 100644
--- a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
+++ b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
@@ -59,7 +59,7 @@
noticeBean.setTitle(resultBean.getTitle());
noticeBean.setContent(resultBean.getContent());
noticeBean.setType(resultBean.getType());
- noticeBean.setPushDate(TimeOrDateUtil.timestampToDate("yyyy-MM-dd HH:mm:ss"));
+ noticeBean.setPushDate(TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()));
noticeBean.setIsRead("1");
//存本地一份
diff --git a/app/build.gradle b/app/build.gradle
index f5edb66..4e8aa5b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 15
- versionName "v1.0.0.7"
+ versionCode 16
+ versionName "v1.0.0.8"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
@@ -99,4 +99,6 @@
implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2'
//定位功能
implementation 'com.amap.api:location:5.3.1'
+ //图片压缩
+ implementation 'top.zibin:Luban:1.1.8'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c4a50de..6ea35aa 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,6 +80,8 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
new file mode 100644
index 0000000..4957e67
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
@@ -0,0 +1,81 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.CleanRecordBean;
+
+import java.util.List;
+
+public class RecordListAdapter extends RecyclerView.Adapter {
+
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+
+ public RecordListAdapter(Context context, List dataRows) {
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_record_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ if (clickListener != null) {
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+ static class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView workTimeView;
+ private TextView toiletNameView;
+ private TextView workerNameView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ workTimeView = itemView.findViewById(R.id.workTimeView);
+ toiletNameView = itemView.findViewById(R.id.toiletNameView);
+ workerNameView = itemView.findViewById(R.id.workerNameView);
+ }
+
+ void bindView(CleanRecordBean.DataBean.RowsBean rowsBean) {
+ workTimeView.setText(rowsBean.getCreateTime());
+ toiletNameView.setText(rowsBean.getToiletName().equals("") ? "未知" : rowsBean.getToiletName());
+ workerNameView.setText(rowsBean.getUserName().equals("") ? "未知" : rowsBean.getUserName());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
new file mode 100644
index 0000000..77c0fba
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
@@ -0,0 +1,202 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class CleanRecordBean {
+
+ /**
+ * code : 200.0
+ * data : {"rows":[{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}],"total":6}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ /**
+ * rows : [{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}]
+ * total : 6.0
+ */
+
+ private double total;
+ private List rows;
+
+ public double getTotal() {
+ return total;
+ }
+
+ public void setTotal(double total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * createTime : 2021-05-31
+ * defFlag : 0
+ * id : 1399290564295921665
+ * lat : 39.91570858
+ * lng : 116.26856423
+ * photo : 2021-05\9cd59072bb40498dba03e07db0d3f79c.png
+ * toiletId : 1120210531170001
+ * toiletName :
+ * updateTime : 2021-05-31
+ * userId : 1394828956022857730
+ * userName :
+ * workContent : 日常保洁
+ */
+
+ private String createTime;
+ private String defFlag;
+ private String id;
+ private String lat;
+ private String lng;
+ private String photo;
+ private String toiletId;
+ private String toiletName;
+ private String updateTime;
+ private String userId;
+ private String userName;
+ private String workContent;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDefFlag() {
+ return defFlag;
+ }
+
+ public void setDefFlag(String defFlag) {
+ this.defFlag = defFlag;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getPhoto() {
+ return photo;
+ }
+
+ public void setPhoto(String photo) {
+ this.photo = photo;
+ }
+
+ public String getToiletId() {
+ return toiletId;
+ }
+
+ public void setToiletId(String toiletId) {
+ this.toiletId = toiletId;
+ }
+
+ public String getToiletName() {
+ return toiletName;
+ }
+
+ public void setToiletName(String toiletName) {
+ this.toiletName = toiletName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getWorkContent() {
+ return workContent;
+ }
+
+ public void setWorkContent(String workContent) {
+ this.workContent = workContent;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
new file mode 100644
index 0000000..f50849c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class CleanRecordModelImpl implements ICleanRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public CleanRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(CleanRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ Observable observable = RetrofitServiceManager.getCleanRecordResult(userId, keywords, beginDate, endDate);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(CleanRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
new file mode 100644
index 0000000..3ffe8c4
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ICleanRecordModel {
+ Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
new file mode 100644
index 0000000..5b37216
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.CleanRecordModelImpl;
+import com.casic.dcms.mvp.view.ICleanToiletRecordView;
+
+public class CleanRecordPresenterImpl extends BasePresenter implements ICleanRecordPresenter, CleanRecordModelImpl.OnGetRecordListener {
+
+ private ICleanToiletRecordView view;
+ private CleanRecordModelImpl model;
+
+ public CleanRecordPresenterImpl(ICleanToiletRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new CleanRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ addSubscription(model.sendRetrofitRequest(userId, keywords, beginDate, endDate));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(CleanRecordBean result) {
+ view.obtainCleanRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
new file mode 100644
index 0000000..2b9acdd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ICleanRecordPresenter {
+ void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
index d0313e9..e53c5ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
@@ -1,9 +1,17 @@
package com.casic.dcms.mvp.presenter;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+
+import com.casic.dcms.base.BaseApplication;
import com.casic.dcms.bean.ActionResultBean;
import com.casic.dcms.mvp.BasePresenter;
import com.casic.dcms.mvp.model.UploadImageModelImpl;
import com.casic.dcms.mvp.view.IUploadFileView;
+import com.casic.dcms.utils.ImageHelper;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.utils.callback.IWaterMarkAddListener;
import java.io.File;
@@ -20,7 +28,27 @@
@Override
public void onReadyRetrofitRequest(File file) {
view.showProgress();
- addSubscription(actionModel.sendRetrofitRequest(file));
+ //改为上传带水印的图片
+ Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
+ ImageHelper.drawTextToRightBottom(BaseApplication.getInstance(), bitmap,
+ StringHelper.getUserAccount(),
+ TimeOrDateUtil.timestampToDate(System.currentTimeMillis()),
+ TimeOrDateUtil.timestampToTime(System.currentTimeMillis()),
+ new IWaterMarkAddListener() {
+ @Override
+ public void onSuccess(File file) {
+ if (file != null) {
+ addSubscription(actionModel.sendRetrofitRequest(file));
+ } else {
+ view.obtainDataFail();
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ view.obtainDataFail();
+ }
+ });
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
new file mode 100644
index 0000000..9df83d9
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.CleanRecordBean;
+
+public interface ICleanToiletRecordView {
+ void obtainCleanRecordResult(CleanRecordBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
index f02a4d7..aac6084 100644
--- a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
+++ b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
@@ -59,7 +59,7 @@
noticeBean.setTitle(resultBean.getTitle());
noticeBean.setContent(resultBean.getContent());
noticeBean.setType(resultBean.getType());
- noticeBean.setPushDate(TimeOrDateUtil.timestampToDate("yyyy-MM-dd HH:mm:ss"));
+ noticeBean.setPushDate(TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()));
noticeBean.setIsRead("1");
//存本地一份
diff --git a/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java b/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
index 3d6ad31..b5a94e2 100644
--- a/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
@@ -11,11 +11,14 @@
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.content.ContextCompat;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.bumptech.glide.Glide;
import com.casic.dcms.R;
+import com.casic.dcms.utils.StatusBarColorUtil;
+import com.gyf.immersionbar.ImmersionBar;
import com.luck.picture.lib.photoview.PhotoView;
import org.jetbrains.annotations.NotNull;
@@ -40,8 +43,13 @@
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_big_image);
ButterKnife.bind(this);
-
+ setupTopBarLayout();
initEvent();
+ }
+
+ private void setupTopBarLayout() {
+ StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.black));
+ ImmersionBar.with(this).statusBarDarkFont(false).init();
leftBackView.setOnClickListener(v -> finish());
}
@@ -101,7 +109,7 @@
View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
PhotoView photoView = view.findViewById(R.id.photoView);
Glide.with(context).load(data.get(position)).into(photoView);
- photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ photoView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
container.addView(view);
//点击大图取消预览
photoView.setOnClickListener(v -> BigImageActivity.this.finish());
diff --git a/app/build.gradle b/app/build.gradle
index f5edb66..4e8aa5b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 15
- versionName "v1.0.0.7"
+ versionCode 16
+ versionName "v1.0.0.8"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
@@ -99,4 +99,6 @@
implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2'
//定位功能
implementation 'com.amap.api:location:5.3.1'
+ //图片压缩
+ implementation 'top.zibin:Luban:1.1.8'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c4a50de..6ea35aa 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,6 +80,8 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
new file mode 100644
index 0000000..4957e67
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
@@ -0,0 +1,81 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.CleanRecordBean;
+
+import java.util.List;
+
+public class RecordListAdapter extends RecyclerView.Adapter {
+
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+
+ public RecordListAdapter(Context context, List dataRows) {
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_record_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ if (clickListener != null) {
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+ static class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView workTimeView;
+ private TextView toiletNameView;
+ private TextView workerNameView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ workTimeView = itemView.findViewById(R.id.workTimeView);
+ toiletNameView = itemView.findViewById(R.id.toiletNameView);
+ workerNameView = itemView.findViewById(R.id.workerNameView);
+ }
+
+ void bindView(CleanRecordBean.DataBean.RowsBean rowsBean) {
+ workTimeView.setText(rowsBean.getCreateTime());
+ toiletNameView.setText(rowsBean.getToiletName().equals("") ? "未知" : rowsBean.getToiletName());
+ workerNameView.setText(rowsBean.getUserName().equals("") ? "未知" : rowsBean.getUserName());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
new file mode 100644
index 0000000..77c0fba
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
@@ -0,0 +1,202 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class CleanRecordBean {
+
+ /**
+ * code : 200.0
+ * data : {"rows":[{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}],"total":6}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ /**
+ * rows : [{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}]
+ * total : 6.0
+ */
+
+ private double total;
+ private List rows;
+
+ public double getTotal() {
+ return total;
+ }
+
+ public void setTotal(double total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * createTime : 2021-05-31
+ * defFlag : 0
+ * id : 1399290564295921665
+ * lat : 39.91570858
+ * lng : 116.26856423
+ * photo : 2021-05\9cd59072bb40498dba03e07db0d3f79c.png
+ * toiletId : 1120210531170001
+ * toiletName :
+ * updateTime : 2021-05-31
+ * userId : 1394828956022857730
+ * userName :
+ * workContent : 日常保洁
+ */
+
+ private String createTime;
+ private String defFlag;
+ private String id;
+ private String lat;
+ private String lng;
+ private String photo;
+ private String toiletId;
+ private String toiletName;
+ private String updateTime;
+ private String userId;
+ private String userName;
+ private String workContent;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDefFlag() {
+ return defFlag;
+ }
+
+ public void setDefFlag(String defFlag) {
+ this.defFlag = defFlag;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getPhoto() {
+ return photo;
+ }
+
+ public void setPhoto(String photo) {
+ this.photo = photo;
+ }
+
+ public String getToiletId() {
+ return toiletId;
+ }
+
+ public void setToiletId(String toiletId) {
+ this.toiletId = toiletId;
+ }
+
+ public String getToiletName() {
+ return toiletName;
+ }
+
+ public void setToiletName(String toiletName) {
+ this.toiletName = toiletName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getWorkContent() {
+ return workContent;
+ }
+
+ public void setWorkContent(String workContent) {
+ this.workContent = workContent;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
new file mode 100644
index 0000000..f50849c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class CleanRecordModelImpl implements ICleanRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public CleanRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(CleanRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ Observable observable = RetrofitServiceManager.getCleanRecordResult(userId, keywords, beginDate, endDate);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(CleanRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
new file mode 100644
index 0000000..3ffe8c4
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ICleanRecordModel {
+ Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
new file mode 100644
index 0000000..5b37216
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.CleanRecordModelImpl;
+import com.casic.dcms.mvp.view.ICleanToiletRecordView;
+
+public class CleanRecordPresenterImpl extends BasePresenter implements ICleanRecordPresenter, CleanRecordModelImpl.OnGetRecordListener {
+
+ private ICleanToiletRecordView view;
+ private CleanRecordModelImpl model;
+
+ public CleanRecordPresenterImpl(ICleanToiletRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new CleanRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ addSubscription(model.sendRetrofitRequest(userId, keywords, beginDate, endDate));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(CleanRecordBean result) {
+ view.obtainCleanRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
new file mode 100644
index 0000000..2b9acdd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ICleanRecordPresenter {
+ void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
index d0313e9..e53c5ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
@@ -1,9 +1,17 @@
package com.casic.dcms.mvp.presenter;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+
+import com.casic.dcms.base.BaseApplication;
import com.casic.dcms.bean.ActionResultBean;
import com.casic.dcms.mvp.BasePresenter;
import com.casic.dcms.mvp.model.UploadImageModelImpl;
import com.casic.dcms.mvp.view.IUploadFileView;
+import com.casic.dcms.utils.ImageHelper;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.utils.callback.IWaterMarkAddListener;
import java.io.File;
@@ -20,7 +28,27 @@
@Override
public void onReadyRetrofitRequest(File file) {
view.showProgress();
- addSubscription(actionModel.sendRetrofitRequest(file));
+ //改为上传带水印的图片
+ Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
+ ImageHelper.drawTextToRightBottom(BaseApplication.getInstance(), bitmap,
+ StringHelper.getUserAccount(),
+ TimeOrDateUtil.timestampToDate(System.currentTimeMillis()),
+ TimeOrDateUtil.timestampToTime(System.currentTimeMillis()),
+ new IWaterMarkAddListener() {
+ @Override
+ public void onSuccess(File file) {
+ if (file != null) {
+ addSubscription(actionModel.sendRetrofitRequest(file));
+ } else {
+ view.obtainDataFail();
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ view.obtainDataFail();
+ }
+ });
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
new file mode 100644
index 0000000..9df83d9
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.CleanRecordBean;
+
+public interface ICleanToiletRecordView {
+ void obtainCleanRecordResult(CleanRecordBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
index f02a4d7..aac6084 100644
--- a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
+++ b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
@@ -59,7 +59,7 @@
noticeBean.setTitle(resultBean.getTitle());
noticeBean.setContent(resultBean.getContent());
noticeBean.setType(resultBean.getType());
- noticeBean.setPushDate(TimeOrDateUtil.timestampToDate("yyyy-MM-dd HH:mm:ss"));
+ noticeBean.setPushDate(TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()));
noticeBean.setIsRead("1");
//存本地一份
diff --git a/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java b/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
index 3d6ad31..b5a94e2 100644
--- a/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
@@ -11,11 +11,14 @@
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.content.ContextCompat;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.bumptech.glide.Glide;
import com.casic.dcms.R;
+import com.casic.dcms.utils.StatusBarColorUtil;
+import com.gyf.immersionbar.ImmersionBar;
import com.luck.picture.lib.photoview.PhotoView;
import org.jetbrains.annotations.NotNull;
@@ -40,8 +43,13 @@
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_big_image);
ButterKnife.bind(this);
-
+ setupTopBarLayout();
initEvent();
+ }
+
+ private void setupTopBarLayout() {
+ StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.black));
+ ImmersionBar.with(this).statusBarDarkFont(false).init();
leftBackView.setOnClickListener(v -> finish());
}
@@ -101,7 +109,7 @@
View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
PhotoView photoView = view.findViewById(R.id.photoView);
Glide.with(context).load(data.get(position)).into(photoView);
- photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ photoView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
container.addView(view);
//点击大图取消预览
photoView.setOnClickListener(v -> BigImageActivity.this.finish());
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index f69c6cf..2d0c0af 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -33,7 +33,6 @@
import com.casic.dcms.ui.fragment.check.CaseCheckFragment;
import com.casic.dcms.ui.fragment.check.CaseCheckedFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.JzExoMedia;
@@ -235,9 +234,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -246,9 +242,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -260,13 +253,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
default:
break;
diff --git a/app/build.gradle b/app/build.gradle
index f5edb66..4e8aa5b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 15
- versionName "v1.0.0.7"
+ versionCode 16
+ versionName "v1.0.0.8"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
@@ -99,4 +99,6 @@
implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2'
//定位功能
implementation 'com.amap.api:location:5.3.1'
+ //图片压缩
+ implementation 'top.zibin:Luban:1.1.8'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c4a50de..6ea35aa 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,6 +80,8 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
new file mode 100644
index 0000000..4957e67
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
@@ -0,0 +1,81 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.CleanRecordBean;
+
+import java.util.List;
+
+public class RecordListAdapter extends RecyclerView.Adapter {
+
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+
+ public RecordListAdapter(Context context, List dataRows) {
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_record_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ if (clickListener != null) {
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+ static class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView workTimeView;
+ private TextView toiletNameView;
+ private TextView workerNameView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ workTimeView = itemView.findViewById(R.id.workTimeView);
+ toiletNameView = itemView.findViewById(R.id.toiletNameView);
+ workerNameView = itemView.findViewById(R.id.workerNameView);
+ }
+
+ void bindView(CleanRecordBean.DataBean.RowsBean rowsBean) {
+ workTimeView.setText(rowsBean.getCreateTime());
+ toiletNameView.setText(rowsBean.getToiletName().equals("") ? "未知" : rowsBean.getToiletName());
+ workerNameView.setText(rowsBean.getUserName().equals("") ? "未知" : rowsBean.getUserName());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
new file mode 100644
index 0000000..77c0fba
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
@@ -0,0 +1,202 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class CleanRecordBean {
+
+ /**
+ * code : 200.0
+ * data : {"rows":[{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}],"total":6}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ /**
+ * rows : [{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}]
+ * total : 6.0
+ */
+
+ private double total;
+ private List rows;
+
+ public double getTotal() {
+ return total;
+ }
+
+ public void setTotal(double total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * createTime : 2021-05-31
+ * defFlag : 0
+ * id : 1399290564295921665
+ * lat : 39.91570858
+ * lng : 116.26856423
+ * photo : 2021-05\9cd59072bb40498dba03e07db0d3f79c.png
+ * toiletId : 1120210531170001
+ * toiletName :
+ * updateTime : 2021-05-31
+ * userId : 1394828956022857730
+ * userName :
+ * workContent : 日常保洁
+ */
+
+ private String createTime;
+ private String defFlag;
+ private String id;
+ private String lat;
+ private String lng;
+ private String photo;
+ private String toiletId;
+ private String toiletName;
+ private String updateTime;
+ private String userId;
+ private String userName;
+ private String workContent;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDefFlag() {
+ return defFlag;
+ }
+
+ public void setDefFlag(String defFlag) {
+ this.defFlag = defFlag;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getPhoto() {
+ return photo;
+ }
+
+ public void setPhoto(String photo) {
+ this.photo = photo;
+ }
+
+ public String getToiletId() {
+ return toiletId;
+ }
+
+ public void setToiletId(String toiletId) {
+ this.toiletId = toiletId;
+ }
+
+ public String getToiletName() {
+ return toiletName;
+ }
+
+ public void setToiletName(String toiletName) {
+ this.toiletName = toiletName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getWorkContent() {
+ return workContent;
+ }
+
+ public void setWorkContent(String workContent) {
+ this.workContent = workContent;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
new file mode 100644
index 0000000..f50849c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class CleanRecordModelImpl implements ICleanRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public CleanRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(CleanRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ Observable observable = RetrofitServiceManager.getCleanRecordResult(userId, keywords, beginDate, endDate);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(CleanRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
new file mode 100644
index 0000000..3ffe8c4
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ICleanRecordModel {
+ Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
new file mode 100644
index 0000000..5b37216
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.CleanRecordModelImpl;
+import com.casic.dcms.mvp.view.ICleanToiletRecordView;
+
+public class CleanRecordPresenterImpl extends BasePresenter implements ICleanRecordPresenter, CleanRecordModelImpl.OnGetRecordListener {
+
+ private ICleanToiletRecordView view;
+ private CleanRecordModelImpl model;
+
+ public CleanRecordPresenterImpl(ICleanToiletRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new CleanRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ addSubscription(model.sendRetrofitRequest(userId, keywords, beginDate, endDate));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(CleanRecordBean result) {
+ view.obtainCleanRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
new file mode 100644
index 0000000..2b9acdd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ICleanRecordPresenter {
+ void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
index d0313e9..e53c5ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
@@ -1,9 +1,17 @@
package com.casic.dcms.mvp.presenter;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+
+import com.casic.dcms.base.BaseApplication;
import com.casic.dcms.bean.ActionResultBean;
import com.casic.dcms.mvp.BasePresenter;
import com.casic.dcms.mvp.model.UploadImageModelImpl;
import com.casic.dcms.mvp.view.IUploadFileView;
+import com.casic.dcms.utils.ImageHelper;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.utils.callback.IWaterMarkAddListener;
import java.io.File;
@@ -20,7 +28,27 @@
@Override
public void onReadyRetrofitRequest(File file) {
view.showProgress();
- addSubscription(actionModel.sendRetrofitRequest(file));
+ //改为上传带水印的图片
+ Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
+ ImageHelper.drawTextToRightBottom(BaseApplication.getInstance(), bitmap,
+ StringHelper.getUserAccount(),
+ TimeOrDateUtil.timestampToDate(System.currentTimeMillis()),
+ TimeOrDateUtil.timestampToTime(System.currentTimeMillis()),
+ new IWaterMarkAddListener() {
+ @Override
+ public void onSuccess(File file) {
+ if (file != null) {
+ addSubscription(actionModel.sendRetrofitRequest(file));
+ } else {
+ view.obtainDataFail();
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ view.obtainDataFail();
+ }
+ });
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
new file mode 100644
index 0000000..9df83d9
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.CleanRecordBean;
+
+public interface ICleanToiletRecordView {
+ void obtainCleanRecordResult(CleanRecordBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
index f02a4d7..aac6084 100644
--- a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
+++ b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
@@ -59,7 +59,7 @@
noticeBean.setTitle(resultBean.getTitle());
noticeBean.setContent(resultBean.getContent());
noticeBean.setType(resultBean.getType());
- noticeBean.setPushDate(TimeOrDateUtil.timestampToDate("yyyy-MM-dd HH:mm:ss"));
+ noticeBean.setPushDate(TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()));
noticeBean.setIsRead("1");
//存本地一份
diff --git a/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java b/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
index 3d6ad31..b5a94e2 100644
--- a/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
@@ -11,11 +11,14 @@
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.content.ContextCompat;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.bumptech.glide.Glide;
import com.casic.dcms.R;
+import com.casic.dcms.utils.StatusBarColorUtil;
+import com.gyf.immersionbar.ImmersionBar;
import com.luck.picture.lib.photoview.PhotoView;
import org.jetbrains.annotations.NotNull;
@@ -40,8 +43,13 @@
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_big_image);
ButterKnife.bind(this);
-
+ setupTopBarLayout();
initEvent();
+ }
+
+ private void setupTopBarLayout() {
+ StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.black));
+ ImmersionBar.with(this).statusBarDarkFont(false).init();
leftBackView.setOnClickListener(v -> finish());
}
@@ -101,7 +109,7 @@
View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
PhotoView photoView = view.findViewById(R.id.photoView);
Glide.with(context).load(data.get(position)).into(photoView);
- photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ photoView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
container.addView(view);
//点击大图取消预览
photoView.setOnClickListener(v -> BigImageActivity.this.finish());
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index f69c6cf..2d0c0af 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -33,7 +33,6 @@
import com.casic.dcms.ui.fragment.check.CaseCheckFragment;
import com.casic.dcms.ui.fragment.check.CaseCheckedFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.JzExoMedia;
@@ -235,9 +234,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -246,9 +242,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -260,13 +253,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
default:
break;
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 62413d2..90a578a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -37,7 +37,6 @@
import com.casic.dcms.ui.fragment.handle.OvertimeCaseFragment;
import com.casic.dcms.ui.fragment.handle.UrgentCaseFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.JzExoMedia;
@@ -126,7 +125,7 @@
private UploadImagePresenterImpl uploadImagePresenter;
private CaseHandlePresenterImpl caseHandlePresenter;
private MediaPlayer mediaPlayer;
- private QMUITipDialog submitDialog;
+ private QMUITipDialog submitDialog, loadingDialog;
private ImageRecycleViewAdapter handleImageAdapter;//处理图片的adapter
@Override
@@ -367,9 +366,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -378,9 +374,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -392,13 +385,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
default:
break;
diff --git a/app/build.gradle b/app/build.gradle
index f5edb66..4e8aa5b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 15
- versionName "v1.0.0.7"
+ versionCode 16
+ versionName "v1.0.0.8"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
@@ -99,4 +99,6 @@
implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2'
//定位功能
implementation 'com.amap.api:location:5.3.1'
+ //图片压缩
+ implementation 'top.zibin:Luban:1.1.8'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c4a50de..6ea35aa 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,6 +80,8 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
new file mode 100644
index 0000000..4957e67
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
@@ -0,0 +1,81 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.CleanRecordBean;
+
+import java.util.List;
+
+public class RecordListAdapter extends RecyclerView.Adapter {
+
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+
+ public RecordListAdapter(Context context, List dataRows) {
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_record_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ if (clickListener != null) {
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+ static class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView workTimeView;
+ private TextView toiletNameView;
+ private TextView workerNameView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ workTimeView = itemView.findViewById(R.id.workTimeView);
+ toiletNameView = itemView.findViewById(R.id.toiletNameView);
+ workerNameView = itemView.findViewById(R.id.workerNameView);
+ }
+
+ void bindView(CleanRecordBean.DataBean.RowsBean rowsBean) {
+ workTimeView.setText(rowsBean.getCreateTime());
+ toiletNameView.setText(rowsBean.getToiletName().equals("") ? "未知" : rowsBean.getToiletName());
+ workerNameView.setText(rowsBean.getUserName().equals("") ? "未知" : rowsBean.getUserName());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
new file mode 100644
index 0000000..77c0fba
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
@@ -0,0 +1,202 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class CleanRecordBean {
+
+ /**
+ * code : 200.0
+ * data : {"rows":[{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}],"total":6}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ /**
+ * rows : [{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}]
+ * total : 6.0
+ */
+
+ private double total;
+ private List rows;
+
+ public double getTotal() {
+ return total;
+ }
+
+ public void setTotal(double total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * createTime : 2021-05-31
+ * defFlag : 0
+ * id : 1399290564295921665
+ * lat : 39.91570858
+ * lng : 116.26856423
+ * photo : 2021-05\9cd59072bb40498dba03e07db0d3f79c.png
+ * toiletId : 1120210531170001
+ * toiletName :
+ * updateTime : 2021-05-31
+ * userId : 1394828956022857730
+ * userName :
+ * workContent : 日常保洁
+ */
+
+ private String createTime;
+ private String defFlag;
+ private String id;
+ private String lat;
+ private String lng;
+ private String photo;
+ private String toiletId;
+ private String toiletName;
+ private String updateTime;
+ private String userId;
+ private String userName;
+ private String workContent;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDefFlag() {
+ return defFlag;
+ }
+
+ public void setDefFlag(String defFlag) {
+ this.defFlag = defFlag;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getPhoto() {
+ return photo;
+ }
+
+ public void setPhoto(String photo) {
+ this.photo = photo;
+ }
+
+ public String getToiletId() {
+ return toiletId;
+ }
+
+ public void setToiletId(String toiletId) {
+ this.toiletId = toiletId;
+ }
+
+ public String getToiletName() {
+ return toiletName;
+ }
+
+ public void setToiletName(String toiletName) {
+ this.toiletName = toiletName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getWorkContent() {
+ return workContent;
+ }
+
+ public void setWorkContent(String workContent) {
+ this.workContent = workContent;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
new file mode 100644
index 0000000..f50849c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class CleanRecordModelImpl implements ICleanRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public CleanRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(CleanRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ Observable observable = RetrofitServiceManager.getCleanRecordResult(userId, keywords, beginDate, endDate);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(CleanRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
new file mode 100644
index 0000000..3ffe8c4
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ICleanRecordModel {
+ Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
new file mode 100644
index 0000000..5b37216
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.CleanRecordModelImpl;
+import com.casic.dcms.mvp.view.ICleanToiletRecordView;
+
+public class CleanRecordPresenterImpl extends BasePresenter implements ICleanRecordPresenter, CleanRecordModelImpl.OnGetRecordListener {
+
+ private ICleanToiletRecordView view;
+ private CleanRecordModelImpl model;
+
+ public CleanRecordPresenterImpl(ICleanToiletRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new CleanRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ addSubscription(model.sendRetrofitRequest(userId, keywords, beginDate, endDate));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(CleanRecordBean result) {
+ view.obtainCleanRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
new file mode 100644
index 0000000..2b9acdd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ICleanRecordPresenter {
+ void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
index d0313e9..e53c5ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
@@ -1,9 +1,17 @@
package com.casic.dcms.mvp.presenter;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+
+import com.casic.dcms.base.BaseApplication;
import com.casic.dcms.bean.ActionResultBean;
import com.casic.dcms.mvp.BasePresenter;
import com.casic.dcms.mvp.model.UploadImageModelImpl;
import com.casic.dcms.mvp.view.IUploadFileView;
+import com.casic.dcms.utils.ImageHelper;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.utils.callback.IWaterMarkAddListener;
import java.io.File;
@@ -20,7 +28,27 @@
@Override
public void onReadyRetrofitRequest(File file) {
view.showProgress();
- addSubscription(actionModel.sendRetrofitRequest(file));
+ //改为上传带水印的图片
+ Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
+ ImageHelper.drawTextToRightBottom(BaseApplication.getInstance(), bitmap,
+ StringHelper.getUserAccount(),
+ TimeOrDateUtil.timestampToDate(System.currentTimeMillis()),
+ TimeOrDateUtil.timestampToTime(System.currentTimeMillis()),
+ new IWaterMarkAddListener() {
+ @Override
+ public void onSuccess(File file) {
+ if (file != null) {
+ addSubscription(actionModel.sendRetrofitRequest(file));
+ } else {
+ view.obtainDataFail();
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ view.obtainDataFail();
+ }
+ });
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
new file mode 100644
index 0000000..9df83d9
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.CleanRecordBean;
+
+public interface ICleanToiletRecordView {
+ void obtainCleanRecordResult(CleanRecordBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
index f02a4d7..aac6084 100644
--- a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
+++ b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
@@ -59,7 +59,7 @@
noticeBean.setTitle(resultBean.getTitle());
noticeBean.setContent(resultBean.getContent());
noticeBean.setType(resultBean.getType());
- noticeBean.setPushDate(TimeOrDateUtil.timestampToDate("yyyy-MM-dd HH:mm:ss"));
+ noticeBean.setPushDate(TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()));
noticeBean.setIsRead("1");
//存本地一份
diff --git a/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java b/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
index 3d6ad31..b5a94e2 100644
--- a/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
@@ -11,11 +11,14 @@
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.content.ContextCompat;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.bumptech.glide.Glide;
import com.casic.dcms.R;
+import com.casic.dcms.utils.StatusBarColorUtil;
+import com.gyf.immersionbar.ImmersionBar;
import com.luck.picture.lib.photoview.PhotoView;
import org.jetbrains.annotations.NotNull;
@@ -40,8 +43,13 @@
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_big_image);
ButterKnife.bind(this);
-
+ setupTopBarLayout();
initEvent();
+ }
+
+ private void setupTopBarLayout() {
+ StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.black));
+ ImmersionBar.with(this).statusBarDarkFont(false).init();
leftBackView.setOnClickListener(v -> finish());
}
@@ -101,7 +109,7 @@
View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
PhotoView photoView = view.findViewById(R.id.photoView);
Glide.with(context).load(data.get(position)).into(photoView);
- photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ photoView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
container.addView(view);
//点击大图取消预览
photoView.setOnClickListener(v -> BigImageActivity.this.finish());
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index f69c6cf..2d0c0af 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -33,7 +33,6 @@
import com.casic.dcms.ui.fragment.check.CaseCheckFragment;
import com.casic.dcms.ui.fragment.check.CaseCheckedFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.JzExoMedia;
@@ -235,9 +234,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -246,9 +242,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -260,13 +253,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
default:
break;
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 62413d2..90a578a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -37,7 +37,6 @@
import com.casic.dcms.ui.fragment.handle.OvertimeCaseFragment;
import com.casic.dcms.ui.fragment.handle.UrgentCaseFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.JzExoMedia;
@@ -126,7 +125,7 @@
private UploadImagePresenterImpl uploadImagePresenter;
private CaseHandlePresenterImpl caseHandlePresenter;
private MediaPlayer mediaPlayer;
- private QMUITipDialog submitDialog;
+ private QMUITipDialog submitDialog, loadingDialog;
private ImageRecycleViewAdapter handleImageAdapter;//处理图片的adapter
@Override
@@ -367,9 +366,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -378,9 +374,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -392,13 +385,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
default:
break;
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
index 67144b6..5ab5294 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
@@ -29,7 +29,6 @@
import com.casic.dcms.mvp.view.ICaseCheckView;
import com.casic.dcms.mvp.view.ICaseHandleListView;
import com.casic.dcms.mvp.view.ICaseVerifyView;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
@@ -239,25 +238,25 @@
private void resetRadioButton(int index) {
switch (index) {
case 0:
- handleRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.white));
- verifyRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
- checkRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
+ handleRadioButton.setTextColor(ContextCompat.getColor(this, R.color.white));
+ verifyRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ checkRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
//请求处置中数据
caseHandleListPresenter.onReadyRetrofitRequest(null, null, 1000, 1);
break;
case 1:
- verifyRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.white));
- handleRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
- checkRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
+ verifyRadioButton.setTextColor(ContextCompat.getColor(this, R.color.white));
+ handleRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ checkRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
//请求待核实数据
caseVerifyPresenter.onReadyRetrofitRequest(1000, 1);
break;
case 2:
- checkRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.white));
- verifyRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
- handleRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
+ checkRadioButton.setTextColor(ContextCompat.getColor(this, R.color.white));
+ verifyRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ handleRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
//请求待核查数据
caseCheckPresenter.onReadyRetrofitRequest(1000, 1);
diff --git a/app/build.gradle b/app/build.gradle
index f5edb66..4e8aa5b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 15
- versionName "v1.0.0.7"
+ versionCode 16
+ versionName "v1.0.0.8"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
@@ -99,4 +99,6 @@
implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2'
//定位功能
implementation 'com.amap.api:location:5.3.1'
+ //图片压缩
+ implementation 'top.zibin:Luban:1.1.8'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c4a50de..6ea35aa 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,6 +80,8 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
new file mode 100644
index 0000000..4957e67
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
@@ -0,0 +1,81 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.CleanRecordBean;
+
+import java.util.List;
+
+public class RecordListAdapter extends RecyclerView.Adapter {
+
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+
+ public RecordListAdapter(Context context, List dataRows) {
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_record_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ if (clickListener != null) {
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+ static class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView workTimeView;
+ private TextView toiletNameView;
+ private TextView workerNameView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ workTimeView = itemView.findViewById(R.id.workTimeView);
+ toiletNameView = itemView.findViewById(R.id.toiletNameView);
+ workerNameView = itemView.findViewById(R.id.workerNameView);
+ }
+
+ void bindView(CleanRecordBean.DataBean.RowsBean rowsBean) {
+ workTimeView.setText(rowsBean.getCreateTime());
+ toiletNameView.setText(rowsBean.getToiletName().equals("") ? "未知" : rowsBean.getToiletName());
+ workerNameView.setText(rowsBean.getUserName().equals("") ? "未知" : rowsBean.getUserName());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
new file mode 100644
index 0000000..77c0fba
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
@@ -0,0 +1,202 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class CleanRecordBean {
+
+ /**
+ * code : 200.0
+ * data : {"rows":[{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}],"total":6}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ /**
+ * rows : [{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}]
+ * total : 6.0
+ */
+
+ private double total;
+ private List rows;
+
+ public double getTotal() {
+ return total;
+ }
+
+ public void setTotal(double total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * createTime : 2021-05-31
+ * defFlag : 0
+ * id : 1399290564295921665
+ * lat : 39.91570858
+ * lng : 116.26856423
+ * photo : 2021-05\9cd59072bb40498dba03e07db0d3f79c.png
+ * toiletId : 1120210531170001
+ * toiletName :
+ * updateTime : 2021-05-31
+ * userId : 1394828956022857730
+ * userName :
+ * workContent : 日常保洁
+ */
+
+ private String createTime;
+ private String defFlag;
+ private String id;
+ private String lat;
+ private String lng;
+ private String photo;
+ private String toiletId;
+ private String toiletName;
+ private String updateTime;
+ private String userId;
+ private String userName;
+ private String workContent;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDefFlag() {
+ return defFlag;
+ }
+
+ public void setDefFlag(String defFlag) {
+ this.defFlag = defFlag;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getPhoto() {
+ return photo;
+ }
+
+ public void setPhoto(String photo) {
+ this.photo = photo;
+ }
+
+ public String getToiletId() {
+ return toiletId;
+ }
+
+ public void setToiletId(String toiletId) {
+ this.toiletId = toiletId;
+ }
+
+ public String getToiletName() {
+ return toiletName;
+ }
+
+ public void setToiletName(String toiletName) {
+ this.toiletName = toiletName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getWorkContent() {
+ return workContent;
+ }
+
+ public void setWorkContent(String workContent) {
+ this.workContent = workContent;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
new file mode 100644
index 0000000..f50849c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class CleanRecordModelImpl implements ICleanRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public CleanRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(CleanRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ Observable observable = RetrofitServiceManager.getCleanRecordResult(userId, keywords, beginDate, endDate);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(CleanRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
new file mode 100644
index 0000000..3ffe8c4
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ICleanRecordModel {
+ Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
new file mode 100644
index 0000000..5b37216
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.CleanRecordModelImpl;
+import com.casic.dcms.mvp.view.ICleanToiletRecordView;
+
+public class CleanRecordPresenterImpl extends BasePresenter implements ICleanRecordPresenter, CleanRecordModelImpl.OnGetRecordListener {
+
+ private ICleanToiletRecordView view;
+ private CleanRecordModelImpl model;
+
+ public CleanRecordPresenterImpl(ICleanToiletRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new CleanRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ addSubscription(model.sendRetrofitRequest(userId, keywords, beginDate, endDate));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(CleanRecordBean result) {
+ view.obtainCleanRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
new file mode 100644
index 0000000..2b9acdd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ICleanRecordPresenter {
+ void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
index d0313e9..e53c5ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
@@ -1,9 +1,17 @@
package com.casic.dcms.mvp.presenter;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+
+import com.casic.dcms.base.BaseApplication;
import com.casic.dcms.bean.ActionResultBean;
import com.casic.dcms.mvp.BasePresenter;
import com.casic.dcms.mvp.model.UploadImageModelImpl;
import com.casic.dcms.mvp.view.IUploadFileView;
+import com.casic.dcms.utils.ImageHelper;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.utils.callback.IWaterMarkAddListener;
import java.io.File;
@@ -20,7 +28,27 @@
@Override
public void onReadyRetrofitRequest(File file) {
view.showProgress();
- addSubscription(actionModel.sendRetrofitRequest(file));
+ //改为上传带水印的图片
+ Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
+ ImageHelper.drawTextToRightBottom(BaseApplication.getInstance(), bitmap,
+ StringHelper.getUserAccount(),
+ TimeOrDateUtil.timestampToDate(System.currentTimeMillis()),
+ TimeOrDateUtil.timestampToTime(System.currentTimeMillis()),
+ new IWaterMarkAddListener() {
+ @Override
+ public void onSuccess(File file) {
+ if (file != null) {
+ addSubscription(actionModel.sendRetrofitRequest(file));
+ } else {
+ view.obtainDataFail();
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ view.obtainDataFail();
+ }
+ });
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
new file mode 100644
index 0000000..9df83d9
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.CleanRecordBean;
+
+public interface ICleanToiletRecordView {
+ void obtainCleanRecordResult(CleanRecordBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
index f02a4d7..aac6084 100644
--- a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
+++ b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
@@ -59,7 +59,7 @@
noticeBean.setTitle(resultBean.getTitle());
noticeBean.setContent(resultBean.getContent());
noticeBean.setType(resultBean.getType());
- noticeBean.setPushDate(TimeOrDateUtil.timestampToDate("yyyy-MM-dd HH:mm:ss"));
+ noticeBean.setPushDate(TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()));
noticeBean.setIsRead("1");
//存本地一份
diff --git a/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java b/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
index 3d6ad31..b5a94e2 100644
--- a/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
@@ -11,11 +11,14 @@
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.content.ContextCompat;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.bumptech.glide.Glide;
import com.casic.dcms.R;
+import com.casic.dcms.utils.StatusBarColorUtil;
+import com.gyf.immersionbar.ImmersionBar;
import com.luck.picture.lib.photoview.PhotoView;
import org.jetbrains.annotations.NotNull;
@@ -40,8 +43,13 @@
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_big_image);
ButterKnife.bind(this);
-
+ setupTopBarLayout();
initEvent();
+ }
+
+ private void setupTopBarLayout() {
+ StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.black));
+ ImmersionBar.with(this).statusBarDarkFont(false).init();
leftBackView.setOnClickListener(v -> finish());
}
@@ -101,7 +109,7 @@
View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
PhotoView photoView = view.findViewById(R.id.photoView);
Glide.with(context).load(data.get(position)).into(photoView);
- photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ photoView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
container.addView(view);
//点击大图取消预览
photoView.setOnClickListener(v -> BigImageActivity.this.finish());
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index f69c6cf..2d0c0af 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -33,7 +33,6 @@
import com.casic.dcms.ui.fragment.check.CaseCheckFragment;
import com.casic.dcms.ui.fragment.check.CaseCheckedFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.JzExoMedia;
@@ -235,9 +234,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -246,9 +242,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -260,13 +253,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
default:
break;
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 62413d2..90a578a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -37,7 +37,6 @@
import com.casic.dcms.ui.fragment.handle.OvertimeCaseFragment;
import com.casic.dcms.ui.fragment.handle.UrgentCaseFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.JzExoMedia;
@@ -126,7 +125,7 @@
private UploadImagePresenterImpl uploadImagePresenter;
private CaseHandlePresenterImpl caseHandlePresenter;
private MediaPlayer mediaPlayer;
- private QMUITipDialog submitDialog;
+ private QMUITipDialog submitDialog, loadingDialog;
private ImageRecycleViewAdapter handleImageAdapter;//处理图片的adapter
@Override
@@ -367,9 +366,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -378,9 +374,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -392,13 +385,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
default:
break;
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
index 67144b6..5ab5294 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
@@ -29,7 +29,6 @@
import com.casic.dcms.mvp.view.ICaseCheckView;
import com.casic.dcms.mvp.view.ICaseHandleListView;
import com.casic.dcms.mvp.view.ICaseVerifyView;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
@@ -239,25 +238,25 @@
private void resetRadioButton(int index) {
switch (index) {
case 0:
- handleRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.white));
- verifyRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
- checkRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
+ handleRadioButton.setTextColor(ContextCompat.getColor(this, R.color.white));
+ verifyRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ checkRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
//请求处置中数据
caseHandleListPresenter.onReadyRetrofitRequest(null, null, 1000, 1);
break;
case 1:
- verifyRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.white));
- handleRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
- checkRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
+ verifyRadioButton.setTextColor(ContextCompat.getColor(this, R.color.white));
+ handleRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ checkRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
//请求待核实数据
caseVerifyPresenter.onReadyRetrofitRequest(1000, 1);
break;
case 2:
- checkRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.white));
- verifyRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
- handleRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
+ checkRadioButton.setTextColor(ContextCompat.getColor(this, R.color.white));
+ verifyRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ handleRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
//请求待核查数据
caseCheckPresenter.onReadyRetrofitRequest(1000, 1);
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java
index 568a21f..111a834 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java
@@ -18,7 +18,6 @@
import com.casic.dcms.mvp.view.ICaseLargeClassView;
import com.casic.dcms.mvp.view.ICaseSmallClassView;
import com.casic.dcms.mvp.view.ICaseStatusView;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.TimeOrDateUtil;
import com.jzxiang.pickerview.TimePickerDialog;
@@ -114,7 +113,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseClassView.setText(tag);
- caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
eorc = String.valueOf(position + 1);
//获取案卷大类
@@ -136,7 +135,7 @@
dialog.dismiss();
caseLargeClassView.setText(tag);
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷小类
CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position);
@@ -162,7 +161,7 @@
dialog.dismiss();
caseSmallClassView.setText(tag);
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
typeDetailCode = smallClassBeans.get(position).getTypeDetailCode();
}
}).build().show();
@@ -173,7 +172,7 @@
caseStatusPresenter.onReadyRetrofitRequest();
break;
case R.id.selectStartDateView:
- new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor))
+ new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor))
.setTitleStringId("请选择处理时间")
.setWheelItemTextSize(16)
.setCyclic(false)
@@ -181,14 +180,14 @@
.setMaxMillseconds(System.currentTimeMillis())
.setType(Type.YEAR_MONTH_DAY)
.setCallBack((timePickerView, millSeconds) -> {
- String date = TimeOrDateUtil.timestampToDate("yyyy-MM-dd");
+ String date = TimeOrDateUtil.timestampToDate(millSeconds);
startTimeView.setText(date);
- startTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ startTimeView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
}).build().show(getSupportFragmentManager(), "year_month_day");
break;
case R.id.selectEndDateView:
- new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor))
+ new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor))
.setTitleStringId("请选择截止时间")
.setWheelItemTextSize(16)
.setCyclic(false)
@@ -196,10 +195,10 @@
.setMaxMillseconds(System.currentTimeMillis())
.setType(Type.YEAR_MONTH_DAY)
.setCallBack((timePickerView, millSeconds) -> {
- String date = TimeOrDateUtil.timestampToDate("yyy-MM-dd");
+ String date = TimeOrDateUtil.timestampToDate(millSeconds);
endTimeView.setText(date);
- endTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ endTimeView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
}).build().show(getSupportFragmentManager(), "year_month_day");
break;
case R.id.searchButton:
@@ -247,10 +246,10 @@
} else {
caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个
}
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
caseSmallClassView.setText("请选择");
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -264,7 +263,7 @@
} else {
caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个
}
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -285,7 +284,7 @@
caseState = beans.get(position).getValue();
caseStatusView.setText(tag);
- caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseStatusView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
}
}).build().show();
}
diff --git a/app/build.gradle b/app/build.gradle
index f5edb66..4e8aa5b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 15
- versionName "v1.0.0.7"
+ versionCode 16
+ versionName "v1.0.0.8"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
@@ -99,4 +99,6 @@
implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2'
//定位功能
implementation 'com.amap.api:location:5.3.1'
+ //图片压缩
+ implementation 'top.zibin:Luban:1.1.8'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c4a50de..6ea35aa 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,6 +80,8 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
new file mode 100644
index 0000000..4957e67
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
@@ -0,0 +1,81 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.CleanRecordBean;
+
+import java.util.List;
+
+public class RecordListAdapter extends RecyclerView.Adapter {
+
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+
+ public RecordListAdapter(Context context, List dataRows) {
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_record_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ if (clickListener != null) {
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+ static class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView workTimeView;
+ private TextView toiletNameView;
+ private TextView workerNameView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ workTimeView = itemView.findViewById(R.id.workTimeView);
+ toiletNameView = itemView.findViewById(R.id.toiletNameView);
+ workerNameView = itemView.findViewById(R.id.workerNameView);
+ }
+
+ void bindView(CleanRecordBean.DataBean.RowsBean rowsBean) {
+ workTimeView.setText(rowsBean.getCreateTime());
+ toiletNameView.setText(rowsBean.getToiletName().equals("") ? "未知" : rowsBean.getToiletName());
+ workerNameView.setText(rowsBean.getUserName().equals("") ? "未知" : rowsBean.getUserName());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
new file mode 100644
index 0000000..77c0fba
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
@@ -0,0 +1,202 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class CleanRecordBean {
+
+ /**
+ * code : 200.0
+ * data : {"rows":[{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}],"total":6}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ /**
+ * rows : [{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}]
+ * total : 6.0
+ */
+
+ private double total;
+ private List rows;
+
+ public double getTotal() {
+ return total;
+ }
+
+ public void setTotal(double total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * createTime : 2021-05-31
+ * defFlag : 0
+ * id : 1399290564295921665
+ * lat : 39.91570858
+ * lng : 116.26856423
+ * photo : 2021-05\9cd59072bb40498dba03e07db0d3f79c.png
+ * toiletId : 1120210531170001
+ * toiletName :
+ * updateTime : 2021-05-31
+ * userId : 1394828956022857730
+ * userName :
+ * workContent : 日常保洁
+ */
+
+ private String createTime;
+ private String defFlag;
+ private String id;
+ private String lat;
+ private String lng;
+ private String photo;
+ private String toiletId;
+ private String toiletName;
+ private String updateTime;
+ private String userId;
+ private String userName;
+ private String workContent;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDefFlag() {
+ return defFlag;
+ }
+
+ public void setDefFlag(String defFlag) {
+ this.defFlag = defFlag;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getPhoto() {
+ return photo;
+ }
+
+ public void setPhoto(String photo) {
+ this.photo = photo;
+ }
+
+ public String getToiletId() {
+ return toiletId;
+ }
+
+ public void setToiletId(String toiletId) {
+ this.toiletId = toiletId;
+ }
+
+ public String getToiletName() {
+ return toiletName;
+ }
+
+ public void setToiletName(String toiletName) {
+ this.toiletName = toiletName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getWorkContent() {
+ return workContent;
+ }
+
+ public void setWorkContent(String workContent) {
+ this.workContent = workContent;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
new file mode 100644
index 0000000..f50849c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class CleanRecordModelImpl implements ICleanRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public CleanRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(CleanRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ Observable observable = RetrofitServiceManager.getCleanRecordResult(userId, keywords, beginDate, endDate);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(CleanRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
new file mode 100644
index 0000000..3ffe8c4
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ICleanRecordModel {
+ Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
new file mode 100644
index 0000000..5b37216
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.CleanRecordModelImpl;
+import com.casic.dcms.mvp.view.ICleanToiletRecordView;
+
+public class CleanRecordPresenterImpl extends BasePresenter implements ICleanRecordPresenter, CleanRecordModelImpl.OnGetRecordListener {
+
+ private ICleanToiletRecordView view;
+ private CleanRecordModelImpl model;
+
+ public CleanRecordPresenterImpl(ICleanToiletRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new CleanRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ addSubscription(model.sendRetrofitRequest(userId, keywords, beginDate, endDate));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(CleanRecordBean result) {
+ view.obtainCleanRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
new file mode 100644
index 0000000..2b9acdd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ICleanRecordPresenter {
+ void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
index d0313e9..e53c5ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
@@ -1,9 +1,17 @@
package com.casic.dcms.mvp.presenter;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+
+import com.casic.dcms.base.BaseApplication;
import com.casic.dcms.bean.ActionResultBean;
import com.casic.dcms.mvp.BasePresenter;
import com.casic.dcms.mvp.model.UploadImageModelImpl;
import com.casic.dcms.mvp.view.IUploadFileView;
+import com.casic.dcms.utils.ImageHelper;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.utils.callback.IWaterMarkAddListener;
import java.io.File;
@@ -20,7 +28,27 @@
@Override
public void onReadyRetrofitRequest(File file) {
view.showProgress();
- addSubscription(actionModel.sendRetrofitRequest(file));
+ //改为上传带水印的图片
+ Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
+ ImageHelper.drawTextToRightBottom(BaseApplication.getInstance(), bitmap,
+ StringHelper.getUserAccount(),
+ TimeOrDateUtil.timestampToDate(System.currentTimeMillis()),
+ TimeOrDateUtil.timestampToTime(System.currentTimeMillis()),
+ new IWaterMarkAddListener() {
+ @Override
+ public void onSuccess(File file) {
+ if (file != null) {
+ addSubscription(actionModel.sendRetrofitRequest(file));
+ } else {
+ view.obtainDataFail();
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ view.obtainDataFail();
+ }
+ });
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
new file mode 100644
index 0000000..9df83d9
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.CleanRecordBean;
+
+public interface ICleanToiletRecordView {
+ void obtainCleanRecordResult(CleanRecordBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
index f02a4d7..aac6084 100644
--- a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
+++ b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
@@ -59,7 +59,7 @@
noticeBean.setTitle(resultBean.getTitle());
noticeBean.setContent(resultBean.getContent());
noticeBean.setType(resultBean.getType());
- noticeBean.setPushDate(TimeOrDateUtil.timestampToDate("yyyy-MM-dd HH:mm:ss"));
+ noticeBean.setPushDate(TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()));
noticeBean.setIsRead("1");
//存本地一份
diff --git a/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java b/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
index 3d6ad31..b5a94e2 100644
--- a/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
@@ -11,11 +11,14 @@
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.content.ContextCompat;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.bumptech.glide.Glide;
import com.casic.dcms.R;
+import com.casic.dcms.utils.StatusBarColorUtil;
+import com.gyf.immersionbar.ImmersionBar;
import com.luck.picture.lib.photoview.PhotoView;
import org.jetbrains.annotations.NotNull;
@@ -40,8 +43,13 @@
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_big_image);
ButterKnife.bind(this);
-
+ setupTopBarLayout();
initEvent();
+ }
+
+ private void setupTopBarLayout() {
+ StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.black));
+ ImmersionBar.with(this).statusBarDarkFont(false).init();
leftBackView.setOnClickListener(v -> finish());
}
@@ -101,7 +109,7 @@
View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
PhotoView photoView = view.findViewById(R.id.photoView);
Glide.with(context).load(data.get(position)).into(photoView);
- photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ photoView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
container.addView(view);
//点击大图取消预览
photoView.setOnClickListener(v -> BigImageActivity.this.finish());
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index f69c6cf..2d0c0af 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -33,7 +33,6 @@
import com.casic.dcms.ui.fragment.check.CaseCheckFragment;
import com.casic.dcms.ui.fragment.check.CaseCheckedFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.JzExoMedia;
@@ -235,9 +234,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -246,9 +242,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -260,13 +253,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
default:
break;
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 62413d2..90a578a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -37,7 +37,6 @@
import com.casic.dcms.ui.fragment.handle.OvertimeCaseFragment;
import com.casic.dcms.ui.fragment.handle.UrgentCaseFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.JzExoMedia;
@@ -126,7 +125,7 @@
private UploadImagePresenterImpl uploadImagePresenter;
private CaseHandlePresenterImpl caseHandlePresenter;
private MediaPlayer mediaPlayer;
- private QMUITipDialog submitDialog;
+ private QMUITipDialog submitDialog, loadingDialog;
private ImageRecycleViewAdapter handleImageAdapter;//处理图片的adapter
@Override
@@ -367,9 +366,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -378,9 +374,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -392,13 +385,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
default:
break;
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
index 67144b6..5ab5294 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
@@ -29,7 +29,6 @@
import com.casic.dcms.mvp.view.ICaseCheckView;
import com.casic.dcms.mvp.view.ICaseHandleListView;
import com.casic.dcms.mvp.view.ICaseVerifyView;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
@@ -239,25 +238,25 @@
private void resetRadioButton(int index) {
switch (index) {
case 0:
- handleRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.white));
- verifyRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
- checkRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
+ handleRadioButton.setTextColor(ContextCompat.getColor(this, R.color.white));
+ verifyRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ checkRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
//请求处置中数据
caseHandleListPresenter.onReadyRetrofitRequest(null, null, 1000, 1);
break;
case 1:
- verifyRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.white));
- handleRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
- checkRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
+ verifyRadioButton.setTextColor(ContextCompat.getColor(this, R.color.white));
+ handleRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ checkRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
//请求待核实数据
caseVerifyPresenter.onReadyRetrofitRequest(1000, 1);
break;
case 2:
- checkRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.white));
- verifyRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
- handleRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
+ checkRadioButton.setTextColor(ContextCompat.getColor(this, R.color.white));
+ verifyRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ handleRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
//请求待核查数据
caseCheckPresenter.onReadyRetrofitRequest(1000, 1);
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java
index 568a21f..111a834 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java
@@ -18,7 +18,6 @@
import com.casic.dcms.mvp.view.ICaseLargeClassView;
import com.casic.dcms.mvp.view.ICaseSmallClassView;
import com.casic.dcms.mvp.view.ICaseStatusView;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.TimeOrDateUtil;
import com.jzxiang.pickerview.TimePickerDialog;
@@ -114,7 +113,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseClassView.setText(tag);
- caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
eorc = String.valueOf(position + 1);
//获取案卷大类
@@ -136,7 +135,7 @@
dialog.dismiss();
caseLargeClassView.setText(tag);
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷小类
CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position);
@@ -162,7 +161,7 @@
dialog.dismiss();
caseSmallClassView.setText(tag);
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
typeDetailCode = smallClassBeans.get(position).getTypeDetailCode();
}
}).build().show();
@@ -173,7 +172,7 @@
caseStatusPresenter.onReadyRetrofitRequest();
break;
case R.id.selectStartDateView:
- new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor))
+ new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor))
.setTitleStringId("请选择处理时间")
.setWheelItemTextSize(16)
.setCyclic(false)
@@ -181,14 +180,14 @@
.setMaxMillseconds(System.currentTimeMillis())
.setType(Type.YEAR_MONTH_DAY)
.setCallBack((timePickerView, millSeconds) -> {
- String date = TimeOrDateUtil.timestampToDate("yyyy-MM-dd");
+ String date = TimeOrDateUtil.timestampToDate(millSeconds);
startTimeView.setText(date);
- startTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ startTimeView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
}).build().show(getSupportFragmentManager(), "year_month_day");
break;
case R.id.selectEndDateView:
- new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor))
+ new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor))
.setTitleStringId("请选择截止时间")
.setWheelItemTextSize(16)
.setCyclic(false)
@@ -196,10 +195,10 @@
.setMaxMillseconds(System.currentTimeMillis())
.setType(Type.YEAR_MONTH_DAY)
.setCallBack((timePickerView, millSeconds) -> {
- String date = TimeOrDateUtil.timestampToDate("yyy-MM-dd");
+ String date = TimeOrDateUtil.timestampToDate(millSeconds);
endTimeView.setText(date);
- endTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ endTimeView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
}).build().show(getSupportFragmentManager(), "year_month_day");
break;
case R.id.searchButton:
@@ -247,10 +246,10 @@
} else {
caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个
}
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
caseSmallClassView.setText("请选择");
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -264,7 +263,7 @@
} else {
caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个
}
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -285,7 +284,7 @@
caseState = beans.get(position).getValue();
caseStatusView.setText(tag);
- caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseStatusView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
}
}).build().show();
}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
index 75ac52e..d610761 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -20,6 +20,7 @@
import android.widget.TextView;
import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -42,7 +43,6 @@
import com.casic.dcms.mvp.view.ICaseSubmitCaseView;
import com.casic.dcms.mvp.view.IUploadFileView;
import com.casic.dcms.utils.AudioRecodeHelper;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
@@ -123,7 +123,7 @@
private CaseSubmitPresenterImpl caseSubmitPresenter;
private List largeClassBeans;
private List smallClassBeans;
- private QMUITipDialog submitDialog;
+ private QMUITipDialog submitDialog, loadingDialog;
private ProgressDialog progressDialog;
private UploadImagePresenterImpl uploadImagePresenter;
private List imageList = new ArrayList<>();//服务器返回的拍照数据集
@@ -222,7 +222,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseClassView.setText(tag);
- caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷大类
caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1));
@@ -242,7 +242,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseLargeClassView.setText(tag);
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷小类
CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position);
@@ -269,7 +269,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseSmallClassView.setText(tag);
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
typeDetailCode = smallClassBeans.get(position).getTypeDetailCode();
}
@@ -347,9 +347,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -358,9 +355,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -372,13 +366,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
case PictureConfig.PREVIEW_VIDEO_CODE:
LocalMedia media = PictureSelector.obtainMultipleResult(data).get(0);
@@ -518,10 +512,10 @@
} else {
caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个
}
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
caseSmallClassView.setText("请选择");
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -536,7 +530,7 @@
} else {
caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个
}
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
diff --git a/app/build.gradle b/app/build.gradle
index f5edb66..4e8aa5b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 15
- versionName "v1.0.0.7"
+ versionCode 16
+ versionName "v1.0.0.8"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
@@ -99,4 +99,6 @@
implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2'
//定位功能
implementation 'com.amap.api:location:5.3.1'
+ //图片压缩
+ implementation 'top.zibin:Luban:1.1.8'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c4a50de..6ea35aa 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,6 +80,8 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
new file mode 100644
index 0000000..4957e67
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
@@ -0,0 +1,81 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.CleanRecordBean;
+
+import java.util.List;
+
+public class RecordListAdapter extends RecyclerView.Adapter {
+
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+
+ public RecordListAdapter(Context context, List dataRows) {
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_record_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ if (clickListener != null) {
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+ static class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView workTimeView;
+ private TextView toiletNameView;
+ private TextView workerNameView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ workTimeView = itemView.findViewById(R.id.workTimeView);
+ toiletNameView = itemView.findViewById(R.id.toiletNameView);
+ workerNameView = itemView.findViewById(R.id.workerNameView);
+ }
+
+ void bindView(CleanRecordBean.DataBean.RowsBean rowsBean) {
+ workTimeView.setText(rowsBean.getCreateTime());
+ toiletNameView.setText(rowsBean.getToiletName().equals("") ? "未知" : rowsBean.getToiletName());
+ workerNameView.setText(rowsBean.getUserName().equals("") ? "未知" : rowsBean.getUserName());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
new file mode 100644
index 0000000..77c0fba
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
@@ -0,0 +1,202 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class CleanRecordBean {
+
+ /**
+ * code : 200.0
+ * data : {"rows":[{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}],"total":6}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ /**
+ * rows : [{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}]
+ * total : 6.0
+ */
+
+ private double total;
+ private List rows;
+
+ public double getTotal() {
+ return total;
+ }
+
+ public void setTotal(double total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * createTime : 2021-05-31
+ * defFlag : 0
+ * id : 1399290564295921665
+ * lat : 39.91570858
+ * lng : 116.26856423
+ * photo : 2021-05\9cd59072bb40498dba03e07db0d3f79c.png
+ * toiletId : 1120210531170001
+ * toiletName :
+ * updateTime : 2021-05-31
+ * userId : 1394828956022857730
+ * userName :
+ * workContent : 日常保洁
+ */
+
+ private String createTime;
+ private String defFlag;
+ private String id;
+ private String lat;
+ private String lng;
+ private String photo;
+ private String toiletId;
+ private String toiletName;
+ private String updateTime;
+ private String userId;
+ private String userName;
+ private String workContent;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDefFlag() {
+ return defFlag;
+ }
+
+ public void setDefFlag(String defFlag) {
+ this.defFlag = defFlag;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getPhoto() {
+ return photo;
+ }
+
+ public void setPhoto(String photo) {
+ this.photo = photo;
+ }
+
+ public String getToiletId() {
+ return toiletId;
+ }
+
+ public void setToiletId(String toiletId) {
+ this.toiletId = toiletId;
+ }
+
+ public String getToiletName() {
+ return toiletName;
+ }
+
+ public void setToiletName(String toiletName) {
+ this.toiletName = toiletName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getWorkContent() {
+ return workContent;
+ }
+
+ public void setWorkContent(String workContent) {
+ this.workContent = workContent;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
new file mode 100644
index 0000000..f50849c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class CleanRecordModelImpl implements ICleanRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public CleanRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(CleanRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ Observable observable = RetrofitServiceManager.getCleanRecordResult(userId, keywords, beginDate, endDate);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(CleanRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
new file mode 100644
index 0000000..3ffe8c4
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ICleanRecordModel {
+ Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
new file mode 100644
index 0000000..5b37216
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.CleanRecordModelImpl;
+import com.casic.dcms.mvp.view.ICleanToiletRecordView;
+
+public class CleanRecordPresenterImpl extends BasePresenter implements ICleanRecordPresenter, CleanRecordModelImpl.OnGetRecordListener {
+
+ private ICleanToiletRecordView view;
+ private CleanRecordModelImpl model;
+
+ public CleanRecordPresenterImpl(ICleanToiletRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new CleanRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ addSubscription(model.sendRetrofitRequest(userId, keywords, beginDate, endDate));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(CleanRecordBean result) {
+ view.obtainCleanRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
new file mode 100644
index 0000000..2b9acdd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ICleanRecordPresenter {
+ void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
index d0313e9..e53c5ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
@@ -1,9 +1,17 @@
package com.casic.dcms.mvp.presenter;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+
+import com.casic.dcms.base.BaseApplication;
import com.casic.dcms.bean.ActionResultBean;
import com.casic.dcms.mvp.BasePresenter;
import com.casic.dcms.mvp.model.UploadImageModelImpl;
import com.casic.dcms.mvp.view.IUploadFileView;
+import com.casic.dcms.utils.ImageHelper;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.utils.callback.IWaterMarkAddListener;
import java.io.File;
@@ -20,7 +28,27 @@
@Override
public void onReadyRetrofitRequest(File file) {
view.showProgress();
- addSubscription(actionModel.sendRetrofitRequest(file));
+ //改为上传带水印的图片
+ Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
+ ImageHelper.drawTextToRightBottom(BaseApplication.getInstance(), bitmap,
+ StringHelper.getUserAccount(),
+ TimeOrDateUtil.timestampToDate(System.currentTimeMillis()),
+ TimeOrDateUtil.timestampToTime(System.currentTimeMillis()),
+ new IWaterMarkAddListener() {
+ @Override
+ public void onSuccess(File file) {
+ if (file != null) {
+ addSubscription(actionModel.sendRetrofitRequest(file));
+ } else {
+ view.obtainDataFail();
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ view.obtainDataFail();
+ }
+ });
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
new file mode 100644
index 0000000..9df83d9
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.CleanRecordBean;
+
+public interface ICleanToiletRecordView {
+ void obtainCleanRecordResult(CleanRecordBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
index f02a4d7..aac6084 100644
--- a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
+++ b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
@@ -59,7 +59,7 @@
noticeBean.setTitle(resultBean.getTitle());
noticeBean.setContent(resultBean.getContent());
noticeBean.setType(resultBean.getType());
- noticeBean.setPushDate(TimeOrDateUtil.timestampToDate("yyyy-MM-dd HH:mm:ss"));
+ noticeBean.setPushDate(TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()));
noticeBean.setIsRead("1");
//存本地一份
diff --git a/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java b/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
index 3d6ad31..b5a94e2 100644
--- a/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
@@ -11,11 +11,14 @@
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.content.ContextCompat;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.bumptech.glide.Glide;
import com.casic.dcms.R;
+import com.casic.dcms.utils.StatusBarColorUtil;
+import com.gyf.immersionbar.ImmersionBar;
import com.luck.picture.lib.photoview.PhotoView;
import org.jetbrains.annotations.NotNull;
@@ -40,8 +43,13 @@
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_big_image);
ButterKnife.bind(this);
-
+ setupTopBarLayout();
initEvent();
+ }
+
+ private void setupTopBarLayout() {
+ StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.black));
+ ImmersionBar.with(this).statusBarDarkFont(false).init();
leftBackView.setOnClickListener(v -> finish());
}
@@ -101,7 +109,7 @@
View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
PhotoView photoView = view.findViewById(R.id.photoView);
Glide.with(context).load(data.get(position)).into(photoView);
- photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ photoView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
container.addView(view);
//点击大图取消预览
photoView.setOnClickListener(v -> BigImageActivity.this.finish());
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index f69c6cf..2d0c0af 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -33,7 +33,6 @@
import com.casic.dcms.ui.fragment.check.CaseCheckFragment;
import com.casic.dcms.ui.fragment.check.CaseCheckedFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.JzExoMedia;
@@ -235,9 +234,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -246,9 +242,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -260,13 +253,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
default:
break;
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 62413d2..90a578a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -37,7 +37,6 @@
import com.casic.dcms.ui.fragment.handle.OvertimeCaseFragment;
import com.casic.dcms.ui.fragment.handle.UrgentCaseFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.JzExoMedia;
@@ -126,7 +125,7 @@
private UploadImagePresenterImpl uploadImagePresenter;
private CaseHandlePresenterImpl caseHandlePresenter;
private MediaPlayer mediaPlayer;
- private QMUITipDialog submitDialog;
+ private QMUITipDialog submitDialog, loadingDialog;
private ImageRecycleViewAdapter handleImageAdapter;//处理图片的adapter
@Override
@@ -367,9 +366,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -378,9 +374,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -392,13 +385,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
default:
break;
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
index 67144b6..5ab5294 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
@@ -29,7 +29,6 @@
import com.casic.dcms.mvp.view.ICaseCheckView;
import com.casic.dcms.mvp.view.ICaseHandleListView;
import com.casic.dcms.mvp.view.ICaseVerifyView;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
@@ -239,25 +238,25 @@
private void resetRadioButton(int index) {
switch (index) {
case 0:
- handleRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.white));
- verifyRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
- checkRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
+ handleRadioButton.setTextColor(ContextCompat.getColor(this, R.color.white));
+ verifyRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ checkRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
//请求处置中数据
caseHandleListPresenter.onReadyRetrofitRequest(null, null, 1000, 1);
break;
case 1:
- verifyRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.white));
- handleRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
- checkRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
+ verifyRadioButton.setTextColor(ContextCompat.getColor(this, R.color.white));
+ handleRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ checkRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
//请求待核实数据
caseVerifyPresenter.onReadyRetrofitRequest(1000, 1);
break;
case 2:
- checkRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.white));
- verifyRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
- handleRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
+ checkRadioButton.setTextColor(ContextCompat.getColor(this, R.color.white));
+ verifyRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ handleRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
//请求待核查数据
caseCheckPresenter.onReadyRetrofitRequest(1000, 1);
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java
index 568a21f..111a834 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java
@@ -18,7 +18,6 @@
import com.casic.dcms.mvp.view.ICaseLargeClassView;
import com.casic.dcms.mvp.view.ICaseSmallClassView;
import com.casic.dcms.mvp.view.ICaseStatusView;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.TimeOrDateUtil;
import com.jzxiang.pickerview.TimePickerDialog;
@@ -114,7 +113,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseClassView.setText(tag);
- caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
eorc = String.valueOf(position + 1);
//获取案卷大类
@@ -136,7 +135,7 @@
dialog.dismiss();
caseLargeClassView.setText(tag);
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷小类
CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position);
@@ -162,7 +161,7 @@
dialog.dismiss();
caseSmallClassView.setText(tag);
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
typeDetailCode = smallClassBeans.get(position).getTypeDetailCode();
}
}).build().show();
@@ -173,7 +172,7 @@
caseStatusPresenter.onReadyRetrofitRequest();
break;
case R.id.selectStartDateView:
- new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor))
+ new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor))
.setTitleStringId("请选择处理时间")
.setWheelItemTextSize(16)
.setCyclic(false)
@@ -181,14 +180,14 @@
.setMaxMillseconds(System.currentTimeMillis())
.setType(Type.YEAR_MONTH_DAY)
.setCallBack((timePickerView, millSeconds) -> {
- String date = TimeOrDateUtil.timestampToDate("yyyy-MM-dd");
+ String date = TimeOrDateUtil.timestampToDate(millSeconds);
startTimeView.setText(date);
- startTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ startTimeView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
}).build().show(getSupportFragmentManager(), "year_month_day");
break;
case R.id.selectEndDateView:
- new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor))
+ new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor))
.setTitleStringId("请选择截止时间")
.setWheelItemTextSize(16)
.setCyclic(false)
@@ -196,10 +195,10 @@
.setMaxMillseconds(System.currentTimeMillis())
.setType(Type.YEAR_MONTH_DAY)
.setCallBack((timePickerView, millSeconds) -> {
- String date = TimeOrDateUtil.timestampToDate("yyy-MM-dd");
+ String date = TimeOrDateUtil.timestampToDate(millSeconds);
endTimeView.setText(date);
- endTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ endTimeView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
}).build().show(getSupportFragmentManager(), "year_month_day");
break;
case R.id.searchButton:
@@ -247,10 +246,10 @@
} else {
caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个
}
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
caseSmallClassView.setText("请选择");
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -264,7 +263,7 @@
} else {
caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个
}
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -285,7 +284,7 @@
caseState = beans.get(position).getValue();
caseStatusView.setText(tag);
- caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseStatusView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
}
}).build().show();
}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
index 75ac52e..d610761 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -20,6 +20,7 @@
import android.widget.TextView;
import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -42,7 +43,6 @@
import com.casic.dcms.mvp.view.ICaseSubmitCaseView;
import com.casic.dcms.mvp.view.IUploadFileView;
import com.casic.dcms.utils.AudioRecodeHelper;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
@@ -123,7 +123,7 @@
private CaseSubmitPresenterImpl caseSubmitPresenter;
private List largeClassBeans;
private List smallClassBeans;
- private QMUITipDialog submitDialog;
+ private QMUITipDialog submitDialog, loadingDialog;
private ProgressDialog progressDialog;
private UploadImagePresenterImpl uploadImagePresenter;
private List imageList = new ArrayList<>();//服务器返回的拍照数据集
@@ -222,7 +222,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseClassView.setText(tag);
- caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷大类
caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1));
@@ -242,7 +242,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseLargeClassView.setText(tag);
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷小类
CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position);
@@ -269,7 +269,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseSmallClassView.setText(tag);
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
typeDetailCode = smallClassBeans.get(position).getTypeDetailCode();
}
@@ -347,9 +347,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -358,9 +355,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -372,13 +366,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
case PictureConfig.PREVIEW_VIDEO_CODE:
LocalMedia media = PictureSelector.obtainMultipleResult(data).get(0);
@@ -518,10 +512,10 @@
} else {
caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个
}
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
caseSmallClassView.setText("请选择");
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -536,7 +530,7 @@
} else {
caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个
}
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadPackageActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadPackageActivity.java
index 10bfc1b..60521cf 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadPackageActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadPackageActivity.java
@@ -22,7 +22,6 @@
import com.casic.dcms.mvp.view.ICaseSubmitCaseView;
import com.casic.dcms.mvp.view.IUploadFileView;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.OtherUtils;
@@ -74,7 +73,7 @@
private UploadImagePresenterImpl uploadImagePresenter;
private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter;
private ImageRecycleViewAdapter imageAdapter;
- private QMUITipDialog submitDialog;
+ private QMUITipDialog submitDialog, loadingDialog;
private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private String gridId, shopID;
@@ -150,9 +149,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -161,9 +157,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -175,13 +168,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
case Constant.REQUEST_MAP_CODE:
if (data == null) {
diff --git a/app/build.gradle b/app/build.gradle
index f5edb66..4e8aa5b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 15
- versionName "v1.0.0.7"
+ versionCode 16
+ versionName "v1.0.0.8"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
@@ -99,4 +99,6 @@
implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2'
//定位功能
implementation 'com.amap.api:location:5.3.1'
+ //图片压缩
+ implementation 'top.zibin:Luban:1.1.8'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c4a50de..6ea35aa 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,6 +80,8 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
new file mode 100644
index 0000000..4957e67
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
@@ -0,0 +1,81 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.CleanRecordBean;
+
+import java.util.List;
+
+public class RecordListAdapter extends RecyclerView.Adapter {
+
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+
+ public RecordListAdapter(Context context, List dataRows) {
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_record_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ if (clickListener != null) {
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+ static class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView workTimeView;
+ private TextView toiletNameView;
+ private TextView workerNameView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ workTimeView = itemView.findViewById(R.id.workTimeView);
+ toiletNameView = itemView.findViewById(R.id.toiletNameView);
+ workerNameView = itemView.findViewById(R.id.workerNameView);
+ }
+
+ void bindView(CleanRecordBean.DataBean.RowsBean rowsBean) {
+ workTimeView.setText(rowsBean.getCreateTime());
+ toiletNameView.setText(rowsBean.getToiletName().equals("") ? "未知" : rowsBean.getToiletName());
+ workerNameView.setText(rowsBean.getUserName().equals("") ? "未知" : rowsBean.getUserName());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
new file mode 100644
index 0000000..77c0fba
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
@@ -0,0 +1,202 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class CleanRecordBean {
+
+ /**
+ * code : 200.0
+ * data : {"rows":[{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}],"total":6}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ /**
+ * rows : [{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}]
+ * total : 6.0
+ */
+
+ private double total;
+ private List rows;
+
+ public double getTotal() {
+ return total;
+ }
+
+ public void setTotal(double total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * createTime : 2021-05-31
+ * defFlag : 0
+ * id : 1399290564295921665
+ * lat : 39.91570858
+ * lng : 116.26856423
+ * photo : 2021-05\9cd59072bb40498dba03e07db0d3f79c.png
+ * toiletId : 1120210531170001
+ * toiletName :
+ * updateTime : 2021-05-31
+ * userId : 1394828956022857730
+ * userName :
+ * workContent : 日常保洁
+ */
+
+ private String createTime;
+ private String defFlag;
+ private String id;
+ private String lat;
+ private String lng;
+ private String photo;
+ private String toiletId;
+ private String toiletName;
+ private String updateTime;
+ private String userId;
+ private String userName;
+ private String workContent;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDefFlag() {
+ return defFlag;
+ }
+
+ public void setDefFlag(String defFlag) {
+ this.defFlag = defFlag;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getPhoto() {
+ return photo;
+ }
+
+ public void setPhoto(String photo) {
+ this.photo = photo;
+ }
+
+ public String getToiletId() {
+ return toiletId;
+ }
+
+ public void setToiletId(String toiletId) {
+ this.toiletId = toiletId;
+ }
+
+ public String getToiletName() {
+ return toiletName;
+ }
+
+ public void setToiletName(String toiletName) {
+ this.toiletName = toiletName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getWorkContent() {
+ return workContent;
+ }
+
+ public void setWorkContent(String workContent) {
+ this.workContent = workContent;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
new file mode 100644
index 0000000..f50849c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class CleanRecordModelImpl implements ICleanRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public CleanRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(CleanRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ Observable observable = RetrofitServiceManager.getCleanRecordResult(userId, keywords, beginDate, endDate);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(CleanRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
new file mode 100644
index 0000000..3ffe8c4
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ICleanRecordModel {
+ Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
new file mode 100644
index 0000000..5b37216
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.CleanRecordModelImpl;
+import com.casic.dcms.mvp.view.ICleanToiletRecordView;
+
+public class CleanRecordPresenterImpl extends BasePresenter implements ICleanRecordPresenter, CleanRecordModelImpl.OnGetRecordListener {
+
+ private ICleanToiletRecordView view;
+ private CleanRecordModelImpl model;
+
+ public CleanRecordPresenterImpl(ICleanToiletRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new CleanRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ addSubscription(model.sendRetrofitRequest(userId, keywords, beginDate, endDate));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(CleanRecordBean result) {
+ view.obtainCleanRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
new file mode 100644
index 0000000..2b9acdd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ICleanRecordPresenter {
+ void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
index d0313e9..e53c5ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
@@ -1,9 +1,17 @@
package com.casic.dcms.mvp.presenter;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+
+import com.casic.dcms.base.BaseApplication;
import com.casic.dcms.bean.ActionResultBean;
import com.casic.dcms.mvp.BasePresenter;
import com.casic.dcms.mvp.model.UploadImageModelImpl;
import com.casic.dcms.mvp.view.IUploadFileView;
+import com.casic.dcms.utils.ImageHelper;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.utils.callback.IWaterMarkAddListener;
import java.io.File;
@@ -20,7 +28,27 @@
@Override
public void onReadyRetrofitRequest(File file) {
view.showProgress();
- addSubscription(actionModel.sendRetrofitRequest(file));
+ //改为上传带水印的图片
+ Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
+ ImageHelper.drawTextToRightBottom(BaseApplication.getInstance(), bitmap,
+ StringHelper.getUserAccount(),
+ TimeOrDateUtil.timestampToDate(System.currentTimeMillis()),
+ TimeOrDateUtil.timestampToTime(System.currentTimeMillis()),
+ new IWaterMarkAddListener() {
+ @Override
+ public void onSuccess(File file) {
+ if (file != null) {
+ addSubscription(actionModel.sendRetrofitRequest(file));
+ } else {
+ view.obtainDataFail();
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ view.obtainDataFail();
+ }
+ });
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
new file mode 100644
index 0000000..9df83d9
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.CleanRecordBean;
+
+public interface ICleanToiletRecordView {
+ void obtainCleanRecordResult(CleanRecordBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
index f02a4d7..aac6084 100644
--- a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
+++ b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
@@ -59,7 +59,7 @@
noticeBean.setTitle(resultBean.getTitle());
noticeBean.setContent(resultBean.getContent());
noticeBean.setType(resultBean.getType());
- noticeBean.setPushDate(TimeOrDateUtil.timestampToDate("yyyy-MM-dd HH:mm:ss"));
+ noticeBean.setPushDate(TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()));
noticeBean.setIsRead("1");
//存本地一份
diff --git a/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java b/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
index 3d6ad31..b5a94e2 100644
--- a/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
@@ -11,11 +11,14 @@
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.content.ContextCompat;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.bumptech.glide.Glide;
import com.casic.dcms.R;
+import com.casic.dcms.utils.StatusBarColorUtil;
+import com.gyf.immersionbar.ImmersionBar;
import com.luck.picture.lib.photoview.PhotoView;
import org.jetbrains.annotations.NotNull;
@@ -40,8 +43,13 @@
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_big_image);
ButterKnife.bind(this);
-
+ setupTopBarLayout();
initEvent();
+ }
+
+ private void setupTopBarLayout() {
+ StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.black));
+ ImmersionBar.with(this).statusBarDarkFont(false).init();
leftBackView.setOnClickListener(v -> finish());
}
@@ -101,7 +109,7 @@
View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
PhotoView photoView = view.findViewById(R.id.photoView);
Glide.with(context).load(data.get(position)).into(photoView);
- photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ photoView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
container.addView(view);
//点击大图取消预览
photoView.setOnClickListener(v -> BigImageActivity.this.finish());
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index f69c6cf..2d0c0af 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -33,7 +33,6 @@
import com.casic.dcms.ui.fragment.check.CaseCheckFragment;
import com.casic.dcms.ui.fragment.check.CaseCheckedFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.JzExoMedia;
@@ -235,9 +234,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -246,9 +242,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -260,13 +253,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
default:
break;
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 62413d2..90a578a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -37,7 +37,6 @@
import com.casic.dcms.ui.fragment.handle.OvertimeCaseFragment;
import com.casic.dcms.ui.fragment.handle.UrgentCaseFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.JzExoMedia;
@@ -126,7 +125,7 @@
private UploadImagePresenterImpl uploadImagePresenter;
private CaseHandlePresenterImpl caseHandlePresenter;
private MediaPlayer mediaPlayer;
- private QMUITipDialog submitDialog;
+ private QMUITipDialog submitDialog, loadingDialog;
private ImageRecycleViewAdapter handleImageAdapter;//处理图片的adapter
@Override
@@ -367,9 +366,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -378,9 +374,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -392,13 +385,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
default:
break;
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
index 67144b6..5ab5294 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
@@ -29,7 +29,6 @@
import com.casic.dcms.mvp.view.ICaseCheckView;
import com.casic.dcms.mvp.view.ICaseHandleListView;
import com.casic.dcms.mvp.view.ICaseVerifyView;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
@@ -239,25 +238,25 @@
private void resetRadioButton(int index) {
switch (index) {
case 0:
- handleRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.white));
- verifyRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
- checkRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
+ handleRadioButton.setTextColor(ContextCompat.getColor(this, R.color.white));
+ verifyRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ checkRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
//请求处置中数据
caseHandleListPresenter.onReadyRetrofitRequest(null, null, 1000, 1);
break;
case 1:
- verifyRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.white));
- handleRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
- checkRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
+ verifyRadioButton.setTextColor(ContextCompat.getColor(this, R.color.white));
+ handleRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ checkRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
//请求待核实数据
caseVerifyPresenter.onReadyRetrofitRequest(1000, 1);
break;
case 2:
- checkRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.white));
- verifyRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
- handleRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
+ checkRadioButton.setTextColor(ContextCompat.getColor(this, R.color.white));
+ verifyRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ handleRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
//请求待核查数据
caseCheckPresenter.onReadyRetrofitRequest(1000, 1);
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java
index 568a21f..111a834 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java
@@ -18,7 +18,6 @@
import com.casic.dcms.mvp.view.ICaseLargeClassView;
import com.casic.dcms.mvp.view.ICaseSmallClassView;
import com.casic.dcms.mvp.view.ICaseStatusView;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.TimeOrDateUtil;
import com.jzxiang.pickerview.TimePickerDialog;
@@ -114,7 +113,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseClassView.setText(tag);
- caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
eorc = String.valueOf(position + 1);
//获取案卷大类
@@ -136,7 +135,7 @@
dialog.dismiss();
caseLargeClassView.setText(tag);
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷小类
CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position);
@@ -162,7 +161,7 @@
dialog.dismiss();
caseSmallClassView.setText(tag);
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
typeDetailCode = smallClassBeans.get(position).getTypeDetailCode();
}
}).build().show();
@@ -173,7 +172,7 @@
caseStatusPresenter.onReadyRetrofitRequest();
break;
case R.id.selectStartDateView:
- new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor))
+ new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor))
.setTitleStringId("请选择处理时间")
.setWheelItemTextSize(16)
.setCyclic(false)
@@ -181,14 +180,14 @@
.setMaxMillseconds(System.currentTimeMillis())
.setType(Type.YEAR_MONTH_DAY)
.setCallBack((timePickerView, millSeconds) -> {
- String date = TimeOrDateUtil.timestampToDate("yyyy-MM-dd");
+ String date = TimeOrDateUtil.timestampToDate(millSeconds);
startTimeView.setText(date);
- startTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ startTimeView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
}).build().show(getSupportFragmentManager(), "year_month_day");
break;
case R.id.selectEndDateView:
- new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor))
+ new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor))
.setTitleStringId("请选择截止时间")
.setWheelItemTextSize(16)
.setCyclic(false)
@@ -196,10 +195,10 @@
.setMaxMillseconds(System.currentTimeMillis())
.setType(Type.YEAR_MONTH_DAY)
.setCallBack((timePickerView, millSeconds) -> {
- String date = TimeOrDateUtil.timestampToDate("yyy-MM-dd");
+ String date = TimeOrDateUtil.timestampToDate(millSeconds);
endTimeView.setText(date);
- endTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ endTimeView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
}).build().show(getSupportFragmentManager(), "year_month_day");
break;
case R.id.searchButton:
@@ -247,10 +246,10 @@
} else {
caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个
}
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
caseSmallClassView.setText("请选择");
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -264,7 +263,7 @@
} else {
caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个
}
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -285,7 +284,7 @@
caseState = beans.get(position).getValue();
caseStatusView.setText(tag);
- caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseStatusView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
}
}).build().show();
}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
index 75ac52e..d610761 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -20,6 +20,7 @@
import android.widget.TextView;
import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -42,7 +43,6 @@
import com.casic.dcms.mvp.view.ICaseSubmitCaseView;
import com.casic.dcms.mvp.view.IUploadFileView;
import com.casic.dcms.utils.AudioRecodeHelper;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
@@ -123,7 +123,7 @@
private CaseSubmitPresenterImpl caseSubmitPresenter;
private List largeClassBeans;
private List smallClassBeans;
- private QMUITipDialog submitDialog;
+ private QMUITipDialog submitDialog, loadingDialog;
private ProgressDialog progressDialog;
private UploadImagePresenterImpl uploadImagePresenter;
private List imageList = new ArrayList<>();//服务器返回的拍照数据集
@@ -222,7 +222,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseClassView.setText(tag);
- caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷大类
caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1));
@@ -242,7 +242,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseLargeClassView.setText(tag);
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷小类
CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position);
@@ -269,7 +269,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseSmallClassView.setText(tag);
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
typeDetailCode = smallClassBeans.get(position).getTypeDetailCode();
}
@@ -347,9 +347,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -358,9 +355,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -372,13 +366,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
case PictureConfig.PREVIEW_VIDEO_CODE:
LocalMedia media = PictureSelector.obtainMultipleResult(data).get(0);
@@ -518,10 +512,10 @@
} else {
caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个
}
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
caseSmallClassView.setText("请选择");
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -536,7 +530,7 @@
} else {
caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个
}
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadPackageActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadPackageActivity.java
index 10bfc1b..60521cf 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadPackageActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadPackageActivity.java
@@ -22,7 +22,6 @@
import com.casic.dcms.mvp.view.ICaseSubmitCaseView;
import com.casic.dcms.mvp.view.IUploadFileView;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.OtherUtils;
@@ -74,7 +73,7 @@
private UploadImagePresenterImpl uploadImagePresenter;
private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter;
private ImageRecycleViewAdapter imageAdapter;
- private QMUITipDialog submitDialog;
+ private QMUITipDialog submitDialog, loadingDialog;
private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private String gridId, shopID;
@@ -150,9 +149,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -161,9 +157,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -175,13 +168,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
case Constant.REQUEST_MAP_CODE:
if (data == null) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
index 7750f8a..7830b21 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
@@ -10,6 +10,7 @@
import android.widget.TextView;
import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -27,9 +28,7 @@
import com.casic.dcms.mvp.view.ICaseSmallClassView;
import com.casic.dcms.mvp.view.ICaseSubmitCaseView;
import com.casic.dcms.mvp.view.IUploadFileView;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.OtherUtils;
@@ -145,7 +144,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseClassView.setText(tag);
- caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷大类
caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1));
@@ -165,7 +164,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseLargeClassView.setText(tag);
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷小类
CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position);
@@ -192,7 +191,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseSmallClassView.setText(tag);
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
typeDetailCode = smallClassBeans.get(position).getTypeDetailCode();
}
@@ -245,9 +244,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -256,9 +252,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -270,13 +263,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
case Constant.REQUEST_MAP_CODE:
if (data == null) {
@@ -308,10 +301,10 @@
} else {
caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个
}
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
caseSmallClassView.setText("请选择");
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -326,7 +319,7 @@
} else {
caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个
}
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
diff --git a/app/build.gradle b/app/build.gradle
index f5edb66..4e8aa5b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 15
- versionName "v1.0.0.7"
+ versionCode 16
+ versionName "v1.0.0.8"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
@@ -99,4 +99,6 @@
implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2'
//定位功能
implementation 'com.amap.api:location:5.3.1'
+ //图片压缩
+ implementation 'top.zibin:Luban:1.1.8'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c4a50de..6ea35aa 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,6 +80,8 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
new file mode 100644
index 0000000..4957e67
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
@@ -0,0 +1,81 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.CleanRecordBean;
+
+import java.util.List;
+
+public class RecordListAdapter extends RecyclerView.Adapter {
+
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+
+ public RecordListAdapter(Context context, List dataRows) {
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_record_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ if (clickListener != null) {
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+ static class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView workTimeView;
+ private TextView toiletNameView;
+ private TextView workerNameView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ workTimeView = itemView.findViewById(R.id.workTimeView);
+ toiletNameView = itemView.findViewById(R.id.toiletNameView);
+ workerNameView = itemView.findViewById(R.id.workerNameView);
+ }
+
+ void bindView(CleanRecordBean.DataBean.RowsBean rowsBean) {
+ workTimeView.setText(rowsBean.getCreateTime());
+ toiletNameView.setText(rowsBean.getToiletName().equals("") ? "未知" : rowsBean.getToiletName());
+ workerNameView.setText(rowsBean.getUserName().equals("") ? "未知" : rowsBean.getUserName());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
new file mode 100644
index 0000000..77c0fba
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
@@ -0,0 +1,202 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class CleanRecordBean {
+
+ /**
+ * code : 200.0
+ * data : {"rows":[{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}],"total":6}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ /**
+ * rows : [{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}]
+ * total : 6.0
+ */
+
+ private double total;
+ private List rows;
+
+ public double getTotal() {
+ return total;
+ }
+
+ public void setTotal(double total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * createTime : 2021-05-31
+ * defFlag : 0
+ * id : 1399290564295921665
+ * lat : 39.91570858
+ * lng : 116.26856423
+ * photo : 2021-05\9cd59072bb40498dba03e07db0d3f79c.png
+ * toiletId : 1120210531170001
+ * toiletName :
+ * updateTime : 2021-05-31
+ * userId : 1394828956022857730
+ * userName :
+ * workContent : 日常保洁
+ */
+
+ private String createTime;
+ private String defFlag;
+ private String id;
+ private String lat;
+ private String lng;
+ private String photo;
+ private String toiletId;
+ private String toiletName;
+ private String updateTime;
+ private String userId;
+ private String userName;
+ private String workContent;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDefFlag() {
+ return defFlag;
+ }
+
+ public void setDefFlag(String defFlag) {
+ this.defFlag = defFlag;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getPhoto() {
+ return photo;
+ }
+
+ public void setPhoto(String photo) {
+ this.photo = photo;
+ }
+
+ public String getToiletId() {
+ return toiletId;
+ }
+
+ public void setToiletId(String toiletId) {
+ this.toiletId = toiletId;
+ }
+
+ public String getToiletName() {
+ return toiletName;
+ }
+
+ public void setToiletName(String toiletName) {
+ this.toiletName = toiletName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getWorkContent() {
+ return workContent;
+ }
+
+ public void setWorkContent(String workContent) {
+ this.workContent = workContent;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
new file mode 100644
index 0000000..f50849c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class CleanRecordModelImpl implements ICleanRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public CleanRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(CleanRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ Observable observable = RetrofitServiceManager.getCleanRecordResult(userId, keywords, beginDate, endDate);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(CleanRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
new file mode 100644
index 0000000..3ffe8c4
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ICleanRecordModel {
+ Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
new file mode 100644
index 0000000..5b37216
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.CleanRecordModelImpl;
+import com.casic.dcms.mvp.view.ICleanToiletRecordView;
+
+public class CleanRecordPresenterImpl extends BasePresenter implements ICleanRecordPresenter, CleanRecordModelImpl.OnGetRecordListener {
+
+ private ICleanToiletRecordView view;
+ private CleanRecordModelImpl model;
+
+ public CleanRecordPresenterImpl(ICleanToiletRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new CleanRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ addSubscription(model.sendRetrofitRequest(userId, keywords, beginDate, endDate));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(CleanRecordBean result) {
+ view.obtainCleanRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
new file mode 100644
index 0000000..2b9acdd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ICleanRecordPresenter {
+ void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
index d0313e9..e53c5ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
@@ -1,9 +1,17 @@
package com.casic.dcms.mvp.presenter;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+
+import com.casic.dcms.base.BaseApplication;
import com.casic.dcms.bean.ActionResultBean;
import com.casic.dcms.mvp.BasePresenter;
import com.casic.dcms.mvp.model.UploadImageModelImpl;
import com.casic.dcms.mvp.view.IUploadFileView;
+import com.casic.dcms.utils.ImageHelper;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.utils.callback.IWaterMarkAddListener;
import java.io.File;
@@ -20,7 +28,27 @@
@Override
public void onReadyRetrofitRequest(File file) {
view.showProgress();
- addSubscription(actionModel.sendRetrofitRequest(file));
+ //改为上传带水印的图片
+ Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
+ ImageHelper.drawTextToRightBottom(BaseApplication.getInstance(), bitmap,
+ StringHelper.getUserAccount(),
+ TimeOrDateUtil.timestampToDate(System.currentTimeMillis()),
+ TimeOrDateUtil.timestampToTime(System.currentTimeMillis()),
+ new IWaterMarkAddListener() {
+ @Override
+ public void onSuccess(File file) {
+ if (file != null) {
+ addSubscription(actionModel.sendRetrofitRequest(file));
+ } else {
+ view.obtainDataFail();
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ view.obtainDataFail();
+ }
+ });
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
new file mode 100644
index 0000000..9df83d9
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.CleanRecordBean;
+
+public interface ICleanToiletRecordView {
+ void obtainCleanRecordResult(CleanRecordBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
index f02a4d7..aac6084 100644
--- a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
+++ b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
@@ -59,7 +59,7 @@
noticeBean.setTitle(resultBean.getTitle());
noticeBean.setContent(resultBean.getContent());
noticeBean.setType(resultBean.getType());
- noticeBean.setPushDate(TimeOrDateUtil.timestampToDate("yyyy-MM-dd HH:mm:ss"));
+ noticeBean.setPushDate(TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()));
noticeBean.setIsRead("1");
//存本地一份
diff --git a/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java b/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
index 3d6ad31..b5a94e2 100644
--- a/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
@@ -11,11 +11,14 @@
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.content.ContextCompat;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.bumptech.glide.Glide;
import com.casic.dcms.R;
+import com.casic.dcms.utils.StatusBarColorUtil;
+import com.gyf.immersionbar.ImmersionBar;
import com.luck.picture.lib.photoview.PhotoView;
import org.jetbrains.annotations.NotNull;
@@ -40,8 +43,13 @@
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_big_image);
ButterKnife.bind(this);
-
+ setupTopBarLayout();
initEvent();
+ }
+
+ private void setupTopBarLayout() {
+ StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.black));
+ ImmersionBar.with(this).statusBarDarkFont(false).init();
leftBackView.setOnClickListener(v -> finish());
}
@@ -101,7 +109,7 @@
View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
PhotoView photoView = view.findViewById(R.id.photoView);
Glide.with(context).load(data.get(position)).into(photoView);
- photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ photoView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
container.addView(view);
//点击大图取消预览
photoView.setOnClickListener(v -> BigImageActivity.this.finish());
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index f69c6cf..2d0c0af 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -33,7 +33,6 @@
import com.casic.dcms.ui.fragment.check.CaseCheckFragment;
import com.casic.dcms.ui.fragment.check.CaseCheckedFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.JzExoMedia;
@@ -235,9 +234,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -246,9 +242,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -260,13 +253,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
default:
break;
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 62413d2..90a578a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -37,7 +37,6 @@
import com.casic.dcms.ui.fragment.handle.OvertimeCaseFragment;
import com.casic.dcms.ui.fragment.handle.UrgentCaseFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.JzExoMedia;
@@ -126,7 +125,7 @@
private UploadImagePresenterImpl uploadImagePresenter;
private CaseHandlePresenterImpl caseHandlePresenter;
private MediaPlayer mediaPlayer;
- private QMUITipDialog submitDialog;
+ private QMUITipDialog submitDialog, loadingDialog;
private ImageRecycleViewAdapter handleImageAdapter;//处理图片的adapter
@Override
@@ -367,9 +366,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -378,9 +374,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -392,13 +385,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
default:
break;
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
index 67144b6..5ab5294 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
@@ -29,7 +29,6 @@
import com.casic.dcms.mvp.view.ICaseCheckView;
import com.casic.dcms.mvp.view.ICaseHandleListView;
import com.casic.dcms.mvp.view.ICaseVerifyView;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
@@ -239,25 +238,25 @@
private void resetRadioButton(int index) {
switch (index) {
case 0:
- handleRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.white));
- verifyRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
- checkRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
+ handleRadioButton.setTextColor(ContextCompat.getColor(this, R.color.white));
+ verifyRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ checkRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
//请求处置中数据
caseHandleListPresenter.onReadyRetrofitRequest(null, null, 1000, 1);
break;
case 1:
- verifyRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.white));
- handleRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
- checkRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
+ verifyRadioButton.setTextColor(ContextCompat.getColor(this, R.color.white));
+ handleRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ checkRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
//请求待核实数据
caseVerifyPresenter.onReadyRetrofitRequest(1000, 1);
break;
case 2:
- checkRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.white));
- verifyRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
- handleRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
+ checkRadioButton.setTextColor(ContextCompat.getColor(this, R.color.white));
+ verifyRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ handleRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
//请求待核查数据
caseCheckPresenter.onReadyRetrofitRequest(1000, 1);
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java
index 568a21f..111a834 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java
@@ -18,7 +18,6 @@
import com.casic.dcms.mvp.view.ICaseLargeClassView;
import com.casic.dcms.mvp.view.ICaseSmallClassView;
import com.casic.dcms.mvp.view.ICaseStatusView;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.TimeOrDateUtil;
import com.jzxiang.pickerview.TimePickerDialog;
@@ -114,7 +113,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseClassView.setText(tag);
- caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
eorc = String.valueOf(position + 1);
//获取案卷大类
@@ -136,7 +135,7 @@
dialog.dismiss();
caseLargeClassView.setText(tag);
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷小类
CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position);
@@ -162,7 +161,7 @@
dialog.dismiss();
caseSmallClassView.setText(tag);
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
typeDetailCode = smallClassBeans.get(position).getTypeDetailCode();
}
}).build().show();
@@ -173,7 +172,7 @@
caseStatusPresenter.onReadyRetrofitRequest();
break;
case R.id.selectStartDateView:
- new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor))
+ new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor))
.setTitleStringId("请选择处理时间")
.setWheelItemTextSize(16)
.setCyclic(false)
@@ -181,14 +180,14 @@
.setMaxMillseconds(System.currentTimeMillis())
.setType(Type.YEAR_MONTH_DAY)
.setCallBack((timePickerView, millSeconds) -> {
- String date = TimeOrDateUtil.timestampToDate("yyyy-MM-dd");
+ String date = TimeOrDateUtil.timestampToDate(millSeconds);
startTimeView.setText(date);
- startTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ startTimeView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
}).build().show(getSupportFragmentManager(), "year_month_day");
break;
case R.id.selectEndDateView:
- new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor))
+ new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor))
.setTitleStringId("请选择截止时间")
.setWheelItemTextSize(16)
.setCyclic(false)
@@ -196,10 +195,10 @@
.setMaxMillseconds(System.currentTimeMillis())
.setType(Type.YEAR_MONTH_DAY)
.setCallBack((timePickerView, millSeconds) -> {
- String date = TimeOrDateUtil.timestampToDate("yyy-MM-dd");
+ String date = TimeOrDateUtil.timestampToDate(millSeconds);
endTimeView.setText(date);
- endTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ endTimeView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
}).build().show(getSupportFragmentManager(), "year_month_day");
break;
case R.id.searchButton:
@@ -247,10 +246,10 @@
} else {
caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个
}
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
caseSmallClassView.setText("请选择");
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -264,7 +263,7 @@
} else {
caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个
}
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -285,7 +284,7 @@
caseState = beans.get(position).getValue();
caseStatusView.setText(tag);
- caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseStatusView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
}
}).build().show();
}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
index 75ac52e..d610761 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -20,6 +20,7 @@
import android.widget.TextView;
import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -42,7 +43,6 @@
import com.casic.dcms.mvp.view.ICaseSubmitCaseView;
import com.casic.dcms.mvp.view.IUploadFileView;
import com.casic.dcms.utils.AudioRecodeHelper;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
@@ -123,7 +123,7 @@
private CaseSubmitPresenterImpl caseSubmitPresenter;
private List largeClassBeans;
private List smallClassBeans;
- private QMUITipDialog submitDialog;
+ private QMUITipDialog submitDialog, loadingDialog;
private ProgressDialog progressDialog;
private UploadImagePresenterImpl uploadImagePresenter;
private List imageList = new ArrayList<>();//服务器返回的拍照数据集
@@ -222,7 +222,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseClassView.setText(tag);
- caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷大类
caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1));
@@ -242,7 +242,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseLargeClassView.setText(tag);
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷小类
CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position);
@@ -269,7 +269,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseSmallClassView.setText(tag);
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
typeDetailCode = smallClassBeans.get(position).getTypeDetailCode();
}
@@ -347,9 +347,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -358,9 +355,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -372,13 +366,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
case PictureConfig.PREVIEW_VIDEO_CODE:
LocalMedia media = PictureSelector.obtainMultipleResult(data).get(0);
@@ -518,10 +512,10 @@
} else {
caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个
}
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
caseSmallClassView.setText("请选择");
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -536,7 +530,7 @@
} else {
caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个
}
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadPackageActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadPackageActivity.java
index 10bfc1b..60521cf 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadPackageActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadPackageActivity.java
@@ -22,7 +22,6 @@
import com.casic.dcms.mvp.view.ICaseSubmitCaseView;
import com.casic.dcms.mvp.view.IUploadFileView;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.OtherUtils;
@@ -74,7 +73,7 @@
private UploadImagePresenterImpl uploadImagePresenter;
private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter;
private ImageRecycleViewAdapter imageAdapter;
- private QMUITipDialog submitDialog;
+ private QMUITipDialog submitDialog, loadingDialog;
private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private String gridId, shopID;
@@ -150,9 +149,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -161,9 +157,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -175,13 +168,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
case Constant.REQUEST_MAP_CODE:
if (data == null) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
index 7750f8a..7830b21 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
@@ -10,6 +10,7 @@
import android.widget.TextView;
import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -27,9 +28,7 @@
import com.casic.dcms.mvp.view.ICaseSmallClassView;
import com.casic.dcms.mvp.view.ICaseSubmitCaseView;
import com.casic.dcms.mvp.view.IUploadFileView;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.OtherUtils;
@@ -145,7 +144,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseClassView.setText(tag);
- caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷大类
caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1));
@@ -165,7 +164,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseLargeClassView.setText(tag);
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷小类
CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position);
@@ -192,7 +191,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseSmallClassView.setText(tag);
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
typeDetailCode = smallClassBeans.get(position).getTypeDetailCode();
}
@@ -245,9 +244,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -256,9 +252,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -270,13 +263,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
case Constant.REQUEST_MAP_CODE:
if (data == null) {
@@ -308,10 +301,10 @@
} else {
caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个
}
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
caseSmallClassView.setText("请选择");
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -326,7 +319,7 @@
} else {
caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个
}
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
index d28d4b2..da6a75f 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
@@ -41,7 +41,6 @@
import com.casic.dcms.ui.fragment.verify.CaseVerifiedFragment;
import com.casic.dcms.ui.fragment.verify.CaseVerifyFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.JzExoMedia;
@@ -72,7 +71,7 @@
public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener,
ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView {
- private Context context = CaseVerifyDetailActivity.this;
+ private Context context = this;
@BindView(R.id.caseNumberView)
TextView caseNumberView;
@BindView(R.id.caseTypeView)
@@ -522,9 +521,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -533,9 +529,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -547,13 +540,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
case Constant.REQUEST_MAP_CODE:
if (data == null) {
diff --git a/app/build.gradle b/app/build.gradle
index f5edb66..4e8aa5b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 15
- versionName "v1.0.0.7"
+ versionCode 16
+ versionName "v1.0.0.8"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
@@ -99,4 +99,6 @@
implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2'
//定位功能
implementation 'com.amap.api:location:5.3.1'
+ //图片压缩
+ implementation 'top.zibin:Luban:1.1.8'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c4a50de..6ea35aa 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,6 +80,8 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
new file mode 100644
index 0000000..4957e67
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
@@ -0,0 +1,81 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.CleanRecordBean;
+
+import java.util.List;
+
+public class RecordListAdapter extends RecyclerView.Adapter {
+
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+
+ public RecordListAdapter(Context context, List dataRows) {
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_record_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ if (clickListener != null) {
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+ static class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView workTimeView;
+ private TextView toiletNameView;
+ private TextView workerNameView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ workTimeView = itemView.findViewById(R.id.workTimeView);
+ toiletNameView = itemView.findViewById(R.id.toiletNameView);
+ workerNameView = itemView.findViewById(R.id.workerNameView);
+ }
+
+ void bindView(CleanRecordBean.DataBean.RowsBean rowsBean) {
+ workTimeView.setText(rowsBean.getCreateTime());
+ toiletNameView.setText(rowsBean.getToiletName().equals("") ? "未知" : rowsBean.getToiletName());
+ workerNameView.setText(rowsBean.getUserName().equals("") ? "未知" : rowsBean.getUserName());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
new file mode 100644
index 0000000..77c0fba
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
@@ -0,0 +1,202 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class CleanRecordBean {
+
+ /**
+ * code : 200.0
+ * data : {"rows":[{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}],"total":6}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ /**
+ * rows : [{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}]
+ * total : 6.0
+ */
+
+ private double total;
+ private List rows;
+
+ public double getTotal() {
+ return total;
+ }
+
+ public void setTotal(double total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * createTime : 2021-05-31
+ * defFlag : 0
+ * id : 1399290564295921665
+ * lat : 39.91570858
+ * lng : 116.26856423
+ * photo : 2021-05\9cd59072bb40498dba03e07db0d3f79c.png
+ * toiletId : 1120210531170001
+ * toiletName :
+ * updateTime : 2021-05-31
+ * userId : 1394828956022857730
+ * userName :
+ * workContent : 日常保洁
+ */
+
+ private String createTime;
+ private String defFlag;
+ private String id;
+ private String lat;
+ private String lng;
+ private String photo;
+ private String toiletId;
+ private String toiletName;
+ private String updateTime;
+ private String userId;
+ private String userName;
+ private String workContent;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDefFlag() {
+ return defFlag;
+ }
+
+ public void setDefFlag(String defFlag) {
+ this.defFlag = defFlag;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getPhoto() {
+ return photo;
+ }
+
+ public void setPhoto(String photo) {
+ this.photo = photo;
+ }
+
+ public String getToiletId() {
+ return toiletId;
+ }
+
+ public void setToiletId(String toiletId) {
+ this.toiletId = toiletId;
+ }
+
+ public String getToiletName() {
+ return toiletName;
+ }
+
+ public void setToiletName(String toiletName) {
+ this.toiletName = toiletName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getWorkContent() {
+ return workContent;
+ }
+
+ public void setWorkContent(String workContent) {
+ this.workContent = workContent;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
new file mode 100644
index 0000000..f50849c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class CleanRecordModelImpl implements ICleanRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public CleanRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(CleanRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ Observable observable = RetrofitServiceManager.getCleanRecordResult(userId, keywords, beginDate, endDate);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(CleanRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
new file mode 100644
index 0000000..3ffe8c4
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ICleanRecordModel {
+ Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
new file mode 100644
index 0000000..5b37216
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.CleanRecordModelImpl;
+import com.casic.dcms.mvp.view.ICleanToiletRecordView;
+
+public class CleanRecordPresenterImpl extends BasePresenter implements ICleanRecordPresenter, CleanRecordModelImpl.OnGetRecordListener {
+
+ private ICleanToiletRecordView view;
+ private CleanRecordModelImpl model;
+
+ public CleanRecordPresenterImpl(ICleanToiletRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new CleanRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ addSubscription(model.sendRetrofitRequest(userId, keywords, beginDate, endDate));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(CleanRecordBean result) {
+ view.obtainCleanRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
new file mode 100644
index 0000000..2b9acdd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ICleanRecordPresenter {
+ void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
index d0313e9..e53c5ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
@@ -1,9 +1,17 @@
package com.casic.dcms.mvp.presenter;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+
+import com.casic.dcms.base.BaseApplication;
import com.casic.dcms.bean.ActionResultBean;
import com.casic.dcms.mvp.BasePresenter;
import com.casic.dcms.mvp.model.UploadImageModelImpl;
import com.casic.dcms.mvp.view.IUploadFileView;
+import com.casic.dcms.utils.ImageHelper;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.utils.callback.IWaterMarkAddListener;
import java.io.File;
@@ -20,7 +28,27 @@
@Override
public void onReadyRetrofitRequest(File file) {
view.showProgress();
- addSubscription(actionModel.sendRetrofitRequest(file));
+ //改为上传带水印的图片
+ Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
+ ImageHelper.drawTextToRightBottom(BaseApplication.getInstance(), bitmap,
+ StringHelper.getUserAccount(),
+ TimeOrDateUtil.timestampToDate(System.currentTimeMillis()),
+ TimeOrDateUtil.timestampToTime(System.currentTimeMillis()),
+ new IWaterMarkAddListener() {
+ @Override
+ public void onSuccess(File file) {
+ if (file != null) {
+ addSubscription(actionModel.sendRetrofitRequest(file));
+ } else {
+ view.obtainDataFail();
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ view.obtainDataFail();
+ }
+ });
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
new file mode 100644
index 0000000..9df83d9
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.CleanRecordBean;
+
+public interface ICleanToiletRecordView {
+ void obtainCleanRecordResult(CleanRecordBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
index f02a4d7..aac6084 100644
--- a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
+++ b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
@@ -59,7 +59,7 @@
noticeBean.setTitle(resultBean.getTitle());
noticeBean.setContent(resultBean.getContent());
noticeBean.setType(resultBean.getType());
- noticeBean.setPushDate(TimeOrDateUtil.timestampToDate("yyyy-MM-dd HH:mm:ss"));
+ noticeBean.setPushDate(TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()));
noticeBean.setIsRead("1");
//存本地一份
diff --git a/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java b/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
index 3d6ad31..b5a94e2 100644
--- a/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
@@ -11,11 +11,14 @@
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.content.ContextCompat;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.bumptech.glide.Glide;
import com.casic.dcms.R;
+import com.casic.dcms.utils.StatusBarColorUtil;
+import com.gyf.immersionbar.ImmersionBar;
import com.luck.picture.lib.photoview.PhotoView;
import org.jetbrains.annotations.NotNull;
@@ -40,8 +43,13 @@
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_big_image);
ButterKnife.bind(this);
-
+ setupTopBarLayout();
initEvent();
+ }
+
+ private void setupTopBarLayout() {
+ StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.black));
+ ImmersionBar.with(this).statusBarDarkFont(false).init();
leftBackView.setOnClickListener(v -> finish());
}
@@ -101,7 +109,7 @@
View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
PhotoView photoView = view.findViewById(R.id.photoView);
Glide.with(context).load(data.get(position)).into(photoView);
- photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ photoView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
container.addView(view);
//点击大图取消预览
photoView.setOnClickListener(v -> BigImageActivity.this.finish());
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index f69c6cf..2d0c0af 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -33,7 +33,6 @@
import com.casic.dcms.ui.fragment.check.CaseCheckFragment;
import com.casic.dcms.ui.fragment.check.CaseCheckedFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.JzExoMedia;
@@ -235,9 +234,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -246,9 +242,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -260,13 +253,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
default:
break;
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 62413d2..90a578a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -37,7 +37,6 @@
import com.casic.dcms.ui.fragment.handle.OvertimeCaseFragment;
import com.casic.dcms.ui.fragment.handle.UrgentCaseFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.JzExoMedia;
@@ -126,7 +125,7 @@
private UploadImagePresenterImpl uploadImagePresenter;
private CaseHandlePresenterImpl caseHandlePresenter;
private MediaPlayer mediaPlayer;
- private QMUITipDialog submitDialog;
+ private QMUITipDialog submitDialog, loadingDialog;
private ImageRecycleViewAdapter handleImageAdapter;//处理图片的adapter
@Override
@@ -367,9 +366,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -378,9 +374,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -392,13 +385,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
default:
break;
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
index 67144b6..5ab5294 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
@@ -29,7 +29,6 @@
import com.casic.dcms.mvp.view.ICaseCheckView;
import com.casic.dcms.mvp.view.ICaseHandleListView;
import com.casic.dcms.mvp.view.ICaseVerifyView;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
@@ -239,25 +238,25 @@
private void resetRadioButton(int index) {
switch (index) {
case 0:
- handleRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.white));
- verifyRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
- checkRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
+ handleRadioButton.setTextColor(ContextCompat.getColor(this, R.color.white));
+ verifyRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ checkRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
//请求处置中数据
caseHandleListPresenter.onReadyRetrofitRequest(null, null, 1000, 1);
break;
case 1:
- verifyRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.white));
- handleRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
- checkRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
+ verifyRadioButton.setTextColor(ContextCompat.getColor(this, R.color.white));
+ handleRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ checkRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
//请求待核实数据
caseVerifyPresenter.onReadyRetrofitRequest(1000, 1);
break;
case 2:
- checkRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.white));
- verifyRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
- handleRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
+ checkRadioButton.setTextColor(ContextCompat.getColor(this, R.color.white));
+ verifyRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ handleRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
//请求待核查数据
caseCheckPresenter.onReadyRetrofitRequest(1000, 1);
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java
index 568a21f..111a834 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java
@@ -18,7 +18,6 @@
import com.casic.dcms.mvp.view.ICaseLargeClassView;
import com.casic.dcms.mvp.view.ICaseSmallClassView;
import com.casic.dcms.mvp.view.ICaseStatusView;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.TimeOrDateUtil;
import com.jzxiang.pickerview.TimePickerDialog;
@@ -114,7 +113,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseClassView.setText(tag);
- caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
eorc = String.valueOf(position + 1);
//获取案卷大类
@@ -136,7 +135,7 @@
dialog.dismiss();
caseLargeClassView.setText(tag);
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷小类
CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position);
@@ -162,7 +161,7 @@
dialog.dismiss();
caseSmallClassView.setText(tag);
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
typeDetailCode = smallClassBeans.get(position).getTypeDetailCode();
}
}).build().show();
@@ -173,7 +172,7 @@
caseStatusPresenter.onReadyRetrofitRequest();
break;
case R.id.selectStartDateView:
- new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor))
+ new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor))
.setTitleStringId("请选择处理时间")
.setWheelItemTextSize(16)
.setCyclic(false)
@@ -181,14 +180,14 @@
.setMaxMillseconds(System.currentTimeMillis())
.setType(Type.YEAR_MONTH_DAY)
.setCallBack((timePickerView, millSeconds) -> {
- String date = TimeOrDateUtil.timestampToDate("yyyy-MM-dd");
+ String date = TimeOrDateUtil.timestampToDate(millSeconds);
startTimeView.setText(date);
- startTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ startTimeView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
}).build().show(getSupportFragmentManager(), "year_month_day");
break;
case R.id.selectEndDateView:
- new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor))
+ new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor))
.setTitleStringId("请选择截止时间")
.setWheelItemTextSize(16)
.setCyclic(false)
@@ -196,10 +195,10 @@
.setMaxMillseconds(System.currentTimeMillis())
.setType(Type.YEAR_MONTH_DAY)
.setCallBack((timePickerView, millSeconds) -> {
- String date = TimeOrDateUtil.timestampToDate("yyy-MM-dd");
+ String date = TimeOrDateUtil.timestampToDate(millSeconds);
endTimeView.setText(date);
- endTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ endTimeView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
}).build().show(getSupportFragmentManager(), "year_month_day");
break;
case R.id.searchButton:
@@ -247,10 +246,10 @@
} else {
caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个
}
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
caseSmallClassView.setText("请选择");
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -264,7 +263,7 @@
} else {
caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个
}
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -285,7 +284,7 @@
caseState = beans.get(position).getValue();
caseStatusView.setText(tag);
- caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseStatusView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
}
}).build().show();
}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
index 75ac52e..d610761 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -20,6 +20,7 @@
import android.widget.TextView;
import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -42,7 +43,6 @@
import com.casic.dcms.mvp.view.ICaseSubmitCaseView;
import com.casic.dcms.mvp.view.IUploadFileView;
import com.casic.dcms.utils.AudioRecodeHelper;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
@@ -123,7 +123,7 @@
private CaseSubmitPresenterImpl caseSubmitPresenter;
private List largeClassBeans;
private List smallClassBeans;
- private QMUITipDialog submitDialog;
+ private QMUITipDialog submitDialog, loadingDialog;
private ProgressDialog progressDialog;
private UploadImagePresenterImpl uploadImagePresenter;
private List imageList = new ArrayList<>();//服务器返回的拍照数据集
@@ -222,7 +222,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseClassView.setText(tag);
- caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷大类
caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1));
@@ -242,7 +242,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseLargeClassView.setText(tag);
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷小类
CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position);
@@ -269,7 +269,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseSmallClassView.setText(tag);
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
typeDetailCode = smallClassBeans.get(position).getTypeDetailCode();
}
@@ -347,9 +347,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -358,9 +355,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -372,13 +366,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
case PictureConfig.PREVIEW_VIDEO_CODE:
LocalMedia media = PictureSelector.obtainMultipleResult(data).get(0);
@@ -518,10 +512,10 @@
} else {
caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个
}
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
caseSmallClassView.setText("请选择");
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -536,7 +530,7 @@
} else {
caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个
}
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadPackageActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadPackageActivity.java
index 10bfc1b..60521cf 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadPackageActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadPackageActivity.java
@@ -22,7 +22,6 @@
import com.casic.dcms.mvp.view.ICaseSubmitCaseView;
import com.casic.dcms.mvp.view.IUploadFileView;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.OtherUtils;
@@ -74,7 +73,7 @@
private UploadImagePresenterImpl uploadImagePresenter;
private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter;
private ImageRecycleViewAdapter imageAdapter;
- private QMUITipDialog submitDialog;
+ private QMUITipDialog submitDialog, loadingDialog;
private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private String gridId, shopID;
@@ -150,9 +149,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -161,9 +157,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -175,13 +168,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
case Constant.REQUEST_MAP_CODE:
if (data == null) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
index 7750f8a..7830b21 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
@@ -10,6 +10,7 @@
import android.widget.TextView;
import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -27,9 +28,7 @@
import com.casic.dcms.mvp.view.ICaseSmallClassView;
import com.casic.dcms.mvp.view.ICaseSubmitCaseView;
import com.casic.dcms.mvp.view.IUploadFileView;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.OtherUtils;
@@ -145,7 +144,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseClassView.setText(tag);
- caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷大类
caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1));
@@ -165,7 +164,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseLargeClassView.setText(tag);
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷小类
CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position);
@@ -192,7 +191,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseSmallClassView.setText(tag);
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
typeDetailCode = smallClassBeans.get(position).getTypeDetailCode();
}
@@ -245,9 +244,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -256,9 +252,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -270,13 +263,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
case Constant.REQUEST_MAP_CODE:
if (data == null) {
@@ -308,10 +301,10 @@
} else {
caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个
}
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
caseSmallClassView.setText("请选择");
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -326,7 +319,7 @@
} else {
caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个
}
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
index d28d4b2..da6a75f 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
@@ -41,7 +41,6 @@
import com.casic.dcms.ui.fragment.verify.CaseVerifiedFragment;
import com.casic.dcms.ui.fragment.verify.CaseVerifyFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.JzExoMedia;
@@ -72,7 +71,7 @@
public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener,
ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView {
- private Context context = CaseVerifyDetailActivity.this;
+ private Context context = this;
@BindView(R.id.caseNumberView)
TextView caseNumberView;
@BindView(R.id.caseTypeView)
@@ -522,9 +521,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -533,9 +529,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -547,13 +540,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
case Constant.REQUEST_MAP_CODE:
if (data == null) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
new file mode 100644
index 0000000..5fb348b
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
@@ -0,0 +1,178 @@
+package com.casic.dcms.ui;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Handler;
+import android.os.Message;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
+import androidx.recyclerview.widget.DividerItemDecoration;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.adapter.RecordListAdapter;
+import com.casic.dcms.base.BaseCaseActivity;
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.mvp.presenter.CleanRecordPresenterImpl;
+import com.casic.dcms.mvp.view.ICleanToiletRecordView;
+import com.casic.dcms.utils.Constant;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.utils.ToastHelper;
+import com.jzxiang.pickerview.TimePickerDialog;
+import com.jzxiang.pickerview.data.Type;
+import com.qmuiteam.qmui.widget.QMUIEmptyView;
+
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+
+public class CleanResultListActivity extends BaseCaseActivity implements ICleanToiletRecordView {
+
+ @BindView(R.id.emptyView)
+ QMUIEmptyView emptyView;
+ @BindView(R.id.dateView)
+ TextView dateView;
+ @BindView(R.id.calendarView)
+ ImageView calendarView;
+ @BindView(R.id.recordRecyclerView)
+ RecyclerView recordRecyclerView;
+
+ private Context context = this;
+ private RecordListAdapter adapter;
+ private List dataBeans = new ArrayList<>();
+ private boolean isNotify = false;
+ private WeakReferenceHandler weakReferenceHandler;
+ private CleanRecordPresenterImpl recordPresenter;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_clean_list;
+ }
+
+ @Override
+ protected String setTitleName() {
+ return "保洁作业记录";
+ }
+
+ @Override
+ public void initData() {
+ weakReferenceHandler = new WeakReferenceHandler(this);
+ recordPresenter = new CleanRecordPresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ //默认加载所有数据
+ recordPresenter.onReadyRetrofitRequest(StringHelper.getUserId(), "", "", "");
+ calendarView.setOnClickListener(new View.OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(context, R.color.mainThemeColor))
+ .setTitleStringId("请选择起始时间")
+ .setWheelItemTextSize(16)
+ .setCyclic(false)
+ .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS)
+ .setMaxMillseconds(System.currentTimeMillis())
+ .setType(Type.YEAR_MONTH_DAY)
+ .setCallBack((timePickerView, millSeconds) -> {
+ String date = TimeOrDateUtil.timestampToDate(millSeconds);
+
+ dateView.setText(date);
+ recordPresenter.onReadyRetrofitRequest(StringHelper.getUserId(), "",
+ date, "");
+ isNotify = true;
+ }).build().show(getSupportFragmentManager(), "year_month_day");
+ }
+ });
+ }
+
+ @Override
+ public void obtainCleanRecordResult(CleanRecordBean resultBean) {
+// Log.d("TAG", "obtainCleanRecordResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ if (isNotify) {
+ dataBeans.clear();
+ dataBeans = dataRows;
+ isNotify = false;
+ } else {
+ dataBeans = dataRows;
+ }
+ weakReferenceHandler.sendEmptyMessage(20210601);
+ }
+ }
+
+ private static class WeakReferenceHandler extends Handler {
+ private WeakReference reference;
+
+ private WeakReferenceHandler(CleanResultListActivity activity) {
+ reference = new WeakReference<>(activity);
+ }
+
+ @Override
+ public void handleMessage(@NonNull Message msg) {
+ super.handleMessage(msg);
+ CleanResultListActivity resultActivity = reference.get();
+ if (msg.what == 20210601) {
+ if (resultActivity.isNotify) {
+ resultActivity.adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (resultActivity.dataBeans.size() == 0) {
+ resultActivity.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
+ } else {
+ resultActivity.emptyView.hide();
+ resultActivity.adapter = new RecordListAdapter(resultActivity, resultActivity.dataBeans);
+ resultActivity.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
+ resultActivity.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
+ resultActivity.recordRecyclerView.setAdapter(resultActivity.adapter);
+ resultActivity.adapter.setOnItemClickListener(new RecordListAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ CleanRecordBean.DataBean.RowsBean rowsBean = resultActivity.dataBeans.get(position);
+
+ Intent intent = new Intent(resultActivity, WorkerOnMapActivity.class);
+ intent.putExtra("userName", rowsBean.getUserName());
+ intent.putExtra("createTime", rowsBean.getCreateTime());
+ intent.putExtra("toiletName", rowsBean.getToiletName());
+ String dataLng = rowsBean.getLng();
+ if (TextUtils.isEmpty(dataLng)) {
+ ToastHelper.showToast("经度异常", ToastHelper.ERROR);
+ return;
+ }
+ intent.putExtra("lng", Double.parseDouble(dataLng));
+ String dataLat = rowsBean.getLat();
+ if (TextUtils.isEmpty(dataLat)) {
+ ToastHelper.showToast("纬度异常", ToastHelper.ERROR);
+ return;
+ }
+ intent.putExtra("lat", Double.parseDouble(dataLat));
+// intent.putExtra("lng", Constant.DEFAULT_LNG);
+// intent.putExtra("lat", Constant.DEFAULT_LAT);
+ resultActivity.startActivity(intent);
+ }
+ });
+ }
+ }
+ }
+ }
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (recordPresenter != null) {
+ recordPresenter.disposeRetrofitRequest();
+ }
+ }
+}
diff --git a/app/build.gradle b/app/build.gradle
index f5edb66..4e8aa5b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 15
- versionName "v1.0.0.7"
+ versionCode 16
+ versionName "v1.0.0.8"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
@@ -99,4 +99,6 @@
implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2'
//定位功能
implementation 'com.amap.api:location:5.3.1'
+ //图片压缩
+ implementation 'top.zibin:Luban:1.1.8'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c4a50de..6ea35aa 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,6 +80,8 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
new file mode 100644
index 0000000..4957e67
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
@@ -0,0 +1,81 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.CleanRecordBean;
+
+import java.util.List;
+
+public class RecordListAdapter extends RecyclerView.Adapter {
+
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+
+ public RecordListAdapter(Context context, List dataRows) {
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_record_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ if (clickListener != null) {
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+ static class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView workTimeView;
+ private TextView toiletNameView;
+ private TextView workerNameView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ workTimeView = itemView.findViewById(R.id.workTimeView);
+ toiletNameView = itemView.findViewById(R.id.toiletNameView);
+ workerNameView = itemView.findViewById(R.id.workerNameView);
+ }
+
+ void bindView(CleanRecordBean.DataBean.RowsBean rowsBean) {
+ workTimeView.setText(rowsBean.getCreateTime());
+ toiletNameView.setText(rowsBean.getToiletName().equals("") ? "未知" : rowsBean.getToiletName());
+ workerNameView.setText(rowsBean.getUserName().equals("") ? "未知" : rowsBean.getUserName());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
new file mode 100644
index 0000000..77c0fba
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
@@ -0,0 +1,202 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class CleanRecordBean {
+
+ /**
+ * code : 200.0
+ * data : {"rows":[{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}],"total":6}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ /**
+ * rows : [{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}]
+ * total : 6.0
+ */
+
+ private double total;
+ private List rows;
+
+ public double getTotal() {
+ return total;
+ }
+
+ public void setTotal(double total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * createTime : 2021-05-31
+ * defFlag : 0
+ * id : 1399290564295921665
+ * lat : 39.91570858
+ * lng : 116.26856423
+ * photo : 2021-05\9cd59072bb40498dba03e07db0d3f79c.png
+ * toiletId : 1120210531170001
+ * toiletName :
+ * updateTime : 2021-05-31
+ * userId : 1394828956022857730
+ * userName :
+ * workContent : 日常保洁
+ */
+
+ private String createTime;
+ private String defFlag;
+ private String id;
+ private String lat;
+ private String lng;
+ private String photo;
+ private String toiletId;
+ private String toiletName;
+ private String updateTime;
+ private String userId;
+ private String userName;
+ private String workContent;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDefFlag() {
+ return defFlag;
+ }
+
+ public void setDefFlag(String defFlag) {
+ this.defFlag = defFlag;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getPhoto() {
+ return photo;
+ }
+
+ public void setPhoto(String photo) {
+ this.photo = photo;
+ }
+
+ public String getToiletId() {
+ return toiletId;
+ }
+
+ public void setToiletId(String toiletId) {
+ this.toiletId = toiletId;
+ }
+
+ public String getToiletName() {
+ return toiletName;
+ }
+
+ public void setToiletName(String toiletName) {
+ this.toiletName = toiletName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getWorkContent() {
+ return workContent;
+ }
+
+ public void setWorkContent(String workContent) {
+ this.workContent = workContent;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
new file mode 100644
index 0000000..f50849c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class CleanRecordModelImpl implements ICleanRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public CleanRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(CleanRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ Observable observable = RetrofitServiceManager.getCleanRecordResult(userId, keywords, beginDate, endDate);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(CleanRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
new file mode 100644
index 0000000..3ffe8c4
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ICleanRecordModel {
+ Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
new file mode 100644
index 0000000..5b37216
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.CleanRecordModelImpl;
+import com.casic.dcms.mvp.view.ICleanToiletRecordView;
+
+public class CleanRecordPresenterImpl extends BasePresenter implements ICleanRecordPresenter, CleanRecordModelImpl.OnGetRecordListener {
+
+ private ICleanToiletRecordView view;
+ private CleanRecordModelImpl model;
+
+ public CleanRecordPresenterImpl(ICleanToiletRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new CleanRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ addSubscription(model.sendRetrofitRequest(userId, keywords, beginDate, endDate));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(CleanRecordBean result) {
+ view.obtainCleanRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
new file mode 100644
index 0000000..2b9acdd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ICleanRecordPresenter {
+ void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
index d0313e9..e53c5ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
@@ -1,9 +1,17 @@
package com.casic.dcms.mvp.presenter;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+
+import com.casic.dcms.base.BaseApplication;
import com.casic.dcms.bean.ActionResultBean;
import com.casic.dcms.mvp.BasePresenter;
import com.casic.dcms.mvp.model.UploadImageModelImpl;
import com.casic.dcms.mvp.view.IUploadFileView;
+import com.casic.dcms.utils.ImageHelper;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.utils.callback.IWaterMarkAddListener;
import java.io.File;
@@ -20,7 +28,27 @@
@Override
public void onReadyRetrofitRequest(File file) {
view.showProgress();
- addSubscription(actionModel.sendRetrofitRequest(file));
+ //改为上传带水印的图片
+ Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
+ ImageHelper.drawTextToRightBottom(BaseApplication.getInstance(), bitmap,
+ StringHelper.getUserAccount(),
+ TimeOrDateUtil.timestampToDate(System.currentTimeMillis()),
+ TimeOrDateUtil.timestampToTime(System.currentTimeMillis()),
+ new IWaterMarkAddListener() {
+ @Override
+ public void onSuccess(File file) {
+ if (file != null) {
+ addSubscription(actionModel.sendRetrofitRequest(file));
+ } else {
+ view.obtainDataFail();
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ view.obtainDataFail();
+ }
+ });
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
new file mode 100644
index 0000000..9df83d9
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.CleanRecordBean;
+
+public interface ICleanToiletRecordView {
+ void obtainCleanRecordResult(CleanRecordBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
index f02a4d7..aac6084 100644
--- a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
+++ b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
@@ -59,7 +59,7 @@
noticeBean.setTitle(resultBean.getTitle());
noticeBean.setContent(resultBean.getContent());
noticeBean.setType(resultBean.getType());
- noticeBean.setPushDate(TimeOrDateUtil.timestampToDate("yyyy-MM-dd HH:mm:ss"));
+ noticeBean.setPushDate(TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()));
noticeBean.setIsRead("1");
//存本地一份
diff --git a/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java b/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
index 3d6ad31..b5a94e2 100644
--- a/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
@@ -11,11 +11,14 @@
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.content.ContextCompat;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.bumptech.glide.Glide;
import com.casic.dcms.R;
+import com.casic.dcms.utils.StatusBarColorUtil;
+import com.gyf.immersionbar.ImmersionBar;
import com.luck.picture.lib.photoview.PhotoView;
import org.jetbrains.annotations.NotNull;
@@ -40,8 +43,13 @@
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_big_image);
ButterKnife.bind(this);
-
+ setupTopBarLayout();
initEvent();
+ }
+
+ private void setupTopBarLayout() {
+ StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.black));
+ ImmersionBar.with(this).statusBarDarkFont(false).init();
leftBackView.setOnClickListener(v -> finish());
}
@@ -101,7 +109,7 @@
View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
PhotoView photoView = view.findViewById(R.id.photoView);
Glide.with(context).load(data.get(position)).into(photoView);
- photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ photoView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
container.addView(view);
//点击大图取消预览
photoView.setOnClickListener(v -> BigImageActivity.this.finish());
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index f69c6cf..2d0c0af 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -33,7 +33,6 @@
import com.casic.dcms.ui.fragment.check.CaseCheckFragment;
import com.casic.dcms.ui.fragment.check.CaseCheckedFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.JzExoMedia;
@@ -235,9 +234,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -246,9 +242,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -260,13 +253,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
default:
break;
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 62413d2..90a578a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -37,7 +37,6 @@
import com.casic.dcms.ui.fragment.handle.OvertimeCaseFragment;
import com.casic.dcms.ui.fragment.handle.UrgentCaseFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.JzExoMedia;
@@ -126,7 +125,7 @@
private UploadImagePresenterImpl uploadImagePresenter;
private CaseHandlePresenterImpl caseHandlePresenter;
private MediaPlayer mediaPlayer;
- private QMUITipDialog submitDialog;
+ private QMUITipDialog submitDialog, loadingDialog;
private ImageRecycleViewAdapter handleImageAdapter;//处理图片的adapter
@Override
@@ -367,9 +366,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -378,9 +374,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -392,13 +385,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
default:
break;
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
index 67144b6..5ab5294 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
@@ -29,7 +29,6 @@
import com.casic.dcms.mvp.view.ICaseCheckView;
import com.casic.dcms.mvp.view.ICaseHandleListView;
import com.casic.dcms.mvp.view.ICaseVerifyView;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
@@ -239,25 +238,25 @@
private void resetRadioButton(int index) {
switch (index) {
case 0:
- handleRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.white));
- verifyRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
- checkRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
+ handleRadioButton.setTextColor(ContextCompat.getColor(this, R.color.white));
+ verifyRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ checkRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
//请求处置中数据
caseHandleListPresenter.onReadyRetrofitRequest(null, null, 1000, 1);
break;
case 1:
- verifyRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.white));
- handleRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
- checkRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
+ verifyRadioButton.setTextColor(ContextCompat.getColor(this, R.color.white));
+ handleRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ checkRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
//请求待核实数据
caseVerifyPresenter.onReadyRetrofitRequest(1000, 1);
break;
case 2:
- checkRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.white));
- verifyRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
- handleRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
+ checkRadioButton.setTextColor(ContextCompat.getColor(this, R.color.white));
+ verifyRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ handleRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
//请求待核查数据
caseCheckPresenter.onReadyRetrofitRequest(1000, 1);
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java
index 568a21f..111a834 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java
@@ -18,7 +18,6 @@
import com.casic.dcms.mvp.view.ICaseLargeClassView;
import com.casic.dcms.mvp.view.ICaseSmallClassView;
import com.casic.dcms.mvp.view.ICaseStatusView;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.TimeOrDateUtil;
import com.jzxiang.pickerview.TimePickerDialog;
@@ -114,7 +113,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseClassView.setText(tag);
- caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
eorc = String.valueOf(position + 1);
//获取案卷大类
@@ -136,7 +135,7 @@
dialog.dismiss();
caseLargeClassView.setText(tag);
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷小类
CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position);
@@ -162,7 +161,7 @@
dialog.dismiss();
caseSmallClassView.setText(tag);
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
typeDetailCode = smallClassBeans.get(position).getTypeDetailCode();
}
}).build().show();
@@ -173,7 +172,7 @@
caseStatusPresenter.onReadyRetrofitRequest();
break;
case R.id.selectStartDateView:
- new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor))
+ new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor))
.setTitleStringId("请选择处理时间")
.setWheelItemTextSize(16)
.setCyclic(false)
@@ -181,14 +180,14 @@
.setMaxMillseconds(System.currentTimeMillis())
.setType(Type.YEAR_MONTH_DAY)
.setCallBack((timePickerView, millSeconds) -> {
- String date = TimeOrDateUtil.timestampToDate("yyyy-MM-dd");
+ String date = TimeOrDateUtil.timestampToDate(millSeconds);
startTimeView.setText(date);
- startTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ startTimeView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
}).build().show(getSupportFragmentManager(), "year_month_day");
break;
case R.id.selectEndDateView:
- new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor))
+ new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor))
.setTitleStringId("请选择截止时间")
.setWheelItemTextSize(16)
.setCyclic(false)
@@ -196,10 +195,10 @@
.setMaxMillseconds(System.currentTimeMillis())
.setType(Type.YEAR_MONTH_DAY)
.setCallBack((timePickerView, millSeconds) -> {
- String date = TimeOrDateUtil.timestampToDate("yyy-MM-dd");
+ String date = TimeOrDateUtil.timestampToDate(millSeconds);
endTimeView.setText(date);
- endTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ endTimeView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
}).build().show(getSupportFragmentManager(), "year_month_day");
break;
case R.id.searchButton:
@@ -247,10 +246,10 @@
} else {
caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个
}
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
caseSmallClassView.setText("请选择");
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -264,7 +263,7 @@
} else {
caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个
}
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -285,7 +284,7 @@
caseState = beans.get(position).getValue();
caseStatusView.setText(tag);
- caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseStatusView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
}
}).build().show();
}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
index 75ac52e..d610761 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -20,6 +20,7 @@
import android.widget.TextView;
import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -42,7 +43,6 @@
import com.casic.dcms.mvp.view.ICaseSubmitCaseView;
import com.casic.dcms.mvp.view.IUploadFileView;
import com.casic.dcms.utils.AudioRecodeHelper;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
@@ -123,7 +123,7 @@
private CaseSubmitPresenterImpl caseSubmitPresenter;
private List largeClassBeans;
private List smallClassBeans;
- private QMUITipDialog submitDialog;
+ private QMUITipDialog submitDialog, loadingDialog;
private ProgressDialog progressDialog;
private UploadImagePresenterImpl uploadImagePresenter;
private List imageList = new ArrayList<>();//服务器返回的拍照数据集
@@ -222,7 +222,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseClassView.setText(tag);
- caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷大类
caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1));
@@ -242,7 +242,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseLargeClassView.setText(tag);
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷小类
CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position);
@@ -269,7 +269,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseSmallClassView.setText(tag);
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
typeDetailCode = smallClassBeans.get(position).getTypeDetailCode();
}
@@ -347,9 +347,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -358,9 +355,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -372,13 +366,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
case PictureConfig.PREVIEW_VIDEO_CODE:
LocalMedia media = PictureSelector.obtainMultipleResult(data).get(0);
@@ -518,10 +512,10 @@
} else {
caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个
}
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
caseSmallClassView.setText("请选择");
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -536,7 +530,7 @@
} else {
caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个
}
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadPackageActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadPackageActivity.java
index 10bfc1b..60521cf 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadPackageActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadPackageActivity.java
@@ -22,7 +22,6 @@
import com.casic.dcms.mvp.view.ICaseSubmitCaseView;
import com.casic.dcms.mvp.view.IUploadFileView;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.OtherUtils;
@@ -74,7 +73,7 @@
private UploadImagePresenterImpl uploadImagePresenter;
private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter;
private ImageRecycleViewAdapter imageAdapter;
- private QMUITipDialog submitDialog;
+ private QMUITipDialog submitDialog, loadingDialog;
private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private String gridId, shopID;
@@ -150,9 +149,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -161,9 +157,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -175,13 +168,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
case Constant.REQUEST_MAP_CODE:
if (data == null) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
index 7750f8a..7830b21 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
@@ -10,6 +10,7 @@
import android.widget.TextView;
import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -27,9 +28,7 @@
import com.casic.dcms.mvp.view.ICaseSmallClassView;
import com.casic.dcms.mvp.view.ICaseSubmitCaseView;
import com.casic.dcms.mvp.view.IUploadFileView;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.OtherUtils;
@@ -145,7 +144,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseClassView.setText(tag);
- caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷大类
caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1));
@@ -165,7 +164,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseLargeClassView.setText(tag);
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷小类
CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position);
@@ -192,7 +191,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseSmallClassView.setText(tag);
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
typeDetailCode = smallClassBeans.get(position).getTypeDetailCode();
}
@@ -245,9 +244,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -256,9 +252,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -270,13 +263,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
case Constant.REQUEST_MAP_CODE:
if (data == null) {
@@ -308,10 +301,10 @@
} else {
caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个
}
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
caseSmallClassView.setText("请选择");
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -326,7 +319,7 @@
} else {
caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个
}
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
index d28d4b2..da6a75f 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
@@ -41,7 +41,6 @@
import com.casic.dcms.ui.fragment.verify.CaseVerifiedFragment;
import com.casic.dcms.ui.fragment.verify.CaseVerifyFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.JzExoMedia;
@@ -72,7 +71,7 @@
public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener,
ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView {
- private Context context = CaseVerifyDetailActivity.this;
+ private Context context = this;
@BindView(R.id.caseNumberView)
TextView caseNumberView;
@BindView(R.id.caseTypeView)
@@ -522,9 +521,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -533,9 +529,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -547,13 +540,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
case Constant.REQUEST_MAP_CODE:
if (data == null) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
new file mode 100644
index 0000000..5fb348b
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
@@ -0,0 +1,178 @@
+package com.casic.dcms.ui;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Handler;
+import android.os.Message;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
+import androidx.recyclerview.widget.DividerItemDecoration;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.adapter.RecordListAdapter;
+import com.casic.dcms.base.BaseCaseActivity;
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.mvp.presenter.CleanRecordPresenterImpl;
+import com.casic.dcms.mvp.view.ICleanToiletRecordView;
+import com.casic.dcms.utils.Constant;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.utils.ToastHelper;
+import com.jzxiang.pickerview.TimePickerDialog;
+import com.jzxiang.pickerview.data.Type;
+import com.qmuiteam.qmui.widget.QMUIEmptyView;
+
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+
+public class CleanResultListActivity extends BaseCaseActivity implements ICleanToiletRecordView {
+
+ @BindView(R.id.emptyView)
+ QMUIEmptyView emptyView;
+ @BindView(R.id.dateView)
+ TextView dateView;
+ @BindView(R.id.calendarView)
+ ImageView calendarView;
+ @BindView(R.id.recordRecyclerView)
+ RecyclerView recordRecyclerView;
+
+ private Context context = this;
+ private RecordListAdapter adapter;
+ private List dataBeans = new ArrayList<>();
+ private boolean isNotify = false;
+ private WeakReferenceHandler weakReferenceHandler;
+ private CleanRecordPresenterImpl recordPresenter;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_clean_list;
+ }
+
+ @Override
+ protected String setTitleName() {
+ return "保洁作业记录";
+ }
+
+ @Override
+ public void initData() {
+ weakReferenceHandler = new WeakReferenceHandler(this);
+ recordPresenter = new CleanRecordPresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ //默认加载所有数据
+ recordPresenter.onReadyRetrofitRequest(StringHelper.getUserId(), "", "", "");
+ calendarView.setOnClickListener(new View.OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(context, R.color.mainThemeColor))
+ .setTitleStringId("请选择起始时间")
+ .setWheelItemTextSize(16)
+ .setCyclic(false)
+ .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS)
+ .setMaxMillseconds(System.currentTimeMillis())
+ .setType(Type.YEAR_MONTH_DAY)
+ .setCallBack((timePickerView, millSeconds) -> {
+ String date = TimeOrDateUtil.timestampToDate(millSeconds);
+
+ dateView.setText(date);
+ recordPresenter.onReadyRetrofitRequest(StringHelper.getUserId(), "",
+ date, "");
+ isNotify = true;
+ }).build().show(getSupportFragmentManager(), "year_month_day");
+ }
+ });
+ }
+
+ @Override
+ public void obtainCleanRecordResult(CleanRecordBean resultBean) {
+// Log.d("TAG", "obtainCleanRecordResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ if (isNotify) {
+ dataBeans.clear();
+ dataBeans = dataRows;
+ isNotify = false;
+ } else {
+ dataBeans = dataRows;
+ }
+ weakReferenceHandler.sendEmptyMessage(20210601);
+ }
+ }
+
+ private static class WeakReferenceHandler extends Handler {
+ private WeakReference reference;
+
+ private WeakReferenceHandler(CleanResultListActivity activity) {
+ reference = new WeakReference<>(activity);
+ }
+
+ @Override
+ public void handleMessage(@NonNull Message msg) {
+ super.handleMessage(msg);
+ CleanResultListActivity resultActivity = reference.get();
+ if (msg.what == 20210601) {
+ if (resultActivity.isNotify) {
+ resultActivity.adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (resultActivity.dataBeans.size() == 0) {
+ resultActivity.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
+ } else {
+ resultActivity.emptyView.hide();
+ resultActivity.adapter = new RecordListAdapter(resultActivity, resultActivity.dataBeans);
+ resultActivity.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
+ resultActivity.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
+ resultActivity.recordRecyclerView.setAdapter(resultActivity.adapter);
+ resultActivity.adapter.setOnItemClickListener(new RecordListAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ CleanRecordBean.DataBean.RowsBean rowsBean = resultActivity.dataBeans.get(position);
+
+ Intent intent = new Intent(resultActivity, WorkerOnMapActivity.class);
+ intent.putExtra("userName", rowsBean.getUserName());
+ intent.putExtra("createTime", rowsBean.getCreateTime());
+ intent.putExtra("toiletName", rowsBean.getToiletName());
+ String dataLng = rowsBean.getLng();
+ if (TextUtils.isEmpty(dataLng)) {
+ ToastHelper.showToast("经度异常", ToastHelper.ERROR);
+ return;
+ }
+ intent.putExtra("lng", Double.parseDouble(dataLng));
+ String dataLat = rowsBean.getLat();
+ if (TextUtils.isEmpty(dataLat)) {
+ ToastHelper.showToast("纬度异常", ToastHelper.ERROR);
+ return;
+ }
+ intent.putExtra("lat", Double.parseDouble(dataLat));
+// intent.putExtra("lng", Constant.DEFAULT_LNG);
+// intent.putExtra("lat", Constant.DEFAULT_LAT);
+ resultActivity.startActivity(intent);
+ }
+ });
+ }
+ }
+ }
+ }
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (recordPresenter != null) {
+ recordPresenter.disposeRetrofitRequest();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java
index 7356d27..6c03459 100644
--- a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java
@@ -13,7 +13,6 @@
import com.casic.dcms.R;
import com.casic.dcms.adapter.AnalysisRecycleAdapter;
import com.casic.dcms.base.BaseActivity;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.SaveKeyValues;
import com.casic.dcms.utils.TimeOrDateUtil;
@@ -113,7 +112,7 @@
public void onClick(View v) {
switch (v.getId()) {
case R.id.selectStartDateView:
- new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor))
+ new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor))
.setTitleStringId("请选择起始时间")
.setWheelItemTextSize(16)
.setCyclic(false)
@@ -121,14 +120,14 @@
.setMaxMillseconds(System.currentTimeMillis())
.setType(Type.YEAR_MONTH_DAY)
.setCallBack((timePickerView, millSeconds) -> {
- String date = TimeOrDateUtil.timestampToDate("yyy-MM-dd");
+ String date = TimeOrDateUtil.timestampToDate(millSeconds);
startDateView.setText(date);
SaveKeyValues.putValue("begTime", date);
}).build().show(getSupportFragmentManager(), "year_month_day");
break;
case R.id.selectEndDateView:
- new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor))
+ new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor))
.setTitleStringId("请选择结束时间")
.setWheelItemTextSize(16)
.setCyclic(false)
@@ -136,7 +135,7 @@
.setMaxMillseconds(System.currentTimeMillis())
.setType(Type.YEAR_MONTH_DAY)
.setCallBack((timePickerView, millSeconds) -> {
- String date = TimeOrDateUtil.timestampToDate("yyy-MM-dd");
+ String date = TimeOrDateUtil.timestampToDate(millSeconds);
endDateView.setText(date);
SaveKeyValues.putValue("endTime", date);
diff --git a/app/build.gradle b/app/build.gradle
index f5edb66..4e8aa5b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 15
- versionName "v1.0.0.7"
+ versionCode 16
+ versionName "v1.0.0.8"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
@@ -99,4 +99,6 @@
implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2'
//定位功能
implementation 'com.amap.api:location:5.3.1'
+ //图片压缩
+ implementation 'top.zibin:Luban:1.1.8'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c4a50de..6ea35aa 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,6 +80,8 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
new file mode 100644
index 0000000..4957e67
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
@@ -0,0 +1,81 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.CleanRecordBean;
+
+import java.util.List;
+
+public class RecordListAdapter extends RecyclerView.Adapter {
+
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+
+ public RecordListAdapter(Context context, List dataRows) {
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_record_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ if (clickListener != null) {
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+ static class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView workTimeView;
+ private TextView toiletNameView;
+ private TextView workerNameView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ workTimeView = itemView.findViewById(R.id.workTimeView);
+ toiletNameView = itemView.findViewById(R.id.toiletNameView);
+ workerNameView = itemView.findViewById(R.id.workerNameView);
+ }
+
+ void bindView(CleanRecordBean.DataBean.RowsBean rowsBean) {
+ workTimeView.setText(rowsBean.getCreateTime());
+ toiletNameView.setText(rowsBean.getToiletName().equals("") ? "未知" : rowsBean.getToiletName());
+ workerNameView.setText(rowsBean.getUserName().equals("") ? "未知" : rowsBean.getUserName());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
new file mode 100644
index 0000000..77c0fba
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
@@ -0,0 +1,202 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class CleanRecordBean {
+
+ /**
+ * code : 200.0
+ * data : {"rows":[{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}],"total":6}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ /**
+ * rows : [{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}]
+ * total : 6.0
+ */
+
+ private double total;
+ private List rows;
+
+ public double getTotal() {
+ return total;
+ }
+
+ public void setTotal(double total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * createTime : 2021-05-31
+ * defFlag : 0
+ * id : 1399290564295921665
+ * lat : 39.91570858
+ * lng : 116.26856423
+ * photo : 2021-05\9cd59072bb40498dba03e07db0d3f79c.png
+ * toiletId : 1120210531170001
+ * toiletName :
+ * updateTime : 2021-05-31
+ * userId : 1394828956022857730
+ * userName :
+ * workContent : 日常保洁
+ */
+
+ private String createTime;
+ private String defFlag;
+ private String id;
+ private String lat;
+ private String lng;
+ private String photo;
+ private String toiletId;
+ private String toiletName;
+ private String updateTime;
+ private String userId;
+ private String userName;
+ private String workContent;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDefFlag() {
+ return defFlag;
+ }
+
+ public void setDefFlag(String defFlag) {
+ this.defFlag = defFlag;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getPhoto() {
+ return photo;
+ }
+
+ public void setPhoto(String photo) {
+ this.photo = photo;
+ }
+
+ public String getToiletId() {
+ return toiletId;
+ }
+
+ public void setToiletId(String toiletId) {
+ this.toiletId = toiletId;
+ }
+
+ public String getToiletName() {
+ return toiletName;
+ }
+
+ public void setToiletName(String toiletName) {
+ this.toiletName = toiletName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getWorkContent() {
+ return workContent;
+ }
+
+ public void setWorkContent(String workContent) {
+ this.workContent = workContent;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
new file mode 100644
index 0000000..f50849c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class CleanRecordModelImpl implements ICleanRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public CleanRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(CleanRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ Observable observable = RetrofitServiceManager.getCleanRecordResult(userId, keywords, beginDate, endDate);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(CleanRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
new file mode 100644
index 0000000..3ffe8c4
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ICleanRecordModel {
+ Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
new file mode 100644
index 0000000..5b37216
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.CleanRecordModelImpl;
+import com.casic.dcms.mvp.view.ICleanToiletRecordView;
+
+public class CleanRecordPresenterImpl extends BasePresenter implements ICleanRecordPresenter, CleanRecordModelImpl.OnGetRecordListener {
+
+ private ICleanToiletRecordView view;
+ private CleanRecordModelImpl model;
+
+ public CleanRecordPresenterImpl(ICleanToiletRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new CleanRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ addSubscription(model.sendRetrofitRequest(userId, keywords, beginDate, endDate));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(CleanRecordBean result) {
+ view.obtainCleanRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
new file mode 100644
index 0000000..2b9acdd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ICleanRecordPresenter {
+ void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
index d0313e9..e53c5ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
@@ -1,9 +1,17 @@
package com.casic.dcms.mvp.presenter;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+
+import com.casic.dcms.base.BaseApplication;
import com.casic.dcms.bean.ActionResultBean;
import com.casic.dcms.mvp.BasePresenter;
import com.casic.dcms.mvp.model.UploadImageModelImpl;
import com.casic.dcms.mvp.view.IUploadFileView;
+import com.casic.dcms.utils.ImageHelper;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.utils.callback.IWaterMarkAddListener;
import java.io.File;
@@ -20,7 +28,27 @@
@Override
public void onReadyRetrofitRequest(File file) {
view.showProgress();
- addSubscription(actionModel.sendRetrofitRequest(file));
+ //改为上传带水印的图片
+ Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
+ ImageHelper.drawTextToRightBottom(BaseApplication.getInstance(), bitmap,
+ StringHelper.getUserAccount(),
+ TimeOrDateUtil.timestampToDate(System.currentTimeMillis()),
+ TimeOrDateUtil.timestampToTime(System.currentTimeMillis()),
+ new IWaterMarkAddListener() {
+ @Override
+ public void onSuccess(File file) {
+ if (file != null) {
+ addSubscription(actionModel.sendRetrofitRequest(file));
+ } else {
+ view.obtainDataFail();
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ view.obtainDataFail();
+ }
+ });
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
new file mode 100644
index 0000000..9df83d9
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.CleanRecordBean;
+
+public interface ICleanToiletRecordView {
+ void obtainCleanRecordResult(CleanRecordBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
index f02a4d7..aac6084 100644
--- a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
+++ b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
@@ -59,7 +59,7 @@
noticeBean.setTitle(resultBean.getTitle());
noticeBean.setContent(resultBean.getContent());
noticeBean.setType(resultBean.getType());
- noticeBean.setPushDate(TimeOrDateUtil.timestampToDate("yyyy-MM-dd HH:mm:ss"));
+ noticeBean.setPushDate(TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()));
noticeBean.setIsRead("1");
//存本地一份
diff --git a/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java b/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
index 3d6ad31..b5a94e2 100644
--- a/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
@@ -11,11 +11,14 @@
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.content.ContextCompat;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.bumptech.glide.Glide;
import com.casic.dcms.R;
+import com.casic.dcms.utils.StatusBarColorUtil;
+import com.gyf.immersionbar.ImmersionBar;
import com.luck.picture.lib.photoview.PhotoView;
import org.jetbrains.annotations.NotNull;
@@ -40,8 +43,13 @@
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_big_image);
ButterKnife.bind(this);
-
+ setupTopBarLayout();
initEvent();
+ }
+
+ private void setupTopBarLayout() {
+ StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.black));
+ ImmersionBar.with(this).statusBarDarkFont(false).init();
leftBackView.setOnClickListener(v -> finish());
}
@@ -101,7 +109,7 @@
View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
PhotoView photoView = view.findViewById(R.id.photoView);
Glide.with(context).load(data.get(position)).into(photoView);
- photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ photoView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
container.addView(view);
//点击大图取消预览
photoView.setOnClickListener(v -> BigImageActivity.this.finish());
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index f69c6cf..2d0c0af 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -33,7 +33,6 @@
import com.casic.dcms.ui.fragment.check.CaseCheckFragment;
import com.casic.dcms.ui.fragment.check.CaseCheckedFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.JzExoMedia;
@@ -235,9 +234,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -246,9 +242,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -260,13 +253,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
default:
break;
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 62413d2..90a578a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -37,7 +37,6 @@
import com.casic.dcms.ui.fragment.handle.OvertimeCaseFragment;
import com.casic.dcms.ui.fragment.handle.UrgentCaseFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.JzExoMedia;
@@ -126,7 +125,7 @@
private UploadImagePresenterImpl uploadImagePresenter;
private CaseHandlePresenterImpl caseHandlePresenter;
private MediaPlayer mediaPlayer;
- private QMUITipDialog submitDialog;
+ private QMUITipDialog submitDialog, loadingDialog;
private ImageRecycleViewAdapter handleImageAdapter;//处理图片的adapter
@Override
@@ -367,9 +366,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -378,9 +374,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -392,13 +385,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
default:
break;
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
index 67144b6..5ab5294 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseOnMapActivity.java
@@ -29,7 +29,6 @@
import com.casic.dcms.mvp.view.ICaseCheckView;
import com.casic.dcms.mvp.view.ICaseHandleListView;
import com.casic.dcms.mvp.view.ICaseVerifyView;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
@@ -239,25 +238,25 @@
private void resetRadioButton(int index) {
switch (index) {
case 0:
- handleRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.white));
- verifyRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
- checkRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
+ handleRadioButton.setTextColor(ContextCompat.getColor(this, R.color.white));
+ verifyRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ checkRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
//请求处置中数据
caseHandleListPresenter.onReadyRetrofitRequest(null, null, 1000, 1);
break;
case 1:
- verifyRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.white));
- handleRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
- checkRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
+ verifyRadioButton.setTextColor(ContextCompat.getColor(this, R.color.white));
+ handleRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ checkRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
//请求待核实数据
caseVerifyPresenter.onReadyRetrofitRequest(1000, 1);
break;
case 2:
- checkRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.white));
- verifyRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
- handleRadioButton.setTextColor(ColorHelper.getResourcesColor(this, R.color.textColor));
+ checkRadioButton.setTextColor(ContextCompat.getColor(this, R.color.white));
+ verifyRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ handleRadioButton.setTextColor(ContextCompat.getColor(this, R.color.textColor));
//请求待核查数据
caseCheckPresenter.onReadyRetrofitRequest(1000, 1);
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java
index 568a21f..111a834 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java
@@ -18,7 +18,6 @@
import com.casic.dcms.mvp.view.ICaseLargeClassView;
import com.casic.dcms.mvp.view.ICaseSmallClassView;
import com.casic.dcms.mvp.view.ICaseStatusView;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.TimeOrDateUtil;
import com.jzxiang.pickerview.TimePickerDialog;
@@ -114,7 +113,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseClassView.setText(tag);
- caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
eorc = String.valueOf(position + 1);
//获取案卷大类
@@ -136,7 +135,7 @@
dialog.dismiss();
caseLargeClassView.setText(tag);
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷小类
CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position);
@@ -162,7 +161,7 @@
dialog.dismiss();
caseSmallClassView.setText(tag);
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
typeDetailCode = smallClassBeans.get(position).getTypeDetailCode();
}
}).build().show();
@@ -173,7 +172,7 @@
caseStatusPresenter.onReadyRetrofitRequest();
break;
case R.id.selectStartDateView:
- new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor))
+ new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor))
.setTitleStringId("请选择处理时间")
.setWheelItemTextSize(16)
.setCyclic(false)
@@ -181,14 +180,14 @@
.setMaxMillseconds(System.currentTimeMillis())
.setType(Type.YEAR_MONTH_DAY)
.setCallBack((timePickerView, millSeconds) -> {
- String date = TimeOrDateUtil.timestampToDate("yyyy-MM-dd");
+ String date = TimeOrDateUtil.timestampToDate(millSeconds);
startTimeView.setText(date);
- startTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ startTimeView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
}).build().show(getSupportFragmentManager(), "year_month_day");
break;
case R.id.selectEndDateView:
- new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor))
+ new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor))
.setTitleStringId("请选择截止时间")
.setWheelItemTextSize(16)
.setCyclic(false)
@@ -196,10 +195,10 @@
.setMaxMillseconds(System.currentTimeMillis())
.setType(Type.YEAR_MONTH_DAY)
.setCallBack((timePickerView, millSeconds) -> {
- String date = TimeOrDateUtil.timestampToDate("yyy-MM-dd");
+ String date = TimeOrDateUtil.timestampToDate(millSeconds);
endTimeView.setText(date);
- endTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ endTimeView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
}).build().show(getSupportFragmentManager(), "year_month_day");
break;
case R.id.searchButton:
@@ -247,10 +246,10 @@
} else {
caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个
}
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
caseSmallClassView.setText("请选择");
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -264,7 +263,7 @@
} else {
caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个
}
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -285,7 +284,7 @@
caseState = beans.get(position).getValue();
caseStatusView.setText(tag);
- caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseStatusView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
}
}).build().show();
}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
index 75ac52e..d610761 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -20,6 +20,7 @@
import android.widget.TextView;
import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -42,7 +43,6 @@
import com.casic.dcms.mvp.view.ICaseSubmitCaseView;
import com.casic.dcms.mvp.view.IUploadFileView;
import com.casic.dcms.utils.AudioRecodeHelper;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
@@ -123,7 +123,7 @@
private CaseSubmitPresenterImpl caseSubmitPresenter;
private List largeClassBeans;
private List smallClassBeans;
- private QMUITipDialog submitDialog;
+ private QMUITipDialog submitDialog, loadingDialog;
private ProgressDialog progressDialog;
private UploadImagePresenterImpl uploadImagePresenter;
private List imageList = new ArrayList<>();//服务器返回的拍照数据集
@@ -222,7 +222,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseClassView.setText(tag);
- caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷大类
caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1));
@@ -242,7 +242,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseLargeClassView.setText(tag);
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷小类
CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position);
@@ -269,7 +269,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseSmallClassView.setText(tag);
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
typeDetailCode = smallClassBeans.get(position).getTypeDetailCode();
}
@@ -347,9 +347,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -358,9 +355,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -372,13 +366,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
case PictureConfig.PREVIEW_VIDEO_CODE:
LocalMedia media = PictureSelector.obtainMultipleResult(data).get(0);
@@ -518,10 +512,10 @@
} else {
caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个
}
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
caseSmallClassView.setText("请选择");
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -536,7 +530,7 @@
} else {
caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个
}
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadPackageActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadPackageActivity.java
index 10bfc1b..60521cf 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadPackageActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadPackageActivity.java
@@ -22,7 +22,6 @@
import com.casic.dcms.mvp.view.ICaseSubmitCaseView;
import com.casic.dcms.mvp.view.IUploadFileView;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.OtherUtils;
@@ -74,7 +73,7 @@
private UploadImagePresenterImpl uploadImagePresenter;
private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter;
private ImageRecycleViewAdapter imageAdapter;
- private QMUITipDialog submitDialog;
+ private QMUITipDialog submitDialog, loadingDialog;
private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private String gridId, shopID;
@@ -150,9 +149,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -161,9 +157,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -175,13 +168,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
case Constant.REQUEST_MAP_CODE:
if (data == null) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
index 7750f8a..7830b21 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
@@ -10,6 +10,7 @@
import android.widget.TextView;
import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -27,9 +28,7 @@
import com.casic.dcms.mvp.view.ICaseSmallClassView;
import com.casic.dcms.mvp.view.ICaseSubmitCaseView;
import com.casic.dcms.mvp.view.IUploadFileView;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.OtherUtils;
@@ -145,7 +144,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseClassView.setText(tag);
- caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷大类
caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1));
@@ -165,7 +164,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseLargeClassView.setText(tag);
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
//获取案卷小类
CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position);
@@ -192,7 +191,7 @@
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
dialog.dismiss();
caseSmallClassView.setText(tag);
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
typeDetailCode = smallClassBeans.get(position).getTypeDetailCode();
}
@@ -245,9 +244,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -256,9 +252,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -270,13 +263,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
case Constant.REQUEST_MAP_CODE:
if (data == null) {
@@ -308,10 +301,10 @@
} else {
caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个
}
- caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseLargeClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
caseSmallClassView.setText("请选择");
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
@@ -326,7 +319,7 @@
} else {
caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个
}
- caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
+ caseSmallClassView.setTextColor(ContextCompat.getColor(this, R.color.darkGray));
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
index d28d4b2..da6a75f 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
@@ -41,7 +41,6 @@
import com.casic.dcms.ui.fragment.verify.CaseVerifiedFragment;
import com.casic.dcms.ui.fragment.verify.CaseVerifyFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.JzExoMedia;
@@ -72,7 +71,7 @@
public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener,
ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView {
- private Context context = CaseVerifyDetailActivity.this;
+ private Context context = this;
@BindView(R.id.caseNumberView)
TextView caseNumberView;
@BindView(R.id.caseTypeView)
@@ -522,9 +521,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -533,9 +529,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -547,13 +540,13 @@
case PictureConfig.CHOOSE_REQUEST:
List selectList = PictureSelector.obtainMultipleResult(data);
for (LocalMedia media : selectList) {
- String mediaCompressPath = media.getCompressPath();
- uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath));
+ String mediaRealPath = media.getRealPath();
+ uploadImagePresenter.onReadyRetrofitRequest(new File(mediaRealPath));
}
break;
case PictureConfig.REQUEST_CAMERA:
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
break;
case Constant.REQUEST_MAP_CODE:
if (data == null) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
new file mode 100644
index 0000000..5fb348b
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/CleanResultListActivity.java
@@ -0,0 +1,178 @@
+package com.casic.dcms.ui;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Handler;
+import android.os.Message;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
+import androidx.recyclerview.widget.DividerItemDecoration;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.adapter.RecordListAdapter;
+import com.casic.dcms.base.BaseCaseActivity;
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.mvp.presenter.CleanRecordPresenterImpl;
+import com.casic.dcms.mvp.view.ICleanToiletRecordView;
+import com.casic.dcms.utils.Constant;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.utils.ToastHelper;
+import com.jzxiang.pickerview.TimePickerDialog;
+import com.jzxiang.pickerview.data.Type;
+import com.qmuiteam.qmui.widget.QMUIEmptyView;
+
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+
+public class CleanResultListActivity extends BaseCaseActivity implements ICleanToiletRecordView {
+
+ @BindView(R.id.emptyView)
+ QMUIEmptyView emptyView;
+ @BindView(R.id.dateView)
+ TextView dateView;
+ @BindView(R.id.calendarView)
+ ImageView calendarView;
+ @BindView(R.id.recordRecyclerView)
+ RecyclerView recordRecyclerView;
+
+ private Context context = this;
+ private RecordListAdapter adapter;
+ private List dataBeans = new ArrayList<>();
+ private boolean isNotify = false;
+ private WeakReferenceHandler weakReferenceHandler;
+ private CleanRecordPresenterImpl recordPresenter;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_clean_list;
+ }
+
+ @Override
+ protected String setTitleName() {
+ return "保洁作业记录";
+ }
+
+ @Override
+ public void initData() {
+ weakReferenceHandler = new WeakReferenceHandler(this);
+ recordPresenter = new CleanRecordPresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ //默认加载所有数据
+ recordPresenter.onReadyRetrofitRequest(StringHelper.getUserId(), "", "", "");
+ calendarView.setOnClickListener(new View.OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(context, R.color.mainThemeColor))
+ .setTitleStringId("请选择起始时间")
+ .setWheelItemTextSize(16)
+ .setCyclic(false)
+ .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS)
+ .setMaxMillseconds(System.currentTimeMillis())
+ .setType(Type.YEAR_MONTH_DAY)
+ .setCallBack((timePickerView, millSeconds) -> {
+ String date = TimeOrDateUtil.timestampToDate(millSeconds);
+
+ dateView.setText(date);
+ recordPresenter.onReadyRetrofitRequest(StringHelper.getUserId(), "",
+ date, "");
+ isNotify = true;
+ }).build().show(getSupportFragmentManager(), "year_month_day");
+ }
+ });
+ }
+
+ @Override
+ public void obtainCleanRecordResult(CleanRecordBean resultBean) {
+// Log.d("TAG", "obtainCleanRecordResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ if (isNotify) {
+ dataBeans.clear();
+ dataBeans = dataRows;
+ isNotify = false;
+ } else {
+ dataBeans = dataRows;
+ }
+ weakReferenceHandler.sendEmptyMessage(20210601);
+ }
+ }
+
+ private static class WeakReferenceHandler extends Handler {
+ private WeakReference reference;
+
+ private WeakReferenceHandler(CleanResultListActivity activity) {
+ reference = new WeakReference<>(activity);
+ }
+
+ @Override
+ public void handleMessage(@NonNull Message msg) {
+ super.handleMessage(msg);
+ CleanResultListActivity resultActivity = reference.get();
+ if (msg.what == 20210601) {
+ if (resultActivity.isNotify) {
+ resultActivity.adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (resultActivity.dataBeans.size() == 0) {
+ resultActivity.emptyView.show("抱歉,没有查到您的保洁工作记录", null);
+ } else {
+ resultActivity.emptyView.hide();
+ resultActivity.adapter = new RecordListAdapter(resultActivity, resultActivity.dataBeans);
+ resultActivity.recordRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity));
+ resultActivity.recordRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL));
+ resultActivity.recordRecyclerView.setAdapter(resultActivity.adapter);
+ resultActivity.adapter.setOnItemClickListener(new RecordListAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ CleanRecordBean.DataBean.RowsBean rowsBean = resultActivity.dataBeans.get(position);
+
+ Intent intent = new Intent(resultActivity, WorkerOnMapActivity.class);
+ intent.putExtra("userName", rowsBean.getUserName());
+ intent.putExtra("createTime", rowsBean.getCreateTime());
+ intent.putExtra("toiletName", rowsBean.getToiletName());
+ String dataLng = rowsBean.getLng();
+ if (TextUtils.isEmpty(dataLng)) {
+ ToastHelper.showToast("经度异常", ToastHelper.ERROR);
+ return;
+ }
+ intent.putExtra("lng", Double.parseDouble(dataLng));
+ String dataLat = rowsBean.getLat();
+ if (TextUtils.isEmpty(dataLat)) {
+ ToastHelper.showToast("纬度异常", ToastHelper.ERROR);
+ return;
+ }
+ intent.putExtra("lat", Double.parseDouble(dataLat));
+// intent.putExtra("lng", Constant.DEFAULT_LNG);
+// intent.putExtra("lat", Constant.DEFAULT_LAT);
+ resultActivity.startActivity(intent);
+ }
+ });
+ }
+ }
+ }
+ }
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (recordPresenter != null) {
+ recordPresenter.disposeRetrofitRequest();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java
index 7356d27..6c03459 100644
--- a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java
@@ -13,7 +13,6 @@
import com.casic.dcms.R;
import com.casic.dcms.adapter.AnalysisRecycleAdapter;
import com.casic.dcms.base.BaseActivity;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.SaveKeyValues;
import com.casic.dcms.utils.TimeOrDateUtil;
@@ -113,7 +112,7 @@
public void onClick(View v) {
switch (v.getId()) {
case R.id.selectStartDateView:
- new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor))
+ new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor))
.setTitleStringId("请选择起始时间")
.setWheelItemTextSize(16)
.setCyclic(false)
@@ -121,14 +120,14 @@
.setMaxMillseconds(System.currentTimeMillis())
.setType(Type.YEAR_MONTH_DAY)
.setCallBack((timePickerView, millSeconds) -> {
- String date = TimeOrDateUtil.timestampToDate("yyy-MM-dd");
+ String date = TimeOrDateUtil.timestampToDate(millSeconds);
startDateView.setText(date);
SaveKeyValues.putValue("begTime", date);
}).build().show(getSupportFragmentManager(), "year_month_day");
break;
case R.id.selectEndDateView:
- new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor))
+ new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor))
.setTitleStringId("请选择结束时间")
.setWheelItemTextSize(16)
.setCyclic(false)
@@ -136,7 +135,7 @@
.setMaxMillseconds(System.currentTimeMillis())
.setType(Type.YEAR_MONTH_DAY)
.setCallBack((timePickerView, millSeconds) -> {
- String date = TimeOrDateUtil.timestampToDate("yyy-MM-dd");
+ String date = TimeOrDateUtil.timestampToDate(millSeconds);
endDateView.setText(date);
SaveKeyValues.putValue("endTime", date);
diff --git a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
index 2596836..d1ce586 100644
--- a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
@@ -10,7 +10,6 @@
import android.location.Location;
import android.text.InputType;
import android.text.TextUtils;
-import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
@@ -28,15 +27,14 @@
import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl;
import com.casic.dcms.mvp.view.IPublicToiletView;
import com.casic.dcms.mvp.view.IUploadFileView;
-import com.casic.dcms.utils.ColorHelper;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.LocationHelper;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.TimeOrDateUtil;
import com.casic.dcms.utils.ToastHelper;
import com.casic.dcms.utils.callback.ILocationListener;
+import com.casic.dcms.widgets.SignInDialog;
import com.esri.arcgisruntime.geometry.Point;
import com.esri.arcgisruntime.layers.ArcGISTiledLayer;
import com.esri.arcgisruntime.mapping.ArcGISMap;
@@ -47,7 +45,6 @@
import com.esri.arcgisruntime.mapping.view.MapView;
import com.esri.arcgisruntime.symbology.PictureMarkerSymbol;
import com.esri.arcgisruntime.util.ListenableList;
-import com.google.gson.Gson;
import com.luck.picture.lib.PictureSelector;
import com.luck.picture.lib.config.PictureConfig;
import com.luck.picture.lib.config.PictureMimeType;
@@ -61,6 +58,8 @@
import java.io.File;
import java.util.ArrayList;
+import java.util.Timer;
+import java.util.TimerTask;
import butterknife.BindView;
import butterknife.OnClick;
@@ -92,11 +91,12 @@
ImageView takePictureView;
@BindView(R.id.signInButton)
QMUIRoundButton signInButton;
+ @BindView(R.id.clockView)
+ TextView clockView;
private UploadImagePresenterImpl uploadImagePresenter;
- private QMUITipDialog submitDialog;
+ private QMUITipDialog submitDialog, locationDialog;
private String imagePath = "";//服务器返回的拍照数据
- private QMUITipDialog loadingDialog;
private CleanToiletPresenterImpl cleanToiletPresenter;
@Override
@@ -114,10 +114,24 @@
finish();
}
});
+ topLayout.addRightImageButton(R.drawable.ic_more, 2).setOnClickListener(new View.OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ startActivity(new Intent(context, CleanResultListActivity.class));
+ }
+ });
}
@Override
public void initData() {
+ new Timer().schedule(new TimerTask() {
+ @Override
+ public void run() {
+ String systemTime = TimeOrDateUtil.timestampToTime(System.currentTimeMillis());
+ clockView.post(() -> clockView.setText(systemTime));
+ }
+ }, 0, 1000);
LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() {
@Override
public void onLocationGet(Location location) {
@@ -165,7 +179,7 @@
.setTipWord("提交中,请稍后")
.create();
- loadingDialog = new QMUITipDialog.Builder(this)
+ locationDialog = new QMUITipDialog.Builder(this)
.setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING)
.setTipWord("定位中,请稍后")
.create();
@@ -197,7 +211,7 @@
public void onClick(View v) {
switch (v.getId()) {
case R.id.removeToLocalView:
- loadingDialog.show();
+ locationDialog.show();
LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() {
@Override
public void onLocationGet(Location location) {
@@ -226,7 +240,7 @@
}
locationStreetView.setTextColor(Color.BLUE);
}
- loadingDialog.dismiss();
+ locationDialog.dismiss();
}
}, true);
break;
@@ -251,14 +265,14 @@
.setShowTitle(true) //显示Title
.setScanType(QrConfig.TYPE_ALL)//识别二维码和条形码
.setShowAlbum(false) //显示从相册选择按钮
- .setCornerColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) //设置扫描框颜色
- .setLineColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) //设置扫描线颜色
+ .setCornerColor(ContextCompat.getColor(this, R.color.mainThemeColor)) //设置扫描框颜色
+ .setLineColor(ContextCompat.getColor(this, R.color.mainThemeColor)) //设置扫描线颜色
.setLineSpeed(QrConfig.LINE_MEDIUM) //设置扫描线速度
.setDesText(null) //扫描框下文字
.setShowDes(true) //是否显示扫描框下面文字
.setPlaySound(true) //是否扫描成功后bi~的声音
.setIsOnlyCenter(true) //是否只识别框中内容(默认为全屏识别)
- .setTitleBackgroudColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor))
+ .setTitleBackgroudColor(ContextCompat.getColor(this, R.color.mainThemeColor))
.setTitleTextColor(Color.WHITE) //设置Title文字颜色
.setScreenOrientation(QrConfig.SCREEN_PORTRAIT) //设置屏幕方式
.setScanLineStyle(ScanLineView.style_hybrid) //扫描线样式
@@ -276,9 +290,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
break;
case R.id.signInButton:
@@ -305,12 +316,11 @@
}
double longitude = aMapLocation.getLongitude();
double latitude = aMapLocation.getLatitude();
- String cleanTime = TimeOrDateUtil.timestampToDate("yyyy-MM-dd HH:mm:ss");
+ String cleanTime = TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis());
cleanToiletPresenter.onReadyRetrofitRequest(toiletId, StringHelper.getUserId(),
String.valueOf(longitude), String.valueOf(latitude), cleanTime, imagePath,
StringHelper.filterString(workContentView.getText().toString()));
}
- loadingDialog.dismiss();
}
}, true);
break;
@@ -348,7 +358,7 @@
if (resultCode == RESULT_OK) {
if (requestCode == PictureConfig.REQUEST_CAMERA) {
LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0);
- uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath()));
+ uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getRealPath()));
}
}
}
@@ -409,7 +419,16 @@
@Override
public void obtainCleanResult(ActionResultBean resultBean) {
- Log.d(TAG, "obtainUploadAudioResult: " + new Gson().toJson(resultBean));
+// Log.d(TAG, "obtainCleanResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ new SignInDialog.Builder().setContext(this).setAddress(locationStreetView.getText().toString()).setOnDialogClickListener(new SignInDialog.OnDialogClickListener() {
+ @Override
+ public void onViewClick() {
+ startActivity(new Intent(context, CleanResultListActivity.class));
+ PublicToiletActivity.this.finish();
+ }
+ }).build().show();
+ }
}
@Override
diff --git a/app/build.gradle b/app/build.gradle
index f5edb66..4e8aa5b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 15
- versionName "v1.0.0.7"
+ versionCode 16
+ versionName "v1.0.0.8"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
@@ -99,4 +99,6 @@
implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2'
//定位功能
implementation 'com.amap.api:location:5.3.1'
+ //图片压缩
+ implementation 'top.zibin:Luban:1.1.8'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c4a50de..6ea35aa 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,6 +80,8 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
new file mode 100644
index 0000000..4957e67
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/RecordListAdapter.java
@@ -0,0 +1,81 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.CleanRecordBean;
+
+import java.util.List;
+
+public class RecordListAdapter extends RecyclerView.Adapter {
+
+ private List dataRows;
+ private LayoutInflater layoutInflater;
+
+ public RecordListAdapter(Context context, List dataRows) {
+ this.dataRows = dataRows;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @NonNull
+ @Override
+ public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = layoutInflater.inflate(R.layout.item_record_recycleview, parent, false);
+ return new ItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
+ holder.bindView(dataRows.get(position));
+ if (clickListener != null) {
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataRows.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+ static class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView workTimeView;
+ private TextView toiletNameView;
+ private TextView workerNameView;
+
+ ItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ workTimeView = itemView.findViewById(R.id.workTimeView);
+ toiletNameView = itemView.findViewById(R.id.toiletNameView);
+ workerNameView = itemView.findViewById(R.id.workerNameView);
+ }
+
+ void bindView(CleanRecordBean.DataBean.RowsBean rowsBean) {
+ workTimeView.setText(rowsBean.getCreateTime());
+ toiletNameView.setText(rowsBean.getToiletName().equals("") ? "未知" : rowsBean.getToiletName());
+ workerNameView.setText(rowsBean.getUserName().equals("") ? "未知" : rowsBean.getUserName());
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
new file mode 100644
index 0000000..77c0fba
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/CleanRecordBean.java
@@ -0,0 +1,202 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+public class CleanRecordBean {
+
+ /**
+ * code : 200.0
+ * data : {"rows":[{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}],"total":6}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ /**
+ * rows : [{"createTime":"2021-05-31","defFlag":"0","id":"1399290564295921665","lat":"39.91570858","lng":"116.26856423","photo":"2021-05\\9cd59072bb40498dba03e07db0d3f79c.png","toiletId":"1120210531170001","toiletName":"","updateTime":"2021-05-31","userId":"1394828956022857730","userName":"","workContent":"日常保洁"}]
+ * total : 6.0
+ */
+
+ private double total;
+ private List rows;
+
+ public double getTotal() {
+ return total;
+ }
+
+ public void setTotal(double total) {
+ this.total = total;
+ }
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public static class RowsBean {
+ /**
+ * createTime : 2021-05-31
+ * defFlag : 0
+ * id : 1399290564295921665
+ * lat : 39.91570858
+ * lng : 116.26856423
+ * photo : 2021-05\9cd59072bb40498dba03e07db0d3f79c.png
+ * toiletId : 1120210531170001
+ * toiletName :
+ * updateTime : 2021-05-31
+ * userId : 1394828956022857730
+ * userName :
+ * workContent : 日常保洁
+ */
+
+ private String createTime;
+ private String defFlag;
+ private String id;
+ private String lat;
+ private String lng;
+ private String photo;
+ private String toiletId;
+ private String toiletName;
+ private String updateTime;
+ private String userId;
+ private String userName;
+ private String workContent;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDefFlag() {
+ return defFlag;
+ }
+
+ public void setDefFlag(String defFlag) {
+ this.defFlag = defFlag;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getPhoto() {
+ return photo;
+ }
+
+ public void setPhoto(String photo) {
+ this.photo = photo;
+ }
+
+ public String getToiletId() {
+ return toiletId;
+ }
+
+ public void setToiletId(String toiletId) {
+ this.toiletId = toiletId;
+ }
+
+ public String getToiletName() {
+ return toiletName;
+ }
+
+ public void setToiletName(String toiletName) {
+ this.toiletName = toiletName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getWorkContent() {
+ return workContent;
+ }
+
+ public void setWorkContent(String workContent) {
+ this.workContent = workContent;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
new file mode 100644
index 0000000..f50849c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanRecordModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class CleanRecordModelImpl implements ICleanRecordModel {
+
+ private OnGetRecordListener listener;
+
+ public CleanRecordModelImpl(OnGetRecordListener recordListener) {
+ this.listener = recordListener;
+ }
+
+ public interface OnGetRecordListener {
+ void onSuccess(CleanRecordBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ Observable observable = RetrofitServiceManager.getCleanRecordResult(userId, keywords, beginDate, endDate);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(CleanRecordBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
new file mode 100644
index 0000000..3ffe8c4
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ICleanRecordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ICleanRecordModel {
+ Subscription sendRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
new file mode 100644
index 0000000..5b37216
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanRecordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.CleanRecordBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.CleanRecordModelImpl;
+import com.casic.dcms.mvp.view.ICleanToiletRecordView;
+
+public class CleanRecordPresenterImpl extends BasePresenter implements ICleanRecordPresenter, CleanRecordModelImpl.OnGetRecordListener {
+
+ private ICleanToiletRecordView view;
+ private CleanRecordModelImpl model;
+
+ public CleanRecordPresenterImpl(ICleanToiletRecordView cleanToiletRecordView) {
+ this.view = cleanToiletRecordView;
+ model = new CleanRecordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate) {
+ addSubscription(model.sendRetrofitRequest(userId, keywords, beginDate, endDate));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(CleanRecordBean result) {
+ view.obtainCleanRecordResult(result);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
new file mode 100644
index 0000000..2b9acdd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanRecordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ICleanRecordPresenter {
+ void onReadyRetrofitRequest(String userId, String keywords, String beginDate, String endDate);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
index d0313e9..e53c5ac 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadImagePresenterImpl.java
@@ -1,9 +1,17 @@
package com.casic.dcms.mvp.presenter;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+
+import com.casic.dcms.base.BaseApplication;
import com.casic.dcms.bean.ActionResultBean;
import com.casic.dcms.mvp.BasePresenter;
import com.casic.dcms.mvp.model.UploadImageModelImpl;
import com.casic.dcms.mvp.view.IUploadFileView;
+import com.casic.dcms.utils.ImageHelper;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.utils.callback.IWaterMarkAddListener;
import java.io.File;
@@ -20,7 +28,27 @@
@Override
public void onReadyRetrofitRequest(File file) {
view.showProgress();
- addSubscription(actionModel.sendRetrofitRequest(file));
+ //改为上传带水印的图片
+ Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
+ ImageHelper.drawTextToRightBottom(BaseApplication.getInstance(), bitmap,
+ StringHelper.getUserAccount(),
+ TimeOrDateUtil.timestampToDate(System.currentTimeMillis()),
+ TimeOrDateUtil.timestampToTime(System.currentTimeMillis()),
+ new IWaterMarkAddListener() {
+ @Override
+ public void onSuccess(File file) {
+ if (file != null) {
+ addSubscription(actionModel.sendRetrofitRequest(file));
+ } else {
+ view.obtainDataFail();
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ view.obtainDataFail();
+ }
+ });
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
new file mode 100644
index 0000000..9df83d9
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ICleanToiletRecordView.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.CleanRecordBean;
+
+public interface ICleanToiletRecordView {
+ void obtainCleanRecordResult(CleanRecordBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
index f02a4d7..aac6084 100644
--- a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
+++ b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java
@@ -59,7 +59,7 @@
noticeBean.setTitle(resultBean.getTitle());
noticeBean.setContent(resultBean.getContent());
noticeBean.setType(resultBean.getType());
- noticeBean.setPushDate(TimeOrDateUtil.timestampToDate("yyyy-MM-dd HH:mm:ss"));
+ noticeBean.setPushDate(TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()));
noticeBean.setIsRead("1");
//存本地一份
diff --git a/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java b/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
index 3d6ad31..b5a94e2 100644
--- a/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/BigImageActivity.java
@@ -11,11 +11,14 @@
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.content.ContextCompat;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.bumptech.glide.Glide;
import com.casic.dcms.R;
+import com.casic.dcms.utils.StatusBarColorUtil;
+import com.gyf.immersionbar.ImmersionBar;
import com.luck.picture.lib.photoview.PhotoView;
import org.jetbrains.annotations.NotNull;
@@ -40,8 +43,13 @@
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_big_image);
ButterKnife.bind(this);
-
+ setupTopBarLayout();
initEvent();
+ }
+
+ private void setupTopBarLayout() {
+ StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.black));
+ ImmersionBar.with(this).statusBarDarkFont(false).init();
leftBackView.setOnClickListener(v -> finish());
}
@@ -101,7 +109,7 @@
View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
PhotoView photoView = view.findViewById(R.id.photoView);
Glide.with(context).load(data.get(position)).into(photoView);
- photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ photoView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
container.addView(view);
//点击大图取消预览
photoView.setOnClickListener(v -> BigImageActivity.this.finish());
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index f69c6cf..2d0c0af 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -33,7 +33,6 @@
import com.casic.dcms.ui.fragment.check.CaseCheckFragment;
import com.casic.dcms.ui.fragment.check.CaseCheckedFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.FileUtils;
import com.casic.dcms.utils.GlideLoadEngine;
import com.casic.dcms.utils.ItemDecorationSpace;
import com.casic.dcms.utils.JzExoMedia;
@@ -235,9 +234,6 @@
.isWeChatStyle(true)
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(2)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.CHOOSE_REQUEST);
}
@@ -246,9 +242,6 @@
.openCamera(PictureMimeType.ofImage())
.imageEngine(GlideLoadEngine.createGlideEngine())
.maxSelectNum(1)
- .isCompress(true)
- .compressQuality(80)
- .compressSavePath(FileUtils.getImageCompressPath())
.forResult(PictureConfig.REQUEST_CAMERA);
}
@@ -260,13 +253,13 @@
case PictureConfig.CHOOSE_REQUEST:
List