diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
+
+
+
+
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
new file mode 100644
index 0000000..fe6c5f7
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IChangePasswordPresenter {
+ void onReadyRetrofitRequest(String oldPwd, String newPwd);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
new file mode 100644
index 0000000..fe6c5f7
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IChangePasswordPresenter {
+ void onReadyRetrofitRequest(String oldPwd, String newPwd);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
new file mode 100644
index 0000000..4e2c7c1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ILoginOutPresenter {
+ void onReadyRetrofitRequest();
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
new file mode 100644
index 0000000..fe6c5f7
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IChangePasswordPresenter {
+ void onReadyRetrofitRequest(String oldPwd, String newPwd);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
new file mode 100644
index 0000000..4e2c7c1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ILoginOutPresenter {
+ void onReadyRetrofitRequest();
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
new file mode 100644
index 0000000..74a6a24
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.LoginOutActionModelImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+
+public class LoginOutPresenterImpl extends BasePresenter implements ILoginOutPresenter, LoginOutActionModelImpl.OnLoginOutListener {
+
+ private ILoginOutView view;
+ private LoginOutActionModelImpl actionModel;
+
+ public LoginOutPresenterImpl(ILoginOutView loginOutView) {
+ this.view = loginOutView;
+ actionModel = new LoginOutActionModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest() {
+ addSubscription(actionModel.sendRetrofitRequest());
+ }
+
+ @Override
+ public void onSuccess(LoginOutResultBean resultBean) {
+ view.obtainLoginOutResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
new file mode 100644
index 0000000..fe6c5f7
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IChangePasswordPresenter {
+ void onReadyRetrofitRequest(String oldPwd, String newPwd);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
new file mode 100644
index 0000000..4e2c7c1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ILoginOutPresenter {
+ void onReadyRetrofitRequest();
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
new file mode 100644
index 0000000..74a6a24
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.LoginOutActionModelImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+
+public class LoginOutPresenterImpl extends BasePresenter implements ILoginOutPresenter, LoginOutActionModelImpl.OnLoginOutListener {
+
+ private ILoginOutView view;
+ private LoginOutActionModelImpl actionModel;
+
+ public LoginOutPresenterImpl(ILoginOutView loginOutView) {
+ this.view = loginOutView;
+ actionModel = new LoginOutActionModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest() {
+ addSubscription(actionModel.sendRetrofitRequest());
+ }
+
+ @Override
+ public void onSuccess(LoginOutResultBean resultBean) {
+ view.obtainLoginOutResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
index 2119b70..0bcea6a 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
@@ -17,7 +17,6 @@
@Override
public void onReadyRetrofitRequest() {
- view.showProgress();
addSubscription(actionModel.sendRetrofitRequest());
}
@@ -28,12 +27,11 @@
@Override
public void onSuccess(UserBean userBean) {
- view.hideProgress();
view.obtainUserData(userBean);
}
@Override
public void onFailure(Throwable throwable) {
- view.hideProgress();
+
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
new file mode 100644
index 0000000..fe6c5f7
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IChangePasswordPresenter {
+ void onReadyRetrofitRequest(String oldPwd, String newPwd);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
new file mode 100644
index 0000000..4e2c7c1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ILoginOutPresenter {
+ void onReadyRetrofitRequest();
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
new file mode 100644
index 0000000..74a6a24
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.LoginOutActionModelImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+
+public class LoginOutPresenterImpl extends BasePresenter implements ILoginOutPresenter, LoginOutActionModelImpl.OnLoginOutListener {
+
+ private ILoginOutView view;
+ private LoginOutActionModelImpl actionModel;
+
+ public LoginOutPresenterImpl(ILoginOutView loginOutView) {
+ this.view = loginOutView;
+ actionModel = new LoginOutActionModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest() {
+ addSubscription(actionModel.sendRetrofitRequest());
+ }
+
+ @Override
+ public void onSuccess(LoginOutResultBean resultBean) {
+ view.obtainLoginOutResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
index 2119b70..0bcea6a 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
@@ -17,7 +17,6 @@
@Override
public void onReadyRetrofitRequest() {
- view.showProgress();
addSubscription(actionModel.sendRetrofitRequest());
}
@@ -28,12 +27,11 @@
@Override
public void onSuccess(UserBean userBean) {
- view.hideProgress();
view.obtainUserData(userBean);
}
@Override
public void onFailure(Throwable throwable) {
- view.hideProgress();
+
}
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
new file mode 100644
index 0000000..c2a84ab
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface IChangePasswordView {
+ void obtainChangePassResult(ChangePasswordResultBean resultBean);
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
new file mode 100644
index 0000000..fe6c5f7
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IChangePasswordPresenter {
+ void onReadyRetrofitRequest(String oldPwd, String newPwd);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
new file mode 100644
index 0000000..4e2c7c1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ILoginOutPresenter {
+ void onReadyRetrofitRequest();
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
new file mode 100644
index 0000000..74a6a24
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.LoginOutActionModelImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+
+public class LoginOutPresenterImpl extends BasePresenter implements ILoginOutPresenter, LoginOutActionModelImpl.OnLoginOutListener {
+
+ private ILoginOutView view;
+ private LoginOutActionModelImpl actionModel;
+
+ public LoginOutPresenterImpl(ILoginOutView loginOutView) {
+ this.view = loginOutView;
+ actionModel = new LoginOutActionModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest() {
+ addSubscription(actionModel.sendRetrofitRequest());
+ }
+
+ @Override
+ public void onSuccess(LoginOutResultBean resultBean) {
+ view.obtainLoginOutResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
index 2119b70..0bcea6a 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
@@ -17,7 +17,6 @@
@Override
public void onReadyRetrofitRequest() {
- view.showProgress();
addSubscription(actionModel.sendRetrofitRequest());
}
@@ -28,12 +27,11 @@
@Override
public void onSuccess(UserBean userBean) {
- view.hideProgress();
view.obtainUserData(userBean);
}
@Override
public void onFailure(Throwable throwable) {
- view.hideProgress();
+
}
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
new file mode 100644
index 0000000..c2a84ab
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface IChangePasswordView {
+ void obtainChangePassResult(ChangePasswordResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
new file mode 100644
index 0000000..de3e421
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface ILoginOutView {
+ void obtainLoginOutResult(LoginOutResultBean resultBean);
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
new file mode 100644
index 0000000..fe6c5f7
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IChangePasswordPresenter {
+ void onReadyRetrofitRequest(String oldPwd, String newPwd);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
new file mode 100644
index 0000000..4e2c7c1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ILoginOutPresenter {
+ void onReadyRetrofitRequest();
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
new file mode 100644
index 0000000..74a6a24
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.LoginOutActionModelImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+
+public class LoginOutPresenterImpl extends BasePresenter implements ILoginOutPresenter, LoginOutActionModelImpl.OnLoginOutListener {
+
+ private ILoginOutView view;
+ private LoginOutActionModelImpl actionModel;
+
+ public LoginOutPresenterImpl(ILoginOutView loginOutView) {
+ this.view = loginOutView;
+ actionModel = new LoginOutActionModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest() {
+ addSubscription(actionModel.sendRetrofitRequest());
+ }
+
+ @Override
+ public void onSuccess(LoginOutResultBean resultBean) {
+ view.obtainLoginOutResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
index 2119b70..0bcea6a 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
@@ -17,7 +17,6 @@
@Override
public void onReadyRetrofitRequest() {
- view.showProgress();
addSubscription(actionModel.sendRetrofitRequest());
}
@@ -28,12 +27,11 @@
@Override
public void onSuccess(UserBean userBean) {
- view.hideProgress();
view.obtainUserData(userBean);
}
@Override
public void onFailure(Throwable throwable) {
- view.hideProgress();
+
}
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
new file mode 100644
index 0000000..c2a84ab
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface IChangePasswordView {
+ void obtainChangePassResult(ChangePasswordResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
new file mode 100644
index 0000000..de3e421
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface ILoginOutView {
+ void obtainLoginOutResult(LoginOutResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
index 2b51d64..bcd16a9 100644
--- a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
@@ -3,9 +3,5 @@
import com.casic.dcms.bean.UserBean;
public interface IUserDataView {
- void showProgress();
-
- void hideProgress();
-
void obtainUserData(UserBean userBean);
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
new file mode 100644
index 0000000..fe6c5f7
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IChangePasswordPresenter {
+ void onReadyRetrofitRequest(String oldPwd, String newPwd);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
new file mode 100644
index 0000000..4e2c7c1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ILoginOutPresenter {
+ void onReadyRetrofitRequest();
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
new file mode 100644
index 0000000..74a6a24
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.LoginOutActionModelImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+
+public class LoginOutPresenterImpl extends BasePresenter implements ILoginOutPresenter, LoginOutActionModelImpl.OnLoginOutListener {
+
+ private ILoginOutView view;
+ private LoginOutActionModelImpl actionModel;
+
+ public LoginOutPresenterImpl(ILoginOutView loginOutView) {
+ this.view = loginOutView;
+ actionModel = new LoginOutActionModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest() {
+ addSubscription(actionModel.sendRetrofitRequest());
+ }
+
+ @Override
+ public void onSuccess(LoginOutResultBean resultBean) {
+ view.obtainLoginOutResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
index 2119b70..0bcea6a 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
@@ -17,7 +17,6 @@
@Override
public void onReadyRetrofitRequest() {
- view.showProgress();
addSubscription(actionModel.sendRetrofitRequest());
}
@@ -28,12 +27,11 @@
@Override
public void onSuccess(UserBean userBean) {
- view.hideProgress();
view.obtainUserData(userBean);
}
@Override
public void onFailure(Throwable throwable) {
- view.hideProgress();
+
}
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
new file mode 100644
index 0000000..c2a84ab
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface IChangePasswordView {
+ void obtainChangePassResult(ChangePasswordResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
new file mode 100644
index 0000000..de3e421
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface ILoginOutView {
+ void obtainLoginOutResult(LoginOutResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
index 2b51d64..bcd16a9 100644
--- a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
@@ -3,9 +3,5 @@
import com.casic.dcms.bean.UserBean;
public interface IUserDataView {
- void showProgress();
-
- void hideProgress();
-
void obtainUserData(UserBean userBean);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
new file mode 100644
index 0000000..ad70b7a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
@@ -0,0 +1,61 @@
+package com.casic.dcms.ui;
+
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.luck.picture.lib.photoview.PhotoView;
+import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 17:09
+ * @email : 290677893@qq.com
+ **/
+public class BigPictureActivity extends BaseActivity {
+
+ @BindView(R.id.photoView)
+ PhotoView photoView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_big_pic;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ QMUIStatusBarHelper.setStatusBarLightMode(this);
+ }
+
+ @Override
+ public void initData() {
+// String mediaJson = getIntent().getStringExtra("mediaJson");
+//
+// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() {
+// }.getType());
+//
+// list = new ArrayList<>();
+// assert mediaList != null;
+// for (LocalMedia media : mediaList) {
+// list.add(media.getRealPath());
+// }
+ String path = getIntent().getStringExtra("path");
+ Glide.with(this).load(path).into(photoView);
+ }
+
+ @Override
+ public void initEvent() {
+// //轮播图
+// bigImageBanner.setImageLoader(new ImageLoader() {
+//
+// @Override
+// public void displayImage(Context context, Object path, ImageView imageView) {
+// Glide.with(context).load(path).into(imageView);
+// }
+// });
+// bigImageBanner.isAutoPlay(false);
+// bigImageBanner.setImages(list);
+// bigImageBanner.start();
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
new file mode 100644
index 0000000..fe6c5f7
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IChangePasswordPresenter {
+ void onReadyRetrofitRequest(String oldPwd, String newPwd);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
new file mode 100644
index 0000000..4e2c7c1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ILoginOutPresenter {
+ void onReadyRetrofitRequest();
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
new file mode 100644
index 0000000..74a6a24
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.LoginOutActionModelImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+
+public class LoginOutPresenterImpl extends BasePresenter implements ILoginOutPresenter, LoginOutActionModelImpl.OnLoginOutListener {
+
+ private ILoginOutView view;
+ private LoginOutActionModelImpl actionModel;
+
+ public LoginOutPresenterImpl(ILoginOutView loginOutView) {
+ this.view = loginOutView;
+ actionModel = new LoginOutActionModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest() {
+ addSubscription(actionModel.sendRetrofitRequest());
+ }
+
+ @Override
+ public void onSuccess(LoginOutResultBean resultBean) {
+ view.obtainLoginOutResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
index 2119b70..0bcea6a 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
@@ -17,7 +17,6 @@
@Override
public void onReadyRetrofitRequest() {
- view.showProgress();
addSubscription(actionModel.sendRetrofitRequest());
}
@@ -28,12 +27,11 @@
@Override
public void onSuccess(UserBean userBean) {
- view.hideProgress();
view.obtainUserData(userBean);
}
@Override
public void onFailure(Throwable throwable) {
- view.hideProgress();
+
}
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
new file mode 100644
index 0000000..c2a84ab
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface IChangePasswordView {
+ void obtainChangePassResult(ChangePasswordResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
new file mode 100644
index 0000000..de3e421
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface ILoginOutView {
+ void obtainLoginOutResult(LoginOutResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
index 2b51d64..bcd16a9 100644
--- a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
@@ -3,9 +3,5 @@
import com.casic.dcms.bean.UserBean;
public interface IUserDataView {
- void showProgress();
-
- void hideProgress();
-
void obtainUserData(UserBean userBean);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
new file mode 100644
index 0000000..ad70b7a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
@@ -0,0 +1,61 @@
+package com.casic.dcms.ui;
+
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.luck.picture.lib.photoview.PhotoView;
+import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 17:09
+ * @email : 290677893@qq.com
+ **/
+public class BigPictureActivity extends BaseActivity {
+
+ @BindView(R.id.photoView)
+ PhotoView photoView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_big_pic;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ QMUIStatusBarHelper.setStatusBarLightMode(this);
+ }
+
+ @Override
+ public void initData() {
+// String mediaJson = getIntent().getStringExtra("mediaJson");
+//
+// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() {
+// }.getType());
+//
+// list = new ArrayList<>();
+// assert mediaList != null;
+// for (LocalMedia media : mediaList) {
+// list.add(media.getRealPath());
+// }
+ String path = getIntent().getStringExtra("path");
+ Glide.with(this).load(path).into(photoView);
+ }
+
+ @Override
+ public void initEvent() {
+// //轮播图
+// bigImageBanner.setImageLoader(new ImageLoader() {
+//
+// @Override
+// public void displayImage(Context context, Object path, ImageView imageView) {
+// Glide.with(context).load(path).into(imageView);
+// }
+// });
+// bigImageBanner.isAutoPlay(false);
+// bigImageBanner.setImages(list);
+// bigImageBanner.start();
+ }
+}
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 7c2bbc6..aa4100a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -109,6 +109,7 @@
private QMUITipDialog submitDialog;
private SubmitInfoBean infoBean;
private HashMap locationMap;
+ private Gson gson;
@Override
public int initLayoutView() {
@@ -129,6 +130,7 @@
@Override
public void initData() {
+ gson = new Gson();
//进入页面即创建提交表单的实体
infoBean = new SubmitInfoBean();
infoBean.setIsNeedRevisit("0");
@@ -388,6 +390,10 @@
imageGridViewAdapter.notifyDataSetChanged();
if (selectList.size() == 0) {
selectedResultView.setVisibility(View.GONE);
+ addImageView.setVisibility(View.VISIBLE);
+ } else {
+ selectedResultView.setVisibility(View.VISIBLE);
+ addImageView.setVisibility(View.GONE);
}
}
});
@@ -433,7 +439,10 @@
}
private void showBigImage(String path) {
-
+ Intent intent = new Intent(this, BigPictureActivity.class);
+// intent.putExtra("mediaJson", gson.toJson(mediaList));
+ intent.putExtra("path", path);
+ startActivity(intent);
}
@SuppressLint("ClickableViewAccessibility")
@@ -501,7 +510,7 @@
@Override
public void obtainLargeClassData(CaseLargeClassBean largeClassBean) {
-// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean));
+// Log.d(TAG, "obtainLargeClassData: " + gson.toJson(largeClassBean));
if (largeClassBean.isSuccess()) {
//设置大类数据
this.largeClassBeans = largeClassBean.getData();
@@ -556,13 +565,13 @@
} else {
ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING);
}
- Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean));
+ Log.d(TAG, "submitCase: " + gson.toJson(infoBean));
caseSubmitPresenter.onReadyRetrofitRequest(infoBean);
}
@Override
public void obtainSubmitResult(SubmitResultBean resultBean) {
- Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean));
+ Log.d(TAG, "obtainSubmitResult: " + gson.toJson(resultBean));
if (resultBean.isSuccess()) {
ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS);
} else {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
new file mode 100644
index 0000000..fe6c5f7
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IChangePasswordPresenter {
+ void onReadyRetrofitRequest(String oldPwd, String newPwd);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
new file mode 100644
index 0000000..4e2c7c1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ILoginOutPresenter {
+ void onReadyRetrofitRequest();
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
new file mode 100644
index 0000000..74a6a24
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.LoginOutActionModelImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+
+public class LoginOutPresenterImpl extends BasePresenter implements ILoginOutPresenter, LoginOutActionModelImpl.OnLoginOutListener {
+
+ private ILoginOutView view;
+ private LoginOutActionModelImpl actionModel;
+
+ public LoginOutPresenterImpl(ILoginOutView loginOutView) {
+ this.view = loginOutView;
+ actionModel = new LoginOutActionModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest() {
+ addSubscription(actionModel.sendRetrofitRequest());
+ }
+
+ @Override
+ public void onSuccess(LoginOutResultBean resultBean) {
+ view.obtainLoginOutResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
index 2119b70..0bcea6a 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
@@ -17,7 +17,6 @@
@Override
public void onReadyRetrofitRequest() {
- view.showProgress();
addSubscription(actionModel.sendRetrofitRequest());
}
@@ -28,12 +27,11 @@
@Override
public void onSuccess(UserBean userBean) {
- view.hideProgress();
view.obtainUserData(userBean);
}
@Override
public void onFailure(Throwable throwable) {
- view.hideProgress();
+
}
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
new file mode 100644
index 0000000..c2a84ab
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface IChangePasswordView {
+ void obtainChangePassResult(ChangePasswordResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
new file mode 100644
index 0000000..de3e421
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface ILoginOutView {
+ void obtainLoginOutResult(LoginOutResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
index 2b51d64..bcd16a9 100644
--- a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
@@ -3,9 +3,5 @@
import com.casic.dcms.bean.UserBean;
public interface IUserDataView {
- void showProgress();
-
- void hideProgress();
-
void obtainUserData(UserBean userBean);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
new file mode 100644
index 0000000..ad70b7a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
@@ -0,0 +1,61 @@
+package com.casic.dcms.ui;
+
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.luck.picture.lib.photoview.PhotoView;
+import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 17:09
+ * @email : 290677893@qq.com
+ **/
+public class BigPictureActivity extends BaseActivity {
+
+ @BindView(R.id.photoView)
+ PhotoView photoView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_big_pic;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ QMUIStatusBarHelper.setStatusBarLightMode(this);
+ }
+
+ @Override
+ public void initData() {
+// String mediaJson = getIntent().getStringExtra("mediaJson");
+//
+// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() {
+// }.getType());
+//
+// list = new ArrayList<>();
+// assert mediaList != null;
+// for (LocalMedia media : mediaList) {
+// list.add(media.getRealPath());
+// }
+ String path = getIntent().getStringExtra("path");
+ Glide.with(this).load(path).into(photoView);
+ }
+
+ @Override
+ public void initEvent() {
+// //轮播图
+// bigImageBanner.setImageLoader(new ImageLoader() {
+//
+// @Override
+// public void displayImage(Context context, Object path, ImageView imageView) {
+// Glide.with(context).load(path).into(imageView);
+// }
+// });
+// bigImageBanner.isAutoPlay(false);
+// bigImageBanner.setImages(list);
+// bigImageBanner.start();
+ }
+}
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 7c2bbc6..aa4100a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -109,6 +109,7 @@
private QMUITipDialog submitDialog;
private SubmitInfoBean infoBean;
private HashMap locationMap;
+ private Gson gson;
@Override
public int initLayoutView() {
@@ -129,6 +130,7 @@
@Override
public void initData() {
+ gson = new Gson();
//进入页面即创建提交表单的实体
infoBean = new SubmitInfoBean();
infoBean.setIsNeedRevisit("0");
@@ -388,6 +390,10 @@
imageGridViewAdapter.notifyDataSetChanged();
if (selectList.size() == 0) {
selectedResultView.setVisibility(View.GONE);
+ addImageView.setVisibility(View.VISIBLE);
+ } else {
+ selectedResultView.setVisibility(View.VISIBLE);
+ addImageView.setVisibility(View.GONE);
}
}
});
@@ -433,7 +439,10 @@
}
private void showBigImage(String path) {
-
+ Intent intent = new Intent(this, BigPictureActivity.class);
+// intent.putExtra("mediaJson", gson.toJson(mediaList));
+ intent.putExtra("path", path);
+ startActivity(intent);
}
@SuppressLint("ClickableViewAccessibility")
@@ -501,7 +510,7 @@
@Override
public void obtainLargeClassData(CaseLargeClassBean largeClassBean) {
-// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean));
+// Log.d(TAG, "obtainLargeClassData: " + gson.toJson(largeClassBean));
if (largeClassBean.isSuccess()) {
//设置大类数据
this.largeClassBeans = largeClassBean.getData();
@@ -556,13 +565,13 @@
} else {
ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING);
}
- Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean));
+ Log.d(TAG, "submitCase: " + gson.toJson(infoBean));
caseSubmitPresenter.onReadyRetrofitRequest(infoBean);
}
@Override
public void obtainSubmitResult(SubmitResultBean resultBean) {
- Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean));
+ Log.d(TAG, "obtainSubmitResult: " + gson.toJson(resultBean));
if (resultBean.isSuccess()) {
ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS);
} else {
diff --git a/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
new file mode 100644
index 0000000..891b7a3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
@@ -0,0 +1,124 @@
+package com.casic.dcms.ui;
+
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.widget.EditText;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.presenter.ChangePasswordPresenterImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+import com.casic.dcms.utils.RSAUtils;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.TokenHelper;
+import com.google.gson.Gson;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.security.PublicKey;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:20
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordActivity extends BaseActivity implements View.OnClickListener, IChangePasswordView {
+
+ private static final String TAG = "ChangePasswordActivity";
+ @BindView(R.id.passwordTopLayout)
+ QMUITopBarLayout passwordTopLayout;
+ @BindView(R.id.originalEditView)
+ EditText originalEditView;
+ @BindView(R.id.newEditView)
+ EditText newEditView;
+ @BindView(R.id.confirmEditView)
+ EditText confirmEditView;
+ @BindView(R.id.changePasswordButton)
+ QMUIRoundButton changePasswordButton;
+ private ChangePasswordPresenterImpl changePasswordPresenter;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_password;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ passwordTopLayout.setTitle("修改密码").setTextColor(ContextCompat.getColor(this, R.color.white));
+ passwordTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ passwordTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ changePasswordPresenter = new ChangePasswordPresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ changePasswordButton.setChangeAlphaWhenPress(true);
+ }
+
+ @OnClick(R.id.changePasswordButton)
+ @Override
+ public void onClick(View v) {
+ String oldPassword = originalEditView.getText().toString();
+ if (TextUtils.isEmpty(oldPassword)) {
+ ToastHelper.showToast("请先输入原密码", ToastHelper.WARING);
+ return;
+ }
+ String newPassword = newEditView.getText().toString();
+ if (TextUtils.isEmpty(newPassword)) {
+ ToastHelper.showToast("请先输入新密码", ToastHelper.WARING);
+ return;
+ }
+ String confirmPassword = confirmEditView.getText().toString();
+ if (TextUtils.isEmpty(confirmPassword)) {
+ ToastHelper.showToast("请再次输入新密码", ToastHelper.WARING);
+ return;
+ }
+ if (!newPassword.equals(confirmPassword)) {
+ ToastHelper.showToast("新密码和确认密码输入不一致,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (newPassword.length() < 6 || newPassword.length() > 12) {
+ ToastHelper.showToast("新密码长度不正确,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (!StringHelper.isLetterAndDigit(newPassword)) {
+ ToastHelper.showToast("新密码请输入6-12位的数字字母组合", ToastHelper.WARING);
+ return;
+ }
+ //数据校验OK,可以修改密码
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(TokenHelper.getPublicKey());
+ String oldPassKey = RSAUtils.encryptDataByPublicKey(oldPassword.getBytes(), publicKey);
+ String newPassKey = RSAUtils.encryptDataByPublicKey(newPassword.getBytes(), publicKey);
+
+// ChangeNewPasswordBean passwordBean = new ChangeNewPasswordBean();
+// passwordBean.setOldPwd(oldPassKey.replace("=\n", "="));
+// passwordBean.setNewPwd(newPassKey.replace("=\n", "="));
+ changePasswordPresenter.onReadyRetrofitRequest(oldPassKey, newPassKey);
+ }
+
+ @Override
+ public void obtainChangePassResult(ChangePasswordResultBean resultBean) {
+ Log.d(TAG, "obtainChangePassResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ ToastHelper.showToast("密码修改成功", ToastHelper.WARING);
+ finish();
+ }
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
new file mode 100644
index 0000000..fe6c5f7
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IChangePasswordPresenter {
+ void onReadyRetrofitRequest(String oldPwd, String newPwd);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
new file mode 100644
index 0000000..4e2c7c1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ILoginOutPresenter {
+ void onReadyRetrofitRequest();
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
new file mode 100644
index 0000000..74a6a24
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.LoginOutActionModelImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+
+public class LoginOutPresenterImpl extends BasePresenter implements ILoginOutPresenter, LoginOutActionModelImpl.OnLoginOutListener {
+
+ private ILoginOutView view;
+ private LoginOutActionModelImpl actionModel;
+
+ public LoginOutPresenterImpl(ILoginOutView loginOutView) {
+ this.view = loginOutView;
+ actionModel = new LoginOutActionModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest() {
+ addSubscription(actionModel.sendRetrofitRequest());
+ }
+
+ @Override
+ public void onSuccess(LoginOutResultBean resultBean) {
+ view.obtainLoginOutResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
index 2119b70..0bcea6a 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
@@ -17,7 +17,6 @@
@Override
public void onReadyRetrofitRequest() {
- view.showProgress();
addSubscription(actionModel.sendRetrofitRequest());
}
@@ -28,12 +27,11 @@
@Override
public void onSuccess(UserBean userBean) {
- view.hideProgress();
view.obtainUserData(userBean);
}
@Override
public void onFailure(Throwable throwable) {
- view.hideProgress();
+
}
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
new file mode 100644
index 0000000..c2a84ab
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface IChangePasswordView {
+ void obtainChangePassResult(ChangePasswordResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
new file mode 100644
index 0000000..de3e421
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface ILoginOutView {
+ void obtainLoginOutResult(LoginOutResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
index 2b51d64..bcd16a9 100644
--- a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
@@ -3,9 +3,5 @@
import com.casic.dcms.bean.UserBean;
public interface IUserDataView {
- void showProgress();
-
- void hideProgress();
-
void obtainUserData(UserBean userBean);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
new file mode 100644
index 0000000..ad70b7a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
@@ -0,0 +1,61 @@
+package com.casic.dcms.ui;
+
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.luck.picture.lib.photoview.PhotoView;
+import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 17:09
+ * @email : 290677893@qq.com
+ **/
+public class BigPictureActivity extends BaseActivity {
+
+ @BindView(R.id.photoView)
+ PhotoView photoView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_big_pic;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ QMUIStatusBarHelper.setStatusBarLightMode(this);
+ }
+
+ @Override
+ public void initData() {
+// String mediaJson = getIntent().getStringExtra("mediaJson");
+//
+// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() {
+// }.getType());
+//
+// list = new ArrayList<>();
+// assert mediaList != null;
+// for (LocalMedia media : mediaList) {
+// list.add(media.getRealPath());
+// }
+ String path = getIntent().getStringExtra("path");
+ Glide.with(this).load(path).into(photoView);
+ }
+
+ @Override
+ public void initEvent() {
+// //轮播图
+// bigImageBanner.setImageLoader(new ImageLoader() {
+//
+// @Override
+// public void displayImage(Context context, Object path, ImageView imageView) {
+// Glide.with(context).load(path).into(imageView);
+// }
+// });
+// bigImageBanner.isAutoPlay(false);
+// bigImageBanner.setImages(list);
+// bigImageBanner.start();
+ }
+}
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 7c2bbc6..aa4100a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -109,6 +109,7 @@
private QMUITipDialog submitDialog;
private SubmitInfoBean infoBean;
private HashMap locationMap;
+ private Gson gson;
@Override
public int initLayoutView() {
@@ -129,6 +130,7 @@
@Override
public void initData() {
+ gson = new Gson();
//进入页面即创建提交表单的实体
infoBean = new SubmitInfoBean();
infoBean.setIsNeedRevisit("0");
@@ -388,6 +390,10 @@
imageGridViewAdapter.notifyDataSetChanged();
if (selectList.size() == 0) {
selectedResultView.setVisibility(View.GONE);
+ addImageView.setVisibility(View.VISIBLE);
+ } else {
+ selectedResultView.setVisibility(View.VISIBLE);
+ addImageView.setVisibility(View.GONE);
}
}
});
@@ -433,7 +439,10 @@
}
private void showBigImage(String path) {
-
+ Intent intent = new Intent(this, BigPictureActivity.class);
+// intent.putExtra("mediaJson", gson.toJson(mediaList));
+ intent.putExtra("path", path);
+ startActivity(intent);
}
@SuppressLint("ClickableViewAccessibility")
@@ -501,7 +510,7 @@
@Override
public void obtainLargeClassData(CaseLargeClassBean largeClassBean) {
-// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean));
+// Log.d(TAG, "obtainLargeClassData: " + gson.toJson(largeClassBean));
if (largeClassBean.isSuccess()) {
//设置大类数据
this.largeClassBeans = largeClassBean.getData();
@@ -556,13 +565,13 @@
} else {
ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING);
}
- Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean));
+ Log.d(TAG, "submitCase: " + gson.toJson(infoBean));
caseSubmitPresenter.onReadyRetrofitRequest(infoBean);
}
@Override
public void obtainSubmitResult(SubmitResultBean resultBean) {
- Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean));
+ Log.d(TAG, "obtainSubmitResult: " + gson.toJson(resultBean));
if (resultBean.isSuccess()) {
ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS);
} else {
diff --git a/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
new file mode 100644
index 0000000..891b7a3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
@@ -0,0 +1,124 @@
+package com.casic.dcms.ui;
+
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.widget.EditText;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.presenter.ChangePasswordPresenterImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+import com.casic.dcms.utils.RSAUtils;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.TokenHelper;
+import com.google.gson.Gson;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.security.PublicKey;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:20
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordActivity extends BaseActivity implements View.OnClickListener, IChangePasswordView {
+
+ private static final String TAG = "ChangePasswordActivity";
+ @BindView(R.id.passwordTopLayout)
+ QMUITopBarLayout passwordTopLayout;
+ @BindView(R.id.originalEditView)
+ EditText originalEditView;
+ @BindView(R.id.newEditView)
+ EditText newEditView;
+ @BindView(R.id.confirmEditView)
+ EditText confirmEditView;
+ @BindView(R.id.changePasswordButton)
+ QMUIRoundButton changePasswordButton;
+ private ChangePasswordPresenterImpl changePasswordPresenter;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_password;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ passwordTopLayout.setTitle("修改密码").setTextColor(ContextCompat.getColor(this, R.color.white));
+ passwordTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ passwordTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ changePasswordPresenter = new ChangePasswordPresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ changePasswordButton.setChangeAlphaWhenPress(true);
+ }
+
+ @OnClick(R.id.changePasswordButton)
+ @Override
+ public void onClick(View v) {
+ String oldPassword = originalEditView.getText().toString();
+ if (TextUtils.isEmpty(oldPassword)) {
+ ToastHelper.showToast("请先输入原密码", ToastHelper.WARING);
+ return;
+ }
+ String newPassword = newEditView.getText().toString();
+ if (TextUtils.isEmpty(newPassword)) {
+ ToastHelper.showToast("请先输入新密码", ToastHelper.WARING);
+ return;
+ }
+ String confirmPassword = confirmEditView.getText().toString();
+ if (TextUtils.isEmpty(confirmPassword)) {
+ ToastHelper.showToast("请再次输入新密码", ToastHelper.WARING);
+ return;
+ }
+ if (!newPassword.equals(confirmPassword)) {
+ ToastHelper.showToast("新密码和确认密码输入不一致,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (newPassword.length() < 6 || newPassword.length() > 12) {
+ ToastHelper.showToast("新密码长度不正确,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (!StringHelper.isLetterAndDigit(newPassword)) {
+ ToastHelper.showToast("新密码请输入6-12位的数字字母组合", ToastHelper.WARING);
+ return;
+ }
+ //数据校验OK,可以修改密码
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(TokenHelper.getPublicKey());
+ String oldPassKey = RSAUtils.encryptDataByPublicKey(oldPassword.getBytes(), publicKey);
+ String newPassKey = RSAUtils.encryptDataByPublicKey(newPassword.getBytes(), publicKey);
+
+// ChangeNewPasswordBean passwordBean = new ChangeNewPasswordBean();
+// passwordBean.setOldPwd(oldPassKey.replace("=\n", "="));
+// passwordBean.setNewPwd(newPassKey.replace("=\n", "="));
+ changePasswordPresenter.onReadyRetrofitRequest(oldPassKey, newPassKey);
+ }
+
+ @Override
+ public void obtainChangePassResult(ChangePasswordResultBean resultBean) {
+ Log.d(TAG, "obtainChangePassResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ ToastHelper.showToast("密码修改成功", ToastHelper.WARING);
+ finish();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
new file mode 100644
index 0000000..058f5d2
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
@@ -0,0 +1,49 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:05
+ * @email : 290677893@qq.com
+ **/
+public class HelpfulActivity extends BaseActivity {
+
+ @BindView(R.id.helpTopLayout)
+ QMUITopBarLayout helpTopLayout;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_help;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ helpTopLayout.setTitle("帮助中心").setTextColor(ContextCompat.getColor(this, R.color.white));
+ helpTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ helpTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
new file mode 100644
index 0000000..fe6c5f7
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IChangePasswordPresenter {
+ void onReadyRetrofitRequest(String oldPwd, String newPwd);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
new file mode 100644
index 0000000..4e2c7c1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ILoginOutPresenter {
+ void onReadyRetrofitRequest();
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
new file mode 100644
index 0000000..74a6a24
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.LoginOutActionModelImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+
+public class LoginOutPresenterImpl extends BasePresenter implements ILoginOutPresenter, LoginOutActionModelImpl.OnLoginOutListener {
+
+ private ILoginOutView view;
+ private LoginOutActionModelImpl actionModel;
+
+ public LoginOutPresenterImpl(ILoginOutView loginOutView) {
+ this.view = loginOutView;
+ actionModel = new LoginOutActionModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest() {
+ addSubscription(actionModel.sendRetrofitRequest());
+ }
+
+ @Override
+ public void onSuccess(LoginOutResultBean resultBean) {
+ view.obtainLoginOutResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
index 2119b70..0bcea6a 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
@@ -17,7 +17,6 @@
@Override
public void onReadyRetrofitRequest() {
- view.showProgress();
addSubscription(actionModel.sendRetrofitRequest());
}
@@ -28,12 +27,11 @@
@Override
public void onSuccess(UserBean userBean) {
- view.hideProgress();
view.obtainUserData(userBean);
}
@Override
public void onFailure(Throwable throwable) {
- view.hideProgress();
+
}
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
new file mode 100644
index 0000000..c2a84ab
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface IChangePasswordView {
+ void obtainChangePassResult(ChangePasswordResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
new file mode 100644
index 0000000..de3e421
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface ILoginOutView {
+ void obtainLoginOutResult(LoginOutResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
index 2b51d64..bcd16a9 100644
--- a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
@@ -3,9 +3,5 @@
import com.casic.dcms.bean.UserBean;
public interface IUserDataView {
- void showProgress();
-
- void hideProgress();
-
void obtainUserData(UserBean userBean);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
new file mode 100644
index 0000000..ad70b7a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
@@ -0,0 +1,61 @@
+package com.casic.dcms.ui;
+
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.luck.picture.lib.photoview.PhotoView;
+import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 17:09
+ * @email : 290677893@qq.com
+ **/
+public class BigPictureActivity extends BaseActivity {
+
+ @BindView(R.id.photoView)
+ PhotoView photoView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_big_pic;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ QMUIStatusBarHelper.setStatusBarLightMode(this);
+ }
+
+ @Override
+ public void initData() {
+// String mediaJson = getIntent().getStringExtra("mediaJson");
+//
+// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() {
+// }.getType());
+//
+// list = new ArrayList<>();
+// assert mediaList != null;
+// for (LocalMedia media : mediaList) {
+// list.add(media.getRealPath());
+// }
+ String path = getIntent().getStringExtra("path");
+ Glide.with(this).load(path).into(photoView);
+ }
+
+ @Override
+ public void initEvent() {
+// //轮播图
+// bigImageBanner.setImageLoader(new ImageLoader() {
+//
+// @Override
+// public void displayImage(Context context, Object path, ImageView imageView) {
+// Glide.with(context).load(path).into(imageView);
+// }
+// });
+// bigImageBanner.isAutoPlay(false);
+// bigImageBanner.setImages(list);
+// bigImageBanner.start();
+ }
+}
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 7c2bbc6..aa4100a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -109,6 +109,7 @@
private QMUITipDialog submitDialog;
private SubmitInfoBean infoBean;
private HashMap locationMap;
+ private Gson gson;
@Override
public int initLayoutView() {
@@ -129,6 +130,7 @@
@Override
public void initData() {
+ gson = new Gson();
//进入页面即创建提交表单的实体
infoBean = new SubmitInfoBean();
infoBean.setIsNeedRevisit("0");
@@ -388,6 +390,10 @@
imageGridViewAdapter.notifyDataSetChanged();
if (selectList.size() == 0) {
selectedResultView.setVisibility(View.GONE);
+ addImageView.setVisibility(View.VISIBLE);
+ } else {
+ selectedResultView.setVisibility(View.VISIBLE);
+ addImageView.setVisibility(View.GONE);
}
}
});
@@ -433,7 +439,10 @@
}
private void showBigImage(String path) {
-
+ Intent intent = new Intent(this, BigPictureActivity.class);
+// intent.putExtra("mediaJson", gson.toJson(mediaList));
+ intent.putExtra("path", path);
+ startActivity(intent);
}
@SuppressLint("ClickableViewAccessibility")
@@ -501,7 +510,7 @@
@Override
public void obtainLargeClassData(CaseLargeClassBean largeClassBean) {
-// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean));
+// Log.d(TAG, "obtainLargeClassData: " + gson.toJson(largeClassBean));
if (largeClassBean.isSuccess()) {
//设置大类数据
this.largeClassBeans = largeClassBean.getData();
@@ -556,13 +565,13 @@
} else {
ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING);
}
- Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean));
+ Log.d(TAG, "submitCase: " + gson.toJson(infoBean));
caseSubmitPresenter.onReadyRetrofitRequest(infoBean);
}
@Override
public void obtainSubmitResult(SubmitResultBean resultBean) {
- Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean));
+ Log.d(TAG, "obtainSubmitResult: " + gson.toJson(resultBean));
if (resultBean.isSuccess()) {
ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS);
} else {
diff --git a/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
new file mode 100644
index 0000000..891b7a3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
@@ -0,0 +1,124 @@
+package com.casic.dcms.ui;
+
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.widget.EditText;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.presenter.ChangePasswordPresenterImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+import com.casic.dcms.utils.RSAUtils;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.TokenHelper;
+import com.google.gson.Gson;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.security.PublicKey;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:20
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordActivity extends BaseActivity implements View.OnClickListener, IChangePasswordView {
+
+ private static final String TAG = "ChangePasswordActivity";
+ @BindView(R.id.passwordTopLayout)
+ QMUITopBarLayout passwordTopLayout;
+ @BindView(R.id.originalEditView)
+ EditText originalEditView;
+ @BindView(R.id.newEditView)
+ EditText newEditView;
+ @BindView(R.id.confirmEditView)
+ EditText confirmEditView;
+ @BindView(R.id.changePasswordButton)
+ QMUIRoundButton changePasswordButton;
+ private ChangePasswordPresenterImpl changePasswordPresenter;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_password;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ passwordTopLayout.setTitle("修改密码").setTextColor(ContextCompat.getColor(this, R.color.white));
+ passwordTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ passwordTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ changePasswordPresenter = new ChangePasswordPresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ changePasswordButton.setChangeAlphaWhenPress(true);
+ }
+
+ @OnClick(R.id.changePasswordButton)
+ @Override
+ public void onClick(View v) {
+ String oldPassword = originalEditView.getText().toString();
+ if (TextUtils.isEmpty(oldPassword)) {
+ ToastHelper.showToast("请先输入原密码", ToastHelper.WARING);
+ return;
+ }
+ String newPassword = newEditView.getText().toString();
+ if (TextUtils.isEmpty(newPassword)) {
+ ToastHelper.showToast("请先输入新密码", ToastHelper.WARING);
+ return;
+ }
+ String confirmPassword = confirmEditView.getText().toString();
+ if (TextUtils.isEmpty(confirmPassword)) {
+ ToastHelper.showToast("请再次输入新密码", ToastHelper.WARING);
+ return;
+ }
+ if (!newPassword.equals(confirmPassword)) {
+ ToastHelper.showToast("新密码和确认密码输入不一致,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (newPassword.length() < 6 || newPassword.length() > 12) {
+ ToastHelper.showToast("新密码长度不正确,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (!StringHelper.isLetterAndDigit(newPassword)) {
+ ToastHelper.showToast("新密码请输入6-12位的数字字母组合", ToastHelper.WARING);
+ return;
+ }
+ //数据校验OK,可以修改密码
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(TokenHelper.getPublicKey());
+ String oldPassKey = RSAUtils.encryptDataByPublicKey(oldPassword.getBytes(), publicKey);
+ String newPassKey = RSAUtils.encryptDataByPublicKey(newPassword.getBytes(), publicKey);
+
+// ChangeNewPasswordBean passwordBean = new ChangeNewPasswordBean();
+// passwordBean.setOldPwd(oldPassKey.replace("=\n", "="));
+// passwordBean.setNewPwd(newPassKey.replace("=\n", "="));
+ changePasswordPresenter.onReadyRetrofitRequest(oldPassKey, newPassKey);
+ }
+
+ @Override
+ public void obtainChangePassResult(ChangePasswordResultBean resultBean) {
+ Log.d(TAG, "obtainChangePassResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ ToastHelper.showToast("密码修改成功", ToastHelper.WARING);
+ finish();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
new file mode 100644
index 0000000..058f5d2
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
@@ -0,0 +1,49 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:05
+ * @email : 290677893@qq.com
+ **/
+public class HelpfulActivity extends BaseActivity {
+
+ @BindView(R.id.helpTopLayout)
+ QMUITopBarLayout helpTopLayout;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_help;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ helpTopLayout.setTitle("帮助中心").setTextColor(ContextCompat.getColor(this, R.color.white));
+ helpTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ helpTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
index 979deff..5535f61 100644
--- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
@@ -66,8 +66,8 @@
@Override
public void initData() {
- String userName = (String) SaveKeyValues.getValue("userName", "");
- String userPassword = (String) SaveKeyValues.getValue("userPassword", "");
+ String userName = (String) SaveKeyValues.getValue("name", "");
+ String userPassword = (String) SaveKeyValues.getValue("password", "");
userNameView.setText(userName);
userPasswordView.setText(userPassword);
if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) {
@@ -149,12 +149,15 @@
@Override
public void authenticateResult(PublicKeyBean result) {
if (result.isSuccess()) {
- PublicKey publicKey = RSAUtils.keyStrToPublicKey(result.getData().getPublicKey());
+ String keyString = result.getData().getPublicKey();
+ TokenHelper.savePublicKey(keyString);
+
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(keyString);
String userName = userNameView.getText().toString();
String userPassword = userPasswordView.getText().toString();
if (rememberPasswordView.isChecked()) {
- SaveKeyValues.putValue("userName", userName);
- SaveKeyValues.putValue("userPassword", userPassword);
+ SaveKeyValues.putValue("name", userName);
+ SaveKeyValues.putValue("password", userPassword);
}
if (autoLoginView.isChecked()) {
SaveKeyValues.putValue("autoLogin", true);
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
new file mode 100644
index 0000000..fe6c5f7
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IChangePasswordPresenter {
+ void onReadyRetrofitRequest(String oldPwd, String newPwd);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
new file mode 100644
index 0000000..4e2c7c1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ILoginOutPresenter {
+ void onReadyRetrofitRequest();
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
new file mode 100644
index 0000000..74a6a24
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.LoginOutActionModelImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+
+public class LoginOutPresenterImpl extends BasePresenter implements ILoginOutPresenter, LoginOutActionModelImpl.OnLoginOutListener {
+
+ private ILoginOutView view;
+ private LoginOutActionModelImpl actionModel;
+
+ public LoginOutPresenterImpl(ILoginOutView loginOutView) {
+ this.view = loginOutView;
+ actionModel = new LoginOutActionModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest() {
+ addSubscription(actionModel.sendRetrofitRequest());
+ }
+
+ @Override
+ public void onSuccess(LoginOutResultBean resultBean) {
+ view.obtainLoginOutResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
index 2119b70..0bcea6a 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
@@ -17,7 +17,6 @@
@Override
public void onReadyRetrofitRequest() {
- view.showProgress();
addSubscription(actionModel.sendRetrofitRequest());
}
@@ -28,12 +27,11 @@
@Override
public void onSuccess(UserBean userBean) {
- view.hideProgress();
view.obtainUserData(userBean);
}
@Override
public void onFailure(Throwable throwable) {
- view.hideProgress();
+
}
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
new file mode 100644
index 0000000..c2a84ab
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface IChangePasswordView {
+ void obtainChangePassResult(ChangePasswordResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
new file mode 100644
index 0000000..de3e421
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface ILoginOutView {
+ void obtainLoginOutResult(LoginOutResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
index 2b51d64..bcd16a9 100644
--- a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
@@ -3,9 +3,5 @@
import com.casic.dcms.bean.UserBean;
public interface IUserDataView {
- void showProgress();
-
- void hideProgress();
-
void obtainUserData(UserBean userBean);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
new file mode 100644
index 0000000..ad70b7a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
@@ -0,0 +1,61 @@
+package com.casic.dcms.ui;
+
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.luck.picture.lib.photoview.PhotoView;
+import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 17:09
+ * @email : 290677893@qq.com
+ **/
+public class BigPictureActivity extends BaseActivity {
+
+ @BindView(R.id.photoView)
+ PhotoView photoView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_big_pic;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ QMUIStatusBarHelper.setStatusBarLightMode(this);
+ }
+
+ @Override
+ public void initData() {
+// String mediaJson = getIntent().getStringExtra("mediaJson");
+//
+// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() {
+// }.getType());
+//
+// list = new ArrayList<>();
+// assert mediaList != null;
+// for (LocalMedia media : mediaList) {
+// list.add(media.getRealPath());
+// }
+ String path = getIntent().getStringExtra("path");
+ Glide.with(this).load(path).into(photoView);
+ }
+
+ @Override
+ public void initEvent() {
+// //轮播图
+// bigImageBanner.setImageLoader(new ImageLoader() {
+//
+// @Override
+// public void displayImage(Context context, Object path, ImageView imageView) {
+// Glide.with(context).load(path).into(imageView);
+// }
+// });
+// bigImageBanner.isAutoPlay(false);
+// bigImageBanner.setImages(list);
+// bigImageBanner.start();
+ }
+}
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 7c2bbc6..aa4100a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -109,6 +109,7 @@
private QMUITipDialog submitDialog;
private SubmitInfoBean infoBean;
private HashMap locationMap;
+ private Gson gson;
@Override
public int initLayoutView() {
@@ -129,6 +130,7 @@
@Override
public void initData() {
+ gson = new Gson();
//进入页面即创建提交表单的实体
infoBean = new SubmitInfoBean();
infoBean.setIsNeedRevisit("0");
@@ -388,6 +390,10 @@
imageGridViewAdapter.notifyDataSetChanged();
if (selectList.size() == 0) {
selectedResultView.setVisibility(View.GONE);
+ addImageView.setVisibility(View.VISIBLE);
+ } else {
+ selectedResultView.setVisibility(View.VISIBLE);
+ addImageView.setVisibility(View.GONE);
}
}
});
@@ -433,7 +439,10 @@
}
private void showBigImage(String path) {
-
+ Intent intent = new Intent(this, BigPictureActivity.class);
+// intent.putExtra("mediaJson", gson.toJson(mediaList));
+ intent.putExtra("path", path);
+ startActivity(intent);
}
@SuppressLint("ClickableViewAccessibility")
@@ -501,7 +510,7 @@
@Override
public void obtainLargeClassData(CaseLargeClassBean largeClassBean) {
-// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean));
+// Log.d(TAG, "obtainLargeClassData: " + gson.toJson(largeClassBean));
if (largeClassBean.isSuccess()) {
//设置大类数据
this.largeClassBeans = largeClassBean.getData();
@@ -556,13 +565,13 @@
} else {
ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING);
}
- Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean));
+ Log.d(TAG, "submitCase: " + gson.toJson(infoBean));
caseSubmitPresenter.onReadyRetrofitRequest(infoBean);
}
@Override
public void obtainSubmitResult(SubmitResultBean resultBean) {
- Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean));
+ Log.d(TAG, "obtainSubmitResult: " + gson.toJson(resultBean));
if (resultBean.isSuccess()) {
ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS);
} else {
diff --git a/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
new file mode 100644
index 0000000..891b7a3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
@@ -0,0 +1,124 @@
+package com.casic.dcms.ui;
+
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.widget.EditText;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.presenter.ChangePasswordPresenterImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+import com.casic.dcms.utils.RSAUtils;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.TokenHelper;
+import com.google.gson.Gson;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.security.PublicKey;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:20
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordActivity extends BaseActivity implements View.OnClickListener, IChangePasswordView {
+
+ private static final String TAG = "ChangePasswordActivity";
+ @BindView(R.id.passwordTopLayout)
+ QMUITopBarLayout passwordTopLayout;
+ @BindView(R.id.originalEditView)
+ EditText originalEditView;
+ @BindView(R.id.newEditView)
+ EditText newEditView;
+ @BindView(R.id.confirmEditView)
+ EditText confirmEditView;
+ @BindView(R.id.changePasswordButton)
+ QMUIRoundButton changePasswordButton;
+ private ChangePasswordPresenterImpl changePasswordPresenter;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_password;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ passwordTopLayout.setTitle("修改密码").setTextColor(ContextCompat.getColor(this, R.color.white));
+ passwordTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ passwordTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ changePasswordPresenter = new ChangePasswordPresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ changePasswordButton.setChangeAlphaWhenPress(true);
+ }
+
+ @OnClick(R.id.changePasswordButton)
+ @Override
+ public void onClick(View v) {
+ String oldPassword = originalEditView.getText().toString();
+ if (TextUtils.isEmpty(oldPassword)) {
+ ToastHelper.showToast("请先输入原密码", ToastHelper.WARING);
+ return;
+ }
+ String newPassword = newEditView.getText().toString();
+ if (TextUtils.isEmpty(newPassword)) {
+ ToastHelper.showToast("请先输入新密码", ToastHelper.WARING);
+ return;
+ }
+ String confirmPassword = confirmEditView.getText().toString();
+ if (TextUtils.isEmpty(confirmPassword)) {
+ ToastHelper.showToast("请再次输入新密码", ToastHelper.WARING);
+ return;
+ }
+ if (!newPassword.equals(confirmPassword)) {
+ ToastHelper.showToast("新密码和确认密码输入不一致,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (newPassword.length() < 6 || newPassword.length() > 12) {
+ ToastHelper.showToast("新密码长度不正确,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (!StringHelper.isLetterAndDigit(newPassword)) {
+ ToastHelper.showToast("新密码请输入6-12位的数字字母组合", ToastHelper.WARING);
+ return;
+ }
+ //数据校验OK,可以修改密码
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(TokenHelper.getPublicKey());
+ String oldPassKey = RSAUtils.encryptDataByPublicKey(oldPassword.getBytes(), publicKey);
+ String newPassKey = RSAUtils.encryptDataByPublicKey(newPassword.getBytes(), publicKey);
+
+// ChangeNewPasswordBean passwordBean = new ChangeNewPasswordBean();
+// passwordBean.setOldPwd(oldPassKey.replace("=\n", "="));
+// passwordBean.setNewPwd(newPassKey.replace("=\n", "="));
+ changePasswordPresenter.onReadyRetrofitRequest(oldPassKey, newPassKey);
+ }
+
+ @Override
+ public void obtainChangePassResult(ChangePasswordResultBean resultBean) {
+ Log.d(TAG, "obtainChangePassResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ ToastHelper.showToast("密码修改成功", ToastHelper.WARING);
+ finish();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
new file mode 100644
index 0000000..058f5d2
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
@@ -0,0 +1,49 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:05
+ * @email : 290677893@qq.com
+ **/
+public class HelpfulActivity extends BaseActivity {
+
+ @BindView(R.id.helpTopLayout)
+ QMUITopBarLayout helpTopLayout;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_help;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ helpTopLayout.setTitle("帮助中心").setTextColor(ContextCompat.getColor(this, R.color.white));
+ helpTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ helpTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
index 979deff..5535f61 100644
--- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
@@ -66,8 +66,8 @@
@Override
public void initData() {
- String userName = (String) SaveKeyValues.getValue("userName", "");
- String userPassword = (String) SaveKeyValues.getValue("userPassword", "");
+ String userName = (String) SaveKeyValues.getValue("name", "");
+ String userPassword = (String) SaveKeyValues.getValue("password", "");
userNameView.setText(userName);
userPasswordView.setText(userPassword);
if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) {
@@ -149,12 +149,15 @@
@Override
public void authenticateResult(PublicKeyBean result) {
if (result.isSuccess()) {
- PublicKey publicKey = RSAUtils.keyStrToPublicKey(result.getData().getPublicKey());
+ String keyString = result.getData().getPublicKey();
+ TokenHelper.savePublicKey(keyString);
+
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(keyString);
String userName = userNameView.getText().toString();
String userPassword = userPasswordView.getText().toString();
if (rememberPasswordView.isChecked()) {
- SaveKeyValues.putValue("userName", userName);
- SaveKeyValues.putValue("userPassword", userPassword);
+ SaveKeyValues.putValue("name", userName);
+ SaveKeyValues.putValue("password", userPassword);
}
if (autoLoginView.isChecked()) {
SaveKeyValues.putValue("autoLogin", true);
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 82eb21e..4351cb6 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -1,8 +1,12 @@
package com.casic.dcms.ui;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
import android.view.MenuItem;
import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
@@ -13,7 +17,10 @@
import com.casic.dcms.ui.fragment.HomePageFragment;
import com.casic.dcms.ui.fragment.MinePageFragment;
import com.casic.dcms.ui.fragment.PhonePageFragment;
+import com.casic.dcms.utils.BroadcastManager;
+import com.casic.dcms.utils.Constant;
import com.google.android.material.bottomnavigation.BottomNavigationView;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
import java.util.ArrayList;
import java.util.List;
@@ -22,12 +29,16 @@
public class MainActivity extends DoubleClickExitActivity {
+ @BindView(R.id.mainTopLayout)
+ QMUITopBarLayout mainTopLayout;
@BindView(R.id.mainViewPager)
ViewPager mainViewPager;
@BindView(R.id.bottomNavigation)
BottomNavigationView bottomNavigation;
+ private Context context = this;
private MenuItem menuItem;
private List pageList;
+ private BroadcastManager broadcastManager;
@Override
public int initLayoutView() {
@@ -36,7 +47,8 @@
@Override
protected void setupTopBarLayout() {
- //TODO 此页面无需实现
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
+ mainTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
}
@Override
@@ -46,6 +58,20 @@
pageList.add(new PhonePageFragment());
pageList.add(new DashBoardPageFragment());
pageList.add(new MinePageFragment());
+ broadcastManager = BroadcastManager.getInstance(this);
+ broadcastManager.addAction(Constant.LOGIN_OUT_ACTION, new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String action = intent.getAction();
+ if (action != null) {
+ String data = intent.getStringExtra("data");
+ assert data != null;
+ if (data.equals("请求成功")) {
+ finish();
+ }
+ }
+ }
+ });
}
@Override
@@ -56,15 +82,19 @@
switch (item.getItemId()) {
case R.id.navigation_home:
mainViewPager.setCurrentItem(0);
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_phone:
mainViewPager.setCurrentItem(1);
+ mainTopLayout.setTitle("通讯录").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_dashboard:
mainViewPager.setCurrentItem(2);
+ mainTopLayout.setTitle("消息").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_mine:
mainViewPager.setCurrentItem(3);
+ mainTopLayout.setTitle("我的").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
default:
break;
@@ -97,4 +127,10 @@
MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageList);
mainViewPager.setAdapter(mainPageAdapter);
}
+
+ @Override
+ protected void onDestroy() {
+ broadcastManager.destroy(Constant.LOGIN_OUT_ACTION);
+ super.onDestroy();
+ }
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
new file mode 100644
index 0000000..fe6c5f7
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IChangePasswordPresenter {
+ void onReadyRetrofitRequest(String oldPwd, String newPwd);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
new file mode 100644
index 0000000..4e2c7c1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ILoginOutPresenter {
+ void onReadyRetrofitRequest();
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
new file mode 100644
index 0000000..74a6a24
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.LoginOutActionModelImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+
+public class LoginOutPresenterImpl extends BasePresenter implements ILoginOutPresenter, LoginOutActionModelImpl.OnLoginOutListener {
+
+ private ILoginOutView view;
+ private LoginOutActionModelImpl actionModel;
+
+ public LoginOutPresenterImpl(ILoginOutView loginOutView) {
+ this.view = loginOutView;
+ actionModel = new LoginOutActionModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest() {
+ addSubscription(actionModel.sendRetrofitRequest());
+ }
+
+ @Override
+ public void onSuccess(LoginOutResultBean resultBean) {
+ view.obtainLoginOutResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
index 2119b70..0bcea6a 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
@@ -17,7 +17,6 @@
@Override
public void onReadyRetrofitRequest() {
- view.showProgress();
addSubscription(actionModel.sendRetrofitRequest());
}
@@ -28,12 +27,11 @@
@Override
public void onSuccess(UserBean userBean) {
- view.hideProgress();
view.obtainUserData(userBean);
}
@Override
public void onFailure(Throwable throwable) {
- view.hideProgress();
+
}
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
new file mode 100644
index 0000000..c2a84ab
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface IChangePasswordView {
+ void obtainChangePassResult(ChangePasswordResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
new file mode 100644
index 0000000..de3e421
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface ILoginOutView {
+ void obtainLoginOutResult(LoginOutResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
index 2b51d64..bcd16a9 100644
--- a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
@@ -3,9 +3,5 @@
import com.casic.dcms.bean.UserBean;
public interface IUserDataView {
- void showProgress();
-
- void hideProgress();
-
void obtainUserData(UserBean userBean);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
new file mode 100644
index 0000000..ad70b7a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
@@ -0,0 +1,61 @@
+package com.casic.dcms.ui;
+
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.luck.picture.lib.photoview.PhotoView;
+import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 17:09
+ * @email : 290677893@qq.com
+ **/
+public class BigPictureActivity extends BaseActivity {
+
+ @BindView(R.id.photoView)
+ PhotoView photoView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_big_pic;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ QMUIStatusBarHelper.setStatusBarLightMode(this);
+ }
+
+ @Override
+ public void initData() {
+// String mediaJson = getIntent().getStringExtra("mediaJson");
+//
+// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() {
+// }.getType());
+//
+// list = new ArrayList<>();
+// assert mediaList != null;
+// for (LocalMedia media : mediaList) {
+// list.add(media.getRealPath());
+// }
+ String path = getIntent().getStringExtra("path");
+ Glide.with(this).load(path).into(photoView);
+ }
+
+ @Override
+ public void initEvent() {
+// //轮播图
+// bigImageBanner.setImageLoader(new ImageLoader() {
+//
+// @Override
+// public void displayImage(Context context, Object path, ImageView imageView) {
+// Glide.with(context).load(path).into(imageView);
+// }
+// });
+// bigImageBanner.isAutoPlay(false);
+// bigImageBanner.setImages(list);
+// bigImageBanner.start();
+ }
+}
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 7c2bbc6..aa4100a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -109,6 +109,7 @@
private QMUITipDialog submitDialog;
private SubmitInfoBean infoBean;
private HashMap locationMap;
+ private Gson gson;
@Override
public int initLayoutView() {
@@ -129,6 +130,7 @@
@Override
public void initData() {
+ gson = new Gson();
//进入页面即创建提交表单的实体
infoBean = new SubmitInfoBean();
infoBean.setIsNeedRevisit("0");
@@ -388,6 +390,10 @@
imageGridViewAdapter.notifyDataSetChanged();
if (selectList.size() == 0) {
selectedResultView.setVisibility(View.GONE);
+ addImageView.setVisibility(View.VISIBLE);
+ } else {
+ selectedResultView.setVisibility(View.VISIBLE);
+ addImageView.setVisibility(View.GONE);
}
}
});
@@ -433,7 +439,10 @@
}
private void showBigImage(String path) {
-
+ Intent intent = new Intent(this, BigPictureActivity.class);
+// intent.putExtra("mediaJson", gson.toJson(mediaList));
+ intent.putExtra("path", path);
+ startActivity(intent);
}
@SuppressLint("ClickableViewAccessibility")
@@ -501,7 +510,7 @@
@Override
public void obtainLargeClassData(CaseLargeClassBean largeClassBean) {
-// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean));
+// Log.d(TAG, "obtainLargeClassData: " + gson.toJson(largeClassBean));
if (largeClassBean.isSuccess()) {
//设置大类数据
this.largeClassBeans = largeClassBean.getData();
@@ -556,13 +565,13 @@
} else {
ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING);
}
- Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean));
+ Log.d(TAG, "submitCase: " + gson.toJson(infoBean));
caseSubmitPresenter.onReadyRetrofitRequest(infoBean);
}
@Override
public void obtainSubmitResult(SubmitResultBean resultBean) {
- Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean));
+ Log.d(TAG, "obtainSubmitResult: " + gson.toJson(resultBean));
if (resultBean.isSuccess()) {
ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS);
} else {
diff --git a/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
new file mode 100644
index 0000000..891b7a3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
@@ -0,0 +1,124 @@
+package com.casic.dcms.ui;
+
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.widget.EditText;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.presenter.ChangePasswordPresenterImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+import com.casic.dcms.utils.RSAUtils;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.TokenHelper;
+import com.google.gson.Gson;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.security.PublicKey;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:20
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordActivity extends BaseActivity implements View.OnClickListener, IChangePasswordView {
+
+ private static final String TAG = "ChangePasswordActivity";
+ @BindView(R.id.passwordTopLayout)
+ QMUITopBarLayout passwordTopLayout;
+ @BindView(R.id.originalEditView)
+ EditText originalEditView;
+ @BindView(R.id.newEditView)
+ EditText newEditView;
+ @BindView(R.id.confirmEditView)
+ EditText confirmEditView;
+ @BindView(R.id.changePasswordButton)
+ QMUIRoundButton changePasswordButton;
+ private ChangePasswordPresenterImpl changePasswordPresenter;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_password;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ passwordTopLayout.setTitle("修改密码").setTextColor(ContextCompat.getColor(this, R.color.white));
+ passwordTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ passwordTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ changePasswordPresenter = new ChangePasswordPresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ changePasswordButton.setChangeAlphaWhenPress(true);
+ }
+
+ @OnClick(R.id.changePasswordButton)
+ @Override
+ public void onClick(View v) {
+ String oldPassword = originalEditView.getText().toString();
+ if (TextUtils.isEmpty(oldPassword)) {
+ ToastHelper.showToast("请先输入原密码", ToastHelper.WARING);
+ return;
+ }
+ String newPassword = newEditView.getText().toString();
+ if (TextUtils.isEmpty(newPassword)) {
+ ToastHelper.showToast("请先输入新密码", ToastHelper.WARING);
+ return;
+ }
+ String confirmPassword = confirmEditView.getText().toString();
+ if (TextUtils.isEmpty(confirmPassword)) {
+ ToastHelper.showToast("请再次输入新密码", ToastHelper.WARING);
+ return;
+ }
+ if (!newPassword.equals(confirmPassword)) {
+ ToastHelper.showToast("新密码和确认密码输入不一致,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (newPassword.length() < 6 || newPassword.length() > 12) {
+ ToastHelper.showToast("新密码长度不正确,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (!StringHelper.isLetterAndDigit(newPassword)) {
+ ToastHelper.showToast("新密码请输入6-12位的数字字母组合", ToastHelper.WARING);
+ return;
+ }
+ //数据校验OK,可以修改密码
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(TokenHelper.getPublicKey());
+ String oldPassKey = RSAUtils.encryptDataByPublicKey(oldPassword.getBytes(), publicKey);
+ String newPassKey = RSAUtils.encryptDataByPublicKey(newPassword.getBytes(), publicKey);
+
+// ChangeNewPasswordBean passwordBean = new ChangeNewPasswordBean();
+// passwordBean.setOldPwd(oldPassKey.replace("=\n", "="));
+// passwordBean.setNewPwd(newPassKey.replace("=\n", "="));
+ changePasswordPresenter.onReadyRetrofitRequest(oldPassKey, newPassKey);
+ }
+
+ @Override
+ public void obtainChangePassResult(ChangePasswordResultBean resultBean) {
+ Log.d(TAG, "obtainChangePassResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ ToastHelper.showToast("密码修改成功", ToastHelper.WARING);
+ finish();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
new file mode 100644
index 0000000..058f5d2
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
@@ -0,0 +1,49 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:05
+ * @email : 290677893@qq.com
+ **/
+public class HelpfulActivity extends BaseActivity {
+
+ @BindView(R.id.helpTopLayout)
+ QMUITopBarLayout helpTopLayout;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_help;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ helpTopLayout.setTitle("帮助中心").setTextColor(ContextCompat.getColor(this, R.color.white));
+ helpTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ helpTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
index 979deff..5535f61 100644
--- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
@@ -66,8 +66,8 @@
@Override
public void initData() {
- String userName = (String) SaveKeyValues.getValue("userName", "");
- String userPassword = (String) SaveKeyValues.getValue("userPassword", "");
+ String userName = (String) SaveKeyValues.getValue("name", "");
+ String userPassword = (String) SaveKeyValues.getValue("password", "");
userNameView.setText(userName);
userPasswordView.setText(userPassword);
if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) {
@@ -149,12 +149,15 @@
@Override
public void authenticateResult(PublicKeyBean result) {
if (result.isSuccess()) {
- PublicKey publicKey = RSAUtils.keyStrToPublicKey(result.getData().getPublicKey());
+ String keyString = result.getData().getPublicKey();
+ TokenHelper.savePublicKey(keyString);
+
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(keyString);
String userName = userNameView.getText().toString();
String userPassword = userPasswordView.getText().toString();
if (rememberPasswordView.isChecked()) {
- SaveKeyValues.putValue("userName", userName);
- SaveKeyValues.putValue("userPassword", userPassword);
+ SaveKeyValues.putValue("name", userName);
+ SaveKeyValues.putValue("password", userPassword);
}
if (autoLoginView.isChecked()) {
SaveKeyValues.putValue("autoLogin", true);
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 82eb21e..4351cb6 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -1,8 +1,12 @@
package com.casic.dcms.ui;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
import android.view.MenuItem;
import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
@@ -13,7 +17,10 @@
import com.casic.dcms.ui.fragment.HomePageFragment;
import com.casic.dcms.ui.fragment.MinePageFragment;
import com.casic.dcms.ui.fragment.PhonePageFragment;
+import com.casic.dcms.utils.BroadcastManager;
+import com.casic.dcms.utils.Constant;
import com.google.android.material.bottomnavigation.BottomNavigationView;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
import java.util.ArrayList;
import java.util.List;
@@ -22,12 +29,16 @@
public class MainActivity extends DoubleClickExitActivity {
+ @BindView(R.id.mainTopLayout)
+ QMUITopBarLayout mainTopLayout;
@BindView(R.id.mainViewPager)
ViewPager mainViewPager;
@BindView(R.id.bottomNavigation)
BottomNavigationView bottomNavigation;
+ private Context context = this;
private MenuItem menuItem;
private List pageList;
+ private BroadcastManager broadcastManager;
@Override
public int initLayoutView() {
@@ -36,7 +47,8 @@
@Override
protected void setupTopBarLayout() {
- //TODO 此页面无需实现
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
+ mainTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
}
@Override
@@ -46,6 +58,20 @@
pageList.add(new PhonePageFragment());
pageList.add(new DashBoardPageFragment());
pageList.add(new MinePageFragment());
+ broadcastManager = BroadcastManager.getInstance(this);
+ broadcastManager.addAction(Constant.LOGIN_OUT_ACTION, new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String action = intent.getAction();
+ if (action != null) {
+ String data = intent.getStringExtra("data");
+ assert data != null;
+ if (data.equals("请求成功")) {
+ finish();
+ }
+ }
+ }
+ });
}
@Override
@@ -56,15 +82,19 @@
switch (item.getItemId()) {
case R.id.navigation_home:
mainViewPager.setCurrentItem(0);
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_phone:
mainViewPager.setCurrentItem(1);
+ mainTopLayout.setTitle("通讯录").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_dashboard:
mainViewPager.setCurrentItem(2);
+ mainTopLayout.setTitle("消息").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_mine:
mainViewPager.setCurrentItem(3);
+ mainTopLayout.setTitle("我的").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
default:
break;
@@ -97,4 +127,10 @@
MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageList);
mainViewPager.setAdapter(mainPageAdapter);
}
+
+ @Override
+ protected void onDestroy() {
+ broadcastManager.destroy(Constant.LOGIN_OUT_ACTION);
+ super.onDestroy();
+ }
}
diff --git a/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java b/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java
new file mode 100644
index 0000000..07fdd6c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java
@@ -0,0 +1,59 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 15:22
+ * @email : 290677893@qq.com
+ **/
+public class UserInfoActivity extends BaseActivity {
+
+ @BindView(R.id.userTopLayout)
+ QMUITopBarLayout userTopLayout;
+ @BindView(R.id.userNameView)
+ TextView userNameView;
+ @BindView(R.id.userPhoneView)
+ TextView userPhoneView;
+ @BindView(R.id.userDeptView)
+ TextView userDeptView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_user;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ userTopLayout.setTitle("个人资料").setTextColor(ContextCompat.getColor(this, R.color.white));
+ userTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ userTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ userNameView.setText(StringHelper.getUserName());
+ userPhoneView.setText(StringHelper.getUserPhone());
+ userDeptView.setText(StringHelper.getUserDept());
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
new file mode 100644
index 0000000..fe6c5f7
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IChangePasswordPresenter {
+ void onReadyRetrofitRequest(String oldPwd, String newPwd);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
new file mode 100644
index 0000000..4e2c7c1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ILoginOutPresenter {
+ void onReadyRetrofitRequest();
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
new file mode 100644
index 0000000..74a6a24
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.LoginOutActionModelImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+
+public class LoginOutPresenterImpl extends BasePresenter implements ILoginOutPresenter, LoginOutActionModelImpl.OnLoginOutListener {
+
+ private ILoginOutView view;
+ private LoginOutActionModelImpl actionModel;
+
+ public LoginOutPresenterImpl(ILoginOutView loginOutView) {
+ this.view = loginOutView;
+ actionModel = new LoginOutActionModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest() {
+ addSubscription(actionModel.sendRetrofitRequest());
+ }
+
+ @Override
+ public void onSuccess(LoginOutResultBean resultBean) {
+ view.obtainLoginOutResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
index 2119b70..0bcea6a 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
@@ -17,7 +17,6 @@
@Override
public void onReadyRetrofitRequest() {
- view.showProgress();
addSubscription(actionModel.sendRetrofitRequest());
}
@@ -28,12 +27,11 @@
@Override
public void onSuccess(UserBean userBean) {
- view.hideProgress();
view.obtainUserData(userBean);
}
@Override
public void onFailure(Throwable throwable) {
- view.hideProgress();
+
}
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
new file mode 100644
index 0000000..c2a84ab
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface IChangePasswordView {
+ void obtainChangePassResult(ChangePasswordResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
new file mode 100644
index 0000000..de3e421
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface ILoginOutView {
+ void obtainLoginOutResult(LoginOutResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
index 2b51d64..bcd16a9 100644
--- a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
@@ -3,9 +3,5 @@
import com.casic.dcms.bean.UserBean;
public interface IUserDataView {
- void showProgress();
-
- void hideProgress();
-
void obtainUserData(UserBean userBean);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
new file mode 100644
index 0000000..ad70b7a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
@@ -0,0 +1,61 @@
+package com.casic.dcms.ui;
+
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.luck.picture.lib.photoview.PhotoView;
+import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 17:09
+ * @email : 290677893@qq.com
+ **/
+public class BigPictureActivity extends BaseActivity {
+
+ @BindView(R.id.photoView)
+ PhotoView photoView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_big_pic;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ QMUIStatusBarHelper.setStatusBarLightMode(this);
+ }
+
+ @Override
+ public void initData() {
+// String mediaJson = getIntent().getStringExtra("mediaJson");
+//
+// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() {
+// }.getType());
+//
+// list = new ArrayList<>();
+// assert mediaList != null;
+// for (LocalMedia media : mediaList) {
+// list.add(media.getRealPath());
+// }
+ String path = getIntent().getStringExtra("path");
+ Glide.with(this).load(path).into(photoView);
+ }
+
+ @Override
+ public void initEvent() {
+// //轮播图
+// bigImageBanner.setImageLoader(new ImageLoader() {
+//
+// @Override
+// public void displayImage(Context context, Object path, ImageView imageView) {
+// Glide.with(context).load(path).into(imageView);
+// }
+// });
+// bigImageBanner.isAutoPlay(false);
+// bigImageBanner.setImages(list);
+// bigImageBanner.start();
+ }
+}
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 7c2bbc6..aa4100a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -109,6 +109,7 @@
private QMUITipDialog submitDialog;
private SubmitInfoBean infoBean;
private HashMap locationMap;
+ private Gson gson;
@Override
public int initLayoutView() {
@@ -129,6 +130,7 @@
@Override
public void initData() {
+ gson = new Gson();
//进入页面即创建提交表单的实体
infoBean = new SubmitInfoBean();
infoBean.setIsNeedRevisit("0");
@@ -388,6 +390,10 @@
imageGridViewAdapter.notifyDataSetChanged();
if (selectList.size() == 0) {
selectedResultView.setVisibility(View.GONE);
+ addImageView.setVisibility(View.VISIBLE);
+ } else {
+ selectedResultView.setVisibility(View.VISIBLE);
+ addImageView.setVisibility(View.GONE);
}
}
});
@@ -433,7 +439,10 @@
}
private void showBigImage(String path) {
-
+ Intent intent = new Intent(this, BigPictureActivity.class);
+// intent.putExtra("mediaJson", gson.toJson(mediaList));
+ intent.putExtra("path", path);
+ startActivity(intent);
}
@SuppressLint("ClickableViewAccessibility")
@@ -501,7 +510,7 @@
@Override
public void obtainLargeClassData(CaseLargeClassBean largeClassBean) {
-// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean));
+// Log.d(TAG, "obtainLargeClassData: " + gson.toJson(largeClassBean));
if (largeClassBean.isSuccess()) {
//设置大类数据
this.largeClassBeans = largeClassBean.getData();
@@ -556,13 +565,13 @@
} else {
ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING);
}
- Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean));
+ Log.d(TAG, "submitCase: " + gson.toJson(infoBean));
caseSubmitPresenter.onReadyRetrofitRequest(infoBean);
}
@Override
public void obtainSubmitResult(SubmitResultBean resultBean) {
- Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean));
+ Log.d(TAG, "obtainSubmitResult: " + gson.toJson(resultBean));
if (resultBean.isSuccess()) {
ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS);
} else {
diff --git a/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
new file mode 100644
index 0000000..891b7a3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
@@ -0,0 +1,124 @@
+package com.casic.dcms.ui;
+
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.widget.EditText;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.presenter.ChangePasswordPresenterImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+import com.casic.dcms.utils.RSAUtils;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.TokenHelper;
+import com.google.gson.Gson;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.security.PublicKey;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:20
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordActivity extends BaseActivity implements View.OnClickListener, IChangePasswordView {
+
+ private static final String TAG = "ChangePasswordActivity";
+ @BindView(R.id.passwordTopLayout)
+ QMUITopBarLayout passwordTopLayout;
+ @BindView(R.id.originalEditView)
+ EditText originalEditView;
+ @BindView(R.id.newEditView)
+ EditText newEditView;
+ @BindView(R.id.confirmEditView)
+ EditText confirmEditView;
+ @BindView(R.id.changePasswordButton)
+ QMUIRoundButton changePasswordButton;
+ private ChangePasswordPresenterImpl changePasswordPresenter;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_password;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ passwordTopLayout.setTitle("修改密码").setTextColor(ContextCompat.getColor(this, R.color.white));
+ passwordTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ passwordTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ changePasswordPresenter = new ChangePasswordPresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ changePasswordButton.setChangeAlphaWhenPress(true);
+ }
+
+ @OnClick(R.id.changePasswordButton)
+ @Override
+ public void onClick(View v) {
+ String oldPassword = originalEditView.getText().toString();
+ if (TextUtils.isEmpty(oldPassword)) {
+ ToastHelper.showToast("请先输入原密码", ToastHelper.WARING);
+ return;
+ }
+ String newPassword = newEditView.getText().toString();
+ if (TextUtils.isEmpty(newPassword)) {
+ ToastHelper.showToast("请先输入新密码", ToastHelper.WARING);
+ return;
+ }
+ String confirmPassword = confirmEditView.getText().toString();
+ if (TextUtils.isEmpty(confirmPassword)) {
+ ToastHelper.showToast("请再次输入新密码", ToastHelper.WARING);
+ return;
+ }
+ if (!newPassword.equals(confirmPassword)) {
+ ToastHelper.showToast("新密码和确认密码输入不一致,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (newPassword.length() < 6 || newPassword.length() > 12) {
+ ToastHelper.showToast("新密码长度不正确,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (!StringHelper.isLetterAndDigit(newPassword)) {
+ ToastHelper.showToast("新密码请输入6-12位的数字字母组合", ToastHelper.WARING);
+ return;
+ }
+ //数据校验OK,可以修改密码
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(TokenHelper.getPublicKey());
+ String oldPassKey = RSAUtils.encryptDataByPublicKey(oldPassword.getBytes(), publicKey);
+ String newPassKey = RSAUtils.encryptDataByPublicKey(newPassword.getBytes(), publicKey);
+
+// ChangeNewPasswordBean passwordBean = new ChangeNewPasswordBean();
+// passwordBean.setOldPwd(oldPassKey.replace("=\n", "="));
+// passwordBean.setNewPwd(newPassKey.replace("=\n", "="));
+ changePasswordPresenter.onReadyRetrofitRequest(oldPassKey, newPassKey);
+ }
+
+ @Override
+ public void obtainChangePassResult(ChangePasswordResultBean resultBean) {
+ Log.d(TAG, "obtainChangePassResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ ToastHelper.showToast("密码修改成功", ToastHelper.WARING);
+ finish();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
new file mode 100644
index 0000000..058f5d2
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
@@ -0,0 +1,49 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:05
+ * @email : 290677893@qq.com
+ **/
+public class HelpfulActivity extends BaseActivity {
+
+ @BindView(R.id.helpTopLayout)
+ QMUITopBarLayout helpTopLayout;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_help;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ helpTopLayout.setTitle("帮助中心").setTextColor(ContextCompat.getColor(this, R.color.white));
+ helpTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ helpTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
index 979deff..5535f61 100644
--- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
@@ -66,8 +66,8 @@
@Override
public void initData() {
- String userName = (String) SaveKeyValues.getValue("userName", "");
- String userPassword = (String) SaveKeyValues.getValue("userPassword", "");
+ String userName = (String) SaveKeyValues.getValue("name", "");
+ String userPassword = (String) SaveKeyValues.getValue("password", "");
userNameView.setText(userName);
userPasswordView.setText(userPassword);
if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) {
@@ -149,12 +149,15 @@
@Override
public void authenticateResult(PublicKeyBean result) {
if (result.isSuccess()) {
- PublicKey publicKey = RSAUtils.keyStrToPublicKey(result.getData().getPublicKey());
+ String keyString = result.getData().getPublicKey();
+ TokenHelper.savePublicKey(keyString);
+
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(keyString);
String userName = userNameView.getText().toString();
String userPassword = userPasswordView.getText().toString();
if (rememberPasswordView.isChecked()) {
- SaveKeyValues.putValue("userName", userName);
- SaveKeyValues.putValue("userPassword", userPassword);
+ SaveKeyValues.putValue("name", userName);
+ SaveKeyValues.putValue("password", userPassword);
}
if (autoLoginView.isChecked()) {
SaveKeyValues.putValue("autoLogin", true);
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 82eb21e..4351cb6 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -1,8 +1,12 @@
package com.casic.dcms.ui;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
import android.view.MenuItem;
import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
@@ -13,7 +17,10 @@
import com.casic.dcms.ui.fragment.HomePageFragment;
import com.casic.dcms.ui.fragment.MinePageFragment;
import com.casic.dcms.ui.fragment.PhonePageFragment;
+import com.casic.dcms.utils.BroadcastManager;
+import com.casic.dcms.utils.Constant;
import com.google.android.material.bottomnavigation.BottomNavigationView;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
import java.util.ArrayList;
import java.util.List;
@@ -22,12 +29,16 @@
public class MainActivity extends DoubleClickExitActivity {
+ @BindView(R.id.mainTopLayout)
+ QMUITopBarLayout mainTopLayout;
@BindView(R.id.mainViewPager)
ViewPager mainViewPager;
@BindView(R.id.bottomNavigation)
BottomNavigationView bottomNavigation;
+ private Context context = this;
private MenuItem menuItem;
private List pageList;
+ private BroadcastManager broadcastManager;
@Override
public int initLayoutView() {
@@ -36,7 +47,8 @@
@Override
protected void setupTopBarLayout() {
- //TODO 此页面无需实现
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
+ mainTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
}
@Override
@@ -46,6 +58,20 @@
pageList.add(new PhonePageFragment());
pageList.add(new DashBoardPageFragment());
pageList.add(new MinePageFragment());
+ broadcastManager = BroadcastManager.getInstance(this);
+ broadcastManager.addAction(Constant.LOGIN_OUT_ACTION, new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String action = intent.getAction();
+ if (action != null) {
+ String data = intent.getStringExtra("data");
+ assert data != null;
+ if (data.equals("请求成功")) {
+ finish();
+ }
+ }
+ }
+ });
}
@Override
@@ -56,15 +82,19 @@
switch (item.getItemId()) {
case R.id.navigation_home:
mainViewPager.setCurrentItem(0);
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_phone:
mainViewPager.setCurrentItem(1);
+ mainTopLayout.setTitle("通讯录").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_dashboard:
mainViewPager.setCurrentItem(2);
+ mainTopLayout.setTitle("消息").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_mine:
mainViewPager.setCurrentItem(3);
+ mainTopLayout.setTitle("我的").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
default:
break;
@@ -97,4 +127,10 @@
MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageList);
mainViewPager.setAdapter(mainPageAdapter);
}
+
+ @Override
+ protected void onDestroy() {
+ broadcastManager.destroy(Constant.LOGIN_OUT_ACTION);
+ super.onDestroy();
+ }
}
diff --git a/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java b/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java
new file mode 100644
index 0000000..07fdd6c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java
@@ -0,0 +1,59 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 15:22
+ * @email : 290677893@qq.com
+ **/
+public class UserInfoActivity extends BaseActivity {
+
+ @BindView(R.id.userTopLayout)
+ QMUITopBarLayout userTopLayout;
+ @BindView(R.id.userNameView)
+ TextView userNameView;
+ @BindView(R.id.userPhoneView)
+ TextView userPhoneView;
+ @BindView(R.id.userDeptView)
+ TextView userDeptView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_user;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ userTopLayout.setTitle("个人资料").setTextColor(ContextCompat.getColor(this, R.color.white));
+ userTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ userTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ userNameView.setText(StringHelper.getUserName());
+ userPhoneView.setText(StringHelper.getUserPhone());
+ userDeptView.setText(StringHelper.getUserDept());
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
index a1e68ba..ed8bf57 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
@@ -10,6 +10,11 @@
}
@Override
+ protected void setupTopBarLayout() {
+
+ }
+
+ @Override
protected void initData() {
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
new file mode 100644
index 0000000..fe6c5f7
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IChangePasswordPresenter {
+ void onReadyRetrofitRequest(String oldPwd, String newPwd);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
new file mode 100644
index 0000000..4e2c7c1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ILoginOutPresenter {
+ void onReadyRetrofitRequest();
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
new file mode 100644
index 0000000..74a6a24
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.LoginOutActionModelImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+
+public class LoginOutPresenterImpl extends BasePresenter implements ILoginOutPresenter, LoginOutActionModelImpl.OnLoginOutListener {
+
+ private ILoginOutView view;
+ private LoginOutActionModelImpl actionModel;
+
+ public LoginOutPresenterImpl(ILoginOutView loginOutView) {
+ this.view = loginOutView;
+ actionModel = new LoginOutActionModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest() {
+ addSubscription(actionModel.sendRetrofitRequest());
+ }
+
+ @Override
+ public void onSuccess(LoginOutResultBean resultBean) {
+ view.obtainLoginOutResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
index 2119b70..0bcea6a 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
@@ -17,7 +17,6 @@
@Override
public void onReadyRetrofitRequest() {
- view.showProgress();
addSubscription(actionModel.sendRetrofitRequest());
}
@@ -28,12 +27,11 @@
@Override
public void onSuccess(UserBean userBean) {
- view.hideProgress();
view.obtainUserData(userBean);
}
@Override
public void onFailure(Throwable throwable) {
- view.hideProgress();
+
}
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
new file mode 100644
index 0000000..c2a84ab
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface IChangePasswordView {
+ void obtainChangePassResult(ChangePasswordResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
new file mode 100644
index 0000000..de3e421
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface ILoginOutView {
+ void obtainLoginOutResult(LoginOutResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
index 2b51d64..bcd16a9 100644
--- a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
@@ -3,9 +3,5 @@
import com.casic.dcms.bean.UserBean;
public interface IUserDataView {
- void showProgress();
-
- void hideProgress();
-
void obtainUserData(UserBean userBean);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
new file mode 100644
index 0000000..ad70b7a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
@@ -0,0 +1,61 @@
+package com.casic.dcms.ui;
+
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.luck.picture.lib.photoview.PhotoView;
+import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 17:09
+ * @email : 290677893@qq.com
+ **/
+public class BigPictureActivity extends BaseActivity {
+
+ @BindView(R.id.photoView)
+ PhotoView photoView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_big_pic;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ QMUIStatusBarHelper.setStatusBarLightMode(this);
+ }
+
+ @Override
+ public void initData() {
+// String mediaJson = getIntent().getStringExtra("mediaJson");
+//
+// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() {
+// }.getType());
+//
+// list = new ArrayList<>();
+// assert mediaList != null;
+// for (LocalMedia media : mediaList) {
+// list.add(media.getRealPath());
+// }
+ String path = getIntent().getStringExtra("path");
+ Glide.with(this).load(path).into(photoView);
+ }
+
+ @Override
+ public void initEvent() {
+// //轮播图
+// bigImageBanner.setImageLoader(new ImageLoader() {
+//
+// @Override
+// public void displayImage(Context context, Object path, ImageView imageView) {
+// Glide.with(context).load(path).into(imageView);
+// }
+// });
+// bigImageBanner.isAutoPlay(false);
+// bigImageBanner.setImages(list);
+// bigImageBanner.start();
+ }
+}
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 7c2bbc6..aa4100a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -109,6 +109,7 @@
private QMUITipDialog submitDialog;
private SubmitInfoBean infoBean;
private HashMap locationMap;
+ private Gson gson;
@Override
public int initLayoutView() {
@@ -129,6 +130,7 @@
@Override
public void initData() {
+ gson = new Gson();
//进入页面即创建提交表单的实体
infoBean = new SubmitInfoBean();
infoBean.setIsNeedRevisit("0");
@@ -388,6 +390,10 @@
imageGridViewAdapter.notifyDataSetChanged();
if (selectList.size() == 0) {
selectedResultView.setVisibility(View.GONE);
+ addImageView.setVisibility(View.VISIBLE);
+ } else {
+ selectedResultView.setVisibility(View.VISIBLE);
+ addImageView.setVisibility(View.GONE);
}
}
});
@@ -433,7 +439,10 @@
}
private void showBigImage(String path) {
-
+ Intent intent = new Intent(this, BigPictureActivity.class);
+// intent.putExtra("mediaJson", gson.toJson(mediaList));
+ intent.putExtra("path", path);
+ startActivity(intent);
}
@SuppressLint("ClickableViewAccessibility")
@@ -501,7 +510,7 @@
@Override
public void obtainLargeClassData(CaseLargeClassBean largeClassBean) {
-// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean));
+// Log.d(TAG, "obtainLargeClassData: " + gson.toJson(largeClassBean));
if (largeClassBean.isSuccess()) {
//设置大类数据
this.largeClassBeans = largeClassBean.getData();
@@ -556,13 +565,13 @@
} else {
ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING);
}
- Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean));
+ Log.d(TAG, "submitCase: " + gson.toJson(infoBean));
caseSubmitPresenter.onReadyRetrofitRequest(infoBean);
}
@Override
public void obtainSubmitResult(SubmitResultBean resultBean) {
- Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean));
+ Log.d(TAG, "obtainSubmitResult: " + gson.toJson(resultBean));
if (resultBean.isSuccess()) {
ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS);
} else {
diff --git a/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
new file mode 100644
index 0000000..891b7a3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
@@ -0,0 +1,124 @@
+package com.casic.dcms.ui;
+
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.widget.EditText;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.presenter.ChangePasswordPresenterImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+import com.casic.dcms.utils.RSAUtils;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.TokenHelper;
+import com.google.gson.Gson;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.security.PublicKey;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:20
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordActivity extends BaseActivity implements View.OnClickListener, IChangePasswordView {
+
+ private static final String TAG = "ChangePasswordActivity";
+ @BindView(R.id.passwordTopLayout)
+ QMUITopBarLayout passwordTopLayout;
+ @BindView(R.id.originalEditView)
+ EditText originalEditView;
+ @BindView(R.id.newEditView)
+ EditText newEditView;
+ @BindView(R.id.confirmEditView)
+ EditText confirmEditView;
+ @BindView(R.id.changePasswordButton)
+ QMUIRoundButton changePasswordButton;
+ private ChangePasswordPresenterImpl changePasswordPresenter;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_password;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ passwordTopLayout.setTitle("修改密码").setTextColor(ContextCompat.getColor(this, R.color.white));
+ passwordTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ passwordTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ changePasswordPresenter = new ChangePasswordPresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ changePasswordButton.setChangeAlphaWhenPress(true);
+ }
+
+ @OnClick(R.id.changePasswordButton)
+ @Override
+ public void onClick(View v) {
+ String oldPassword = originalEditView.getText().toString();
+ if (TextUtils.isEmpty(oldPassword)) {
+ ToastHelper.showToast("请先输入原密码", ToastHelper.WARING);
+ return;
+ }
+ String newPassword = newEditView.getText().toString();
+ if (TextUtils.isEmpty(newPassword)) {
+ ToastHelper.showToast("请先输入新密码", ToastHelper.WARING);
+ return;
+ }
+ String confirmPassword = confirmEditView.getText().toString();
+ if (TextUtils.isEmpty(confirmPassword)) {
+ ToastHelper.showToast("请再次输入新密码", ToastHelper.WARING);
+ return;
+ }
+ if (!newPassword.equals(confirmPassword)) {
+ ToastHelper.showToast("新密码和确认密码输入不一致,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (newPassword.length() < 6 || newPassword.length() > 12) {
+ ToastHelper.showToast("新密码长度不正确,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (!StringHelper.isLetterAndDigit(newPassword)) {
+ ToastHelper.showToast("新密码请输入6-12位的数字字母组合", ToastHelper.WARING);
+ return;
+ }
+ //数据校验OK,可以修改密码
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(TokenHelper.getPublicKey());
+ String oldPassKey = RSAUtils.encryptDataByPublicKey(oldPassword.getBytes(), publicKey);
+ String newPassKey = RSAUtils.encryptDataByPublicKey(newPassword.getBytes(), publicKey);
+
+// ChangeNewPasswordBean passwordBean = new ChangeNewPasswordBean();
+// passwordBean.setOldPwd(oldPassKey.replace("=\n", "="));
+// passwordBean.setNewPwd(newPassKey.replace("=\n", "="));
+ changePasswordPresenter.onReadyRetrofitRequest(oldPassKey, newPassKey);
+ }
+
+ @Override
+ public void obtainChangePassResult(ChangePasswordResultBean resultBean) {
+ Log.d(TAG, "obtainChangePassResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ ToastHelper.showToast("密码修改成功", ToastHelper.WARING);
+ finish();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
new file mode 100644
index 0000000..058f5d2
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
@@ -0,0 +1,49 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:05
+ * @email : 290677893@qq.com
+ **/
+public class HelpfulActivity extends BaseActivity {
+
+ @BindView(R.id.helpTopLayout)
+ QMUITopBarLayout helpTopLayout;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_help;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ helpTopLayout.setTitle("帮助中心").setTextColor(ContextCompat.getColor(this, R.color.white));
+ helpTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ helpTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
index 979deff..5535f61 100644
--- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
@@ -66,8 +66,8 @@
@Override
public void initData() {
- String userName = (String) SaveKeyValues.getValue("userName", "");
- String userPassword = (String) SaveKeyValues.getValue("userPassword", "");
+ String userName = (String) SaveKeyValues.getValue("name", "");
+ String userPassword = (String) SaveKeyValues.getValue("password", "");
userNameView.setText(userName);
userPasswordView.setText(userPassword);
if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) {
@@ -149,12 +149,15 @@
@Override
public void authenticateResult(PublicKeyBean result) {
if (result.isSuccess()) {
- PublicKey publicKey = RSAUtils.keyStrToPublicKey(result.getData().getPublicKey());
+ String keyString = result.getData().getPublicKey();
+ TokenHelper.savePublicKey(keyString);
+
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(keyString);
String userName = userNameView.getText().toString();
String userPassword = userPasswordView.getText().toString();
if (rememberPasswordView.isChecked()) {
- SaveKeyValues.putValue("userName", userName);
- SaveKeyValues.putValue("userPassword", userPassword);
+ SaveKeyValues.putValue("name", userName);
+ SaveKeyValues.putValue("password", userPassword);
}
if (autoLoginView.isChecked()) {
SaveKeyValues.putValue("autoLogin", true);
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 82eb21e..4351cb6 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -1,8 +1,12 @@
package com.casic.dcms.ui;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
import android.view.MenuItem;
import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
@@ -13,7 +17,10 @@
import com.casic.dcms.ui.fragment.HomePageFragment;
import com.casic.dcms.ui.fragment.MinePageFragment;
import com.casic.dcms.ui.fragment.PhonePageFragment;
+import com.casic.dcms.utils.BroadcastManager;
+import com.casic.dcms.utils.Constant;
import com.google.android.material.bottomnavigation.BottomNavigationView;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
import java.util.ArrayList;
import java.util.List;
@@ -22,12 +29,16 @@
public class MainActivity extends DoubleClickExitActivity {
+ @BindView(R.id.mainTopLayout)
+ QMUITopBarLayout mainTopLayout;
@BindView(R.id.mainViewPager)
ViewPager mainViewPager;
@BindView(R.id.bottomNavigation)
BottomNavigationView bottomNavigation;
+ private Context context = this;
private MenuItem menuItem;
private List pageList;
+ private BroadcastManager broadcastManager;
@Override
public int initLayoutView() {
@@ -36,7 +47,8 @@
@Override
protected void setupTopBarLayout() {
- //TODO 此页面无需实现
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
+ mainTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
}
@Override
@@ -46,6 +58,20 @@
pageList.add(new PhonePageFragment());
pageList.add(new DashBoardPageFragment());
pageList.add(new MinePageFragment());
+ broadcastManager = BroadcastManager.getInstance(this);
+ broadcastManager.addAction(Constant.LOGIN_OUT_ACTION, new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String action = intent.getAction();
+ if (action != null) {
+ String data = intent.getStringExtra("data");
+ assert data != null;
+ if (data.equals("请求成功")) {
+ finish();
+ }
+ }
+ }
+ });
}
@Override
@@ -56,15 +82,19 @@
switch (item.getItemId()) {
case R.id.navigation_home:
mainViewPager.setCurrentItem(0);
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_phone:
mainViewPager.setCurrentItem(1);
+ mainTopLayout.setTitle("通讯录").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_dashboard:
mainViewPager.setCurrentItem(2);
+ mainTopLayout.setTitle("消息").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_mine:
mainViewPager.setCurrentItem(3);
+ mainTopLayout.setTitle("我的").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
default:
break;
@@ -97,4 +127,10 @@
MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageList);
mainViewPager.setAdapter(mainPageAdapter);
}
+
+ @Override
+ protected void onDestroy() {
+ broadcastManager.destroy(Constant.LOGIN_OUT_ACTION);
+ super.onDestroy();
+ }
}
diff --git a/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java b/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java
new file mode 100644
index 0000000..07fdd6c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java
@@ -0,0 +1,59 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 15:22
+ * @email : 290677893@qq.com
+ **/
+public class UserInfoActivity extends BaseActivity {
+
+ @BindView(R.id.userTopLayout)
+ QMUITopBarLayout userTopLayout;
+ @BindView(R.id.userNameView)
+ TextView userNameView;
+ @BindView(R.id.userPhoneView)
+ TextView userPhoneView;
+ @BindView(R.id.userDeptView)
+ TextView userDeptView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_user;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ userTopLayout.setTitle("个人资料").setTextColor(ContextCompat.getColor(this, R.color.white));
+ userTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ userTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ userNameView.setText(StringHelper.getUserName());
+ userPhoneView.setText(StringHelper.getUserPhone());
+ userDeptView.setText(StringHelper.getUserDept());
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
index a1e68ba..ed8bf57 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
@@ -10,6 +10,11 @@
}
@Override
+ protected void setupTopBarLayout() {
+
+ }
+
+ @Override
protected void initData() {
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
index 4922b08..e467298 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
@@ -3,9 +3,7 @@
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
-import android.text.TextUtils;
import android.widget.TextView;
-import android.widget.Toast;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -19,7 +17,7 @@
import com.casic.dcms.mvp.presenter.UserDataPresenterImpl;
import com.casic.dcms.mvp.view.IUserDataView;
import com.casic.dcms.ui.CaseUploadActivity;
-import com.casic.dcms.utils.TokenHelper;
+import com.casic.dcms.utils.StringHelper;
import com.qmuiteam.qmui.widget.QMUIRadiusImageView;
import butterknife.BindView;
@@ -49,15 +47,13 @@
}
@Override
- protected void initData() {
+ protected void setupTopBarLayout() {
context = getContext();
- userDataPresenter = new UserDataPresenterImpl(this);
+ }
- String token = TokenHelper.getToken();
- if (TextUtils.isEmpty(token)) {
- Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show();
- return;
- }
+ @Override
+ protected void initData() {
+ userDataPresenter = new UserDataPresenterImpl(this);
userDataPresenter.onReadyRetrofitRequest();
}
@@ -86,6 +82,7 @@
break;
case 4:
+ break;
case 5:
break;
@@ -114,16 +111,6 @@
});
}
- @Override
- public void showProgress() {
-
- }
-
- @Override
- public void hideProgress() {
-
- }
-
@SuppressLint("SetTextI18n")
@Override
public void obtainUserData(UserBean userBean) {
@@ -135,8 +122,10 @@
UserBean.DataBean data = userBean.getData();
userNameView.setText(data.getName());
userDeptView.setText(data.getDeptName() + data.getRoleNames());
- } else {
- Toast.makeText(context, "", Toast.LENGTH_SHORT).show();
+
+ StringHelper.saveUserName(data.getName());
+ StringHelper.saveUserPhone(data.getPhone());
+ StringHelper.saveUserDept(data.getDeptName());
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
new file mode 100644
index 0000000..fe6c5f7
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IChangePasswordPresenter {
+ void onReadyRetrofitRequest(String oldPwd, String newPwd);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
new file mode 100644
index 0000000..4e2c7c1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ILoginOutPresenter {
+ void onReadyRetrofitRequest();
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
new file mode 100644
index 0000000..74a6a24
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.LoginOutActionModelImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+
+public class LoginOutPresenterImpl extends BasePresenter implements ILoginOutPresenter, LoginOutActionModelImpl.OnLoginOutListener {
+
+ private ILoginOutView view;
+ private LoginOutActionModelImpl actionModel;
+
+ public LoginOutPresenterImpl(ILoginOutView loginOutView) {
+ this.view = loginOutView;
+ actionModel = new LoginOutActionModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest() {
+ addSubscription(actionModel.sendRetrofitRequest());
+ }
+
+ @Override
+ public void onSuccess(LoginOutResultBean resultBean) {
+ view.obtainLoginOutResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
index 2119b70..0bcea6a 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
@@ -17,7 +17,6 @@
@Override
public void onReadyRetrofitRequest() {
- view.showProgress();
addSubscription(actionModel.sendRetrofitRequest());
}
@@ -28,12 +27,11 @@
@Override
public void onSuccess(UserBean userBean) {
- view.hideProgress();
view.obtainUserData(userBean);
}
@Override
public void onFailure(Throwable throwable) {
- view.hideProgress();
+
}
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
new file mode 100644
index 0000000..c2a84ab
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface IChangePasswordView {
+ void obtainChangePassResult(ChangePasswordResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
new file mode 100644
index 0000000..de3e421
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface ILoginOutView {
+ void obtainLoginOutResult(LoginOutResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
index 2b51d64..bcd16a9 100644
--- a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
@@ -3,9 +3,5 @@
import com.casic.dcms.bean.UserBean;
public interface IUserDataView {
- void showProgress();
-
- void hideProgress();
-
void obtainUserData(UserBean userBean);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
new file mode 100644
index 0000000..ad70b7a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
@@ -0,0 +1,61 @@
+package com.casic.dcms.ui;
+
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.luck.picture.lib.photoview.PhotoView;
+import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 17:09
+ * @email : 290677893@qq.com
+ **/
+public class BigPictureActivity extends BaseActivity {
+
+ @BindView(R.id.photoView)
+ PhotoView photoView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_big_pic;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ QMUIStatusBarHelper.setStatusBarLightMode(this);
+ }
+
+ @Override
+ public void initData() {
+// String mediaJson = getIntent().getStringExtra("mediaJson");
+//
+// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() {
+// }.getType());
+//
+// list = new ArrayList<>();
+// assert mediaList != null;
+// for (LocalMedia media : mediaList) {
+// list.add(media.getRealPath());
+// }
+ String path = getIntent().getStringExtra("path");
+ Glide.with(this).load(path).into(photoView);
+ }
+
+ @Override
+ public void initEvent() {
+// //轮播图
+// bigImageBanner.setImageLoader(new ImageLoader() {
+//
+// @Override
+// public void displayImage(Context context, Object path, ImageView imageView) {
+// Glide.with(context).load(path).into(imageView);
+// }
+// });
+// bigImageBanner.isAutoPlay(false);
+// bigImageBanner.setImages(list);
+// bigImageBanner.start();
+ }
+}
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 7c2bbc6..aa4100a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -109,6 +109,7 @@
private QMUITipDialog submitDialog;
private SubmitInfoBean infoBean;
private HashMap locationMap;
+ private Gson gson;
@Override
public int initLayoutView() {
@@ -129,6 +130,7 @@
@Override
public void initData() {
+ gson = new Gson();
//进入页面即创建提交表单的实体
infoBean = new SubmitInfoBean();
infoBean.setIsNeedRevisit("0");
@@ -388,6 +390,10 @@
imageGridViewAdapter.notifyDataSetChanged();
if (selectList.size() == 0) {
selectedResultView.setVisibility(View.GONE);
+ addImageView.setVisibility(View.VISIBLE);
+ } else {
+ selectedResultView.setVisibility(View.VISIBLE);
+ addImageView.setVisibility(View.GONE);
}
}
});
@@ -433,7 +439,10 @@
}
private void showBigImage(String path) {
-
+ Intent intent = new Intent(this, BigPictureActivity.class);
+// intent.putExtra("mediaJson", gson.toJson(mediaList));
+ intent.putExtra("path", path);
+ startActivity(intent);
}
@SuppressLint("ClickableViewAccessibility")
@@ -501,7 +510,7 @@
@Override
public void obtainLargeClassData(CaseLargeClassBean largeClassBean) {
-// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean));
+// Log.d(TAG, "obtainLargeClassData: " + gson.toJson(largeClassBean));
if (largeClassBean.isSuccess()) {
//设置大类数据
this.largeClassBeans = largeClassBean.getData();
@@ -556,13 +565,13 @@
} else {
ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING);
}
- Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean));
+ Log.d(TAG, "submitCase: " + gson.toJson(infoBean));
caseSubmitPresenter.onReadyRetrofitRequest(infoBean);
}
@Override
public void obtainSubmitResult(SubmitResultBean resultBean) {
- Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean));
+ Log.d(TAG, "obtainSubmitResult: " + gson.toJson(resultBean));
if (resultBean.isSuccess()) {
ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS);
} else {
diff --git a/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
new file mode 100644
index 0000000..891b7a3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
@@ -0,0 +1,124 @@
+package com.casic.dcms.ui;
+
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.widget.EditText;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.presenter.ChangePasswordPresenterImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+import com.casic.dcms.utils.RSAUtils;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.TokenHelper;
+import com.google.gson.Gson;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.security.PublicKey;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:20
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordActivity extends BaseActivity implements View.OnClickListener, IChangePasswordView {
+
+ private static final String TAG = "ChangePasswordActivity";
+ @BindView(R.id.passwordTopLayout)
+ QMUITopBarLayout passwordTopLayout;
+ @BindView(R.id.originalEditView)
+ EditText originalEditView;
+ @BindView(R.id.newEditView)
+ EditText newEditView;
+ @BindView(R.id.confirmEditView)
+ EditText confirmEditView;
+ @BindView(R.id.changePasswordButton)
+ QMUIRoundButton changePasswordButton;
+ private ChangePasswordPresenterImpl changePasswordPresenter;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_password;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ passwordTopLayout.setTitle("修改密码").setTextColor(ContextCompat.getColor(this, R.color.white));
+ passwordTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ passwordTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ changePasswordPresenter = new ChangePasswordPresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ changePasswordButton.setChangeAlphaWhenPress(true);
+ }
+
+ @OnClick(R.id.changePasswordButton)
+ @Override
+ public void onClick(View v) {
+ String oldPassword = originalEditView.getText().toString();
+ if (TextUtils.isEmpty(oldPassword)) {
+ ToastHelper.showToast("请先输入原密码", ToastHelper.WARING);
+ return;
+ }
+ String newPassword = newEditView.getText().toString();
+ if (TextUtils.isEmpty(newPassword)) {
+ ToastHelper.showToast("请先输入新密码", ToastHelper.WARING);
+ return;
+ }
+ String confirmPassword = confirmEditView.getText().toString();
+ if (TextUtils.isEmpty(confirmPassword)) {
+ ToastHelper.showToast("请再次输入新密码", ToastHelper.WARING);
+ return;
+ }
+ if (!newPassword.equals(confirmPassword)) {
+ ToastHelper.showToast("新密码和确认密码输入不一致,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (newPassword.length() < 6 || newPassword.length() > 12) {
+ ToastHelper.showToast("新密码长度不正确,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (!StringHelper.isLetterAndDigit(newPassword)) {
+ ToastHelper.showToast("新密码请输入6-12位的数字字母组合", ToastHelper.WARING);
+ return;
+ }
+ //数据校验OK,可以修改密码
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(TokenHelper.getPublicKey());
+ String oldPassKey = RSAUtils.encryptDataByPublicKey(oldPassword.getBytes(), publicKey);
+ String newPassKey = RSAUtils.encryptDataByPublicKey(newPassword.getBytes(), publicKey);
+
+// ChangeNewPasswordBean passwordBean = new ChangeNewPasswordBean();
+// passwordBean.setOldPwd(oldPassKey.replace("=\n", "="));
+// passwordBean.setNewPwd(newPassKey.replace("=\n", "="));
+ changePasswordPresenter.onReadyRetrofitRequest(oldPassKey, newPassKey);
+ }
+
+ @Override
+ public void obtainChangePassResult(ChangePasswordResultBean resultBean) {
+ Log.d(TAG, "obtainChangePassResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ ToastHelper.showToast("密码修改成功", ToastHelper.WARING);
+ finish();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
new file mode 100644
index 0000000..058f5d2
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
@@ -0,0 +1,49 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:05
+ * @email : 290677893@qq.com
+ **/
+public class HelpfulActivity extends BaseActivity {
+
+ @BindView(R.id.helpTopLayout)
+ QMUITopBarLayout helpTopLayout;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_help;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ helpTopLayout.setTitle("帮助中心").setTextColor(ContextCompat.getColor(this, R.color.white));
+ helpTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ helpTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
index 979deff..5535f61 100644
--- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
@@ -66,8 +66,8 @@
@Override
public void initData() {
- String userName = (String) SaveKeyValues.getValue("userName", "");
- String userPassword = (String) SaveKeyValues.getValue("userPassword", "");
+ String userName = (String) SaveKeyValues.getValue("name", "");
+ String userPassword = (String) SaveKeyValues.getValue("password", "");
userNameView.setText(userName);
userPasswordView.setText(userPassword);
if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) {
@@ -149,12 +149,15 @@
@Override
public void authenticateResult(PublicKeyBean result) {
if (result.isSuccess()) {
- PublicKey publicKey = RSAUtils.keyStrToPublicKey(result.getData().getPublicKey());
+ String keyString = result.getData().getPublicKey();
+ TokenHelper.savePublicKey(keyString);
+
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(keyString);
String userName = userNameView.getText().toString();
String userPassword = userPasswordView.getText().toString();
if (rememberPasswordView.isChecked()) {
- SaveKeyValues.putValue("userName", userName);
- SaveKeyValues.putValue("userPassword", userPassword);
+ SaveKeyValues.putValue("name", userName);
+ SaveKeyValues.putValue("password", userPassword);
}
if (autoLoginView.isChecked()) {
SaveKeyValues.putValue("autoLogin", true);
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 82eb21e..4351cb6 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -1,8 +1,12 @@
package com.casic.dcms.ui;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
import android.view.MenuItem;
import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
@@ -13,7 +17,10 @@
import com.casic.dcms.ui.fragment.HomePageFragment;
import com.casic.dcms.ui.fragment.MinePageFragment;
import com.casic.dcms.ui.fragment.PhonePageFragment;
+import com.casic.dcms.utils.BroadcastManager;
+import com.casic.dcms.utils.Constant;
import com.google.android.material.bottomnavigation.BottomNavigationView;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
import java.util.ArrayList;
import java.util.List;
@@ -22,12 +29,16 @@
public class MainActivity extends DoubleClickExitActivity {
+ @BindView(R.id.mainTopLayout)
+ QMUITopBarLayout mainTopLayout;
@BindView(R.id.mainViewPager)
ViewPager mainViewPager;
@BindView(R.id.bottomNavigation)
BottomNavigationView bottomNavigation;
+ private Context context = this;
private MenuItem menuItem;
private List pageList;
+ private BroadcastManager broadcastManager;
@Override
public int initLayoutView() {
@@ -36,7 +47,8 @@
@Override
protected void setupTopBarLayout() {
- //TODO 此页面无需实现
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
+ mainTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
}
@Override
@@ -46,6 +58,20 @@
pageList.add(new PhonePageFragment());
pageList.add(new DashBoardPageFragment());
pageList.add(new MinePageFragment());
+ broadcastManager = BroadcastManager.getInstance(this);
+ broadcastManager.addAction(Constant.LOGIN_OUT_ACTION, new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String action = intent.getAction();
+ if (action != null) {
+ String data = intent.getStringExtra("data");
+ assert data != null;
+ if (data.equals("请求成功")) {
+ finish();
+ }
+ }
+ }
+ });
}
@Override
@@ -56,15 +82,19 @@
switch (item.getItemId()) {
case R.id.navigation_home:
mainViewPager.setCurrentItem(0);
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_phone:
mainViewPager.setCurrentItem(1);
+ mainTopLayout.setTitle("通讯录").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_dashboard:
mainViewPager.setCurrentItem(2);
+ mainTopLayout.setTitle("消息").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_mine:
mainViewPager.setCurrentItem(3);
+ mainTopLayout.setTitle("我的").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
default:
break;
@@ -97,4 +127,10 @@
MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageList);
mainViewPager.setAdapter(mainPageAdapter);
}
+
+ @Override
+ protected void onDestroy() {
+ broadcastManager.destroy(Constant.LOGIN_OUT_ACTION);
+ super.onDestroy();
+ }
}
diff --git a/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java b/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java
new file mode 100644
index 0000000..07fdd6c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java
@@ -0,0 +1,59 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 15:22
+ * @email : 290677893@qq.com
+ **/
+public class UserInfoActivity extends BaseActivity {
+
+ @BindView(R.id.userTopLayout)
+ QMUITopBarLayout userTopLayout;
+ @BindView(R.id.userNameView)
+ TextView userNameView;
+ @BindView(R.id.userPhoneView)
+ TextView userPhoneView;
+ @BindView(R.id.userDeptView)
+ TextView userDeptView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_user;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ userTopLayout.setTitle("个人资料").setTextColor(ContextCompat.getColor(this, R.color.white));
+ userTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ userTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ userNameView.setText(StringHelper.getUserName());
+ userPhoneView.setText(StringHelper.getUserPhone());
+ userDeptView.setText(StringHelper.getUserDept());
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
index a1e68ba..ed8bf57 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
@@ -10,6 +10,11 @@
}
@Override
+ protected void setupTopBarLayout() {
+
+ }
+
+ @Override
protected void initData() {
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
index 4922b08..e467298 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
@@ -3,9 +3,7 @@
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
-import android.text.TextUtils;
import android.widget.TextView;
-import android.widget.Toast;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -19,7 +17,7 @@
import com.casic.dcms.mvp.presenter.UserDataPresenterImpl;
import com.casic.dcms.mvp.view.IUserDataView;
import com.casic.dcms.ui.CaseUploadActivity;
-import com.casic.dcms.utils.TokenHelper;
+import com.casic.dcms.utils.StringHelper;
import com.qmuiteam.qmui.widget.QMUIRadiusImageView;
import butterknife.BindView;
@@ -49,15 +47,13 @@
}
@Override
- protected void initData() {
+ protected void setupTopBarLayout() {
context = getContext();
- userDataPresenter = new UserDataPresenterImpl(this);
+ }
- String token = TokenHelper.getToken();
- if (TextUtils.isEmpty(token)) {
- Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show();
- return;
- }
+ @Override
+ protected void initData() {
+ userDataPresenter = new UserDataPresenterImpl(this);
userDataPresenter.onReadyRetrofitRequest();
}
@@ -86,6 +82,7 @@
break;
case 4:
+ break;
case 5:
break;
@@ -114,16 +111,6 @@
});
}
- @Override
- public void showProgress() {
-
- }
-
- @Override
- public void hideProgress() {
-
- }
-
@SuppressLint("SetTextI18n")
@Override
public void obtainUserData(UserBean userBean) {
@@ -135,8 +122,10 @@
UserBean.DataBean data = userBean.getData();
userNameView.setText(data.getName());
userDeptView.setText(data.getDeptName() + data.getRoleNames());
- } else {
- Toast.makeText(context, "", Toast.LENGTH_SHORT).show();
+
+ StringHelper.saveUserName(data.getName());
+ StringHelper.saveUserPhone(data.getPhone());
+ StringHelper.saveUserDept(data.getDeptName());
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
index f698e72..8dd20ef 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
@@ -1,21 +1,98 @@
package com.casic.dcms.ui.fragment;
+import android.content.Context;
+import android.content.Intent;
+import android.view.View;
+import android.widget.TextView;
+
+import com.casic.dcms.BuildConfig;
import com.casic.dcms.R;
import com.casic.dcms.base.BaseFragment;
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.presenter.LoginOutPresenterImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+import com.casic.dcms.ui.ChangePasswordActivity;
+import com.casic.dcms.ui.HelpfulActivity;
+import com.casic.dcms.ui.UserInfoActivity;
+import com.casic.dcms.utils.BroadcastManager;
+import com.casic.dcms.utils.Constant;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
-public class MinePageFragment extends BaseFragment {
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class MinePageFragment extends BaseFragment implements View.OnClickListener, ILoginOutView {
+
+ private static final String TAG = "MinePageFragment";
+
+ @BindView(R.id.versionCodeView)
+ TextView versionCodeView;
+ @BindView(R.id.loginOutButton)
+ QMUIRoundButton loginOutButton;
+
+ private Context context;
+ private LoginOutPresenterImpl loginOutPresenter;
+
@Override
protected int initLayoutView() {
return R.layout.fragment_mine;
}
@Override
- protected void initData() {
+ protected void setupTopBarLayout() {
+ context = getContext();
+ }
+ @Override
+ protected void initData() {
+ versionCodeView.setText(BuildConfig.VERSION_NAME);
+ loginOutPresenter = new LoginOutPresenterImpl(this);
}
@Override
protected void initEvent() {
+ loginOutButton.setChangeAlphaWhenPress(true);
+ }
+ @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.loginOutButton})
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.userNameLayout:
+ startActivity(new Intent(context, UserInfoActivity.class));
+ break;
+ case R.id.passwordLayout:
+ startActivity(new Intent(context, ChangePasswordActivity.class));
+ break;
+ case R.id.helpfulLayout:
+ startActivity(new Intent(context, HelpfulActivity.class));
+ break;
+ case R.id.loginOutButton:
+ //退出登录对话框
+ new QMUIDialog.MessageDialogBuilder(context)
+ .setTitle("退出登录")
+ .setMessage("确定要退出吗?")
+ .setCanceledOnTouchOutside(false)
+ .addAction("取消", (dialog, index) -> dialog.dismiss())
+ .addAction("确定", new QMUIDialogAction.ActionListener() {
+ @Override
+ public void onClick(QMUIDialog dialog, int index) {
+ loginOutPresenter.onReadyRetrofitRequest();
+ }
+ }).create().show();
+ break;
+ default:
+ break;
+ }
+ }
+
+ @Override
+ public void obtainLoginOutResult(LoginOutResultBean resultBean) {
+// Log.d(TAG, "obtainLoginOutResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ BroadcastManager.getInstance(context).sendBroadcast(Constant.LOGIN_OUT_ACTION, resultBean.getMessage());
+ }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
new file mode 100644
index 0000000..fe6c5f7
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IChangePasswordPresenter {
+ void onReadyRetrofitRequest(String oldPwd, String newPwd);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
new file mode 100644
index 0000000..4e2c7c1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ILoginOutPresenter {
+ void onReadyRetrofitRequest();
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
new file mode 100644
index 0000000..74a6a24
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.LoginOutActionModelImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+
+public class LoginOutPresenterImpl extends BasePresenter implements ILoginOutPresenter, LoginOutActionModelImpl.OnLoginOutListener {
+
+ private ILoginOutView view;
+ private LoginOutActionModelImpl actionModel;
+
+ public LoginOutPresenterImpl(ILoginOutView loginOutView) {
+ this.view = loginOutView;
+ actionModel = new LoginOutActionModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest() {
+ addSubscription(actionModel.sendRetrofitRequest());
+ }
+
+ @Override
+ public void onSuccess(LoginOutResultBean resultBean) {
+ view.obtainLoginOutResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
index 2119b70..0bcea6a 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
@@ -17,7 +17,6 @@
@Override
public void onReadyRetrofitRequest() {
- view.showProgress();
addSubscription(actionModel.sendRetrofitRequest());
}
@@ -28,12 +27,11 @@
@Override
public void onSuccess(UserBean userBean) {
- view.hideProgress();
view.obtainUserData(userBean);
}
@Override
public void onFailure(Throwable throwable) {
- view.hideProgress();
+
}
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
new file mode 100644
index 0000000..c2a84ab
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface IChangePasswordView {
+ void obtainChangePassResult(ChangePasswordResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
new file mode 100644
index 0000000..de3e421
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface ILoginOutView {
+ void obtainLoginOutResult(LoginOutResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
index 2b51d64..bcd16a9 100644
--- a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
@@ -3,9 +3,5 @@
import com.casic.dcms.bean.UserBean;
public interface IUserDataView {
- void showProgress();
-
- void hideProgress();
-
void obtainUserData(UserBean userBean);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
new file mode 100644
index 0000000..ad70b7a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
@@ -0,0 +1,61 @@
+package com.casic.dcms.ui;
+
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.luck.picture.lib.photoview.PhotoView;
+import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 17:09
+ * @email : 290677893@qq.com
+ **/
+public class BigPictureActivity extends BaseActivity {
+
+ @BindView(R.id.photoView)
+ PhotoView photoView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_big_pic;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ QMUIStatusBarHelper.setStatusBarLightMode(this);
+ }
+
+ @Override
+ public void initData() {
+// String mediaJson = getIntent().getStringExtra("mediaJson");
+//
+// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() {
+// }.getType());
+//
+// list = new ArrayList<>();
+// assert mediaList != null;
+// for (LocalMedia media : mediaList) {
+// list.add(media.getRealPath());
+// }
+ String path = getIntent().getStringExtra("path");
+ Glide.with(this).load(path).into(photoView);
+ }
+
+ @Override
+ public void initEvent() {
+// //轮播图
+// bigImageBanner.setImageLoader(new ImageLoader() {
+//
+// @Override
+// public void displayImage(Context context, Object path, ImageView imageView) {
+// Glide.with(context).load(path).into(imageView);
+// }
+// });
+// bigImageBanner.isAutoPlay(false);
+// bigImageBanner.setImages(list);
+// bigImageBanner.start();
+ }
+}
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 7c2bbc6..aa4100a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -109,6 +109,7 @@
private QMUITipDialog submitDialog;
private SubmitInfoBean infoBean;
private HashMap locationMap;
+ private Gson gson;
@Override
public int initLayoutView() {
@@ -129,6 +130,7 @@
@Override
public void initData() {
+ gson = new Gson();
//进入页面即创建提交表单的实体
infoBean = new SubmitInfoBean();
infoBean.setIsNeedRevisit("0");
@@ -388,6 +390,10 @@
imageGridViewAdapter.notifyDataSetChanged();
if (selectList.size() == 0) {
selectedResultView.setVisibility(View.GONE);
+ addImageView.setVisibility(View.VISIBLE);
+ } else {
+ selectedResultView.setVisibility(View.VISIBLE);
+ addImageView.setVisibility(View.GONE);
}
}
});
@@ -433,7 +439,10 @@
}
private void showBigImage(String path) {
-
+ Intent intent = new Intent(this, BigPictureActivity.class);
+// intent.putExtra("mediaJson", gson.toJson(mediaList));
+ intent.putExtra("path", path);
+ startActivity(intent);
}
@SuppressLint("ClickableViewAccessibility")
@@ -501,7 +510,7 @@
@Override
public void obtainLargeClassData(CaseLargeClassBean largeClassBean) {
-// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean));
+// Log.d(TAG, "obtainLargeClassData: " + gson.toJson(largeClassBean));
if (largeClassBean.isSuccess()) {
//设置大类数据
this.largeClassBeans = largeClassBean.getData();
@@ -556,13 +565,13 @@
} else {
ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING);
}
- Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean));
+ Log.d(TAG, "submitCase: " + gson.toJson(infoBean));
caseSubmitPresenter.onReadyRetrofitRequest(infoBean);
}
@Override
public void obtainSubmitResult(SubmitResultBean resultBean) {
- Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean));
+ Log.d(TAG, "obtainSubmitResult: " + gson.toJson(resultBean));
if (resultBean.isSuccess()) {
ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS);
} else {
diff --git a/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
new file mode 100644
index 0000000..891b7a3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
@@ -0,0 +1,124 @@
+package com.casic.dcms.ui;
+
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.widget.EditText;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.presenter.ChangePasswordPresenterImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+import com.casic.dcms.utils.RSAUtils;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.TokenHelper;
+import com.google.gson.Gson;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.security.PublicKey;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:20
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordActivity extends BaseActivity implements View.OnClickListener, IChangePasswordView {
+
+ private static final String TAG = "ChangePasswordActivity";
+ @BindView(R.id.passwordTopLayout)
+ QMUITopBarLayout passwordTopLayout;
+ @BindView(R.id.originalEditView)
+ EditText originalEditView;
+ @BindView(R.id.newEditView)
+ EditText newEditView;
+ @BindView(R.id.confirmEditView)
+ EditText confirmEditView;
+ @BindView(R.id.changePasswordButton)
+ QMUIRoundButton changePasswordButton;
+ private ChangePasswordPresenterImpl changePasswordPresenter;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_password;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ passwordTopLayout.setTitle("修改密码").setTextColor(ContextCompat.getColor(this, R.color.white));
+ passwordTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ passwordTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ changePasswordPresenter = new ChangePasswordPresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ changePasswordButton.setChangeAlphaWhenPress(true);
+ }
+
+ @OnClick(R.id.changePasswordButton)
+ @Override
+ public void onClick(View v) {
+ String oldPassword = originalEditView.getText().toString();
+ if (TextUtils.isEmpty(oldPassword)) {
+ ToastHelper.showToast("请先输入原密码", ToastHelper.WARING);
+ return;
+ }
+ String newPassword = newEditView.getText().toString();
+ if (TextUtils.isEmpty(newPassword)) {
+ ToastHelper.showToast("请先输入新密码", ToastHelper.WARING);
+ return;
+ }
+ String confirmPassword = confirmEditView.getText().toString();
+ if (TextUtils.isEmpty(confirmPassword)) {
+ ToastHelper.showToast("请再次输入新密码", ToastHelper.WARING);
+ return;
+ }
+ if (!newPassword.equals(confirmPassword)) {
+ ToastHelper.showToast("新密码和确认密码输入不一致,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (newPassword.length() < 6 || newPassword.length() > 12) {
+ ToastHelper.showToast("新密码长度不正确,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (!StringHelper.isLetterAndDigit(newPassword)) {
+ ToastHelper.showToast("新密码请输入6-12位的数字字母组合", ToastHelper.WARING);
+ return;
+ }
+ //数据校验OK,可以修改密码
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(TokenHelper.getPublicKey());
+ String oldPassKey = RSAUtils.encryptDataByPublicKey(oldPassword.getBytes(), publicKey);
+ String newPassKey = RSAUtils.encryptDataByPublicKey(newPassword.getBytes(), publicKey);
+
+// ChangeNewPasswordBean passwordBean = new ChangeNewPasswordBean();
+// passwordBean.setOldPwd(oldPassKey.replace("=\n", "="));
+// passwordBean.setNewPwd(newPassKey.replace("=\n", "="));
+ changePasswordPresenter.onReadyRetrofitRequest(oldPassKey, newPassKey);
+ }
+
+ @Override
+ public void obtainChangePassResult(ChangePasswordResultBean resultBean) {
+ Log.d(TAG, "obtainChangePassResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ ToastHelper.showToast("密码修改成功", ToastHelper.WARING);
+ finish();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
new file mode 100644
index 0000000..058f5d2
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
@@ -0,0 +1,49 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:05
+ * @email : 290677893@qq.com
+ **/
+public class HelpfulActivity extends BaseActivity {
+
+ @BindView(R.id.helpTopLayout)
+ QMUITopBarLayout helpTopLayout;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_help;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ helpTopLayout.setTitle("帮助中心").setTextColor(ContextCompat.getColor(this, R.color.white));
+ helpTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ helpTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
index 979deff..5535f61 100644
--- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
@@ -66,8 +66,8 @@
@Override
public void initData() {
- String userName = (String) SaveKeyValues.getValue("userName", "");
- String userPassword = (String) SaveKeyValues.getValue("userPassword", "");
+ String userName = (String) SaveKeyValues.getValue("name", "");
+ String userPassword = (String) SaveKeyValues.getValue("password", "");
userNameView.setText(userName);
userPasswordView.setText(userPassword);
if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) {
@@ -149,12 +149,15 @@
@Override
public void authenticateResult(PublicKeyBean result) {
if (result.isSuccess()) {
- PublicKey publicKey = RSAUtils.keyStrToPublicKey(result.getData().getPublicKey());
+ String keyString = result.getData().getPublicKey();
+ TokenHelper.savePublicKey(keyString);
+
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(keyString);
String userName = userNameView.getText().toString();
String userPassword = userPasswordView.getText().toString();
if (rememberPasswordView.isChecked()) {
- SaveKeyValues.putValue("userName", userName);
- SaveKeyValues.putValue("userPassword", userPassword);
+ SaveKeyValues.putValue("name", userName);
+ SaveKeyValues.putValue("password", userPassword);
}
if (autoLoginView.isChecked()) {
SaveKeyValues.putValue("autoLogin", true);
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 82eb21e..4351cb6 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -1,8 +1,12 @@
package com.casic.dcms.ui;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
import android.view.MenuItem;
import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
@@ -13,7 +17,10 @@
import com.casic.dcms.ui.fragment.HomePageFragment;
import com.casic.dcms.ui.fragment.MinePageFragment;
import com.casic.dcms.ui.fragment.PhonePageFragment;
+import com.casic.dcms.utils.BroadcastManager;
+import com.casic.dcms.utils.Constant;
import com.google.android.material.bottomnavigation.BottomNavigationView;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
import java.util.ArrayList;
import java.util.List;
@@ -22,12 +29,16 @@
public class MainActivity extends DoubleClickExitActivity {
+ @BindView(R.id.mainTopLayout)
+ QMUITopBarLayout mainTopLayout;
@BindView(R.id.mainViewPager)
ViewPager mainViewPager;
@BindView(R.id.bottomNavigation)
BottomNavigationView bottomNavigation;
+ private Context context = this;
private MenuItem menuItem;
private List pageList;
+ private BroadcastManager broadcastManager;
@Override
public int initLayoutView() {
@@ -36,7 +47,8 @@
@Override
protected void setupTopBarLayout() {
- //TODO 此页面无需实现
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
+ mainTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
}
@Override
@@ -46,6 +58,20 @@
pageList.add(new PhonePageFragment());
pageList.add(new DashBoardPageFragment());
pageList.add(new MinePageFragment());
+ broadcastManager = BroadcastManager.getInstance(this);
+ broadcastManager.addAction(Constant.LOGIN_OUT_ACTION, new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String action = intent.getAction();
+ if (action != null) {
+ String data = intent.getStringExtra("data");
+ assert data != null;
+ if (data.equals("请求成功")) {
+ finish();
+ }
+ }
+ }
+ });
}
@Override
@@ -56,15 +82,19 @@
switch (item.getItemId()) {
case R.id.navigation_home:
mainViewPager.setCurrentItem(0);
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_phone:
mainViewPager.setCurrentItem(1);
+ mainTopLayout.setTitle("通讯录").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_dashboard:
mainViewPager.setCurrentItem(2);
+ mainTopLayout.setTitle("消息").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_mine:
mainViewPager.setCurrentItem(3);
+ mainTopLayout.setTitle("我的").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
default:
break;
@@ -97,4 +127,10 @@
MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageList);
mainViewPager.setAdapter(mainPageAdapter);
}
+
+ @Override
+ protected void onDestroy() {
+ broadcastManager.destroy(Constant.LOGIN_OUT_ACTION);
+ super.onDestroy();
+ }
}
diff --git a/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java b/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java
new file mode 100644
index 0000000..07fdd6c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java
@@ -0,0 +1,59 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 15:22
+ * @email : 290677893@qq.com
+ **/
+public class UserInfoActivity extends BaseActivity {
+
+ @BindView(R.id.userTopLayout)
+ QMUITopBarLayout userTopLayout;
+ @BindView(R.id.userNameView)
+ TextView userNameView;
+ @BindView(R.id.userPhoneView)
+ TextView userPhoneView;
+ @BindView(R.id.userDeptView)
+ TextView userDeptView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_user;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ userTopLayout.setTitle("个人资料").setTextColor(ContextCompat.getColor(this, R.color.white));
+ userTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ userTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ userNameView.setText(StringHelper.getUserName());
+ userPhoneView.setText(StringHelper.getUserPhone());
+ userDeptView.setText(StringHelper.getUserDept());
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
index a1e68ba..ed8bf57 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
@@ -10,6 +10,11 @@
}
@Override
+ protected void setupTopBarLayout() {
+
+ }
+
+ @Override
protected void initData() {
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
index 4922b08..e467298 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
@@ -3,9 +3,7 @@
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
-import android.text.TextUtils;
import android.widget.TextView;
-import android.widget.Toast;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -19,7 +17,7 @@
import com.casic.dcms.mvp.presenter.UserDataPresenterImpl;
import com.casic.dcms.mvp.view.IUserDataView;
import com.casic.dcms.ui.CaseUploadActivity;
-import com.casic.dcms.utils.TokenHelper;
+import com.casic.dcms.utils.StringHelper;
import com.qmuiteam.qmui.widget.QMUIRadiusImageView;
import butterknife.BindView;
@@ -49,15 +47,13 @@
}
@Override
- protected void initData() {
+ protected void setupTopBarLayout() {
context = getContext();
- userDataPresenter = new UserDataPresenterImpl(this);
+ }
- String token = TokenHelper.getToken();
- if (TextUtils.isEmpty(token)) {
- Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show();
- return;
- }
+ @Override
+ protected void initData() {
+ userDataPresenter = new UserDataPresenterImpl(this);
userDataPresenter.onReadyRetrofitRequest();
}
@@ -86,6 +82,7 @@
break;
case 4:
+ break;
case 5:
break;
@@ -114,16 +111,6 @@
});
}
- @Override
- public void showProgress() {
-
- }
-
- @Override
- public void hideProgress() {
-
- }
-
@SuppressLint("SetTextI18n")
@Override
public void obtainUserData(UserBean userBean) {
@@ -135,8 +122,10 @@
UserBean.DataBean data = userBean.getData();
userNameView.setText(data.getName());
userDeptView.setText(data.getDeptName() + data.getRoleNames());
- } else {
- Toast.makeText(context, "", Toast.LENGTH_SHORT).show();
+
+ StringHelper.saveUserName(data.getName());
+ StringHelper.saveUserPhone(data.getPhone());
+ StringHelper.saveUserDept(data.getDeptName());
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
index f698e72..8dd20ef 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
@@ -1,21 +1,98 @@
package com.casic.dcms.ui.fragment;
+import android.content.Context;
+import android.content.Intent;
+import android.view.View;
+import android.widget.TextView;
+
+import com.casic.dcms.BuildConfig;
import com.casic.dcms.R;
import com.casic.dcms.base.BaseFragment;
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.presenter.LoginOutPresenterImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+import com.casic.dcms.ui.ChangePasswordActivity;
+import com.casic.dcms.ui.HelpfulActivity;
+import com.casic.dcms.ui.UserInfoActivity;
+import com.casic.dcms.utils.BroadcastManager;
+import com.casic.dcms.utils.Constant;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
-public class MinePageFragment extends BaseFragment {
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class MinePageFragment extends BaseFragment implements View.OnClickListener, ILoginOutView {
+
+ private static final String TAG = "MinePageFragment";
+
+ @BindView(R.id.versionCodeView)
+ TextView versionCodeView;
+ @BindView(R.id.loginOutButton)
+ QMUIRoundButton loginOutButton;
+
+ private Context context;
+ private LoginOutPresenterImpl loginOutPresenter;
+
@Override
protected int initLayoutView() {
return R.layout.fragment_mine;
}
@Override
- protected void initData() {
+ protected void setupTopBarLayout() {
+ context = getContext();
+ }
+ @Override
+ protected void initData() {
+ versionCodeView.setText(BuildConfig.VERSION_NAME);
+ loginOutPresenter = new LoginOutPresenterImpl(this);
}
@Override
protected void initEvent() {
+ loginOutButton.setChangeAlphaWhenPress(true);
+ }
+ @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.loginOutButton})
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.userNameLayout:
+ startActivity(new Intent(context, UserInfoActivity.class));
+ break;
+ case R.id.passwordLayout:
+ startActivity(new Intent(context, ChangePasswordActivity.class));
+ break;
+ case R.id.helpfulLayout:
+ startActivity(new Intent(context, HelpfulActivity.class));
+ break;
+ case R.id.loginOutButton:
+ //退出登录对话框
+ new QMUIDialog.MessageDialogBuilder(context)
+ .setTitle("退出登录")
+ .setMessage("确定要退出吗?")
+ .setCanceledOnTouchOutside(false)
+ .addAction("取消", (dialog, index) -> dialog.dismiss())
+ .addAction("确定", new QMUIDialogAction.ActionListener() {
+ @Override
+ public void onClick(QMUIDialog dialog, int index) {
+ loginOutPresenter.onReadyRetrofitRequest();
+ }
+ }).create().show();
+ break;
+ default:
+ break;
+ }
+ }
+
+ @Override
+ public void obtainLoginOutResult(LoginOutResultBean resultBean) {
+// Log.d(TAG, "obtainLoginOutResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ BroadcastManager.getInstance(context).sendBroadcast(Constant.LOGIN_OUT_ACTION, resultBean.getMessage());
+ }
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java
index f07526a..516830f 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java
@@ -10,6 +10,11 @@
}
@Override
+ protected void setupTopBarLayout() {
+
+ }
+
+ @Override
protected void initData() {
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
new file mode 100644
index 0000000..fe6c5f7
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IChangePasswordPresenter {
+ void onReadyRetrofitRequest(String oldPwd, String newPwd);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
new file mode 100644
index 0000000..4e2c7c1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ILoginOutPresenter {
+ void onReadyRetrofitRequest();
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
new file mode 100644
index 0000000..74a6a24
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.LoginOutActionModelImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+
+public class LoginOutPresenterImpl extends BasePresenter implements ILoginOutPresenter, LoginOutActionModelImpl.OnLoginOutListener {
+
+ private ILoginOutView view;
+ private LoginOutActionModelImpl actionModel;
+
+ public LoginOutPresenterImpl(ILoginOutView loginOutView) {
+ this.view = loginOutView;
+ actionModel = new LoginOutActionModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest() {
+ addSubscription(actionModel.sendRetrofitRequest());
+ }
+
+ @Override
+ public void onSuccess(LoginOutResultBean resultBean) {
+ view.obtainLoginOutResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
index 2119b70..0bcea6a 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
@@ -17,7 +17,6 @@
@Override
public void onReadyRetrofitRequest() {
- view.showProgress();
addSubscription(actionModel.sendRetrofitRequest());
}
@@ -28,12 +27,11 @@
@Override
public void onSuccess(UserBean userBean) {
- view.hideProgress();
view.obtainUserData(userBean);
}
@Override
public void onFailure(Throwable throwable) {
- view.hideProgress();
+
}
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
new file mode 100644
index 0000000..c2a84ab
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface IChangePasswordView {
+ void obtainChangePassResult(ChangePasswordResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
new file mode 100644
index 0000000..de3e421
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface ILoginOutView {
+ void obtainLoginOutResult(LoginOutResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
index 2b51d64..bcd16a9 100644
--- a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
@@ -3,9 +3,5 @@
import com.casic.dcms.bean.UserBean;
public interface IUserDataView {
- void showProgress();
-
- void hideProgress();
-
void obtainUserData(UserBean userBean);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
new file mode 100644
index 0000000..ad70b7a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
@@ -0,0 +1,61 @@
+package com.casic.dcms.ui;
+
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.luck.picture.lib.photoview.PhotoView;
+import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 17:09
+ * @email : 290677893@qq.com
+ **/
+public class BigPictureActivity extends BaseActivity {
+
+ @BindView(R.id.photoView)
+ PhotoView photoView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_big_pic;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ QMUIStatusBarHelper.setStatusBarLightMode(this);
+ }
+
+ @Override
+ public void initData() {
+// String mediaJson = getIntent().getStringExtra("mediaJson");
+//
+// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() {
+// }.getType());
+//
+// list = new ArrayList<>();
+// assert mediaList != null;
+// for (LocalMedia media : mediaList) {
+// list.add(media.getRealPath());
+// }
+ String path = getIntent().getStringExtra("path");
+ Glide.with(this).load(path).into(photoView);
+ }
+
+ @Override
+ public void initEvent() {
+// //轮播图
+// bigImageBanner.setImageLoader(new ImageLoader() {
+//
+// @Override
+// public void displayImage(Context context, Object path, ImageView imageView) {
+// Glide.with(context).load(path).into(imageView);
+// }
+// });
+// bigImageBanner.isAutoPlay(false);
+// bigImageBanner.setImages(list);
+// bigImageBanner.start();
+ }
+}
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 7c2bbc6..aa4100a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -109,6 +109,7 @@
private QMUITipDialog submitDialog;
private SubmitInfoBean infoBean;
private HashMap locationMap;
+ private Gson gson;
@Override
public int initLayoutView() {
@@ -129,6 +130,7 @@
@Override
public void initData() {
+ gson = new Gson();
//进入页面即创建提交表单的实体
infoBean = new SubmitInfoBean();
infoBean.setIsNeedRevisit("0");
@@ -388,6 +390,10 @@
imageGridViewAdapter.notifyDataSetChanged();
if (selectList.size() == 0) {
selectedResultView.setVisibility(View.GONE);
+ addImageView.setVisibility(View.VISIBLE);
+ } else {
+ selectedResultView.setVisibility(View.VISIBLE);
+ addImageView.setVisibility(View.GONE);
}
}
});
@@ -433,7 +439,10 @@
}
private void showBigImage(String path) {
-
+ Intent intent = new Intent(this, BigPictureActivity.class);
+// intent.putExtra("mediaJson", gson.toJson(mediaList));
+ intent.putExtra("path", path);
+ startActivity(intent);
}
@SuppressLint("ClickableViewAccessibility")
@@ -501,7 +510,7 @@
@Override
public void obtainLargeClassData(CaseLargeClassBean largeClassBean) {
-// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean));
+// Log.d(TAG, "obtainLargeClassData: " + gson.toJson(largeClassBean));
if (largeClassBean.isSuccess()) {
//设置大类数据
this.largeClassBeans = largeClassBean.getData();
@@ -556,13 +565,13 @@
} else {
ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING);
}
- Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean));
+ Log.d(TAG, "submitCase: " + gson.toJson(infoBean));
caseSubmitPresenter.onReadyRetrofitRequest(infoBean);
}
@Override
public void obtainSubmitResult(SubmitResultBean resultBean) {
- Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean));
+ Log.d(TAG, "obtainSubmitResult: " + gson.toJson(resultBean));
if (resultBean.isSuccess()) {
ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS);
} else {
diff --git a/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
new file mode 100644
index 0000000..891b7a3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
@@ -0,0 +1,124 @@
+package com.casic.dcms.ui;
+
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.widget.EditText;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.presenter.ChangePasswordPresenterImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+import com.casic.dcms.utils.RSAUtils;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.TokenHelper;
+import com.google.gson.Gson;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.security.PublicKey;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:20
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordActivity extends BaseActivity implements View.OnClickListener, IChangePasswordView {
+
+ private static final String TAG = "ChangePasswordActivity";
+ @BindView(R.id.passwordTopLayout)
+ QMUITopBarLayout passwordTopLayout;
+ @BindView(R.id.originalEditView)
+ EditText originalEditView;
+ @BindView(R.id.newEditView)
+ EditText newEditView;
+ @BindView(R.id.confirmEditView)
+ EditText confirmEditView;
+ @BindView(R.id.changePasswordButton)
+ QMUIRoundButton changePasswordButton;
+ private ChangePasswordPresenterImpl changePasswordPresenter;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_password;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ passwordTopLayout.setTitle("修改密码").setTextColor(ContextCompat.getColor(this, R.color.white));
+ passwordTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ passwordTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ changePasswordPresenter = new ChangePasswordPresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ changePasswordButton.setChangeAlphaWhenPress(true);
+ }
+
+ @OnClick(R.id.changePasswordButton)
+ @Override
+ public void onClick(View v) {
+ String oldPassword = originalEditView.getText().toString();
+ if (TextUtils.isEmpty(oldPassword)) {
+ ToastHelper.showToast("请先输入原密码", ToastHelper.WARING);
+ return;
+ }
+ String newPassword = newEditView.getText().toString();
+ if (TextUtils.isEmpty(newPassword)) {
+ ToastHelper.showToast("请先输入新密码", ToastHelper.WARING);
+ return;
+ }
+ String confirmPassword = confirmEditView.getText().toString();
+ if (TextUtils.isEmpty(confirmPassword)) {
+ ToastHelper.showToast("请再次输入新密码", ToastHelper.WARING);
+ return;
+ }
+ if (!newPassword.equals(confirmPassword)) {
+ ToastHelper.showToast("新密码和确认密码输入不一致,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (newPassword.length() < 6 || newPassword.length() > 12) {
+ ToastHelper.showToast("新密码长度不正确,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (!StringHelper.isLetterAndDigit(newPassword)) {
+ ToastHelper.showToast("新密码请输入6-12位的数字字母组合", ToastHelper.WARING);
+ return;
+ }
+ //数据校验OK,可以修改密码
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(TokenHelper.getPublicKey());
+ String oldPassKey = RSAUtils.encryptDataByPublicKey(oldPassword.getBytes(), publicKey);
+ String newPassKey = RSAUtils.encryptDataByPublicKey(newPassword.getBytes(), publicKey);
+
+// ChangeNewPasswordBean passwordBean = new ChangeNewPasswordBean();
+// passwordBean.setOldPwd(oldPassKey.replace("=\n", "="));
+// passwordBean.setNewPwd(newPassKey.replace("=\n", "="));
+ changePasswordPresenter.onReadyRetrofitRequest(oldPassKey, newPassKey);
+ }
+
+ @Override
+ public void obtainChangePassResult(ChangePasswordResultBean resultBean) {
+ Log.d(TAG, "obtainChangePassResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ ToastHelper.showToast("密码修改成功", ToastHelper.WARING);
+ finish();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
new file mode 100644
index 0000000..058f5d2
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
@@ -0,0 +1,49 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:05
+ * @email : 290677893@qq.com
+ **/
+public class HelpfulActivity extends BaseActivity {
+
+ @BindView(R.id.helpTopLayout)
+ QMUITopBarLayout helpTopLayout;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_help;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ helpTopLayout.setTitle("帮助中心").setTextColor(ContextCompat.getColor(this, R.color.white));
+ helpTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ helpTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
index 979deff..5535f61 100644
--- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
@@ -66,8 +66,8 @@
@Override
public void initData() {
- String userName = (String) SaveKeyValues.getValue("userName", "");
- String userPassword = (String) SaveKeyValues.getValue("userPassword", "");
+ String userName = (String) SaveKeyValues.getValue("name", "");
+ String userPassword = (String) SaveKeyValues.getValue("password", "");
userNameView.setText(userName);
userPasswordView.setText(userPassword);
if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) {
@@ -149,12 +149,15 @@
@Override
public void authenticateResult(PublicKeyBean result) {
if (result.isSuccess()) {
- PublicKey publicKey = RSAUtils.keyStrToPublicKey(result.getData().getPublicKey());
+ String keyString = result.getData().getPublicKey();
+ TokenHelper.savePublicKey(keyString);
+
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(keyString);
String userName = userNameView.getText().toString();
String userPassword = userPasswordView.getText().toString();
if (rememberPasswordView.isChecked()) {
- SaveKeyValues.putValue("userName", userName);
- SaveKeyValues.putValue("userPassword", userPassword);
+ SaveKeyValues.putValue("name", userName);
+ SaveKeyValues.putValue("password", userPassword);
}
if (autoLoginView.isChecked()) {
SaveKeyValues.putValue("autoLogin", true);
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 82eb21e..4351cb6 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -1,8 +1,12 @@
package com.casic.dcms.ui;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
import android.view.MenuItem;
import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
@@ -13,7 +17,10 @@
import com.casic.dcms.ui.fragment.HomePageFragment;
import com.casic.dcms.ui.fragment.MinePageFragment;
import com.casic.dcms.ui.fragment.PhonePageFragment;
+import com.casic.dcms.utils.BroadcastManager;
+import com.casic.dcms.utils.Constant;
import com.google.android.material.bottomnavigation.BottomNavigationView;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
import java.util.ArrayList;
import java.util.List;
@@ -22,12 +29,16 @@
public class MainActivity extends DoubleClickExitActivity {
+ @BindView(R.id.mainTopLayout)
+ QMUITopBarLayout mainTopLayout;
@BindView(R.id.mainViewPager)
ViewPager mainViewPager;
@BindView(R.id.bottomNavigation)
BottomNavigationView bottomNavigation;
+ private Context context = this;
private MenuItem menuItem;
private List pageList;
+ private BroadcastManager broadcastManager;
@Override
public int initLayoutView() {
@@ -36,7 +47,8 @@
@Override
protected void setupTopBarLayout() {
- //TODO 此页面无需实现
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
+ mainTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
}
@Override
@@ -46,6 +58,20 @@
pageList.add(new PhonePageFragment());
pageList.add(new DashBoardPageFragment());
pageList.add(new MinePageFragment());
+ broadcastManager = BroadcastManager.getInstance(this);
+ broadcastManager.addAction(Constant.LOGIN_OUT_ACTION, new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String action = intent.getAction();
+ if (action != null) {
+ String data = intent.getStringExtra("data");
+ assert data != null;
+ if (data.equals("请求成功")) {
+ finish();
+ }
+ }
+ }
+ });
}
@Override
@@ -56,15 +82,19 @@
switch (item.getItemId()) {
case R.id.navigation_home:
mainViewPager.setCurrentItem(0);
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_phone:
mainViewPager.setCurrentItem(1);
+ mainTopLayout.setTitle("通讯录").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_dashboard:
mainViewPager.setCurrentItem(2);
+ mainTopLayout.setTitle("消息").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_mine:
mainViewPager.setCurrentItem(3);
+ mainTopLayout.setTitle("我的").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
default:
break;
@@ -97,4 +127,10 @@
MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageList);
mainViewPager.setAdapter(mainPageAdapter);
}
+
+ @Override
+ protected void onDestroy() {
+ broadcastManager.destroy(Constant.LOGIN_OUT_ACTION);
+ super.onDestroy();
+ }
}
diff --git a/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java b/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java
new file mode 100644
index 0000000..07fdd6c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java
@@ -0,0 +1,59 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 15:22
+ * @email : 290677893@qq.com
+ **/
+public class UserInfoActivity extends BaseActivity {
+
+ @BindView(R.id.userTopLayout)
+ QMUITopBarLayout userTopLayout;
+ @BindView(R.id.userNameView)
+ TextView userNameView;
+ @BindView(R.id.userPhoneView)
+ TextView userPhoneView;
+ @BindView(R.id.userDeptView)
+ TextView userDeptView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_user;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ userTopLayout.setTitle("个人资料").setTextColor(ContextCompat.getColor(this, R.color.white));
+ userTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ userTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ userNameView.setText(StringHelper.getUserName());
+ userPhoneView.setText(StringHelper.getUserPhone());
+ userDeptView.setText(StringHelper.getUserDept());
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
index a1e68ba..ed8bf57 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
@@ -10,6 +10,11 @@
}
@Override
+ protected void setupTopBarLayout() {
+
+ }
+
+ @Override
protected void initData() {
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
index 4922b08..e467298 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
@@ -3,9 +3,7 @@
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
-import android.text.TextUtils;
import android.widget.TextView;
-import android.widget.Toast;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -19,7 +17,7 @@
import com.casic.dcms.mvp.presenter.UserDataPresenterImpl;
import com.casic.dcms.mvp.view.IUserDataView;
import com.casic.dcms.ui.CaseUploadActivity;
-import com.casic.dcms.utils.TokenHelper;
+import com.casic.dcms.utils.StringHelper;
import com.qmuiteam.qmui.widget.QMUIRadiusImageView;
import butterknife.BindView;
@@ -49,15 +47,13 @@
}
@Override
- protected void initData() {
+ protected void setupTopBarLayout() {
context = getContext();
- userDataPresenter = new UserDataPresenterImpl(this);
+ }
- String token = TokenHelper.getToken();
- if (TextUtils.isEmpty(token)) {
- Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show();
- return;
- }
+ @Override
+ protected void initData() {
+ userDataPresenter = new UserDataPresenterImpl(this);
userDataPresenter.onReadyRetrofitRequest();
}
@@ -86,6 +82,7 @@
break;
case 4:
+ break;
case 5:
break;
@@ -114,16 +111,6 @@
});
}
- @Override
- public void showProgress() {
-
- }
-
- @Override
- public void hideProgress() {
-
- }
-
@SuppressLint("SetTextI18n")
@Override
public void obtainUserData(UserBean userBean) {
@@ -135,8 +122,10 @@
UserBean.DataBean data = userBean.getData();
userNameView.setText(data.getName());
userDeptView.setText(data.getDeptName() + data.getRoleNames());
- } else {
- Toast.makeText(context, "", Toast.LENGTH_SHORT).show();
+
+ StringHelper.saveUserName(data.getName());
+ StringHelper.saveUserPhone(data.getPhone());
+ StringHelper.saveUserDept(data.getDeptName());
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
index f698e72..8dd20ef 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
@@ -1,21 +1,98 @@
package com.casic.dcms.ui.fragment;
+import android.content.Context;
+import android.content.Intent;
+import android.view.View;
+import android.widget.TextView;
+
+import com.casic.dcms.BuildConfig;
import com.casic.dcms.R;
import com.casic.dcms.base.BaseFragment;
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.presenter.LoginOutPresenterImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+import com.casic.dcms.ui.ChangePasswordActivity;
+import com.casic.dcms.ui.HelpfulActivity;
+import com.casic.dcms.ui.UserInfoActivity;
+import com.casic.dcms.utils.BroadcastManager;
+import com.casic.dcms.utils.Constant;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
-public class MinePageFragment extends BaseFragment {
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class MinePageFragment extends BaseFragment implements View.OnClickListener, ILoginOutView {
+
+ private static final String TAG = "MinePageFragment";
+
+ @BindView(R.id.versionCodeView)
+ TextView versionCodeView;
+ @BindView(R.id.loginOutButton)
+ QMUIRoundButton loginOutButton;
+
+ private Context context;
+ private LoginOutPresenterImpl loginOutPresenter;
+
@Override
protected int initLayoutView() {
return R.layout.fragment_mine;
}
@Override
- protected void initData() {
+ protected void setupTopBarLayout() {
+ context = getContext();
+ }
+ @Override
+ protected void initData() {
+ versionCodeView.setText(BuildConfig.VERSION_NAME);
+ loginOutPresenter = new LoginOutPresenterImpl(this);
}
@Override
protected void initEvent() {
+ loginOutButton.setChangeAlphaWhenPress(true);
+ }
+ @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.loginOutButton})
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.userNameLayout:
+ startActivity(new Intent(context, UserInfoActivity.class));
+ break;
+ case R.id.passwordLayout:
+ startActivity(new Intent(context, ChangePasswordActivity.class));
+ break;
+ case R.id.helpfulLayout:
+ startActivity(new Intent(context, HelpfulActivity.class));
+ break;
+ case R.id.loginOutButton:
+ //退出登录对话框
+ new QMUIDialog.MessageDialogBuilder(context)
+ .setTitle("退出登录")
+ .setMessage("确定要退出吗?")
+ .setCanceledOnTouchOutside(false)
+ .addAction("取消", (dialog, index) -> dialog.dismiss())
+ .addAction("确定", new QMUIDialogAction.ActionListener() {
+ @Override
+ public void onClick(QMUIDialog dialog, int index) {
+ loginOutPresenter.onReadyRetrofitRequest();
+ }
+ }).create().show();
+ break;
+ default:
+ break;
+ }
+ }
+
+ @Override
+ public void obtainLoginOutResult(LoginOutResultBean resultBean) {
+// Log.d(TAG, "obtainLoginOutResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ BroadcastManager.getInstance(context).sendBroadcast(Constant.LOGIN_OUT_ACTION, resultBean.getMessage());
+ }
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java
index f07526a..516830f 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java
@@ -10,6 +10,11 @@
}
@Override
+ protected void setupTopBarLayout() {
+
+ }
+
+ @Override
protected void initData() {
}
diff --git a/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java b/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
new file mode 100644
index 0000000..1b2bb6c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
@@ -0,0 +1,107 @@
+package com.casic.dcms.utils;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:55
+ * @email : 290677893@qq.com
+ **/
+public class BroadcastManager {
+ private static final String TAG = "BroadcastManager";
+ private Context mContext;
+ private static BroadcastManager broadcastManager;
+ private Map receiverMap;
+
+ private BroadcastManager(Context context) {
+ this.mContext = context;
+ receiverMap = new HashMap<>();
+ }
+
+ /**
+ * 双重锁单例
+ */
+ public static BroadcastManager getInstance(Context context) {
+ if (broadcastManager == null) {
+ synchronized (BroadcastManager.class) {
+ if (broadcastManager == null) {
+ broadcastManager = new BroadcastManager(context);
+ }
+ }
+ }
+ return broadcastManager;
+ }
+
+ /**
+ * 添加单个Action,广播的初始化
+ */
+ public void addAction(String action, BroadcastReceiver receiver) {
+ try {
+ IntentFilter filter = new IntentFilter();
+ filter.addAction(action);
+ mContext.registerReceiver(receiver, filter);
+ receiverMap.put(action, receiver);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 添加多个Action,广播的初始化
+ */
+ public void addAction(String[] actions, BroadcastReceiver receiver) {
+ try {
+ IntentFilter filter = new IntentFilter();
+ for (String action : actions) {
+ filter.addAction(action);
+ receiverMap.put(action, receiver);
+ }
+ mContext.registerReceiver(receiver, filter);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 发送广播
+ *
+ * @param action 唯一码
+ * @param msg 参数
+ */
+ public void sendBroadcast(String action, String msg) {
+ try {
+ Intent intent = new Intent();
+ intent.setAction(action);
+ intent.putExtra("data", msg);
+ mContext.sendBroadcast(intent);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 销毁广播
+ *
+ * @param actions action集合
+ */
+ public void destroy(String... actions) {
+ try {
+ if (receiverMap != null) {
+ for (String action : actions) {
+ BroadcastReceiver receiver = receiverMap.get(action);
+ if (receiver != null) {
+ mContext.unregisterReceiver(receiver);
+ }
+ }
+ }
+ } catch (IllegalArgumentException e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
new file mode 100644
index 0000000..fe6c5f7
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IChangePasswordPresenter {
+ void onReadyRetrofitRequest(String oldPwd, String newPwd);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
new file mode 100644
index 0000000..4e2c7c1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ILoginOutPresenter {
+ void onReadyRetrofitRequest();
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
new file mode 100644
index 0000000..74a6a24
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.LoginOutActionModelImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+
+public class LoginOutPresenterImpl extends BasePresenter implements ILoginOutPresenter, LoginOutActionModelImpl.OnLoginOutListener {
+
+ private ILoginOutView view;
+ private LoginOutActionModelImpl actionModel;
+
+ public LoginOutPresenterImpl(ILoginOutView loginOutView) {
+ this.view = loginOutView;
+ actionModel = new LoginOutActionModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest() {
+ addSubscription(actionModel.sendRetrofitRequest());
+ }
+
+ @Override
+ public void onSuccess(LoginOutResultBean resultBean) {
+ view.obtainLoginOutResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
index 2119b70..0bcea6a 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
@@ -17,7 +17,6 @@
@Override
public void onReadyRetrofitRequest() {
- view.showProgress();
addSubscription(actionModel.sendRetrofitRequest());
}
@@ -28,12 +27,11 @@
@Override
public void onSuccess(UserBean userBean) {
- view.hideProgress();
view.obtainUserData(userBean);
}
@Override
public void onFailure(Throwable throwable) {
- view.hideProgress();
+
}
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
new file mode 100644
index 0000000..c2a84ab
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface IChangePasswordView {
+ void obtainChangePassResult(ChangePasswordResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
new file mode 100644
index 0000000..de3e421
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface ILoginOutView {
+ void obtainLoginOutResult(LoginOutResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
index 2b51d64..bcd16a9 100644
--- a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
@@ -3,9 +3,5 @@
import com.casic.dcms.bean.UserBean;
public interface IUserDataView {
- void showProgress();
-
- void hideProgress();
-
void obtainUserData(UserBean userBean);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
new file mode 100644
index 0000000..ad70b7a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
@@ -0,0 +1,61 @@
+package com.casic.dcms.ui;
+
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.luck.picture.lib.photoview.PhotoView;
+import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 17:09
+ * @email : 290677893@qq.com
+ **/
+public class BigPictureActivity extends BaseActivity {
+
+ @BindView(R.id.photoView)
+ PhotoView photoView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_big_pic;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ QMUIStatusBarHelper.setStatusBarLightMode(this);
+ }
+
+ @Override
+ public void initData() {
+// String mediaJson = getIntent().getStringExtra("mediaJson");
+//
+// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() {
+// }.getType());
+//
+// list = new ArrayList<>();
+// assert mediaList != null;
+// for (LocalMedia media : mediaList) {
+// list.add(media.getRealPath());
+// }
+ String path = getIntent().getStringExtra("path");
+ Glide.with(this).load(path).into(photoView);
+ }
+
+ @Override
+ public void initEvent() {
+// //轮播图
+// bigImageBanner.setImageLoader(new ImageLoader() {
+//
+// @Override
+// public void displayImage(Context context, Object path, ImageView imageView) {
+// Glide.with(context).load(path).into(imageView);
+// }
+// });
+// bigImageBanner.isAutoPlay(false);
+// bigImageBanner.setImages(list);
+// bigImageBanner.start();
+ }
+}
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 7c2bbc6..aa4100a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -109,6 +109,7 @@
private QMUITipDialog submitDialog;
private SubmitInfoBean infoBean;
private HashMap locationMap;
+ private Gson gson;
@Override
public int initLayoutView() {
@@ -129,6 +130,7 @@
@Override
public void initData() {
+ gson = new Gson();
//进入页面即创建提交表单的实体
infoBean = new SubmitInfoBean();
infoBean.setIsNeedRevisit("0");
@@ -388,6 +390,10 @@
imageGridViewAdapter.notifyDataSetChanged();
if (selectList.size() == 0) {
selectedResultView.setVisibility(View.GONE);
+ addImageView.setVisibility(View.VISIBLE);
+ } else {
+ selectedResultView.setVisibility(View.VISIBLE);
+ addImageView.setVisibility(View.GONE);
}
}
});
@@ -433,7 +439,10 @@
}
private void showBigImage(String path) {
-
+ Intent intent = new Intent(this, BigPictureActivity.class);
+// intent.putExtra("mediaJson", gson.toJson(mediaList));
+ intent.putExtra("path", path);
+ startActivity(intent);
}
@SuppressLint("ClickableViewAccessibility")
@@ -501,7 +510,7 @@
@Override
public void obtainLargeClassData(CaseLargeClassBean largeClassBean) {
-// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean));
+// Log.d(TAG, "obtainLargeClassData: " + gson.toJson(largeClassBean));
if (largeClassBean.isSuccess()) {
//设置大类数据
this.largeClassBeans = largeClassBean.getData();
@@ -556,13 +565,13 @@
} else {
ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING);
}
- Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean));
+ Log.d(TAG, "submitCase: " + gson.toJson(infoBean));
caseSubmitPresenter.onReadyRetrofitRequest(infoBean);
}
@Override
public void obtainSubmitResult(SubmitResultBean resultBean) {
- Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean));
+ Log.d(TAG, "obtainSubmitResult: " + gson.toJson(resultBean));
if (resultBean.isSuccess()) {
ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS);
} else {
diff --git a/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
new file mode 100644
index 0000000..891b7a3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
@@ -0,0 +1,124 @@
+package com.casic.dcms.ui;
+
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.widget.EditText;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.presenter.ChangePasswordPresenterImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+import com.casic.dcms.utils.RSAUtils;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.TokenHelper;
+import com.google.gson.Gson;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.security.PublicKey;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:20
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordActivity extends BaseActivity implements View.OnClickListener, IChangePasswordView {
+
+ private static final String TAG = "ChangePasswordActivity";
+ @BindView(R.id.passwordTopLayout)
+ QMUITopBarLayout passwordTopLayout;
+ @BindView(R.id.originalEditView)
+ EditText originalEditView;
+ @BindView(R.id.newEditView)
+ EditText newEditView;
+ @BindView(R.id.confirmEditView)
+ EditText confirmEditView;
+ @BindView(R.id.changePasswordButton)
+ QMUIRoundButton changePasswordButton;
+ private ChangePasswordPresenterImpl changePasswordPresenter;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_password;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ passwordTopLayout.setTitle("修改密码").setTextColor(ContextCompat.getColor(this, R.color.white));
+ passwordTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ passwordTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ changePasswordPresenter = new ChangePasswordPresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ changePasswordButton.setChangeAlphaWhenPress(true);
+ }
+
+ @OnClick(R.id.changePasswordButton)
+ @Override
+ public void onClick(View v) {
+ String oldPassword = originalEditView.getText().toString();
+ if (TextUtils.isEmpty(oldPassword)) {
+ ToastHelper.showToast("请先输入原密码", ToastHelper.WARING);
+ return;
+ }
+ String newPassword = newEditView.getText().toString();
+ if (TextUtils.isEmpty(newPassword)) {
+ ToastHelper.showToast("请先输入新密码", ToastHelper.WARING);
+ return;
+ }
+ String confirmPassword = confirmEditView.getText().toString();
+ if (TextUtils.isEmpty(confirmPassword)) {
+ ToastHelper.showToast("请再次输入新密码", ToastHelper.WARING);
+ return;
+ }
+ if (!newPassword.equals(confirmPassword)) {
+ ToastHelper.showToast("新密码和确认密码输入不一致,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (newPassword.length() < 6 || newPassword.length() > 12) {
+ ToastHelper.showToast("新密码长度不正确,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (!StringHelper.isLetterAndDigit(newPassword)) {
+ ToastHelper.showToast("新密码请输入6-12位的数字字母组合", ToastHelper.WARING);
+ return;
+ }
+ //数据校验OK,可以修改密码
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(TokenHelper.getPublicKey());
+ String oldPassKey = RSAUtils.encryptDataByPublicKey(oldPassword.getBytes(), publicKey);
+ String newPassKey = RSAUtils.encryptDataByPublicKey(newPassword.getBytes(), publicKey);
+
+// ChangeNewPasswordBean passwordBean = new ChangeNewPasswordBean();
+// passwordBean.setOldPwd(oldPassKey.replace("=\n", "="));
+// passwordBean.setNewPwd(newPassKey.replace("=\n", "="));
+ changePasswordPresenter.onReadyRetrofitRequest(oldPassKey, newPassKey);
+ }
+
+ @Override
+ public void obtainChangePassResult(ChangePasswordResultBean resultBean) {
+ Log.d(TAG, "obtainChangePassResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ ToastHelper.showToast("密码修改成功", ToastHelper.WARING);
+ finish();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
new file mode 100644
index 0000000..058f5d2
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
@@ -0,0 +1,49 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:05
+ * @email : 290677893@qq.com
+ **/
+public class HelpfulActivity extends BaseActivity {
+
+ @BindView(R.id.helpTopLayout)
+ QMUITopBarLayout helpTopLayout;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_help;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ helpTopLayout.setTitle("帮助中心").setTextColor(ContextCompat.getColor(this, R.color.white));
+ helpTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ helpTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
index 979deff..5535f61 100644
--- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
@@ -66,8 +66,8 @@
@Override
public void initData() {
- String userName = (String) SaveKeyValues.getValue("userName", "");
- String userPassword = (String) SaveKeyValues.getValue("userPassword", "");
+ String userName = (String) SaveKeyValues.getValue("name", "");
+ String userPassword = (String) SaveKeyValues.getValue("password", "");
userNameView.setText(userName);
userPasswordView.setText(userPassword);
if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) {
@@ -149,12 +149,15 @@
@Override
public void authenticateResult(PublicKeyBean result) {
if (result.isSuccess()) {
- PublicKey publicKey = RSAUtils.keyStrToPublicKey(result.getData().getPublicKey());
+ String keyString = result.getData().getPublicKey();
+ TokenHelper.savePublicKey(keyString);
+
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(keyString);
String userName = userNameView.getText().toString();
String userPassword = userPasswordView.getText().toString();
if (rememberPasswordView.isChecked()) {
- SaveKeyValues.putValue("userName", userName);
- SaveKeyValues.putValue("userPassword", userPassword);
+ SaveKeyValues.putValue("name", userName);
+ SaveKeyValues.putValue("password", userPassword);
}
if (autoLoginView.isChecked()) {
SaveKeyValues.putValue("autoLogin", true);
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 82eb21e..4351cb6 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -1,8 +1,12 @@
package com.casic.dcms.ui;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
import android.view.MenuItem;
import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
@@ -13,7 +17,10 @@
import com.casic.dcms.ui.fragment.HomePageFragment;
import com.casic.dcms.ui.fragment.MinePageFragment;
import com.casic.dcms.ui.fragment.PhonePageFragment;
+import com.casic.dcms.utils.BroadcastManager;
+import com.casic.dcms.utils.Constant;
import com.google.android.material.bottomnavigation.BottomNavigationView;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
import java.util.ArrayList;
import java.util.List;
@@ -22,12 +29,16 @@
public class MainActivity extends DoubleClickExitActivity {
+ @BindView(R.id.mainTopLayout)
+ QMUITopBarLayout mainTopLayout;
@BindView(R.id.mainViewPager)
ViewPager mainViewPager;
@BindView(R.id.bottomNavigation)
BottomNavigationView bottomNavigation;
+ private Context context = this;
private MenuItem menuItem;
private List pageList;
+ private BroadcastManager broadcastManager;
@Override
public int initLayoutView() {
@@ -36,7 +47,8 @@
@Override
protected void setupTopBarLayout() {
- //TODO 此页面无需实现
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
+ mainTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
}
@Override
@@ -46,6 +58,20 @@
pageList.add(new PhonePageFragment());
pageList.add(new DashBoardPageFragment());
pageList.add(new MinePageFragment());
+ broadcastManager = BroadcastManager.getInstance(this);
+ broadcastManager.addAction(Constant.LOGIN_OUT_ACTION, new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String action = intent.getAction();
+ if (action != null) {
+ String data = intent.getStringExtra("data");
+ assert data != null;
+ if (data.equals("请求成功")) {
+ finish();
+ }
+ }
+ }
+ });
}
@Override
@@ -56,15 +82,19 @@
switch (item.getItemId()) {
case R.id.navigation_home:
mainViewPager.setCurrentItem(0);
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_phone:
mainViewPager.setCurrentItem(1);
+ mainTopLayout.setTitle("通讯录").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_dashboard:
mainViewPager.setCurrentItem(2);
+ mainTopLayout.setTitle("消息").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_mine:
mainViewPager.setCurrentItem(3);
+ mainTopLayout.setTitle("我的").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
default:
break;
@@ -97,4 +127,10 @@
MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageList);
mainViewPager.setAdapter(mainPageAdapter);
}
+
+ @Override
+ protected void onDestroy() {
+ broadcastManager.destroy(Constant.LOGIN_OUT_ACTION);
+ super.onDestroy();
+ }
}
diff --git a/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java b/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java
new file mode 100644
index 0000000..07fdd6c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java
@@ -0,0 +1,59 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 15:22
+ * @email : 290677893@qq.com
+ **/
+public class UserInfoActivity extends BaseActivity {
+
+ @BindView(R.id.userTopLayout)
+ QMUITopBarLayout userTopLayout;
+ @BindView(R.id.userNameView)
+ TextView userNameView;
+ @BindView(R.id.userPhoneView)
+ TextView userPhoneView;
+ @BindView(R.id.userDeptView)
+ TextView userDeptView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_user;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ userTopLayout.setTitle("个人资料").setTextColor(ContextCompat.getColor(this, R.color.white));
+ userTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ userTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ userNameView.setText(StringHelper.getUserName());
+ userPhoneView.setText(StringHelper.getUserPhone());
+ userDeptView.setText(StringHelper.getUserDept());
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
index a1e68ba..ed8bf57 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
@@ -10,6 +10,11 @@
}
@Override
+ protected void setupTopBarLayout() {
+
+ }
+
+ @Override
protected void initData() {
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
index 4922b08..e467298 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
@@ -3,9 +3,7 @@
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
-import android.text.TextUtils;
import android.widget.TextView;
-import android.widget.Toast;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -19,7 +17,7 @@
import com.casic.dcms.mvp.presenter.UserDataPresenterImpl;
import com.casic.dcms.mvp.view.IUserDataView;
import com.casic.dcms.ui.CaseUploadActivity;
-import com.casic.dcms.utils.TokenHelper;
+import com.casic.dcms.utils.StringHelper;
import com.qmuiteam.qmui.widget.QMUIRadiusImageView;
import butterknife.BindView;
@@ -49,15 +47,13 @@
}
@Override
- protected void initData() {
+ protected void setupTopBarLayout() {
context = getContext();
- userDataPresenter = new UserDataPresenterImpl(this);
+ }
- String token = TokenHelper.getToken();
- if (TextUtils.isEmpty(token)) {
- Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show();
- return;
- }
+ @Override
+ protected void initData() {
+ userDataPresenter = new UserDataPresenterImpl(this);
userDataPresenter.onReadyRetrofitRequest();
}
@@ -86,6 +82,7 @@
break;
case 4:
+ break;
case 5:
break;
@@ -114,16 +111,6 @@
});
}
- @Override
- public void showProgress() {
-
- }
-
- @Override
- public void hideProgress() {
-
- }
-
@SuppressLint("SetTextI18n")
@Override
public void obtainUserData(UserBean userBean) {
@@ -135,8 +122,10 @@
UserBean.DataBean data = userBean.getData();
userNameView.setText(data.getName());
userDeptView.setText(data.getDeptName() + data.getRoleNames());
- } else {
- Toast.makeText(context, "", Toast.LENGTH_SHORT).show();
+
+ StringHelper.saveUserName(data.getName());
+ StringHelper.saveUserPhone(data.getPhone());
+ StringHelper.saveUserDept(data.getDeptName());
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
index f698e72..8dd20ef 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
@@ -1,21 +1,98 @@
package com.casic.dcms.ui.fragment;
+import android.content.Context;
+import android.content.Intent;
+import android.view.View;
+import android.widget.TextView;
+
+import com.casic.dcms.BuildConfig;
import com.casic.dcms.R;
import com.casic.dcms.base.BaseFragment;
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.presenter.LoginOutPresenterImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+import com.casic.dcms.ui.ChangePasswordActivity;
+import com.casic.dcms.ui.HelpfulActivity;
+import com.casic.dcms.ui.UserInfoActivity;
+import com.casic.dcms.utils.BroadcastManager;
+import com.casic.dcms.utils.Constant;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
-public class MinePageFragment extends BaseFragment {
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class MinePageFragment extends BaseFragment implements View.OnClickListener, ILoginOutView {
+
+ private static final String TAG = "MinePageFragment";
+
+ @BindView(R.id.versionCodeView)
+ TextView versionCodeView;
+ @BindView(R.id.loginOutButton)
+ QMUIRoundButton loginOutButton;
+
+ private Context context;
+ private LoginOutPresenterImpl loginOutPresenter;
+
@Override
protected int initLayoutView() {
return R.layout.fragment_mine;
}
@Override
- protected void initData() {
+ protected void setupTopBarLayout() {
+ context = getContext();
+ }
+ @Override
+ protected void initData() {
+ versionCodeView.setText(BuildConfig.VERSION_NAME);
+ loginOutPresenter = new LoginOutPresenterImpl(this);
}
@Override
protected void initEvent() {
+ loginOutButton.setChangeAlphaWhenPress(true);
+ }
+ @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.loginOutButton})
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.userNameLayout:
+ startActivity(new Intent(context, UserInfoActivity.class));
+ break;
+ case R.id.passwordLayout:
+ startActivity(new Intent(context, ChangePasswordActivity.class));
+ break;
+ case R.id.helpfulLayout:
+ startActivity(new Intent(context, HelpfulActivity.class));
+ break;
+ case R.id.loginOutButton:
+ //退出登录对话框
+ new QMUIDialog.MessageDialogBuilder(context)
+ .setTitle("退出登录")
+ .setMessage("确定要退出吗?")
+ .setCanceledOnTouchOutside(false)
+ .addAction("取消", (dialog, index) -> dialog.dismiss())
+ .addAction("确定", new QMUIDialogAction.ActionListener() {
+ @Override
+ public void onClick(QMUIDialog dialog, int index) {
+ loginOutPresenter.onReadyRetrofitRequest();
+ }
+ }).create().show();
+ break;
+ default:
+ break;
+ }
+ }
+
+ @Override
+ public void obtainLoginOutResult(LoginOutResultBean resultBean) {
+// Log.d(TAG, "obtainLoginOutResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ BroadcastManager.getInstance(context).sendBroadcast(Constant.LOGIN_OUT_ACTION, resultBean.getMessage());
+ }
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java
index f07526a..516830f 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java
@@ -10,6 +10,11 @@
}
@Override
+ protected void setupTopBarLayout() {
+
+ }
+
+ @Override
protected void initData() {
}
diff --git a/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java b/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
new file mode 100644
index 0000000..1b2bb6c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
@@ -0,0 +1,107 @@
+package com.casic.dcms.utils;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:55
+ * @email : 290677893@qq.com
+ **/
+public class BroadcastManager {
+ private static final String TAG = "BroadcastManager";
+ private Context mContext;
+ private static BroadcastManager broadcastManager;
+ private Map receiverMap;
+
+ private BroadcastManager(Context context) {
+ this.mContext = context;
+ receiverMap = new HashMap<>();
+ }
+
+ /**
+ * 双重锁单例
+ */
+ public static BroadcastManager getInstance(Context context) {
+ if (broadcastManager == null) {
+ synchronized (BroadcastManager.class) {
+ if (broadcastManager == null) {
+ broadcastManager = new BroadcastManager(context);
+ }
+ }
+ }
+ return broadcastManager;
+ }
+
+ /**
+ * 添加单个Action,广播的初始化
+ */
+ public void addAction(String action, BroadcastReceiver receiver) {
+ try {
+ IntentFilter filter = new IntentFilter();
+ filter.addAction(action);
+ mContext.registerReceiver(receiver, filter);
+ receiverMap.put(action, receiver);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 添加多个Action,广播的初始化
+ */
+ public void addAction(String[] actions, BroadcastReceiver receiver) {
+ try {
+ IntentFilter filter = new IntentFilter();
+ for (String action : actions) {
+ filter.addAction(action);
+ receiverMap.put(action, receiver);
+ }
+ mContext.registerReceiver(receiver, filter);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 发送广播
+ *
+ * @param action 唯一码
+ * @param msg 参数
+ */
+ public void sendBroadcast(String action, String msg) {
+ try {
+ Intent intent = new Intent();
+ intent.setAction(action);
+ intent.putExtra("data", msg);
+ mContext.sendBroadcast(intent);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 销毁广播
+ *
+ * @param actions action集合
+ */
+ public void destroy(String... actions) {
+ try {
+ if (receiverMap != null) {
+ for (String action : actions) {
+ BroadcastReceiver receiver = receiverMap.get(action);
+ if (receiver != null) {
+ mContext.unregisterReceiver(receiver);
+ }
+ }
+ }
+ } catch (IllegalArgumentException e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java
index 8c90ccd..e346e1d 100644
--- a/app/src/main/java/com/casic/dcms/utils/Constant.java
+++ b/app/src/main/java/com/casic/dcms/utils/Constant.java
@@ -33,4 +33,6 @@
public static final int PERMISSIONS_CODE = 999;
public static final String IP_KEY = "BASE_IP";
+
+ public static final String LOGIN_OUT_ACTION = "loginOut";
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
new file mode 100644
index 0000000..fe6c5f7
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IChangePasswordPresenter {
+ void onReadyRetrofitRequest(String oldPwd, String newPwd);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
new file mode 100644
index 0000000..4e2c7c1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ILoginOutPresenter {
+ void onReadyRetrofitRequest();
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
new file mode 100644
index 0000000..74a6a24
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.LoginOutActionModelImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+
+public class LoginOutPresenterImpl extends BasePresenter implements ILoginOutPresenter, LoginOutActionModelImpl.OnLoginOutListener {
+
+ private ILoginOutView view;
+ private LoginOutActionModelImpl actionModel;
+
+ public LoginOutPresenterImpl(ILoginOutView loginOutView) {
+ this.view = loginOutView;
+ actionModel = new LoginOutActionModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest() {
+ addSubscription(actionModel.sendRetrofitRequest());
+ }
+
+ @Override
+ public void onSuccess(LoginOutResultBean resultBean) {
+ view.obtainLoginOutResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
index 2119b70..0bcea6a 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
@@ -17,7 +17,6 @@
@Override
public void onReadyRetrofitRequest() {
- view.showProgress();
addSubscription(actionModel.sendRetrofitRequest());
}
@@ -28,12 +27,11 @@
@Override
public void onSuccess(UserBean userBean) {
- view.hideProgress();
view.obtainUserData(userBean);
}
@Override
public void onFailure(Throwable throwable) {
- view.hideProgress();
+
}
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
new file mode 100644
index 0000000..c2a84ab
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface IChangePasswordView {
+ void obtainChangePassResult(ChangePasswordResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
new file mode 100644
index 0000000..de3e421
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface ILoginOutView {
+ void obtainLoginOutResult(LoginOutResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
index 2b51d64..bcd16a9 100644
--- a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
@@ -3,9 +3,5 @@
import com.casic.dcms.bean.UserBean;
public interface IUserDataView {
- void showProgress();
-
- void hideProgress();
-
void obtainUserData(UserBean userBean);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
new file mode 100644
index 0000000..ad70b7a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
@@ -0,0 +1,61 @@
+package com.casic.dcms.ui;
+
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.luck.picture.lib.photoview.PhotoView;
+import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 17:09
+ * @email : 290677893@qq.com
+ **/
+public class BigPictureActivity extends BaseActivity {
+
+ @BindView(R.id.photoView)
+ PhotoView photoView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_big_pic;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ QMUIStatusBarHelper.setStatusBarLightMode(this);
+ }
+
+ @Override
+ public void initData() {
+// String mediaJson = getIntent().getStringExtra("mediaJson");
+//
+// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() {
+// }.getType());
+//
+// list = new ArrayList<>();
+// assert mediaList != null;
+// for (LocalMedia media : mediaList) {
+// list.add(media.getRealPath());
+// }
+ String path = getIntent().getStringExtra("path");
+ Glide.with(this).load(path).into(photoView);
+ }
+
+ @Override
+ public void initEvent() {
+// //轮播图
+// bigImageBanner.setImageLoader(new ImageLoader() {
+//
+// @Override
+// public void displayImage(Context context, Object path, ImageView imageView) {
+// Glide.with(context).load(path).into(imageView);
+// }
+// });
+// bigImageBanner.isAutoPlay(false);
+// bigImageBanner.setImages(list);
+// bigImageBanner.start();
+ }
+}
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 7c2bbc6..aa4100a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -109,6 +109,7 @@
private QMUITipDialog submitDialog;
private SubmitInfoBean infoBean;
private HashMap locationMap;
+ private Gson gson;
@Override
public int initLayoutView() {
@@ -129,6 +130,7 @@
@Override
public void initData() {
+ gson = new Gson();
//进入页面即创建提交表单的实体
infoBean = new SubmitInfoBean();
infoBean.setIsNeedRevisit("0");
@@ -388,6 +390,10 @@
imageGridViewAdapter.notifyDataSetChanged();
if (selectList.size() == 0) {
selectedResultView.setVisibility(View.GONE);
+ addImageView.setVisibility(View.VISIBLE);
+ } else {
+ selectedResultView.setVisibility(View.VISIBLE);
+ addImageView.setVisibility(View.GONE);
}
}
});
@@ -433,7 +439,10 @@
}
private void showBigImage(String path) {
-
+ Intent intent = new Intent(this, BigPictureActivity.class);
+// intent.putExtra("mediaJson", gson.toJson(mediaList));
+ intent.putExtra("path", path);
+ startActivity(intent);
}
@SuppressLint("ClickableViewAccessibility")
@@ -501,7 +510,7 @@
@Override
public void obtainLargeClassData(CaseLargeClassBean largeClassBean) {
-// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean));
+// Log.d(TAG, "obtainLargeClassData: " + gson.toJson(largeClassBean));
if (largeClassBean.isSuccess()) {
//设置大类数据
this.largeClassBeans = largeClassBean.getData();
@@ -556,13 +565,13 @@
} else {
ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING);
}
- Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean));
+ Log.d(TAG, "submitCase: " + gson.toJson(infoBean));
caseSubmitPresenter.onReadyRetrofitRequest(infoBean);
}
@Override
public void obtainSubmitResult(SubmitResultBean resultBean) {
- Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean));
+ Log.d(TAG, "obtainSubmitResult: " + gson.toJson(resultBean));
if (resultBean.isSuccess()) {
ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS);
} else {
diff --git a/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
new file mode 100644
index 0000000..891b7a3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
@@ -0,0 +1,124 @@
+package com.casic.dcms.ui;
+
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.widget.EditText;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.presenter.ChangePasswordPresenterImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+import com.casic.dcms.utils.RSAUtils;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.TokenHelper;
+import com.google.gson.Gson;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.security.PublicKey;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:20
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordActivity extends BaseActivity implements View.OnClickListener, IChangePasswordView {
+
+ private static final String TAG = "ChangePasswordActivity";
+ @BindView(R.id.passwordTopLayout)
+ QMUITopBarLayout passwordTopLayout;
+ @BindView(R.id.originalEditView)
+ EditText originalEditView;
+ @BindView(R.id.newEditView)
+ EditText newEditView;
+ @BindView(R.id.confirmEditView)
+ EditText confirmEditView;
+ @BindView(R.id.changePasswordButton)
+ QMUIRoundButton changePasswordButton;
+ private ChangePasswordPresenterImpl changePasswordPresenter;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_password;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ passwordTopLayout.setTitle("修改密码").setTextColor(ContextCompat.getColor(this, R.color.white));
+ passwordTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ passwordTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ changePasswordPresenter = new ChangePasswordPresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ changePasswordButton.setChangeAlphaWhenPress(true);
+ }
+
+ @OnClick(R.id.changePasswordButton)
+ @Override
+ public void onClick(View v) {
+ String oldPassword = originalEditView.getText().toString();
+ if (TextUtils.isEmpty(oldPassword)) {
+ ToastHelper.showToast("请先输入原密码", ToastHelper.WARING);
+ return;
+ }
+ String newPassword = newEditView.getText().toString();
+ if (TextUtils.isEmpty(newPassword)) {
+ ToastHelper.showToast("请先输入新密码", ToastHelper.WARING);
+ return;
+ }
+ String confirmPassword = confirmEditView.getText().toString();
+ if (TextUtils.isEmpty(confirmPassword)) {
+ ToastHelper.showToast("请再次输入新密码", ToastHelper.WARING);
+ return;
+ }
+ if (!newPassword.equals(confirmPassword)) {
+ ToastHelper.showToast("新密码和确认密码输入不一致,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (newPassword.length() < 6 || newPassword.length() > 12) {
+ ToastHelper.showToast("新密码长度不正确,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (!StringHelper.isLetterAndDigit(newPassword)) {
+ ToastHelper.showToast("新密码请输入6-12位的数字字母组合", ToastHelper.WARING);
+ return;
+ }
+ //数据校验OK,可以修改密码
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(TokenHelper.getPublicKey());
+ String oldPassKey = RSAUtils.encryptDataByPublicKey(oldPassword.getBytes(), publicKey);
+ String newPassKey = RSAUtils.encryptDataByPublicKey(newPassword.getBytes(), publicKey);
+
+// ChangeNewPasswordBean passwordBean = new ChangeNewPasswordBean();
+// passwordBean.setOldPwd(oldPassKey.replace("=\n", "="));
+// passwordBean.setNewPwd(newPassKey.replace("=\n", "="));
+ changePasswordPresenter.onReadyRetrofitRequest(oldPassKey, newPassKey);
+ }
+
+ @Override
+ public void obtainChangePassResult(ChangePasswordResultBean resultBean) {
+ Log.d(TAG, "obtainChangePassResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ ToastHelper.showToast("密码修改成功", ToastHelper.WARING);
+ finish();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
new file mode 100644
index 0000000..058f5d2
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
@@ -0,0 +1,49 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:05
+ * @email : 290677893@qq.com
+ **/
+public class HelpfulActivity extends BaseActivity {
+
+ @BindView(R.id.helpTopLayout)
+ QMUITopBarLayout helpTopLayout;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_help;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ helpTopLayout.setTitle("帮助中心").setTextColor(ContextCompat.getColor(this, R.color.white));
+ helpTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ helpTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
index 979deff..5535f61 100644
--- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
@@ -66,8 +66,8 @@
@Override
public void initData() {
- String userName = (String) SaveKeyValues.getValue("userName", "");
- String userPassword = (String) SaveKeyValues.getValue("userPassword", "");
+ String userName = (String) SaveKeyValues.getValue("name", "");
+ String userPassword = (String) SaveKeyValues.getValue("password", "");
userNameView.setText(userName);
userPasswordView.setText(userPassword);
if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) {
@@ -149,12 +149,15 @@
@Override
public void authenticateResult(PublicKeyBean result) {
if (result.isSuccess()) {
- PublicKey publicKey = RSAUtils.keyStrToPublicKey(result.getData().getPublicKey());
+ String keyString = result.getData().getPublicKey();
+ TokenHelper.savePublicKey(keyString);
+
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(keyString);
String userName = userNameView.getText().toString();
String userPassword = userPasswordView.getText().toString();
if (rememberPasswordView.isChecked()) {
- SaveKeyValues.putValue("userName", userName);
- SaveKeyValues.putValue("userPassword", userPassword);
+ SaveKeyValues.putValue("name", userName);
+ SaveKeyValues.putValue("password", userPassword);
}
if (autoLoginView.isChecked()) {
SaveKeyValues.putValue("autoLogin", true);
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 82eb21e..4351cb6 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -1,8 +1,12 @@
package com.casic.dcms.ui;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
import android.view.MenuItem;
import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
@@ -13,7 +17,10 @@
import com.casic.dcms.ui.fragment.HomePageFragment;
import com.casic.dcms.ui.fragment.MinePageFragment;
import com.casic.dcms.ui.fragment.PhonePageFragment;
+import com.casic.dcms.utils.BroadcastManager;
+import com.casic.dcms.utils.Constant;
import com.google.android.material.bottomnavigation.BottomNavigationView;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
import java.util.ArrayList;
import java.util.List;
@@ -22,12 +29,16 @@
public class MainActivity extends DoubleClickExitActivity {
+ @BindView(R.id.mainTopLayout)
+ QMUITopBarLayout mainTopLayout;
@BindView(R.id.mainViewPager)
ViewPager mainViewPager;
@BindView(R.id.bottomNavigation)
BottomNavigationView bottomNavigation;
+ private Context context = this;
private MenuItem menuItem;
private List pageList;
+ private BroadcastManager broadcastManager;
@Override
public int initLayoutView() {
@@ -36,7 +47,8 @@
@Override
protected void setupTopBarLayout() {
- //TODO 此页面无需实现
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
+ mainTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
}
@Override
@@ -46,6 +58,20 @@
pageList.add(new PhonePageFragment());
pageList.add(new DashBoardPageFragment());
pageList.add(new MinePageFragment());
+ broadcastManager = BroadcastManager.getInstance(this);
+ broadcastManager.addAction(Constant.LOGIN_OUT_ACTION, new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String action = intent.getAction();
+ if (action != null) {
+ String data = intent.getStringExtra("data");
+ assert data != null;
+ if (data.equals("请求成功")) {
+ finish();
+ }
+ }
+ }
+ });
}
@Override
@@ -56,15 +82,19 @@
switch (item.getItemId()) {
case R.id.navigation_home:
mainViewPager.setCurrentItem(0);
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_phone:
mainViewPager.setCurrentItem(1);
+ mainTopLayout.setTitle("通讯录").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_dashboard:
mainViewPager.setCurrentItem(2);
+ mainTopLayout.setTitle("消息").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_mine:
mainViewPager.setCurrentItem(3);
+ mainTopLayout.setTitle("我的").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
default:
break;
@@ -97,4 +127,10 @@
MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageList);
mainViewPager.setAdapter(mainPageAdapter);
}
+
+ @Override
+ protected void onDestroy() {
+ broadcastManager.destroy(Constant.LOGIN_OUT_ACTION);
+ super.onDestroy();
+ }
}
diff --git a/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java b/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java
new file mode 100644
index 0000000..07fdd6c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java
@@ -0,0 +1,59 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 15:22
+ * @email : 290677893@qq.com
+ **/
+public class UserInfoActivity extends BaseActivity {
+
+ @BindView(R.id.userTopLayout)
+ QMUITopBarLayout userTopLayout;
+ @BindView(R.id.userNameView)
+ TextView userNameView;
+ @BindView(R.id.userPhoneView)
+ TextView userPhoneView;
+ @BindView(R.id.userDeptView)
+ TextView userDeptView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_user;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ userTopLayout.setTitle("个人资料").setTextColor(ContextCompat.getColor(this, R.color.white));
+ userTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ userTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ userNameView.setText(StringHelper.getUserName());
+ userPhoneView.setText(StringHelper.getUserPhone());
+ userDeptView.setText(StringHelper.getUserDept());
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
index a1e68ba..ed8bf57 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
@@ -10,6 +10,11 @@
}
@Override
+ protected void setupTopBarLayout() {
+
+ }
+
+ @Override
protected void initData() {
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
index 4922b08..e467298 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
@@ -3,9 +3,7 @@
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
-import android.text.TextUtils;
import android.widget.TextView;
-import android.widget.Toast;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -19,7 +17,7 @@
import com.casic.dcms.mvp.presenter.UserDataPresenterImpl;
import com.casic.dcms.mvp.view.IUserDataView;
import com.casic.dcms.ui.CaseUploadActivity;
-import com.casic.dcms.utils.TokenHelper;
+import com.casic.dcms.utils.StringHelper;
import com.qmuiteam.qmui.widget.QMUIRadiusImageView;
import butterknife.BindView;
@@ -49,15 +47,13 @@
}
@Override
- protected void initData() {
+ protected void setupTopBarLayout() {
context = getContext();
- userDataPresenter = new UserDataPresenterImpl(this);
+ }
- String token = TokenHelper.getToken();
- if (TextUtils.isEmpty(token)) {
- Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show();
- return;
- }
+ @Override
+ protected void initData() {
+ userDataPresenter = new UserDataPresenterImpl(this);
userDataPresenter.onReadyRetrofitRequest();
}
@@ -86,6 +82,7 @@
break;
case 4:
+ break;
case 5:
break;
@@ -114,16 +111,6 @@
});
}
- @Override
- public void showProgress() {
-
- }
-
- @Override
- public void hideProgress() {
-
- }
-
@SuppressLint("SetTextI18n")
@Override
public void obtainUserData(UserBean userBean) {
@@ -135,8 +122,10 @@
UserBean.DataBean data = userBean.getData();
userNameView.setText(data.getName());
userDeptView.setText(data.getDeptName() + data.getRoleNames());
- } else {
- Toast.makeText(context, "", Toast.LENGTH_SHORT).show();
+
+ StringHelper.saveUserName(data.getName());
+ StringHelper.saveUserPhone(data.getPhone());
+ StringHelper.saveUserDept(data.getDeptName());
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
index f698e72..8dd20ef 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
@@ -1,21 +1,98 @@
package com.casic.dcms.ui.fragment;
+import android.content.Context;
+import android.content.Intent;
+import android.view.View;
+import android.widget.TextView;
+
+import com.casic.dcms.BuildConfig;
import com.casic.dcms.R;
import com.casic.dcms.base.BaseFragment;
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.presenter.LoginOutPresenterImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+import com.casic.dcms.ui.ChangePasswordActivity;
+import com.casic.dcms.ui.HelpfulActivity;
+import com.casic.dcms.ui.UserInfoActivity;
+import com.casic.dcms.utils.BroadcastManager;
+import com.casic.dcms.utils.Constant;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
-public class MinePageFragment extends BaseFragment {
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class MinePageFragment extends BaseFragment implements View.OnClickListener, ILoginOutView {
+
+ private static final String TAG = "MinePageFragment";
+
+ @BindView(R.id.versionCodeView)
+ TextView versionCodeView;
+ @BindView(R.id.loginOutButton)
+ QMUIRoundButton loginOutButton;
+
+ private Context context;
+ private LoginOutPresenterImpl loginOutPresenter;
+
@Override
protected int initLayoutView() {
return R.layout.fragment_mine;
}
@Override
- protected void initData() {
+ protected void setupTopBarLayout() {
+ context = getContext();
+ }
+ @Override
+ protected void initData() {
+ versionCodeView.setText(BuildConfig.VERSION_NAME);
+ loginOutPresenter = new LoginOutPresenterImpl(this);
}
@Override
protected void initEvent() {
+ loginOutButton.setChangeAlphaWhenPress(true);
+ }
+ @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.loginOutButton})
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.userNameLayout:
+ startActivity(new Intent(context, UserInfoActivity.class));
+ break;
+ case R.id.passwordLayout:
+ startActivity(new Intent(context, ChangePasswordActivity.class));
+ break;
+ case R.id.helpfulLayout:
+ startActivity(new Intent(context, HelpfulActivity.class));
+ break;
+ case R.id.loginOutButton:
+ //退出登录对话框
+ new QMUIDialog.MessageDialogBuilder(context)
+ .setTitle("退出登录")
+ .setMessage("确定要退出吗?")
+ .setCanceledOnTouchOutside(false)
+ .addAction("取消", (dialog, index) -> dialog.dismiss())
+ .addAction("确定", new QMUIDialogAction.ActionListener() {
+ @Override
+ public void onClick(QMUIDialog dialog, int index) {
+ loginOutPresenter.onReadyRetrofitRequest();
+ }
+ }).create().show();
+ break;
+ default:
+ break;
+ }
+ }
+
+ @Override
+ public void obtainLoginOutResult(LoginOutResultBean resultBean) {
+// Log.d(TAG, "obtainLoginOutResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ BroadcastManager.getInstance(context).sendBroadcast(Constant.LOGIN_OUT_ACTION, resultBean.getMessage());
+ }
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java
index f07526a..516830f 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java
@@ -10,6 +10,11 @@
}
@Override
+ protected void setupTopBarLayout() {
+
+ }
+
+ @Override
protected void initData() {
}
diff --git a/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java b/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
new file mode 100644
index 0000000..1b2bb6c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
@@ -0,0 +1,107 @@
+package com.casic.dcms.utils;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:55
+ * @email : 290677893@qq.com
+ **/
+public class BroadcastManager {
+ private static final String TAG = "BroadcastManager";
+ private Context mContext;
+ private static BroadcastManager broadcastManager;
+ private Map receiverMap;
+
+ private BroadcastManager(Context context) {
+ this.mContext = context;
+ receiverMap = new HashMap<>();
+ }
+
+ /**
+ * 双重锁单例
+ */
+ public static BroadcastManager getInstance(Context context) {
+ if (broadcastManager == null) {
+ synchronized (BroadcastManager.class) {
+ if (broadcastManager == null) {
+ broadcastManager = new BroadcastManager(context);
+ }
+ }
+ }
+ return broadcastManager;
+ }
+
+ /**
+ * 添加单个Action,广播的初始化
+ */
+ public void addAction(String action, BroadcastReceiver receiver) {
+ try {
+ IntentFilter filter = new IntentFilter();
+ filter.addAction(action);
+ mContext.registerReceiver(receiver, filter);
+ receiverMap.put(action, receiver);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 添加多个Action,广播的初始化
+ */
+ public void addAction(String[] actions, BroadcastReceiver receiver) {
+ try {
+ IntentFilter filter = new IntentFilter();
+ for (String action : actions) {
+ filter.addAction(action);
+ receiverMap.put(action, receiver);
+ }
+ mContext.registerReceiver(receiver, filter);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 发送广播
+ *
+ * @param action 唯一码
+ * @param msg 参数
+ */
+ public void sendBroadcast(String action, String msg) {
+ try {
+ Intent intent = new Intent();
+ intent.setAction(action);
+ intent.putExtra("data", msg);
+ mContext.sendBroadcast(intent);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 销毁广播
+ *
+ * @param actions action集合
+ */
+ public void destroy(String... actions) {
+ try {
+ if (receiverMap != null) {
+ for (String action : actions) {
+ BroadcastReceiver receiver = receiverMap.get(action);
+ if (receiver != null) {
+ mContext.unregisterReceiver(receiver);
+ }
+ }
+ }
+ } catch (IllegalArgumentException e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java
index 8c90ccd..e346e1d 100644
--- a/app/src/main/java/com/casic/dcms/utils/Constant.java
+++ b/app/src/main/java/com/casic/dcms/utils/Constant.java
@@ -33,4 +33,6 @@
public static final int PERMISSIONS_CODE = 999;
public static final String IP_KEY = "BASE_IP";
+
+ public static final String LOGIN_OUT_ACTION = "loginOut";
}
diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java
index 1781080..c5e0e37 100644
--- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java
@@ -2,4 +2,40 @@
public class StringHelper {
+ public static void saveUserName(String name) {
+ SaveKeyValues.putValue("userName", name);
+ }
+
+ public static String getUserName() {
+ return (String) SaveKeyValues.getValue("userName", "");
+ }
+
+ public static void saveUserPhone(String phone) {
+ SaveKeyValues.putValue("userPhone", phone);
+ }
+
+ public static String getUserPhone() {
+ return (String) SaveKeyValues.getValue("userPhone", "");
+ }
+
+ public static void saveUserDept(String dept) {
+ SaveKeyValues.putValue("userDept", dept);
+ }
+
+ public static String getUserDept() {
+ return (String) SaveKeyValues.getValue("userDept", "");
+ }
+
+ public static boolean isLetterAndDigit(String str) {
+ boolean isDigit = false;
+ boolean isLetter = false;
+ for (int i = 0; i < str.length(); i++) {
+ if (Character.isDigit(str.charAt(i))) {
+ isDigit = true;
+ } else if (Character.isLetter(str.charAt(i))) {
+ isLetter = true;
+ }
+ }
+ return isDigit && isLetter;
+ }
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
new file mode 100644
index 0000000..fe6c5f7
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IChangePasswordPresenter {
+ void onReadyRetrofitRequest(String oldPwd, String newPwd);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
new file mode 100644
index 0000000..4e2c7c1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ILoginOutPresenter {
+ void onReadyRetrofitRequest();
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
new file mode 100644
index 0000000..74a6a24
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.LoginOutActionModelImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+
+public class LoginOutPresenterImpl extends BasePresenter implements ILoginOutPresenter, LoginOutActionModelImpl.OnLoginOutListener {
+
+ private ILoginOutView view;
+ private LoginOutActionModelImpl actionModel;
+
+ public LoginOutPresenterImpl(ILoginOutView loginOutView) {
+ this.view = loginOutView;
+ actionModel = new LoginOutActionModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest() {
+ addSubscription(actionModel.sendRetrofitRequest());
+ }
+
+ @Override
+ public void onSuccess(LoginOutResultBean resultBean) {
+ view.obtainLoginOutResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
index 2119b70..0bcea6a 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
@@ -17,7 +17,6 @@
@Override
public void onReadyRetrofitRequest() {
- view.showProgress();
addSubscription(actionModel.sendRetrofitRequest());
}
@@ -28,12 +27,11 @@
@Override
public void onSuccess(UserBean userBean) {
- view.hideProgress();
view.obtainUserData(userBean);
}
@Override
public void onFailure(Throwable throwable) {
- view.hideProgress();
+
}
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
new file mode 100644
index 0000000..c2a84ab
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface IChangePasswordView {
+ void obtainChangePassResult(ChangePasswordResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
new file mode 100644
index 0000000..de3e421
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface ILoginOutView {
+ void obtainLoginOutResult(LoginOutResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
index 2b51d64..bcd16a9 100644
--- a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
@@ -3,9 +3,5 @@
import com.casic.dcms.bean.UserBean;
public interface IUserDataView {
- void showProgress();
-
- void hideProgress();
-
void obtainUserData(UserBean userBean);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
new file mode 100644
index 0000000..ad70b7a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
@@ -0,0 +1,61 @@
+package com.casic.dcms.ui;
+
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.luck.picture.lib.photoview.PhotoView;
+import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 17:09
+ * @email : 290677893@qq.com
+ **/
+public class BigPictureActivity extends BaseActivity {
+
+ @BindView(R.id.photoView)
+ PhotoView photoView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_big_pic;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ QMUIStatusBarHelper.setStatusBarLightMode(this);
+ }
+
+ @Override
+ public void initData() {
+// String mediaJson = getIntent().getStringExtra("mediaJson");
+//
+// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() {
+// }.getType());
+//
+// list = new ArrayList<>();
+// assert mediaList != null;
+// for (LocalMedia media : mediaList) {
+// list.add(media.getRealPath());
+// }
+ String path = getIntent().getStringExtra("path");
+ Glide.with(this).load(path).into(photoView);
+ }
+
+ @Override
+ public void initEvent() {
+// //轮播图
+// bigImageBanner.setImageLoader(new ImageLoader() {
+//
+// @Override
+// public void displayImage(Context context, Object path, ImageView imageView) {
+// Glide.with(context).load(path).into(imageView);
+// }
+// });
+// bigImageBanner.isAutoPlay(false);
+// bigImageBanner.setImages(list);
+// bigImageBanner.start();
+ }
+}
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 7c2bbc6..aa4100a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -109,6 +109,7 @@
private QMUITipDialog submitDialog;
private SubmitInfoBean infoBean;
private HashMap locationMap;
+ private Gson gson;
@Override
public int initLayoutView() {
@@ -129,6 +130,7 @@
@Override
public void initData() {
+ gson = new Gson();
//进入页面即创建提交表单的实体
infoBean = new SubmitInfoBean();
infoBean.setIsNeedRevisit("0");
@@ -388,6 +390,10 @@
imageGridViewAdapter.notifyDataSetChanged();
if (selectList.size() == 0) {
selectedResultView.setVisibility(View.GONE);
+ addImageView.setVisibility(View.VISIBLE);
+ } else {
+ selectedResultView.setVisibility(View.VISIBLE);
+ addImageView.setVisibility(View.GONE);
}
}
});
@@ -433,7 +439,10 @@
}
private void showBigImage(String path) {
-
+ Intent intent = new Intent(this, BigPictureActivity.class);
+// intent.putExtra("mediaJson", gson.toJson(mediaList));
+ intent.putExtra("path", path);
+ startActivity(intent);
}
@SuppressLint("ClickableViewAccessibility")
@@ -501,7 +510,7 @@
@Override
public void obtainLargeClassData(CaseLargeClassBean largeClassBean) {
-// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean));
+// Log.d(TAG, "obtainLargeClassData: " + gson.toJson(largeClassBean));
if (largeClassBean.isSuccess()) {
//设置大类数据
this.largeClassBeans = largeClassBean.getData();
@@ -556,13 +565,13 @@
} else {
ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING);
}
- Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean));
+ Log.d(TAG, "submitCase: " + gson.toJson(infoBean));
caseSubmitPresenter.onReadyRetrofitRequest(infoBean);
}
@Override
public void obtainSubmitResult(SubmitResultBean resultBean) {
- Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean));
+ Log.d(TAG, "obtainSubmitResult: " + gson.toJson(resultBean));
if (resultBean.isSuccess()) {
ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS);
} else {
diff --git a/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
new file mode 100644
index 0000000..891b7a3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
@@ -0,0 +1,124 @@
+package com.casic.dcms.ui;
+
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.widget.EditText;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.presenter.ChangePasswordPresenterImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+import com.casic.dcms.utils.RSAUtils;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.TokenHelper;
+import com.google.gson.Gson;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.security.PublicKey;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:20
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordActivity extends BaseActivity implements View.OnClickListener, IChangePasswordView {
+
+ private static final String TAG = "ChangePasswordActivity";
+ @BindView(R.id.passwordTopLayout)
+ QMUITopBarLayout passwordTopLayout;
+ @BindView(R.id.originalEditView)
+ EditText originalEditView;
+ @BindView(R.id.newEditView)
+ EditText newEditView;
+ @BindView(R.id.confirmEditView)
+ EditText confirmEditView;
+ @BindView(R.id.changePasswordButton)
+ QMUIRoundButton changePasswordButton;
+ private ChangePasswordPresenterImpl changePasswordPresenter;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_password;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ passwordTopLayout.setTitle("修改密码").setTextColor(ContextCompat.getColor(this, R.color.white));
+ passwordTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ passwordTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ changePasswordPresenter = new ChangePasswordPresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ changePasswordButton.setChangeAlphaWhenPress(true);
+ }
+
+ @OnClick(R.id.changePasswordButton)
+ @Override
+ public void onClick(View v) {
+ String oldPassword = originalEditView.getText().toString();
+ if (TextUtils.isEmpty(oldPassword)) {
+ ToastHelper.showToast("请先输入原密码", ToastHelper.WARING);
+ return;
+ }
+ String newPassword = newEditView.getText().toString();
+ if (TextUtils.isEmpty(newPassword)) {
+ ToastHelper.showToast("请先输入新密码", ToastHelper.WARING);
+ return;
+ }
+ String confirmPassword = confirmEditView.getText().toString();
+ if (TextUtils.isEmpty(confirmPassword)) {
+ ToastHelper.showToast("请再次输入新密码", ToastHelper.WARING);
+ return;
+ }
+ if (!newPassword.equals(confirmPassword)) {
+ ToastHelper.showToast("新密码和确认密码输入不一致,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (newPassword.length() < 6 || newPassword.length() > 12) {
+ ToastHelper.showToast("新密码长度不正确,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (!StringHelper.isLetterAndDigit(newPassword)) {
+ ToastHelper.showToast("新密码请输入6-12位的数字字母组合", ToastHelper.WARING);
+ return;
+ }
+ //数据校验OK,可以修改密码
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(TokenHelper.getPublicKey());
+ String oldPassKey = RSAUtils.encryptDataByPublicKey(oldPassword.getBytes(), publicKey);
+ String newPassKey = RSAUtils.encryptDataByPublicKey(newPassword.getBytes(), publicKey);
+
+// ChangeNewPasswordBean passwordBean = new ChangeNewPasswordBean();
+// passwordBean.setOldPwd(oldPassKey.replace("=\n", "="));
+// passwordBean.setNewPwd(newPassKey.replace("=\n", "="));
+ changePasswordPresenter.onReadyRetrofitRequest(oldPassKey, newPassKey);
+ }
+
+ @Override
+ public void obtainChangePassResult(ChangePasswordResultBean resultBean) {
+ Log.d(TAG, "obtainChangePassResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ ToastHelper.showToast("密码修改成功", ToastHelper.WARING);
+ finish();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
new file mode 100644
index 0000000..058f5d2
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
@@ -0,0 +1,49 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:05
+ * @email : 290677893@qq.com
+ **/
+public class HelpfulActivity extends BaseActivity {
+
+ @BindView(R.id.helpTopLayout)
+ QMUITopBarLayout helpTopLayout;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_help;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ helpTopLayout.setTitle("帮助中心").setTextColor(ContextCompat.getColor(this, R.color.white));
+ helpTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ helpTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
index 979deff..5535f61 100644
--- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
@@ -66,8 +66,8 @@
@Override
public void initData() {
- String userName = (String) SaveKeyValues.getValue("userName", "");
- String userPassword = (String) SaveKeyValues.getValue("userPassword", "");
+ String userName = (String) SaveKeyValues.getValue("name", "");
+ String userPassword = (String) SaveKeyValues.getValue("password", "");
userNameView.setText(userName);
userPasswordView.setText(userPassword);
if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) {
@@ -149,12 +149,15 @@
@Override
public void authenticateResult(PublicKeyBean result) {
if (result.isSuccess()) {
- PublicKey publicKey = RSAUtils.keyStrToPublicKey(result.getData().getPublicKey());
+ String keyString = result.getData().getPublicKey();
+ TokenHelper.savePublicKey(keyString);
+
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(keyString);
String userName = userNameView.getText().toString();
String userPassword = userPasswordView.getText().toString();
if (rememberPasswordView.isChecked()) {
- SaveKeyValues.putValue("userName", userName);
- SaveKeyValues.putValue("userPassword", userPassword);
+ SaveKeyValues.putValue("name", userName);
+ SaveKeyValues.putValue("password", userPassword);
}
if (autoLoginView.isChecked()) {
SaveKeyValues.putValue("autoLogin", true);
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 82eb21e..4351cb6 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -1,8 +1,12 @@
package com.casic.dcms.ui;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
import android.view.MenuItem;
import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
@@ -13,7 +17,10 @@
import com.casic.dcms.ui.fragment.HomePageFragment;
import com.casic.dcms.ui.fragment.MinePageFragment;
import com.casic.dcms.ui.fragment.PhonePageFragment;
+import com.casic.dcms.utils.BroadcastManager;
+import com.casic.dcms.utils.Constant;
import com.google.android.material.bottomnavigation.BottomNavigationView;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
import java.util.ArrayList;
import java.util.List;
@@ -22,12 +29,16 @@
public class MainActivity extends DoubleClickExitActivity {
+ @BindView(R.id.mainTopLayout)
+ QMUITopBarLayout mainTopLayout;
@BindView(R.id.mainViewPager)
ViewPager mainViewPager;
@BindView(R.id.bottomNavigation)
BottomNavigationView bottomNavigation;
+ private Context context = this;
private MenuItem menuItem;
private List pageList;
+ private BroadcastManager broadcastManager;
@Override
public int initLayoutView() {
@@ -36,7 +47,8 @@
@Override
protected void setupTopBarLayout() {
- //TODO 此页面无需实现
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
+ mainTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
}
@Override
@@ -46,6 +58,20 @@
pageList.add(new PhonePageFragment());
pageList.add(new DashBoardPageFragment());
pageList.add(new MinePageFragment());
+ broadcastManager = BroadcastManager.getInstance(this);
+ broadcastManager.addAction(Constant.LOGIN_OUT_ACTION, new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String action = intent.getAction();
+ if (action != null) {
+ String data = intent.getStringExtra("data");
+ assert data != null;
+ if (data.equals("请求成功")) {
+ finish();
+ }
+ }
+ }
+ });
}
@Override
@@ -56,15 +82,19 @@
switch (item.getItemId()) {
case R.id.navigation_home:
mainViewPager.setCurrentItem(0);
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_phone:
mainViewPager.setCurrentItem(1);
+ mainTopLayout.setTitle("通讯录").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_dashboard:
mainViewPager.setCurrentItem(2);
+ mainTopLayout.setTitle("消息").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_mine:
mainViewPager.setCurrentItem(3);
+ mainTopLayout.setTitle("我的").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
default:
break;
@@ -97,4 +127,10 @@
MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageList);
mainViewPager.setAdapter(mainPageAdapter);
}
+
+ @Override
+ protected void onDestroy() {
+ broadcastManager.destroy(Constant.LOGIN_OUT_ACTION);
+ super.onDestroy();
+ }
}
diff --git a/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java b/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java
new file mode 100644
index 0000000..07fdd6c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java
@@ -0,0 +1,59 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 15:22
+ * @email : 290677893@qq.com
+ **/
+public class UserInfoActivity extends BaseActivity {
+
+ @BindView(R.id.userTopLayout)
+ QMUITopBarLayout userTopLayout;
+ @BindView(R.id.userNameView)
+ TextView userNameView;
+ @BindView(R.id.userPhoneView)
+ TextView userPhoneView;
+ @BindView(R.id.userDeptView)
+ TextView userDeptView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_user;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ userTopLayout.setTitle("个人资料").setTextColor(ContextCompat.getColor(this, R.color.white));
+ userTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ userTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ userNameView.setText(StringHelper.getUserName());
+ userPhoneView.setText(StringHelper.getUserPhone());
+ userDeptView.setText(StringHelper.getUserDept());
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
index a1e68ba..ed8bf57 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
@@ -10,6 +10,11 @@
}
@Override
+ protected void setupTopBarLayout() {
+
+ }
+
+ @Override
protected void initData() {
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
index 4922b08..e467298 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
@@ -3,9 +3,7 @@
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
-import android.text.TextUtils;
import android.widget.TextView;
-import android.widget.Toast;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -19,7 +17,7 @@
import com.casic.dcms.mvp.presenter.UserDataPresenterImpl;
import com.casic.dcms.mvp.view.IUserDataView;
import com.casic.dcms.ui.CaseUploadActivity;
-import com.casic.dcms.utils.TokenHelper;
+import com.casic.dcms.utils.StringHelper;
import com.qmuiteam.qmui.widget.QMUIRadiusImageView;
import butterknife.BindView;
@@ -49,15 +47,13 @@
}
@Override
- protected void initData() {
+ protected void setupTopBarLayout() {
context = getContext();
- userDataPresenter = new UserDataPresenterImpl(this);
+ }
- String token = TokenHelper.getToken();
- if (TextUtils.isEmpty(token)) {
- Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show();
- return;
- }
+ @Override
+ protected void initData() {
+ userDataPresenter = new UserDataPresenterImpl(this);
userDataPresenter.onReadyRetrofitRequest();
}
@@ -86,6 +82,7 @@
break;
case 4:
+ break;
case 5:
break;
@@ -114,16 +111,6 @@
});
}
- @Override
- public void showProgress() {
-
- }
-
- @Override
- public void hideProgress() {
-
- }
-
@SuppressLint("SetTextI18n")
@Override
public void obtainUserData(UserBean userBean) {
@@ -135,8 +122,10 @@
UserBean.DataBean data = userBean.getData();
userNameView.setText(data.getName());
userDeptView.setText(data.getDeptName() + data.getRoleNames());
- } else {
- Toast.makeText(context, "", Toast.LENGTH_SHORT).show();
+
+ StringHelper.saveUserName(data.getName());
+ StringHelper.saveUserPhone(data.getPhone());
+ StringHelper.saveUserDept(data.getDeptName());
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
index f698e72..8dd20ef 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
@@ -1,21 +1,98 @@
package com.casic.dcms.ui.fragment;
+import android.content.Context;
+import android.content.Intent;
+import android.view.View;
+import android.widget.TextView;
+
+import com.casic.dcms.BuildConfig;
import com.casic.dcms.R;
import com.casic.dcms.base.BaseFragment;
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.presenter.LoginOutPresenterImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+import com.casic.dcms.ui.ChangePasswordActivity;
+import com.casic.dcms.ui.HelpfulActivity;
+import com.casic.dcms.ui.UserInfoActivity;
+import com.casic.dcms.utils.BroadcastManager;
+import com.casic.dcms.utils.Constant;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
-public class MinePageFragment extends BaseFragment {
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class MinePageFragment extends BaseFragment implements View.OnClickListener, ILoginOutView {
+
+ private static final String TAG = "MinePageFragment";
+
+ @BindView(R.id.versionCodeView)
+ TextView versionCodeView;
+ @BindView(R.id.loginOutButton)
+ QMUIRoundButton loginOutButton;
+
+ private Context context;
+ private LoginOutPresenterImpl loginOutPresenter;
+
@Override
protected int initLayoutView() {
return R.layout.fragment_mine;
}
@Override
- protected void initData() {
+ protected void setupTopBarLayout() {
+ context = getContext();
+ }
+ @Override
+ protected void initData() {
+ versionCodeView.setText(BuildConfig.VERSION_NAME);
+ loginOutPresenter = new LoginOutPresenterImpl(this);
}
@Override
protected void initEvent() {
+ loginOutButton.setChangeAlphaWhenPress(true);
+ }
+ @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.loginOutButton})
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.userNameLayout:
+ startActivity(new Intent(context, UserInfoActivity.class));
+ break;
+ case R.id.passwordLayout:
+ startActivity(new Intent(context, ChangePasswordActivity.class));
+ break;
+ case R.id.helpfulLayout:
+ startActivity(new Intent(context, HelpfulActivity.class));
+ break;
+ case R.id.loginOutButton:
+ //退出登录对话框
+ new QMUIDialog.MessageDialogBuilder(context)
+ .setTitle("退出登录")
+ .setMessage("确定要退出吗?")
+ .setCanceledOnTouchOutside(false)
+ .addAction("取消", (dialog, index) -> dialog.dismiss())
+ .addAction("确定", new QMUIDialogAction.ActionListener() {
+ @Override
+ public void onClick(QMUIDialog dialog, int index) {
+ loginOutPresenter.onReadyRetrofitRequest();
+ }
+ }).create().show();
+ break;
+ default:
+ break;
+ }
+ }
+
+ @Override
+ public void obtainLoginOutResult(LoginOutResultBean resultBean) {
+// Log.d(TAG, "obtainLoginOutResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ BroadcastManager.getInstance(context).sendBroadcast(Constant.LOGIN_OUT_ACTION, resultBean.getMessage());
+ }
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java
index f07526a..516830f 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java
@@ -10,6 +10,11 @@
}
@Override
+ protected void setupTopBarLayout() {
+
+ }
+
+ @Override
protected void initData() {
}
diff --git a/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java b/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
new file mode 100644
index 0000000..1b2bb6c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
@@ -0,0 +1,107 @@
+package com.casic.dcms.utils;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:55
+ * @email : 290677893@qq.com
+ **/
+public class BroadcastManager {
+ private static final String TAG = "BroadcastManager";
+ private Context mContext;
+ private static BroadcastManager broadcastManager;
+ private Map receiverMap;
+
+ private BroadcastManager(Context context) {
+ this.mContext = context;
+ receiverMap = new HashMap<>();
+ }
+
+ /**
+ * 双重锁单例
+ */
+ public static BroadcastManager getInstance(Context context) {
+ if (broadcastManager == null) {
+ synchronized (BroadcastManager.class) {
+ if (broadcastManager == null) {
+ broadcastManager = new BroadcastManager(context);
+ }
+ }
+ }
+ return broadcastManager;
+ }
+
+ /**
+ * 添加单个Action,广播的初始化
+ */
+ public void addAction(String action, BroadcastReceiver receiver) {
+ try {
+ IntentFilter filter = new IntentFilter();
+ filter.addAction(action);
+ mContext.registerReceiver(receiver, filter);
+ receiverMap.put(action, receiver);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 添加多个Action,广播的初始化
+ */
+ public void addAction(String[] actions, BroadcastReceiver receiver) {
+ try {
+ IntentFilter filter = new IntentFilter();
+ for (String action : actions) {
+ filter.addAction(action);
+ receiverMap.put(action, receiver);
+ }
+ mContext.registerReceiver(receiver, filter);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 发送广播
+ *
+ * @param action 唯一码
+ * @param msg 参数
+ */
+ public void sendBroadcast(String action, String msg) {
+ try {
+ Intent intent = new Intent();
+ intent.setAction(action);
+ intent.putExtra("data", msg);
+ mContext.sendBroadcast(intent);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 销毁广播
+ *
+ * @param actions action集合
+ */
+ public void destroy(String... actions) {
+ try {
+ if (receiverMap != null) {
+ for (String action : actions) {
+ BroadcastReceiver receiver = receiverMap.get(action);
+ if (receiver != null) {
+ mContext.unregisterReceiver(receiver);
+ }
+ }
+ }
+ } catch (IllegalArgumentException e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java
index 8c90ccd..e346e1d 100644
--- a/app/src/main/java/com/casic/dcms/utils/Constant.java
+++ b/app/src/main/java/com/casic/dcms/utils/Constant.java
@@ -33,4 +33,6 @@
public static final int PERMISSIONS_CODE = 999;
public static final String IP_KEY = "BASE_IP";
+
+ public static final String LOGIN_OUT_ACTION = "loginOut";
}
diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java
index 1781080..c5e0e37 100644
--- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java
@@ -2,4 +2,40 @@
public class StringHelper {
+ public static void saveUserName(String name) {
+ SaveKeyValues.putValue("userName", name);
+ }
+
+ public static String getUserName() {
+ return (String) SaveKeyValues.getValue("userName", "");
+ }
+
+ public static void saveUserPhone(String phone) {
+ SaveKeyValues.putValue("userPhone", phone);
+ }
+
+ public static String getUserPhone() {
+ return (String) SaveKeyValues.getValue("userPhone", "");
+ }
+
+ public static void saveUserDept(String dept) {
+ SaveKeyValues.putValue("userDept", dept);
+ }
+
+ public static String getUserDept() {
+ return (String) SaveKeyValues.getValue("userDept", "");
+ }
+
+ public static boolean isLetterAndDigit(String str) {
+ boolean isDigit = false;
+ boolean isLetter = false;
+ for (int i = 0; i < str.length(); i++) {
+ if (Character.isDigit(str.charAt(i))) {
+ isDigit = true;
+ } else if (Character.isLetter(str.charAt(i))) {
+ isLetter = true;
+ }
+ }
+ return isDigit && isLetter;
+ }
}
diff --git a/app/src/main/java/com/casic/dcms/utils/TokenHelper.java b/app/src/main/java/com/casic/dcms/utils/TokenHelper.java
index a02a103..0e63632 100644
--- a/app/src/main/java/com/casic/dcms/utils/TokenHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/TokenHelper.java
@@ -2,6 +2,14 @@
public class TokenHelper {
+ public static void savePublicKey(String key) {
+ SaveKeyValues.putValue("keyString", key);
+ }
+
+ public static String getPublicKey() {
+ return (String) SaveKeyValues.getValue("keyString", "");
+ }
+
public static void saveToken(String token) {
SaveKeyValues.putValue("token", token);
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
new file mode 100644
index 0000000..fe6c5f7
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IChangePasswordPresenter {
+ void onReadyRetrofitRequest(String oldPwd, String newPwd);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
new file mode 100644
index 0000000..4e2c7c1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ILoginOutPresenter {
+ void onReadyRetrofitRequest();
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
new file mode 100644
index 0000000..74a6a24
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.LoginOutActionModelImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+
+public class LoginOutPresenterImpl extends BasePresenter implements ILoginOutPresenter, LoginOutActionModelImpl.OnLoginOutListener {
+
+ private ILoginOutView view;
+ private LoginOutActionModelImpl actionModel;
+
+ public LoginOutPresenterImpl(ILoginOutView loginOutView) {
+ this.view = loginOutView;
+ actionModel = new LoginOutActionModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest() {
+ addSubscription(actionModel.sendRetrofitRequest());
+ }
+
+ @Override
+ public void onSuccess(LoginOutResultBean resultBean) {
+ view.obtainLoginOutResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
index 2119b70..0bcea6a 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
@@ -17,7 +17,6 @@
@Override
public void onReadyRetrofitRequest() {
- view.showProgress();
addSubscription(actionModel.sendRetrofitRequest());
}
@@ -28,12 +27,11 @@
@Override
public void onSuccess(UserBean userBean) {
- view.hideProgress();
view.obtainUserData(userBean);
}
@Override
public void onFailure(Throwable throwable) {
- view.hideProgress();
+
}
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
new file mode 100644
index 0000000..c2a84ab
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface IChangePasswordView {
+ void obtainChangePassResult(ChangePasswordResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
new file mode 100644
index 0000000..de3e421
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface ILoginOutView {
+ void obtainLoginOutResult(LoginOutResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
index 2b51d64..bcd16a9 100644
--- a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
@@ -3,9 +3,5 @@
import com.casic.dcms.bean.UserBean;
public interface IUserDataView {
- void showProgress();
-
- void hideProgress();
-
void obtainUserData(UserBean userBean);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
new file mode 100644
index 0000000..ad70b7a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
@@ -0,0 +1,61 @@
+package com.casic.dcms.ui;
+
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.luck.picture.lib.photoview.PhotoView;
+import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 17:09
+ * @email : 290677893@qq.com
+ **/
+public class BigPictureActivity extends BaseActivity {
+
+ @BindView(R.id.photoView)
+ PhotoView photoView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_big_pic;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ QMUIStatusBarHelper.setStatusBarLightMode(this);
+ }
+
+ @Override
+ public void initData() {
+// String mediaJson = getIntent().getStringExtra("mediaJson");
+//
+// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() {
+// }.getType());
+//
+// list = new ArrayList<>();
+// assert mediaList != null;
+// for (LocalMedia media : mediaList) {
+// list.add(media.getRealPath());
+// }
+ String path = getIntent().getStringExtra("path");
+ Glide.with(this).load(path).into(photoView);
+ }
+
+ @Override
+ public void initEvent() {
+// //轮播图
+// bigImageBanner.setImageLoader(new ImageLoader() {
+//
+// @Override
+// public void displayImage(Context context, Object path, ImageView imageView) {
+// Glide.with(context).load(path).into(imageView);
+// }
+// });
+// bigImageBanner.isAutoPlay(false);
+// bigImageBanner.setImages(list);
+// bigImageBanner.start();
+ }
+}
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 7c2bbc6..aa4100a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -109,6 +109,7 @@
private QMUITipDialog submitDialog;
private SubmitInfoBean infoBean;
private HashMap locationMap;
+ private Gson gson;
@Override
public int initLayoutView() {
@@ -129,6 +130,7 @@
@Override
public void initData() {
+ gson = new Gson();
//进入页面即创建提交表单的实体
infoBean = new SubmitInfoBean();
infoBean.setIsNeedRevisit("0");
@@ -388,6 +390,10 @@
imageGridViewAdapter.notifyDataSetChanged();
if (selectList.size() == 0) {
selectedResultView.setVisibility(View.GONE);
+ addImageView.setVisibility(View.VISIBLE);
+ } else {
+ selectedResultView.setVisibility(View.VISIBLE);
+ addImageView.setVisibility(View.GONE);
}
}
});
@@ -433,7 +439,10 @@
}
private void showBigImage(String path) {
-
+ Intent intent = new Intent(this, BigPictureActivity.class);
+// intent.putExtra("mediaJson", gson.toJson(mediaList));
+ intent.putExtra("path", path);
+ startActivity(intent);
}
@SuppressLint("ClickableViewAccessibility")
@@ -501,7 +510,7 @@
@Override
public void obtainLargeClassData(CaseLargeClassBean largeClassBean) {
-// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean));
+// Log.d(TAG, "obtainLargeClassData: " + gson.toJson(largeClassBean));
if (largeClassBean.isSuccess()) {
//设置大类数据
this.largeClassBeans = largeClassBean.getData();
@@ -556,13 +565,13 @@
} else {
ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING);
}
- Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean));
+ Log.d(TAG, "submitCase: " + gson.toJson(infoBean));
caseSubmitPresenter.onReadyRetrofitRequest(infoBean);
}
@Override
public void obtainSubmitResult(SubmitResultBean resultBean) {
- Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean));
+ Log.d(TAG, "obtainSubmitResult: " + gson.toJson(resultBean));
if (resultBean.isSuccess()) {
ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS);
} else {
diff --git a/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
new file mode 100644
index 0000000..891b7a3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
@@ -0,0 +1,124 @@
+package com.casic.dcms.ui;
+
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.widget.EditText;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.presenter.ChangePasswordPresenterImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+import com.casic.dcms.utils.RSAUtils;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.TokenHelper;
+import com.google.gson.Gson;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.security.PublicKey;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:20
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordActivity extends BaseActivity implements View.OnClickListener, IChangePasswordView {
+
+ private static final String TAG = "ChangePasswordActivity";
+ @BindView(R.id.passwordTopLayout)
+ QMUITopBarLayout passwordTopLayout;
+ @BindView(R.id.originalEditView)
+ EditText originalEditView;
+ @BindView(R.id.newEditView)
+ EditText newEditView;
+ @BindView(R.id.confirmEditView)
+ EditText confirmEditView;
+ @BindView(R.id.changePasswordButton)
+ QMUIRoundButton changePasswordButton;
+ private ChangePasswordPresenterImpl changePasswordPresenter;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_password;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ passwordTopLayout.setTitle("修改密码").setTextColor(ContextCompat.getColor(this, R.color.white));
+ passwordTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ passwordTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ changePasswordPresenter = new ChangePasswordPresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ changePasswordButton.setChangeAlphaWhenPress(true);
+ }
+
+ @OnClick(R.id.changePasswordButton)
+ @Override
+ public void onClick(View v) {
+ String oldPassword = originalEditView.getText().toString();
+ if (TextUtils.isEmpty(oldPassword)) {
+ ToastHelper.showToast("请先输入原密码", ToastHelper.WARING);
+ return;
+ }
+ String newPassword = newEditView.getText().toString();
+ if (TextUtils.isEmpty(newPassword)) {
+ ToastHelper.showToast("请先输入新密码", ToastHelper.WARING);
+ return;
+ }
+ String confirmPassword = confirmEditView.getText().toString();
+ if (TextUtils.isEmpty(confirmPassword)) {
+ ToastHelper.showToast("请再次输入新密码", ToastHelper.WARING);
+ return;
+ }
+ if (!newPassword.equals(confirmPassword)) {
+ ToastHelper.showToast("新密码和确认密码输入不一致,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (newPassword.length() < 6 || newPassword.length() > 12) {
+ ToastHelper.showToast("新密码长度不正确,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (!StringHelper.isLetterAndDigit(newPassword)) {
+ ToastHelper.showToast("新密码请输入6-12位的数字字母组合", ToastHelper.WARING);
+ return;
+ }
+ //数据校验OK,可以修改密码
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(TokenHelper.getPublicKey());
+ String oldPassKey = RSAUtils.encryptDataByPublicKey(oldPassword.getBytes(), publicKey);
+ String newPassKey = RSAUtils.encryptDataByPublicKey(newPassword.getBytes(), publicKey);
+
+// ChangeNewPasswordBean passwordBean = new ChangeNewPasswordBean();
+// passwordBean.setOldPwd(oldPassKey.replace("=\n", "="));
+// passwordBean.setNewPwd(newPassKey.replace("=\n", "="));
+ changePasswordPresenter.onReadyRetrofitRequest(oldPassKey, newPassKey);
+ }
+
+ @Override
+ public void obtainChangePassResult(ChangePasswordResultBean resultBean) {
+ Log.d(TAG, "obtainChangePassResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ ToastHelper.showToast("密码修改成功", ToastHelper.WARING);
+ finish();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
new file mode 100644
index 0000000..058f5d2
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
@@ -0,0 +1,49 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:05
+ * @email : 290677893@qq.com
+ **/
+public class HelpfulActivity extends BaseActivity {
+
+ @BindView(R.id.helpTopLayout)
+ QMUITopBarLayout helpTopLayout;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_help;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ helpTopLayout.setTitle("帮助中心").setTextColor(ContextCompat.getColor(this, R.color.white));
+ helpTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ helpTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
index 979deff..5535f61 100644
--- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
@@ -66,8 +66,8 @@
@Override
public void initData() {
- String userName = (String) SaveKeyValues.getValue("userName", "");
- String userPassword = (String) SaveKeyValues.getValue("userPassword", "");
+ String userName = (String) SaveKeyValues.getValue("name", "");
+ String userPassword = (String) SaveKeyValues.getValue("password", "");
userNameView.setText(userName);
userPasswordView.setText(userPassword);
if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) {
@@ -149,12 +149,15 @@
@Override
public void authenticateResult(PublicKeyBean result) {
if (result.isSuccess()) {
- PublicKey publicKey = RSAUtils.keyStrToPublicKey(result.getData().getPublicKey());
+ String keyString = result.getData().getPublicKey();
+ TokenHelper.savePublicKey(keyString);
+
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(keyString);
String userName = userNameView.getText().toString();
String userPassword = userPasswordView.getText().toString();
if (rememberPasswordView.isChecked()) {
- SaveKeyValues.putValue("userName", userName);
- SaveKeyValues.putValue("userPassword", userPassword);
+ SaveKeyValues.putValue("name", userName);
+ SaveKeyValues.putValue("password", userPassword);
}
if (autoLoginView.isChecked()) {
SaveKeyValues.putValue("autoLogin", true);
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 82eb21e..4351cb6 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -1,8 +1,12 @@
package com.casic.dcms.ui;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
import android.view.MenuItem;
import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
@@ -13,7 +17,10 @@
import com.casic.dcms.ui.fragment.HomePageFragment;
import com.casic.dcms.ui.fragment.MinePageFragment;
import com.casic.dcms.ui.fragment.PhonePageFragment;
+import com.casic.dcms.utils.BroadcastManager;
+import com.casic.dcms.utils.Constant;
import com.google.android.material.bottomnavigation.BottomNavigationView;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
import java.util.ArrayList;
import java.util.List;
@@ -22,12 +29,16 @@
public class MainActivity extends DoubleClickExitActivity {
+ @BindView(R.id.mainTopLayout)
+ QMUITopBarLayout mainTopLayout;
@BindView(R.id.mainViewPager)
ViewPager mainViewPager;
@BindView(R.id.bottomNavigation)
BottomNavigationView bottomNavigation;
+ private Context context = this;
private MenuItem menuItem;
private List pageList;
+ private BroadcastManager broadcastManager;
@Override
public int initLayoutView() {
@@ -36,7 +47,8 @@
@Override
protected void setupTopBarLayout() {
- //TODO 此页面无需实现
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
+ mainTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
}
@Override
@@ -46,6 +58,20 @@
pageList.add(new PhonePageFragment());
pageList.add(new DashBoardPageFragment());
pageList.add(new MinePageFragment());
+ broadcastManager = BroadcastManager.getInstance(this);
+ broadcastManager.addAction(Constant.LOGIN_OUT_ACTION, new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String action = intent.getAction();
+ if (action != null) {
+ String data = intent.getStringExtra("data");
+ assert data != null;
+ if (data.equals("请求成功")) {
+ finish();
+ }
+ }
+ }
+ });
}
@Override
@@ -56,15 +82,19 @@
switch (item.getItemId()) {
case R.id.navigation_home:
mainViewPager.setCurrentItem(0);
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_phone:
mainViewPager.setCurrentItem(1);
+ mainTopLayout.setTitle("通讯录").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_dashboard:
mainViewPager.setCurrentItem(2);
+ mainTopLayout.setTitle("消息").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_mine:
mainViewPager.setCurrentItem(3);
+ mainTopLayout.setTitle("我的").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
default:
break;
@@ -97,4 +127,10 @@
MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageList);
mainViewPager.setAdapter(mainPageAdapter);
}
+
+ @Override
+ protected void onDestroy() {
+ broadcastManager.destroy(Constant.LOGIN_OUT_ACTION);
+ super.onDestroy();
+ }
}
diff --git a/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java b/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java
new file mode 100644
index 0000000..07fdd6c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java
@@ -0,0 +1,59 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 15:22
+ * @email : 290677893@qq.com
+ **/
+public class UserInfoActivity extends BaseActivity {
+
+ @BindView(R.id.userTopLayout)
+ QMUITopBarLayout userTopLayout;
+ @BindView(R.id.userNameView)
+ TextView userNameView;
+ @BindView(R.id.userPhoneView)
+ TextView userPhoneView;
+ @BindView(R.id.userDeptView)
+ TextView userDeptView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_user;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ userTopLayout.setTitle("个人资料").setTextColor(ContextCompat.getColor(this, R.color.white));
+ userTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ userTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ userNameView.setText(StringHelper.getUserName());
+ userPhoneView.setText(StringHelper.getUserPhone());
+ userDeptView.setText(StringHelper.getUserDept());
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
index a1e68ba..ed8bf57 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
@@ -10,6 +10,11 @@
}
@Override
+ protected void setupTopBarLayout() {
+
+ }
+
+ @Override
protected void initData() {
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
index 4922b08..e467298 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
@@ -3,9 +3,7 @@
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
-import android.text.TextUtils;
import android.widget.TextView;
-import android.widget.Toast;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -19,7 +17,7 @@
import com.casic.dcms.mvp.presenter.UserDataPresenterImpl;
import com.casic.dcms.mvp.view.IUserDataView;
import com.casic.dcms.ui.CaseUploadActivity;
-import com.casic.dcms.utils.TokenHelper;
+import com.casic.dcms.utils.StringHelper;
import com.qmuiteam.qmui.widget.QMUIRadiusImageView;
import butterknife.BindView;
@@ -49,15 +47,13 @@
}
@Override
- protected void initData() {
+ protected void setupTopBarLayout() {
context = getContext();
- userDataPresenter = new UserDataPresenterImpl(this);
+ }
- String token = TokenHelper.getToken();
- if (TextUtils.isEmpty(token)) {
- Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show();
- return;
- }
+ @Override
+ protected void initData() {
+ userDataPresenter = new UserDataPresenterImpl(this);
userDataPresenter.onReadyRetrofitRequest();
}
@@ -86,6 +82,7 @@
break;
case 4:
+ break;
case 5:
break;
@@ -114,16 +111,6 @@
});
}
- @Override
- public void showProgress() {
-
- }
-
- @Override
- public void hideProgress() {
-
- }
-
@SuppressLint("SetTextI18n")
@Override
public void obtainUserData(UserBean userBean) {
@@ -135,8 +122,10 @@
UserBean.DataBean data = userBean.getData();
userNameView.setText(data.getName());
userDeptView.setText(data.getDeptName() + data.getRoleNames());
- } else {
- Toast.makeText(context, "", Toast.LENGTH_SHORT).show();
+
+ StringHelper.saveUserName(data.getName());
+ StringHelper.saveUserPhone(data.getPhone());
+ StringHelper.saveUserDept(data.getDeptName());
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
index f698e72..8dd20ef 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
@@ -1,21 +1,98 @@
package com.casic.dcms.ui.fragment;
+import android.content.Context;
+import android.content.Intent;
+import android.view.View;
+import android.widget.TextView;
+
+import com.casic.dcms.BuildConfig;
import com.casic.dcms.R;
import com.casic.dcms.base.BaseFragment;
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.presenter.LoginOutPresenterImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+import com.casic.dcms.ui.ChangePasswordActivity;
+import com.casic.dcms.ui.HelpfulActivity;
+import com.casic.dcms.ui.UserInfoActivity;
+import com.casic.dcms.utils.BroadcastManager;
+import com.casic.dcms.utils.Constant;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
-public class MinePageFragment extends BaseFragment {
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class MinePageFragment extends BaseFragment implements View.OnClickListener, ILoginOutView {
+
+ private static final String TAG = "MinePageFragment";
+
+ @BindView(R.id.versionCodeView)
+ TextView versionCodeView;
+ @BindView(R.id.loginOutButton)
+ QMUIRoundButton loginOutButton;
+
+ private Context context;
+ private LoginOutPresenterImpl loginOutPresenter;
+
@Override
protected int initLayoutView() {
return R.layout.fragment_mine;
}
@Override
- protected void initData() {
+ protected void setupTopBarLayout() {
+ context = getContext();
+ }
+ @Override
+ protected void initData() {
+ versionCodeView.setText(BuildConfig.VERSION_NAME);
+ loginOutPresenter = new LoginOutPresenterImpl(this);
}
@Override
protected void initEvent() {
+ loginOutButton.setChangeAlphaWhenPress(true);
+ }
+ @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.loginOutButton})
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.userNameLayout:
+ startActivity(new Intent(context, UserInfoActivity.class));
+ break;
+ case R.id.passwordLayout:
+ startActivity(new Intent(context, ChangePasswordActivity.class));
+ break;
+ case R.id.helpfulLayout:
+ startActivity(new Intent(context, HelpfulActivity.class));
+ break;
+ case R.id.loginOutButton:
+ //退出登录对话框
+ new QMUIDialog.MessageDialogBuilder(context)
+ .setTitle("退出登录")
+ .setMessage("确定要退出吗?")
+ .setCanceledOnTouchOutside(false)
+ .addAction("取消", (dialog, index) -> dialog.dismiss())
+ .addAction("确定", new QMUIDialogAction.ActionListener() {
+ @Override
+ public void onClick(QMUIDialog dialog, int index) {
+ loginOutPresenter.onReadyRetrofitRequest();
+ }
+ }).create().show();
+ break;
+ default:
+ break;
+ }
+ }
+
+ @Override
+ public void obtainLoginOutResult(LoginOutResultBean resultBean) {
+// Log.d(TAG, "obtainLoginOutResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ BroadcastManager.getInstance(context).sendBroadcast(Constant.LOGIN_OUT_ACTION, resultBean.getMessage());
+ }
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java
index f07526a..516830f 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java
@@ -10,6 +10,11 @@
}
@Override
+ protected void setupTopBarLayout() {
+
+ }
+
+ @Override
protected void initData() {
}
diff --git a/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java b/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
new file mode 100644
index 0000000..1b2bb6c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
@@ -0,0 +1,107 @@
+package com.casic.dcms.utils;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:55
+ * @email : 290677893@qq.com
+ **/
+public class BroadcastManager {
+ private static final String TAG = "BroadcastManager";
+ private Context mContext;
+ private static BroadcastManager broadcastManager;
+ private Map receiverMap;
+
+ private BroadcastManager(Context context) {
+ this.mContext = context;
+ receiverMap = new HashMap<>();
+ }
+
+ /**
+ * 双重锁单例
+ */
+ public static BroadcastManager getInstance(Context context) {
+ if (broadcastManager == null) {
+ synchronized (BroadcastManager.class) {
+ if (broadcastManager == null) {
+ broadcastManager = new BroadcastManager(context);
+ }
+ }
+ }
+ return broadcastManager;
+ }
+
+ /**
+ * 添加单个Action,广播的初始化
+ */
+ public void addAction(String action, BroadcastReceiver receiver) {
+ try {
+ IntentFilter filter = new IntentFilter();
+ filter.addAction(action);
+ mContext.registerReceiver(receiver, filter);
+ receiverMap.put(action, receiver);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 添加多个Action,广播的初始化
+ */
+ public void addAction(String[] actions, BroadcastReceiver receiver) {
+ try {
+ IntentFilter filter = new IntentFilter();
+ for (String action : actions) {
+ filter.addAction(action);
+ receiverMap.put(action, receiver);
+ }
+ mContext.registerReceiver(receiver, filter);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 发送广播
+ *
+ * @param action 唯一码
+ * @param msg 参数
+ */
+ public void sendBroadcast(String action, String msg) {
+ try {
+ Intent intent = new Intent();
+ intent.setAction(action);
+ intent.putExtra("data", msg);
+ mContext.sendBroadcast(intent);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 销毁广播
+ *
+ * @param actions action集合
+ */
+ public void destroy(String... actions) {
+ try {
+ if (receiverMap != null) {
+ for (String action : actions) {
+ BroadcastReceiver receiver = receiverMap.get(action);
+ if (receiver != null) {
+ mContext.unregisterReceiver(receiver);
+ }
+ }
+ }
+ } catch (IllegalArgumentException e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java
index 8c90ccd..e346e1d 100644
--- a/app/src/main/java/com/casic/dcms/utils/Constant.java
+++ b/app/src/main/java/com/casic/dcms/utils/Constant.java
@@ -33,4 +33,6 @@
public static final int PERMISSIONS_CODE = 999;
public static final String IP_KEY = "BASE_IP";
+
+ public static final String LOGIN_OUT_ACTION = "loginOut";
}
diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java
index 1781080..c5e0e37 100644
--- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java
@@ -2,4 +2,40 @@
public class StringHelper {
+ public static void saveUserName(String name) {
+ SaveKeyValues.putValue("userName", name);
+ }
+
+ public static String getUserName() {
+ return (String) SaveKeyValues.getValue("userName", "");
+ }
+
+ public static void saveUserPhone(String phone) {
+ SaveKeyValues.putValue("userPhone", phone);
+ }
+
+ public static String getUserPhone() {
+ return (String) SaveKeyValues.getValue("userPhone", "");
+ }
+
+ public static void saveUserDept(String dept) {
+ SaveKeyValues.putValue("userDept", dept);
+ }
+
+ public static String getUserDept() {
+ return (String) SaveKeyValues.getValue("userDept", "");
+ }
+
+ public static boolean isLetterAndDigit(String str) {
+ boolean isDigit = false;
+ boolean isLetter = false;
+ for (int i = 0; i < str.length(); i++) {
+ if (Character.isDigit(str.charAt(i))) {
+ isDigit = true;
+ } else if (Character.isLetter(str.charAt(i))) {
+ isLetter = true;
+ }
+ }
+ return isDigit && isLetter;
+ }
}
diff --git a/app/src/main/java/com/casic/dcms/utils/TokenHelper.java b/app/src/main/java/com/casic/dcms/utils/TokenHelper.java
index a02a103..0e63632 100644
--- a/app/src/main/java/com/casic/dcms/utils/TokenHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/TokenHelper.java
@@ -2,6 +2,14 @@
public class TokenHelper {
+ public static void savePublicKey(String key) {
+ SaveKeyValues.putValue("keyString", key);
+ }
+
+ public static String getPublicKey() {
+ return (String) SaveKeyValues.getValue("keyString", "");
+ }
+
public static void saveToken(String token) {
SaveKeyValues.putValue("token", token);
}
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
index d5dd48a..26c505c 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
@@ -2,6 +2,8 @@
import com.casic.dcms.bean.CaseLargeClassBean;
import com.casic.dcms.bean.CaseSmallClassBean;
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.bean.LoginOutResultBean;
import com.casic.dcms.bean.LoginResultBean;
import com.casic.dcms.bean.PublicKeyBean;
import com.casic.dcms.bean.SubmitInfoBean;
@@ -62,4 +64,20 @@
@POST("/case/add")
Observable submit(@Header("token") String token,
@Body SubmitInfoBean infoBean);
+
+ /**
+ * 退出登录
+ */
+ @GET("/user/logout")
+ Observable loginOut(@Header("token") String token);
+
+ /**
+ * 修改密码
+ * 如果有转义字符串,需要用FormUrlEncoded
+ */
+ @FormUrlEncoded
+ @POST("/mgr/changePwd")
+ Observable changePassword(@Header("token") String token,
+ @Field("oldPwd") String oldPwd,
+ @Field("newPwd") String newPwd);
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
new file mode 100644
index 0000000..fe6c5f7
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IChangePasswordPresenter {
+ void onReadyRetrofitRequest(String oldPwd, String newPwd);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
new file mode 100644
index 0000000..4e2c7c1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ILoginOutPresenter {
+ void onReadyRetrofitRequest();
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
new file mode 100644
index 0000000..74a6a24
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.LoginOutActionModelImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+
+public class LoginOutPresenterImpl extends BasePresenter implements ILoginOutPresenter, LoginOutActionModelImpl.OnLoginOutListener {
+
+ private ILoginOutView view;
+ private LoginOutActionModelImpl actionModel;
+
+ public LoginOutPresenterImpl(ILoginOutView loginOutView) {
+ this.view = loginOutView;
+ actionModel = new LoginOutActionModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest() {
+ addSubscription(actionModel.sendRetrofitRequest());
+ }
+
+ @Override
+ public void onSuccess(LoginOutResultBean resultBean) {
+ view.obtainLoginOutResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
index 2119b70..0bcea6a 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
@@ -17,7 +17,6 @@
@Override
public void onReadyRetrofitRequest() {
- view.showProgress();
addSubscription(actionModel.sendRetrofitRequest());
}
@@ -28,12 +27,11 @@
@Override
public void onSuccess(UserBean userBean) {
- view.hideProgress();
view.obtainUserData(userBean);
}
@Override
public void onFailure(Throwable throwable) {
- view.hideProgress();
+
}
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
new file mode 100644
index 0000000..c2a84ab
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface IChangePasswordView {
+ void obtainChangePassResult(ChangePasswordResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
new file mode 100644
index 0000000..de3e421
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface ILoginOutView {
+ void obtainLoginOutResult(LoginOutResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
index 2b51d64..bcd16a9 100644
--- a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
@@ -3,9 +3,5 @@
import com.casic.dcms.bean.UserBean;
public interface IUserDataView {
- void showProgress();
-
- void hideProgress();
-
void obtainUserData(UserBean userBean);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
new file mode 100644
index 0000000..ad70b7a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
@@ -0,0 +1,61 @@
+package com.casic.dcms.ui;
+
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.luck.picture.lib.photoview.PhotoView;
+import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 17:09
+ * @email : 290677893@qq.com
+ **/
+public class BigPictureActivity extends BaseActivity {
+
+ @BindView(R.id.photoView)
+ PhotoView photoView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_big_pic;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ QMUIStatusBarHelper.setStatusBarLightMode(this);
+ }
+
+ @Override
+ public void initData() {
+// String mediaJson = getIntent().getStringExtra("mediaJson");
+//
+// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() {
+// }.getType());
+//
+// list = new ArrayList<>();
+// assert mediaList != null;
+// for (LocalMedia media : mediaList) {
+// list.add(media.getRealPath());
+// }
+ String path = getIntent().getStringExtra("path");
+ Glide.with(this).load(path).into(photoView);
+ }
+
+ @Override
+ public void initEvent() {
+// //轮播图
+// bigImageBanner.setImageLoader(new ImageLoader() {
+//
+// @Override
+// public void displayImage(Context context, Object path, ImageView imageView) {
+// Glide.with(context).load(path).into(imageView);
+// }
+// });
+// bigImageBanner.isAutoPlay(false);
+// bigImageBanner.setImages(list);
+// bigImageBanner.start();
+ }
+}
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 7c2bbc6..aa4100a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -109,6 +109,7 @@
private QMUITipDialog submitDialog;
private SubmitInfoBean infoBean;
private HashMap locationMap;
+ private Gson gson;
@Override
public int initLayoutView() {
@@ -129,6 +130,7 @@
@Override
public void initData() {
+ gson = new Gson();
//进入页面即创建提交表单的实体
infoBean = new SubmitInfoBean();
infoBean.setIsNeedRevisit("0");
@@ -388,6 +390,10 @@
imageGridViewAdapter.notifyDataSetChanged();
if (selectList.size() == 0) {
selectedResultView.setVisibility(View.GONE);
+ addImageView.setVisibility(View.VISIBLE);
+ } else {
+ selectedResultView.setVisibility(View.VISIBLE);
+ addImageView.setVisibility(View.GONE);
}
}
});
@@ -433,7 +439,10 @@
}
private void showBigImage(String path) {
-
+ Intent intent = new Intent(this, BigPictureActivity.class);
+// intent.putExtra("mediaJson", gson.toJson(mediaList));
+ intent.putExtra("path", path);
+ startActivity(intent);
}
@SuppressLint("ClickableViewAccessibility")
@@ -501,7 +510,7 @@
@Override
public void obtainLargeClassData(CaseLargeClassBean largeClassBean) {
-// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean));
+// Log.d(TAG, "obtainLargeClassData: " + gson.toJson(largeClassBean));
if (largeClassBean.isSuccess()) {
//设置大类数据
this.largeClassBeans = largeClassBean.getData();
@@ -556,13 +565,13 @@
} else {
ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING);
}
- Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean));
+ Log.d(TAG, "submitCase: " + gson.toJson(infoBean));
caseSubmitPresenter.onReadyRetrofitRequest(infoBean);
}
@Override
public void obtainSubmitResult(SubmitResultBean resultBean) {
- Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean));
+ Log.d(TAG, "obtainSubmitResult: " + gson.toJson(resultBean));
if (resultBean.isSuccess()) {
ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS);
} else {
diff --git a/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
new file mode 100644
index 0000000..891b7a3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
@@ -0,0 +1,124 @@
+package com.casic.dcms.ui;
+
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.widget.EditText;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.presenter.ChangePasswordPresenterImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+import com.casic.dcms.utils.RSAUtils;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.TokenHelper;
+import com.google.gson.Gson;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.security.PublicKey;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:20
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordActivity extends BaseActivity implements View.OnClickListener, IChangePasswordView {
+
+ private static final String TAG = "ChangePasswordActivity";
+ @BindView(R.id.passwordTopLayout)
+ QMUITopBarLayout passwordTopLayout;
+ @BindView(R.id.originalEditView)
+ EditText originalEditView;
+ @BindView(R.id.newEditView)
+ EditText newEditView;
+ @BindView(R.id.confirmEditView)
+ EditText confirmEditView;
+ @BindView(R.id.changePasswordButton)
+ QMUIRoundButton changePasswordButton;
+ private ChangePasswordPresenterImpl changePasswordPresenter;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_password;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ passwordTopLayout.setTitle("修改密码").setTextColor(ContextCompat.getColor(this, R.color.white));
+ passwordTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ passwordTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ changePasswordPresenter = new ChangePasswordPresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ changePasswordButton.setChangeAlphaWhenPress(true);
+ }
+
+ @OnClick(R.id.changePasswordButton)
+ @Override
+ public void onClick(View v) {
+ String oldPassword = originalEditView.getText().toString();
+ if (TextUtils.isEmpty(oldPassword)) {
+ ToastHelper.showToast("请先输入原密码", ToastHelper.WARING);
+ return;
+ }
+ String newPassword = newEditView.getText().toString();
+ if (TextUtils.isEmpty(newPassword)) {
+ ToastHelper.showToast("请先输入新密码", ToastHelper.WARING);
+ return;
+ }
+ String confirmPassword = confirmEditView.getText().toString();
+ if (TextUtils.isEmpty(confirmPassword)) {
+ ToastHelper.showToast("请再次输入新密码", ToastHelper.WARING);
+ return;
+ }
+ if (!newPassword.equals(confirmPassword)) {
+ ToastHelper.showToast("新密码和确认密码输入不一致,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (newPassword.length() < 6 || newPassword.length() > 12) {
+ ToastHelper.showToast("新密码长度不正确,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (!StringHelper.isLetterAndDigit(newPassword)) {
+ ToastHelper.showToast("新密码请输入6-12位的数字字母组合", ToastHelper.WARING);
+ return;
+ }
+ //数据校验OK,可以修改密码
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(TokenHelper.getPublicKey());
+ String oldPassKey = RSAUtils.encryptDataByPublicKey(oldPassword.getBytes(), publicKey);
+ String newPassKey = RSAUtils.encryptDataByPublicKey(newPassword.getBytes(), publicKey);
+
+// ChangeNewPasswordBean passwordBean = new ChangeNewPasswordBean();
+// passwordBean.setOldPwd(oldPassKey.replace("=\n", "="));
+// passwordBean.setNewPwd(newPassKey.replace("=\n", "="));
+ changePasswordPresenter.onReadyRetrofitRequest(oldPassKey, newPassKey);
+ }
+
+ @Override
+ public void obtainChangePassResult(ChangePasswordResultBean resultBean) {
+ Log.d(TAG, "obtainChangePassResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ ToastHelper.showToast("密码修改成功", ToastHelper.WARING);
+ finish();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
new file mode 100644
index 0000000..058f5d2
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
@@ -0,0 +1,49 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:05
+ * @email : 290677893@qq.com
+ **/
+public class HelpfulActivity extends BaseActivity {
+
+ @BindView(R.id.helpTopLayout)
+ QMUITopBarLayout helpTopLayout;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_help;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ helpTopLayout.setTitle("帮助中心").setTextColor(ContextCompat.getColor(this, R.color.white));
+ helpTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ helpTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
index 979deff..5535f61 100644
--- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
@@ -66,8 +66,8 @@
@Override
public void initData() {
- String userName = (String) SaveKeyValues.getValue("userName", "");
- String userPassword = (String) SaveKeyValues.getValue("userPassword", "");
+ String userName = (String) SaveKeyValues.getValue("name", "");
+ String userPassword = (String) SaveKeyValues.getValue("password", "");
userNameView.setText(userName);
userPasswordView.setText(userPassword);
if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) {
@@ -149,12 +149,15 @@
@Override
public void authenticateResult(PublicKeyBean result) {
if (result.isSuccess()) {
- PublicKey publicKey = RSAUtils.keyStrToPublicKey(result.getData().getPublicKey());
+ String keyString = result.getData().getPublicKey();
+ TokenHelper.savePublicKey(keyString);
+
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(keyString);
String userName = userNameView.getText().toString();
String userPassword = userPasswordView.getText().toString();
if (rememberPasswordView.isChecked()) {
- SaveKeyValues.putValue("userName", userName);
- SaveKeyValues.putValue("userPassword", userPassword);
+ SaveKeyValues.putValue("name", userName);
+ SaveKeyValues.putValue("password", userPassword);
}
if (autoLoginView.isChecked()) {
SaveKeyValues.putValue("autoLogin", true);
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 82eb21e..4351cb6 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -1,8 +1,12 @@
package com.casic.dcms.ui;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
import android.view.MenuItem;
import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
@@ -13,7 +17,10 @@
import com.casic.dcms.ui.fragment.HomePageFragment;
import com.casic.dcms.ui.fragment.MinePageFragment;
import com.casic.dcms.ui.fragment.PhonePageFragment;
+import com.casic.dcms.utils.BroadcastManager;
+import com.casic.dcms.utils.Constant;
import com.google.android.material.bottomnavigation.BottomNavigationView;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
import java.util.ArrayList;
import java.util.List;
@@ -22,12 +29,16 @@
public class MainActivity extends DoubleClickExitActivity {
+ @BindView(R.id.mainTopLayout)
+ QMUITopBarLayout mainTopLayout;
@BindView(R.id.mainViewPager)
ViewPager mainViewPager;
@BindView(R.id.bottomNavigation)
BottomNavigationView bottomNavigation;
+ private Context context = this;
private MenuItem menuItem;
private List pageList;
+ private BroadcastManager broadcastManager;
@Override
public int initLayoutView() {
@@ -36,7 +47,8 @@
@Override
protected void setupTopBarLayout() {
- //TODO 此页面无需实现
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
+ mainTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
}
@Override
@@ -46,6 +58,20 @@
pageList.add(new PhonePageFragment());
pageList.add(new DashBoardPageFragment());
pageList.add(new MinePageFragment());
+ broadcastManager = BroadcastManager.getInstance(this);
+ broadcastManager.addAction(Constant.LOGIN_OUT_ACTION, new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String action = intent.getAction();
+ if (action != null) {
+ String data = intent.getStringExtra("data");
+ assert data != null;
+ if (data.equals("请求成功")) {
+ finish();
+ }
+ }
+ }
+ });
}
@Override
@@ -56,15 +82,19 @@
switch (item.getItemId()) {
case R.id.navigation_home:
mainViewPager.setCurrentItem(0);
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_phone:
mainViewPager.setCurrentItem(1);
+ mainTopLayout.setTitle("通讯录").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_dashboard:
mainViewPager.setCurrentItem(2);
+ mainTopLayout.setTitle("消息").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_mine:
mainViewPager.setCurrentItem(3);
+ mainTopLayout.setTitle("我的").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
default:
break;
@@ -97,4 +127,10 @@
MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageList);
mainViewPager.setAdapter(mainPageAdapter);
}
+
+ @Override
+ protected void onDestroy() {
+ broadcastManager.destroy(Constant.LOGIN_OUT_ACTION);
+ super.onDestroy();
+ }
}
diff --git a/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java b/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java
new file mode 100644
index 0000000..07fdd6c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java
@@ -0,0 +1,59 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 15:22
+ * @email : 290677893@qq.com
+ **/
+public class UserInfoActivity extends BaseActivity {
+
+ @BindView(R.id.userTopLayout)
+ QMUITopBarLayout userTopLayout;
+ @BindView(R.id.userNameView)
+ TextView userNameView;
+ @BindView(R.id.userPhoneView)
+ TextView userPhoneView;
+ @BindView(R.id.userDeptView)
+ TextView userDeptView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_user;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ userTopLayout.setTitle("个人资料").setTextColor(ContextCompat.getColor(this, R.color.white));
+ userTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ userTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ userNameView.setText(StringHelper.getUserName());
+ userPhoneView.setText(StringHelper.getUserPhone());
+ userDeptView.setText(StringHelper.getUserDept());
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
index a1e68ba..ed8bf57 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
@@ -10,6 +10,11 @@
}
@Override
+ protected void setupTopBarLayout() {
+
+ }
+
+ @Override
protected void initData() {
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
index 4922b08..e467298 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
@@ -3,9 +3,7 @@
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
-import android.text.TextUtils;
import android.widget.TextView;
-import android.widget.Toast;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -19,7 +17,7 @@
import com.casic.dcms.mvp.presenter.UserDataPresenterImpl;
import com.casic.dcms.mvp.view.IUserDataView;
import com.casic.dcms.ui.CaseUploadActivity;
-import com.casic.dcms.utils.TokenHelper;
+import com.casic.dcms.utils.StringHelper;
import com.qmuiteam.qmui.widget.QMUIRadiusImageView;
import butterknife.BindView;
@@ -49,15 +47,13 @@
}
@Override
- protected void initData() {
+ protected void setupTopBarLayout() {
context = getContext();
- userDataPresenter = new UserDataPresenterImpl(this);
+ }
- String token = TokenHelper.getToken();
- if (TextUtils.isEmpty(token)) {
- Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show();
- return;
- }
+ @Override
+ protected void initData() {
+ userDataPresenter = new UserDataPresenterImpl(this);
userDataPresenter.onReadyRetrofitRequest();
}
@@ -86,6 +82,7 @@
break;
case 4:
+ break;
case 5:
break;
@@ -114,16 +111,6 @@
});
}
- @Override
- public void showProgress() {
-
- }
-
- @Override
- public void hideProgress() {
-
- }
-
@SuppressLint("SetTextI18n")
@Override
public void obtainUserData(UserBean userBean) {
@@ -135,8 +122,10 @@
UserBean.DataBean data = userBean.getData();
userNameView.setText(data.getName());
userDeptView.setText(data.getDeptName() + data.getRoleNames());
- } else {
- Toast.makeText(context, "", Toast.LENGTH_SHORT).show();
+
+ StringHelper.saveUserName(data.getName());
+ StringHelper.saveUserPhone(data.getPhone());
+ StringHelper.saveUserDept(data.getDeptName());
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
index f698e72..8dd20ef 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
@@ -1,21 +1,98 @@
package com.casic.dcms.ui.fragment;
+import android.content.Context;
+import android.content.Intent;
+import android.view.View;
+import android.widget.TextView;
+
+import com.casic.dcms.BuildConfig;
import com.casic.dcms.R;
import com.casic.dcms.base.BaseFragment;
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.presenter.LoginOutPresenterImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+import com.casic.dcms.ui.ChangePasswordActivity;
+import com.casic.dcms.ui.HelpfulActivity;
+import com.casic.dcms.ui.UserInfoActivity;
+import com.casic.dcms.utils.BroadcastManager;
+import com.casic.dcms.utils.Constant;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
-public class MinePageFragment extends BaseFragment {
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class MinePageFragment extends BaseFragment implements View.OnClickListener, ILoginOutView {
+
+ private static final String TAG = "MinePageFragment";
+
+ @BindView(R.id.versionCodeView)
+ TextView versionCodeView;
+ @BindView(R.id.loginOutButton)
+ QMUIRoundButton loginOutButton;
+
+ private Context context;
+ private LoginOutPresenterImpl loginOutPresenter;
+
@Override
protected int initLayoutView() {
return R.layout.fragment_mine;
}
@Override
- protected void initData() {
+ protected void setupTopBarLayout() {
+ context = getContext();
+ }
+ @Override
+ protected void initData() {
+ versionCodeView.setText(BuildConfig.VERSION_NAME);
+ loginOutPresenter = new LoginOutPresenterImpl(this);
}
@Override
protected void initEvent() {
+ loginOutButton.setChangeAlphaWhenPress(true);
+ }
+ @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.loginOutButton})
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.userNameLayout:
+ startActivity(new Intent(context, UserInfoActivity.class));
+ break;
+ case R.id.passwordLayout:
+ startActivity(new Intent(context, ChangePasswordActivity.class));
+ break;
+ case R.id.helpfulLayout:
+ startActivity(new Intent(context, HelpfulActivity.class));
+ break;
+ case R.id.loginOutButton:
+ //退出登录对话框
+ new QMUIDialog.MessageDialogBuilder(context)
+ .setTitle("退出登录")
+ .setMessage("确定要退出吗?")
+ .setCanceledOnTouchOutside(false)
+ .addAction("取消", (dialog, index) -> dialog.dismiss())
+ .addAction("确定", new QMUIDialogAction.ActionListener() {
+ @Override
+ public void onClick(QMUIDialog dialog, int index) {
+ loginOutPresenter.onReadyRetrofitRequest();
+ }
+ }).create().show();
+ break;
+ default:
+ break;
+ }
+ }
+
+ @Override
+ public void obtainLoginOutResult(LoginOutResultBean resultBean) {
+// Log.d(TAG, "obtainLoginOutResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ BroadcastManager.getInstance(context).sendBroadcast(Constant.LOGIN_OUT_ACTION, resultBean.getMessage());
+ }
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java
index f07526a..516830f 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java
@@ -10,6 +10,11 @@
}
@Override
+ protected void setupTopBarLayout() {
+
+ }
+
+ @Override
protected void initData() {
}
diff --git a/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java b/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
new file mode 100644
index 0000000..1b2bb6c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
@@ -0,0 +1,107 @@
+package com.casic.dcms.utils;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:55
+ * @email : 290677893@qq.com
+ **/
+public class BroadcastManager {
+ private static final String TAG = "BroadcastManager";
+ private Context mContext;
+ private static BroadcastManager broadcastManager;
+ private Map receiverMap;
+
+ private BroadcastManager(Context context) {
+ this.mContext = context;
+ receiverMap = new HashMap<>();
+ }
+
+ /**
+ * 双重锁单例
+ */
+ public static BroadcastManager getInstance(Context context) {
+ if (broadcastManager == null) {
+ synchronized (BroadcastManager.class) {
+ if (broadcastManager == null) {
+ broadcastManager = new BroadcastManager(context);
+ }
+ }
+ }
+ return broadcastManager;
+ }
+
+ /**
+ * 添加单个Action,广播的初始化
+ */
+ public void addAction(String action, BroadcastReceiver receiver) {
+ try {
+ IntentFilter filter = new IntentFilter();
+ filter.addAction(action);
+ mContext.registerReceiver(receiver, filter);
+ receiverMap.put(action, receiver);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 添加多个Action,广播的初始化
+ */
+ public void addAction(String[] actions, BroadcastReceiver receiver) {
+ try {
+ IntentFilter filter = new IntentFilter();
+ for (String action : actions) {
+ filter.addAction(action);
+ receiverMap.put(action, receiver);
+ }
+ mContext.registerReceiver(receiver, filter);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 发送广播
+ *
+ * @param action 唯一码
+ * @param msg 参数
+ */
+ public void sendBroadcast(String action, String msg) {
+ try {
+ Intent intent = new Intent();
+ intent.setAction(action);
+ intent.putExtra("data", msg);
+ mContext.sendBroadcast(intent);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 销毁广播
+ *
+ * @param actions action集合
+ */
+ public void destroy(String... actions) {
+ try {
+ if (receiverMap != null) {
+ for (String action : actions) {
+ BroadcastReceiver receiver = receiverMap.get(action);
+ if (receiver != null) {
+ mContext.unregisterReceiver(receiver);
+ }
+ }
+ }
+ } catch (IllegalArgumentException e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java
index 8c90ccd..e346e1d 100644
--- a/app/src/main/java/com/casic/dcms/utils/Constant.java
+++ b/app/src/main/java/com/casic/dcms/utils/Constant.java
@@ -33,4 +33,6 @@
public static final int PERMISSIONS_CODE = 999;
public static final String IP_KEY = "BASE_IP";
+
+ public static final String LOGIN_OUT_ACTION = "loginOut";
}
diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java
index 1781080..c5e0e37 100644
--- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java
@@ -2,4 +2,40 @@
public class StringHelper {
+ public static void saveUserName(String name) {
+ SaveKeyValues.putValue("userName", name);
+ }
+
+ public static String getUserName() {
+ return (String) SaveKeyValues.getValue("userName", "");
+ }
+
+ public static void saveUserPhone(String phone) {
+ SaveKeyValues.putValue("userPhone", phone);
+ }
+
+ public static String getUserPhone() {
+ return (String) SaveKeyValues.getValue("userPhone", "");
+ }
+
+ public static void saveUserDept(String dept) {
+ SaveKeyValues.putValue("userDept", dept);
+ }
+
+ public static String getUserDept() {
+ return (String) SaveKeyValues.getValue("userDept", "");
+ }
+
+ public static boolean isLetterAndDigit(String str) {
+ boolean isDigit = false;
+ boolean isLetter = false;
+ for (int i = 0; i < str.length(); i++) {
+ if (Character.isDigit(str.charAt(i))) {
+ isDigit = true;
+ } else if (Character.isLetter(str.charAt(i))) {
+ isLetter = true;
+ }
+ }
+ return isDigit && isLetter;
+ }
}
diff --git a/app/src/main/java/com/casic/dcms/utils/TokenHelper.java b/app/src/main/java/com/casic/dcms/utils/TokenHelper.java
index a02a103..0e63632 100644
--- a/app/src/main/java/com/casic/dcms/utils/TokenHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/TokenHelper.java
@@ -2,6 +2,14 @@
public class TokenHelper {
+ public static void savePublicKey(String key) {
+ SaveKeyValues.putValue("keyString", key);
+ }
+
+ public static String getPublicKey() {
+ return (String) SaveKeyValues.getValue("keyString", "");
+ }
+
public static void saveToken(String token) {
SaveKeyValues.putValue("token", token);
}
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
index d5dd48a..26c505c 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
@@ -2,6 +2,8 @@
import com.casic.dcms.bean.CaseLargeClassBean;
import com.casic.dcms.bean.CaseSmallClassBean;
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.bean.LoginOutResultBean;
import com.casic.dcms.bean.LoginResultBean;
import com.casic.dcms.bean.PublicKeyBean;
import com.casic.dcms.bean.SubmitInfoBean;
@@ -62,4 +64,20 @@
@POST("/case/add")
Observable submit(@Header("token") String token,
@Body SubmitInfoBean infoBean);
+
+ /**
+ * 退出登录
+ */
+ @GET("/user/logout")
+ Observable loginOut(@Header("token") String token);
+
+ /**
+ * 修改密码
+ * 如果有转义字符串,需要用FormUrlEncoded
+ */
+ @FormUrlEncoded
+ @POST("/mgr/changePwd")
+ Observable changePassword(@Header("token") String token,
+ @Field("oldPwd") String oldPwd,
+ @Field("newPwd") String newPwd);
}
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
index b557907..1477a0c 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
@@ -4,6 +4,8 @@
import com.casic.dcms.bean.CaseLargeClassBean;
import com.casic.dcms.bean.CaseSmallClassBean;
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.bean.LoginOutResultBean;
import com.casic.dcms.bean.LoginResultBean;
import com.casic.dcms.bean.PublicKeyBean;
import com.casic.dcms.bean.SubmitInfoBean;
@@ -107,4 +109,22 @@
RetrofitService service = retrofit.create(RetrofitService.class);
return service.submit(TokenHelper.getToken(), infoBean);
}
+
+ /**
+ * 退出登录
+ */
+ public static Observable getLoginOutResult() {
+ Retrofit retrofit = createRetrofit();
+ RetrofitService service = retrofit.create(RetrofitService.class);
+ return service.loginOut(TokenHelper.getToken());
+ }
+
+ /**
+ * 修改密码
+ */
+ public static Observable getChangePasswordResult(String oldPwd, String newPwd) {
+ Retrofit retrofit = createRetrofit();
+ RetrofitService service = retrofit.create(RetrofitService.class);
+ return service.changePassword(TokenHelper.getToken(), oldPwd, newPwd);
+ }
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
new file mode 100644
index 0000000..fe6c5f7
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IChangePasswordPresenter {
+ void onReadyRetrofitRequest(String oldPwd, String newPwd);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
new file mode 100644
index 0000000..4e2c7c1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ILoginOutPresenter {
+ void onReadyRetrofitRequest();
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
new file mode 100644
index 0000000..74a6a24
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.LoginOutActionModelImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+
+public class LoginOutPresenterImpl extends BasePresenter implements ILoginOutPresenter, LoginOutActionModelImpl.OnLoginOutListener {
+
+ private ILoginOutView view;
+ private LoginOutActionModelImpl actionModel;
+
+ public LoginOutPresenterImpl(ILoginOutView loginOutView) {
+ this.view = loginOutView;
+ actionModel = new LoginOutActionModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest() {
+ addSubscription(actionModel.sendRetrofitRequest());
+ }
+
+ @Override
+ public void onSuccess(LoginOutResultBean resultBean) {
+ view.obtainLoginOutResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
index 2119b70..0bcea6a 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
@@ -17,7 +17,6 @@
@Override
public void onReadyRetrofitRequest() {
- view.showProgress();
addSubscription(actionModel.sendRetrofitRequest());
}
@@ -28,12 +27,11 @@
@Override
public void onSuccess(UserBean userBean) {
- view.hideProgress();
view.obtainUserData(userBean);
}
@Override
public void onFailure(Throwable throwable) {
- view.hideProgress();
+
}
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
new file mode 100644
index 0000000..c2a84ab
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface IChangePasswordView {
+ void obtainChangePassResult(ChangePasswordResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
new file mode 100644
index 0000000..de3e421
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface ILoginOutView {
+ void obtainLoginOutResult(LoginOutResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
index 2b51d64..bcd16a9 100644
--- a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
@@ -3,9 +3,5 @@
import com.casic.dcms.bean.UserBean;
public interface IUserDataView {
- void showProgress();
-
- void hideProgress();
-
void obtainUserData(UserBean userBean);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
new file mode 100644
index 0000000..ad70b7a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
@@ -0,0 +1,61 @@
+package com.casic.dcms.ui;
+
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.luck.picture.lib.photoview.PhotoView;
+import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 17:09
+ * @email : 290677893@qq.com
+ **/
+public class BigPictureActivity extends BaseActivity {
+
+ @BindView(R.id.photoView)
+ PhotoView photoView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_big_pic;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ QMUIStatusBarHelper.setStatusBarLightMode(this);
+ }
+
+ @Override
+ public void initData() {
+// String mediaJson = getIntent().getStringExtra("mediaJson");
+//
+// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() {
+// }.getType());
+//
+// list = new ArrayList<>();
+// assert mediaList != null;
+// for (LocalMedia media : mediaList) {
+// list.add(media.getRealPath());
+// }
+ String path = getIntent().getStringExtra("path");
+ Glide.with(this).load(path).into(photoView);
+ }
+
+ @Override
+ public void initEvent() {
+// //轮播图
+// bigImageBanner.setImageLoader(new ImageLoader() {
+//
+// @Override
+// public void displayImage(Context context, Object path, ImageView imageView) {
+// Glide.with(context).load(path).into(imageView);
+// }
+// });
+// bigImageBanner.isAutoPlay(false);
+// bigImageBanner.setImages(list);
+// bigImageBanner.start();
+ }
+}
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 7c2bbc6..aa4100a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -109,6 +109,7 @@
private QMUITipDialog submitDialog;
private SubmitInfoBean infoBean;
private HashMap locationMap;
+ private Gson gson;
@Override
public int initLayoutView() {
@@ -129,6 +130,7 @@
@Override
public void initData() {
+ gson = new Gson();
//进入页面即创建提交表单的实体
infoBean = new SubmitInfoBean();
infoBean.setIsNeedRevisit("0");
@@ -388,6 +390,10 @@
imageGridViewAdapter.notifyDataSetChanged();
if (selectList.size() == 0) {
selectedResultView.setVisibility(View.GONE);
+ addImageView.setVisibility(View.VISIBLE);
+ } else {
+ selectedResultView.setVisibility(View.VISIBLE);
+ addImageView.setVisibility(View.GONE);
}
}
});
@@ -433,7 +439,10 @@
}
private void showBigImage(String path) {
-
+ Intent intent = new Intent(this, BigPictureActivity.class);
+// intent.putExtra("mediaJson", gson.toJson(mediaList));
+ intent.putExtra("path", path);
+ startActivity(intent);
}
@SuppressLint("ClickableViewAccessibility")
@@ -501,7 +510,7 @@
@Override
public void obtainLargeClassData(CaseLargeClassBean largeClassBean) {
-// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean));
+// Log.d(TAG, "obtainLargeClassData: " + gson.toJson(largeClassBean));
if (largeClassBean.isSuccess()) {
//设置大类数据
this.largeClassBeans = largeClassBean.getData();
@@ -556,13 +565,13 @@
} else {
ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING);
}
- Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean));
+ Log.d(TAG, "submitCase: " + gson.toJson(infoBean));
caseSubmitPresenter.onReadyRetrofitRequest(infoBean);
}
@Override
public void obtainSubmitResult(SubmitResultBean resultBean) {
- Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean));
+ Log.d(TAG, "obtainSubmitResult: " + gson.toJson(resultBean));
if (resultBean.isSuccess()) {
ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS);
} else {
diff --git a/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
new file mode 100644
index 0000000..891b7a3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
@@ -0,0 +1,124 @@
+package com.casic.dcms.ui;
+
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.widget.EditText;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.presenter.ChangePasswordPresenterImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+import com.casic.dcms.utils.RSAUtils;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.TokenHelper;
+import com.google.gson.Gson;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.security.PublicKey;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:20
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordActivity extends BaseActivity implements View.OnClickListener, IChangePasswordView {
+
+ private static final String TAG = "ChangePasswordActivity";
+ @BindView(R.id.passwordTopLayout)
+ QMUITopBarLayout passwordTopLayout;
+ @BindView(R.id.originalEditView)
+ EditText originalEditView;
+ @BindView(R.id.newEditView)
+ EditText newEditView;
+ @BindView(R.id.confirmEditView)
+ EditText confirmEditView;
+ @BindView(R.id.changePasswordButton)
+ QMUIRoundButton changePasswordButton;
+ private ChangePasswordPresenterImpl changePasswordPresenter;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_password;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ passwordTopLayout.setTitle("修改密码").setTextColor(ContextCompat.getColor(this, R.color.white));
+ passwordTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ passwordTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ changePasswordPresenter = new ChangePasswordPresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ changePasswordButton.setChangeAlphaWhenPress(true);
+ }
+
+ @OnClick(R.id.changePasswordButton)
+ @Override
+ public void onClick(View v) {
+ String oldPassword = originalEditView.getText().toString();
+ if (TextUtils.isEmpty(oldPassword)) {
+ ToastHelper.showToast("请先输入原密码", ToastHelper.WARING);
+ return;
+ }
+ String newPassword = newEditView.getText().toString();
+ if (TextUtils.isEmpty(newPassword)) {
+ ToastHelper.showToast("请先输入新密码", ToastHelper.WARING);
+ return;
+ }
+ String confirmPassword = confirmEditView.getText().toString();
+ if (TextUtils.isEmpty(confirmPassword)) {
+ ToastHelper.showToast("请再次输入新密码", ToastHelper.WARING);
+ return;
+ }
+ if (!newPassword.equals(confirmPassword)) {
+ ToastHelper.showToast("新密码和确认密码输入不一致,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (newPassword.length() < 6 || newPassword.length() > 12) {
+ ToastHelper.showToast("新密码长度不正确,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (!StringHelper.isLetterAndDigit(newPassword)) {
+ ToastHelper.showToast("新密码请输入6-12位的数字字母组合", ToastHelper.WARING);
+ return;
+ }
+ //数据校验OK,可以修改密码
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(TokenHelper.getPublicKey());
+ String oldPassKey = RSAUtils.encryptDataByPublicKey(oldPassword.getBytes(), publicKey);
+ String newPassKey = RSAUtils.encryptDataByPublicKey(newPassword.getBytes(), publicKey);
+
+// ChangeNewPasswordBean passwordBean = new ChangeNewPasswordBean();
+// passwordBean.setOldPwd(oldPassKey.replace("=\n", "="));
+// passwordBean.setNewPwd(newPassKey.replace("=\n", "="));
+ changePasswordPresenter.onReadyRetrofitRequest(oldPassKey, newPassKey);
+ }
+
+ @Override
+ public void obtainChangePassResult(ChangePasswordResultBean resultBean) {
+ Log.d(TAG, "obtainChangePassResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ ToastHelper.showToast("密码修改成功", ToastHelper.WARING);
+ finish();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
new file mode 100644
index 0000000..058f5d2
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
@@ -0,0 +1,49 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:05
+ * @email : 290677893@qq.com
+ **/
+public class HelpfulActivity extends BaseActivity {
+
+ @BindView(R.id.helpTopLayout)
+ QMUITopBarLayout helpTopLayout;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_help;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ helpTopLayout.setTitle("帮助中心").setTextColor(ContextCompat.getColor(this, R.color.white));
+ helpTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ helpTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
index 979deff..5535f61 100644
--- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
@@ -66,8 +66,8 @@
@Override
public void initData() {
- String userName = (String) SaveKeyValues.getValue("userName", "");
- String userPassword = (String) SaveKeyValues.getValue("userPassword", "");
+ String userName = (String) SaveKeyValues.getValue("name", "");
+ String userPassword = (String) SaveKeyValues.getValue("password", "");
userNameView.setText(userName);
userPasswordView.setText(userPassword);
if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) {
@@ -149,12 +149,15 @@
@Override
public void authenticateResult(PublicKeyBean result) {
if (result.isSuccess()) {
- PublicKey publicKey = RSAUtils.keyStrToPublicKey(result.getData().getPublicKey());
+ String keyString = result.getData().getPublicKey();
+ TokenHelper.savePublicKey(keyString);
+
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(keyString);
String userName = userNameView.getText().toString();
String userPassword = userPasswordView.getText().toString();
if (rememberPasswordView.isChecked()) {
- SaveKeyValues.putValue("userName", userName);
- SaveKeyValues.putValue("userPassword", userPassword);
+ SaveKeyValues.putValue("name", userName);
+ SaveKeyValues.putValue("password", userPassword);
}
if (autoLoginView.isChecked()) {
SaveKeyValues.putValue("autoLogin", true);
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 82eb21e..4351cb6 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -1,8 +1,12 @@
package com.casic.dcms.ui;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
import android.view.MenuItem;
import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
@@ -13,7 +17,10 @@
import com.casic.dcms.ui.fragment.HomePageFragment;
import com.casic.dcms.ui.fragment.MinePageFragment;
import com.casic.dcms.ui.fragment.PhonePageFragment;
+import com.casic.dcms.utils.BroadcastManager;
+import com.casic.dcms.utils.Constant;
import com.google.android.material.bottomnavigation.BottomNavigationView;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
import java.util.ArrayList;
import java.util.List;
@@ -22,12 +29,16 @@
public class MainActivity extends DoubleClickExitActivity {
+ @BindView(R.id.mainTopLayout)
+ QMUITopBarLayout mainTopLayout;
@BindView(R.id.mainViewPager)
ViewPager mainViewPager;
@BindView(R.id.bottomNavigation)
BottomNavigationView bottomNavigation;
+ private Context context = this;
private MenuItem menuItem;
private List pageList;
+ private BroadcastManager broadcastManager;
@Override
public int initLayoutView() {
@@ -36,7 +47,8 @@
@Override
protected void setupTopBarLayout() {
- //TODO 此页面无需实现
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
+ mainTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
}
@Override
@@ -46,6 +58,20 @@
pageList.add(new PhonePageFragment());
pageList.add(new DashBoardPageFragment());
pageList.add(new MinePageFragment());
+ broadcastManager = BroadcastManager.getInstance(this);
+ broadcastManager.addAction(Constant.LOGIN_OUT_ACTION, new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String action = intent.getAction();
+ if (action != null) {
+ String data = intent.getStringExtra("data");
+ assert data != null;
+ if (data.equals("请求成功")) {
+ finish();
+ }
+ }
+ }
+ });
}
@Override
@@ -56,15 +82,19 @@
switch (item.getItemId()) {
case R.id.navigation_home:
mainViewPager.setCurrentItem(0);
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_phone:
mainViewPager.setCurrentItem(1);
+ mainTopLayout.setTitle("通讯录").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_dashboard:
mainViewPager.setCurrentItem(2);
+ mainTopLayout.setTitle("消息").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_mine:
mainViewPager.setCurrentItem(3);
+ mainTopLayout.setTitle("我的").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
default:
break;
@@ -97,4 +127,10 @@
MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageList);
mainViewPager.setAdapter(mainPageAdapter);
}
+
+ @Override
+ protected void onDestroy() {
+ broadcastManager.destroy(Constant.LOGIN_OUT_ACTION);
+ super.onDestroy();
+ }
}
diff --git a/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java b/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java
new file mode 100644
index 0000000..07fdd6c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java
@@ -0,0 +1,59 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 15:22
+ * @email : 290677893@qq.com
+ **/
+public class UserInfoActivity extends BaseActivity {
+
+ @BindView(R.id.userTopLayout)
+ QMUITopBarLayout userTopLayout;
+ @BindView(R.id.userNameView)
+ TextView userNameView;
+ @BindView(R.id.userPhoneView)
+ TextView userPhoneView;
+ @BindView(R.id.userDeptView)
+ TextView userDeptView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_user;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ userTopLayout.setTitle("个人资料").setTextColor(ContextCompat.getColor(this, R.color.white));
+ userTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ userTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ userNameView.setText(StringHelper.getUserName());
+ userPhoneView.setText(StringHelper.getUserPhone());
+ userDeptView.setText(StringHelper.getUserDept());
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
index a1e68ba..ed8bf57 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
@@ -10,6 +10,11 @@
}
@Override
+ protected void setupTopBarLayout() {
+
+ }
+
+ @Override
protected void initData() {
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
index 4922b08..e467298 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
@@ -3,9 +3,7 @@
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
-import android.text.TextUtils;
import android.widget.TextView;
-import android.widget.Toast;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -19,7 +17,7 @@
import com.casic.dcms.mvp.presenter.UserDataPresenterImpl;
import com.casic.dcms.mvp.view.IUserDataView;
import com.casic.dcms.ui.CaseUploadActivity;
-import com.casic.dcms.utils.TokenHelper;
+import com.casic.dcms.utils.StringHelper;
import com.qmuiteam.qmui.widget.QMUIRadiusImageView;
import butterknife.BindView;
@@ -49,15 +47,13 @@
}
@Override
- protected void initData() {
+ protected void setupTopBarLayout() {
context = getContext();
- userDataPresenter = new UserDataPresenterImpl(this);
+ }
- String token = TokenHelper.getToken();
- if (TextUtils.isEmpty(token)) {
- Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show();
- return;
- }
+ @Override
+ protected void initData() {
+ userDataPresenter = new UserDataPresenterImpl(this);
userDataPresenter.onReadyRetrofitRequest();
}
@@ -86,6 +82,7 @@
break;
case 4:
+ break;
case 5:
break;
@@ -114,16 +111,6 @@
});
}
- @Override
- public void showProgress() {
-
- }
-
- @Override
- public void hideProgress() {
-
- }
-
@SuppressLint("SetTextI18n")
@Override
public void obtainUserData(UserBean userBean) {
@@ -135,8 +122,10 @@
UserBean.DataBean data = userBean.getData();
userNameView.setText(data.getName());
userDeptView.setText(data.getDeptName() + data.getRoleNames());
- } else {
- Toast.makeText(context, "", Toast.LENGTH_SHORT).show();
+
+ StringHelper.saveUserName(data.getName());
+ StringHelper.saveUserPhone(data.getPhone());
+ StringHelper.saveUserDept(data.getDeptName());
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
index f698e72..8dd20ef 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
@@ -1,21 +1,98 @@
package com.casic.dcms.ui.fragment;
+import android.content.Context;
+import android.content.Intent;
+import android.view.View;
+import android.widget.TextView;
+
+import com.casic.dcms.BuildConfig;
import com.casic.dcms.R;
import com.casic.dcms.base.BaseFragment;
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.presenter.LoginOutPresenterImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+import com.casic.dcms.ui.ChangePasswordActivity;
+import com.casic.dcms.ui.HelpfulActivity;
+import com.casic.dcms.ui.UserInfoActivity;
+import com.casic.dcms.utils.BroadcastManager;
+import com.casic.dcms.utils.Constant;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
-public class MinePageFragment extends BaseFragment {
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class MinePageFragment extends BaseFragment implements View.OnClickListener, ILoginOutView {
+
+ private static final String TAG = "MinePageFragment";
+
+ @BindView(R.id.versionCodeView)
+ TextView versionCodeView;
+ @BindView(R.id.loginOutButton)
+ QMUIRoundButton loginOutButton;
+
+ private Context context;
+ private LoginOutPresenterImpl loginOutPresenter;
+
@Override
protected int initLayoutView() {
return R.layout.fragment_mine;
}
@Override
- protected void initData() {
+ protected void setupTopBarLayout() {
+ context = getContext();
+ }
+ @Override
+ protected void initData() {
+ versionCodeView.setText(BuildConfig.VERSION_NAME);
+ loginOutPresenter = new LoginOutPresenterImpl(this);
}
@Override
protected void initEvent() {
+ loginOutButton.setChangeAlphaWhenPress(true);
+ }
+ @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.loginOutButton})
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.userNameLayout:
+ startActivity(new Intent(context, UserInfoActivity.class));
+ break;
+ case R.id.passwordLayout:
+ startActivity(new Intent(context, ChangePasswordActivity.class));
+ break;
+ case R.id.helpfulLayout:
+ startActivity(new Intent(context, HelpfulActivity.class));
+ break;
+ case R.id.loginOutButton:
+ //退出登录对话框
+ new QMUIDialog.MessageDialogBuilder(context)
+ .setTitle("退出登录")
+ .setMessage("确定要退出吗?")
+ .setCanceledOnTouchOutside(false)
+ .addAction("取消", (dialog, index) -> dialog.dismiss())
+ .addAction("确定", new QMUIDialogAction.ActionListener() {
+ @Override
+ public void onClick(QMUIDialog dialog, int index) {
+ loginOutPresenter.onReadyRetrofitRequest();
+ }
+ }).create().show();
+ break;
+ default:
+ break;
+ }
+ }
+
+ @Override
+ public void obtainLoginOutResult(LoginOutResultBean resultBean) {
+// Log.d(TAG, "obtainLoginOutResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ BroadcastManager.getInstance(context).sendBroadcast(Constant.LOGIN_OUT_ACTION, resultBean.getMessage());
+ }
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java
index f07526a..516830f 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java
@@ -10,6 +10,11 @@
}
@Override
+ protected void setupTopBarLayout() {
+
+ }
+
+ @Override
protected void initData() {
}
diff --git a/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java b/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
new file mode 100644
index 0000000..1b2bb6c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
@@ -0,0 +1,107 @@
+package com.casic.dcms.utils;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:55
+ * @email : 290677893@qq.com
+ **/
+public class BroadcastManager {
+ private static final String TAG = "BroadcastManager";
+ private Context mContext;
+ private static BroadcastManager broadcastManager;
+ private Map receiverMap;
+
+ private BroadcastManager(Context context) {
+ this.mContext = context;
+ receiverMap = new HashMap<>();
+ }
+
+ /**
+ * 双重锁单例
+ */
+ public static BroadcastManager getInstance(Context context) {
+ if (broadcastManager == null) {
+ synchronized (BroadcastManager.class) {
+ if (broadcastManager == null) {
+ broadcastManager = new BroadcastManager(context);
+ }
+ }
+ }
+ return broadcastManager;
+ }
+
+ /**
+ * 添加单个Action,广播的初始化
+ */
+ public void addAction(String action, BroadcastReceiver receiver) {
+ try {
+ IntentFilter filter = new IntentFilter();
+ filter.addAction(action);
+ mContext.registerReceiver(receiver, filter);
+ receiverMap.put(action, receiver);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 添加多个Action,广播的初始化
+ */
+ public void addAction(String[] actions, BroadcastReceiver receiver) {
+ try {
+ IntentFilter filter = new IntentFilter();
+ for (String action : actions) {
+ filter.addAction(action);
+ receiverMap.put(action, receiver);
+ }
+ mContext.registerReceiver(receiver, filter);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 发送广播
+ *
+ * @param action 唯一码
+ * @param msg 参数
+ */
+ public void sendBroadcast(String action, String msg) {
+ try {
+ Intent intent = new Intent();
+ intent.setAction(action);
+ intent.putExtra("data", msg);
+ mContext.sendBroadcast(intent);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 销毁广播
+ *
+ * @param actions action集合
+ */
+ public void destroy(String... actions) {
+ try {
+ if (receiverMap != null) {
+ for (String action : actions) {
+ BroadcastReceiver receiver = receiverMap.get(action);
+ if (receiver != null) {
+ mContext.unregisterReceiver(receiver);
+ }
+ }
+ }
+ } catch (IllegalArgumentException e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java
index 8c90ccd..e346e1d 100644
--- a/app/src/main/java/com/casic/dcms/utils/Constant.java
+++ b/app/src/main/java/com/casic/dcms/utils/Constant.java
@@ -33,4 +33,6 @@
public static final int PERMISSIONS_CODE = 999;
public static final String IP_KEY = "BASE_IP";
+
+ public static final String LOGIN_OUT_ACTION = "loginOut";
}
diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java
index 1781080..c5e0e37 100644
--- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java
@@ -2,4 +2,40 @@
public class StringHelper {
+ public static void saveUserName(String name) {
+ SaveKeyValues.putValue("userName", name);
+ }
+
+ public static String getUserName() {
+ return (String) SaveKeyValues.getValue("userName", "");
+ }
+
+ public static void saveUserPhone(String phone) {
+ SaveKeyValues.putValue("userPhone", phone);
+ }
+
+ public static String getUserPhone() {
+ return (String) SaveKeyValues.getValue("userPhone", "");
+ }
+
+ public static void saveUserDept(String dept) {
+ SaveKeyValues.putValue("userDept", dept);
+ }
+
+ public static String getUserDept() {
+ return (String) SaveKeyValues.getValue("userDept", "");
+ }
+
+ public static boolean isLetterAndDigit(String str) {
+ boolean isDigit = false;
+ boolean isLetter = false;
+ for (int i = 0; i < str.length(); i++) {
+ if (Character.isDigit(str.charAt(i))) {
+ isDigit = true;
+ } else if (Character.isLetter(str.charAt(i))) {
+ isLetter = true;
+ }
+ }
+ return isDigit && isLetter;
+ }
}
diff --git a/app/src/main/java/com/casic/dcms/utils/TokenHelper.java b/app/src/main/java/com/casic/dcms/utils/TokenHelper.java
index a02a103..0e63632 100644
--- a/app/src/main/java/com/casic/dcms/utils/TokenHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/TokenHelper.java
@@ -2,6 +2,14 @@
public class TokenHelper {
+ public static void savePublicKey(String key) {
+ SaveKeyValues.putValue("keyString", key);
+ }
+
+ public static String getPublicKey() {
+ return (String) SaveKeyValues.getValue("keyString", "");
+ }
+
public static void saveToken(String token) {
SaveKeyValues.putValue("token", token);
}
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
index d5dd48a..26c505c 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
@@ -2,6 +2,8 @@
import com.casic.dcms.bean.CaseLargeClassBean;
import com.casic.dcms.bean.CaseSmallClassBean;
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.bean.LoginOutResultBean;
import com.casic.dcms.bean.LoginResultBean;
import com.casic.dcms.bean.PublicKeyBean;
import com.casic.dcms.bean.SubmitInfoBean;
@@ -62,4 +64,20 @@
@POST("/case/add")
Observable submit(@Header("token") String token,
@Body SubmitInfoBean infoBean);
+
+ /**
+ * 退出登录
+ */
+ @GET("/user/logout")
+ Observable loginOut(@Header("token") String token);
+
+ /**
+ * 修改密码
+ * 如果有转义字符串,需要用FormUrlEncoded
+ */
+ @FormUrlEncoded
+ @POST("/mgr/changePwd")
+ Observable changePassword(@Header("token") String token,
+ @Field("oldPwd") String oldPwd,
+ @Field("newPwd") String newPwd);
}
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
index b557907..1477a0c 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
@@ -4,6 +4,8 @@
import com.casic.dcms.bean.CaseLargeClassBean;
import com.casic.dcms.bean.CaseSmallClassBean;
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.bean.LoginOutResultBean;
import com.casic.dcms.bean.LoginResultBean;
import com.casic.dcms.bean.PublicKeyBean;
import com.casic.dcms.bean.SubmitInfoBean;
@@ -107,4 +109,22 @@
RetrofitService service = retrofit.create(RetrofitService.class);
return service.submit(TokenHelper.getToken(), infoBean);
}
+
+ /**
+ * 退出登录
+ */
+ public static Observable getLoginOutResult() {
+ Retrofit retrofit = createRetrofit();
+ RetrofitService service = retrofit.create(RetrofitService.class);
+ return service.loginOut(TokenHelper.getToken());
+ }
+
+ /**
+ * 修改密码
+ */
+ public static Observable getChangePasswordResult(String oldPwd, String newPwd) {
+ Retrofit retrofit = createRetrofit();
+ RetrofitService service = retrofit.create(RetrofitService.class);
+ return service.changePassword(TokenHelper.getToken(), oldPwd, newPwd);
+ }
}
diff --git a/app/src/main/res/drawable/bg_editor.xml b/app/src/main/res/drawable/bg_editor.xml
new file mode 100644
index 0000000..949d474
--- /dev/null
+++ b/app/src/main/res/drawable/bg_editor.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
new file mode 100644
index 0000000..fe6c5f7
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IChangePasswordPresenter {
+ void onReadyRetrofitRequest(String oldPwd, String newPwd);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
new file mode 100644
index 0000000..4e2c7c1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ILoginOutPresenter {
+ void onReadyRetrofitRequest();
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
new file mode 100644
index 0000000..74a6a24
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.LoginOutActionModelImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+
+public class LoginOutPresenterImpl extends BasePresenter implements ILoginOutPresenter, LoginOutActionModelImpl.OnLoginOutListener {
+
+ private ILoginOutView view;
+ private LoginOutActionModelImpl actionModel;
+
+ public LoginOutPresenterImpl(ILoginOutView loginOutView) {
+ this.view = loginOutView;
+ actionModel = new LoginOutActionModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest() {
+ addSubscription(actionModel.sendRetrofitRequest());
+ }
+
+ @Override
+ public void onSuccess(LoginOutResultBean resultBean) {
+ view.obtainLoginOutResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
index 2119b70..0bcea6a 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
@@ -17,7 +17,6 @@
@Override
public void onReadyRetrofitRequest() {
- view.showProgress();
addSubscription(actionModel.sendRetrofitRequest());
}
@@ -28,12 +27,11 @@
@Override
public void onSuccess(UserBean userBean) {
- view.hideProgress();
view.obtainUserData(userBean);
}
@Override
public void onFailure(Throwable throwable) {
- view.hideProgress();
+
}
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
new file mode 100644
index 0000000..c2a84ab
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface IChangePasswordView {
+ void obtainChangePassResult(ChangePasswordResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
new file mode 100644
index 0000000..de3e421
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface ILoginOutView {
+ void obtainLoginOutResult(LoginOutResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
index 2b51d64..bcd16a9 100644
--- a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
@@ -3,9 +3,5 @@
import com.casic.dcms.bean.UserBean;
public interface IUserDataView {
- void showProgress();
-
- void hideProgress();
-
void obtainUserData(UserBean userBean);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
new file mode 100644
index 0000000..ad70b7a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
@@ -0,0 +1,61 @@
+package com.casic.dcms.ui;
+
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.luck.picture.lib.photoview.PhotoView;
+import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 17:09
+ * @email : 290677893@qq.com
+ **/
+public class BigPictureActivity extends BaseActivity {
+
+ @BindView(R.id.photoView)
+ PhotoView photoView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_big_pic;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ QMUIStatusBarHelper.setStatusBarLightMode(this);
+ }
+
+ @Override
+ public void initData() {
+// String mediaJson = getIntent().getStringExtra("mediaJson");
+//
+// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() {
+// }.getType());
+//
+// list = new ArrayList<>();
+// assert mediaList != null;
+// for (LocalMedia media : mediaList) {
+// list.add(media.getRealPath());
+// }
+ String path = getIntent().getStringExtra("path");
+ Glide.with(this).load(path).into(photoView);
+ }
+
+ @Override
+ public void initEvent() {
+// //轮播图
+// bigImageBanner.setImageLoader(new ImageLoader() {
+//
+// @Override
+// public void displayImage(Context context, Object path, ImageView imageView) {
+// Glide.with(context).load(path).into(imageView);
+// }
+// });
+// bigImageBanner.isAutoPlay(false);
+// bigImageBanner.setImages(list);
+// bigImageBanner.start();
+ }
+}
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 7c2bbc6..aa4100a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -109,6 +109,7 @@
private QMUITipDialog submitDialog;
private SubmitInfoBean infoBean;
private HashMap locationMap;
+ private Gson gson;
@Override
public int initLayoutView() {
@@ -129,6 +130,7 @@
@Override
public void initData() {
+ gson = new Gson();
//进入页面即创建提交表单的实体
infoBean = new SubmitInfoBean();
infoBean.setIsNeedRevisit("0");
@@ -388,6 +390,10 @@
imageGridViewAdapter.notifyDataSetChanged();
if (selectList.size() == 0) {
selectedResultView.setVisibility(View.GONE);
+ addImageView.setVisibility(View.VISIBLE);
+ } else {
+ selectedResultView.setVisibility(View.VISIBLE);
+ addImageView.setVisibility(View.GONE);
}
}
});
@@ -433,7 +439,10 @@
}
private void showBigImage(String path) {
-
+ Intent intent = new Intent(this, BigPictureActivity.class);
+// intent.putExtra("mediaJson", gson.toJson(mediaList));
+ intent.putExtra("path", path);
+ startActivity(intent);
}
@SuppressLint("ClickableViewAccessibility")
@@ -501,7 +510,7 @@
@Override
public void obtainLargeClassData(CaseLargeClassBean largeClassBean) {
-// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean));
+// Log.d(TAG, "obtainLargeClassData: " + gson.toJson(largeClassBean));
if (largeClassBean.isSuccess()) {
//设置大类数据
this.largeClassBeans = largeClassBean.getData();
@@ -556,13 +565,13 @@
} else {
ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING);
}
- Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean));
+ Log.d(TAG, "submitCase: " + gson.toJson(infoBean));
caseSubmitPresenter.onReadyRetrofitRequest(infoBean);
}
@Override
public void obtainSubmitResult(SubmitResultBean resultBean) {
- Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean));
+ Log.d(TAG, "obtainSubmitResult: " + gson.toJson(resultBean));
if (resultBean.isSuccess()) {
ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS);
} else {
diff --git a/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
new file mode 100644
index 0000000..891b7a3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/ChangePasswordActivity.java
@@ -0,0 +1,124 @@
+package com.casic.dcms.ui;
+
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.widget.EditText;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.presenter.ChangePasswordPresenterImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+import com.casic.dcms.utils.RSAUtils;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.utils.TokenHelper;
+import com.google.gson.Gson;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.security.PublicKey;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:20
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordActivity extends BaseActivity implements View.OnClickListener, IChangePasswordView {
+
+ private static final String TAG = "ChangePasswordActivity";
+ @BindView(R.id.passwordTopLayout)
+ QMUITopBarLayout passwordTopLayout;
+ @BindView(R.id.originalEditView)
+ EditText originalEditView;
+ @BindView(R.id.newEditView)
+ EditText newEditView;
+ @BindView(R.id.confirmEditView)
+ EditText confirmEditView;
+ @BindView(R.id.changePasswordButton)
+ QMUIRoundButton changePasswordButton;
+ private ChangePasswordPresenterImpl changePasswordPresenter;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_password;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ passwordTopLayout.setTitle("修改密码").setTextColor(ContextCompat.getColor(this, R.color.white));
+ passwordTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ passwordTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ changePasswordPresenter = new ChangePasswordPresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ changePasswordButton.setChangeAlphaWhenPress(true);
+ }
+
+ @OnClick(R.id.changePasswordButton)
+ @Override
+ public void onClick(View v) {
+ String oldPassword = originalEditView.getText().toString();
+ if (TextUtils.isEmpty(oldPassword)) {
+ ToastHelper.showToast("请先输入原密码", ToastHelper.WARING);
+ return;
+ }
+ String newPassword = newEditView.getText().toString();
+ if (TextUtils.isEmpty(newPassword)) {
+ ToastHelper.showToast("请先输入新密码", ToastHelper.WARING);
+ return;
+ }
+ String confirmPassword = confirmEditView.getText().toString();
+ if (TextUtils.isEmpty(confirmPassword)) {
+ ToastHelper.showToast("请再次输入新密码", ToastHelper.WARING);
+ return;
+ }
+ if (!newPassword.equals(confirmPassword)) {
+ ToastHelper.showToast("新密码和确认密码输入不一致,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (newPassword.length() < 6 || newPassword.length() > 12) {
+ ToastHelper.showToast("新密码长度不正确,请重新输入", ToastHelper.WARING);
+ return;
+ }
+ if (!StringHelper.isLetterAndDigit(newPassword)) {
+ ToastHelper.showToast("新密码请输入6-12位的数字字母组合", ToastHelper.WARING);
+ return;
+ }
+ //数据校验OK,可以修改密码
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(TokenHelper.getPublicKey());
+ String oldPassKey = RSAUtils.encryptDataByPublicKey(oldPassword.getBytes(), publicKey);
+ String newPassKey = RSAUtils.encryptDataByPublicKey(newPassword.getBytes(), publicKey);
+
+// ChangeNewPasswordBean passwordBean = new ChangeNewPasswordBean();
+// passwordBean.setOldPwd(oldPassKey.replace("=\n", "="));
+// passwordBean.setNewPwd(newPassKey.replace("=\n", "="));
+ changePasswordPresenter.onReadyRetrofitRequest(oldPassKey, newPassKey);
+ }
+
+ @Override
+ public void obtainChangePassResult(ChangePasswordResultBean resultBean) {
+ Log.d(TAG, "obtainChangePassResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ ToastHelper.showToast("密码修改成功", ToastHelper.WARING);
+ finish();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
new file mode 100644
index 0000000..058f5d2
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/HelpfulActivity.java
@@ -0,0 +1,49 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 13:05
+ * @email : 290677893@qq.com
+ **/
+public class HelpfulActivity extends BaseActivity {
+
+ @BindView(R.id.helpTopLayout)
+ QMUITopBarLayout helpTopLayout;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_help;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ helpTopLayout.setTitle("帮助中心").setTextColor(ContextCompat.getColor(this, R.color.white));
+ helpTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ helpTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
index 979deff..5535f61 100644
--- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
@@ -66,8 +66,8 @@
@Override
public void initData() {
- String userName = (String) SaveKeyValues.getValue("userName", "");
- String userPassword = (String) SaveKeyValues.getValue("userPassword", "");
+ String userName = (String) SaveKeyValues.getValue("name", "");
+ String userPassword = (String) SaveKeyValues.getValue("password", "");
userNameView.setText(userName);
userPasswordView.setText(userPassword);
if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) {
@@ -149,12 +149,15 @@
@Override
public void authenticateResult(PublicKeyBean result) {
if (result.isSuccess()) {
- PublicKey publicKey = RSAUtils.keyStrToPublicKey(result.getData().getPublicKey());
+ String keyString = result.getData().getPublicKey();
+ TokenHelper.savePublicKey(keyString);
+
+ PublicKey publicKey = RSAUtils.keyStrToPublicKey(keyString);
String userName = userNameView.getText().toString();
String userPassword = userPasswordView.getText().toString();
if (rememberPasswordView.isChecked()) {
- SaveKeyValues.putValue("userName", userName);
- SaveKeyValues.putValue("userPassword", userPassword);
+ SaveKeyValues.putValue("name", userName);
+ SaveKeyValues.putValue("password", userPassword);
}
if (autoLoginView.isChecked()) {
SaveKeyValues.putValue("autoLogin", true);
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 82eb21e..4351cb6 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -1,8 +1,12 @@
package com.casic.dcms.ui;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
import android.view.MenuItem;
import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
@@ -13,7 +17,10 @@
import com.casic.dcms.ui.fragment.HomePageFragment;
import com.casic.dcms.ui.fragment.MinePageFragment;
import com.casic.dcms.ui.fragment.PhonePageFragment;
+import com.casic.dcms.utils.BroadcastManager;
+import com.casic.dcms.utils.Constant;
import com.google.android.material.bottomnavigation.BottomNavigationView;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
import java.util.ArrayList;
import java.util.List;
@@ -22,12 +29,16 @@
public class MainActivity extends DoubleClickExitActivity {
+ @BindView(R.id.mainTopLayout)
+ QMUITopBarLayout mainTopLayout;
@BindView(R.id.mainViewPager)
ViewPager mainViewPager;
@BindView(R.id.bottomNavigation)
BottomNavigationView bottomNavigation;
+ private Context context = this;
private MenuItem menuItem;
private List pageList;
+ private BroadcastManager broadcastManager;
@Override
public int initLayoutView() {
@@ -36,7 +47,8 @@
@Override
protected void setupTopBarLayout() {
- //TODO 此页面无需实现
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
+ mainTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
}
@Override
@@ -46,6 +58,20 @@
pageList.add(new PhonePageFragment());
pageList.add(new DashBoardPageFragment());
pageList.add(new MinePageFragment());
+ broadcastManager = BroadcastManager.getInstance(this);
+ broadcastManager.addAction(Constant.LOGIN_OUT_ACTION, new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String action = intent.getAction();
+ if (action != null) {
+ String data = intent.getStringExtra("data");
+ assert data != null;
+ if (data.equals("请求成功")) {
+ finish();
+ }
+ }
+ }
+ });
}
@Override
@@ -56,15 +82,19 @@
switch (item.getItemId()) {
case R.id.navigation_home:
mainViewPager.setCurrentItem(0);
+ mainTopLayout.setTitle("首页").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_phone:
mainViewPager.setCurrentItem(1);
+ mainTopLayout.setTitle("通讯录").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_dashboard:
mainViewPager.setCurrentItem(2);
+ mainTopLayout.setTitle("消息").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
case R.id.navigation_mine:
mainViewPager.setCurrentItem(3);
+ mainTopLayout.setTitle("我的").setTextColor(ContextCompat.getColor(context, R.color.white));
break;
default:
break;
@@ -97,4 +127,10 @@
MainPageAdapter mainPageAdapter = new MainPageAdapter(getSupportFragmentManager(), pageList);
mainViewPager.setAdapter(mainPageAdapter);
}
+
+ @Override
+ protected void onDestroy() {
+ broadcastManager.destroy(Constant.LOGIN_OUT_ACTION);
+ super.onDestroy();
+ }
}
diff --git a/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java b/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java
new file mode 100644
index 0000000..07fdd6c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/UserInfoActivity.java
@@ -0,0 +1,59 @@
+package com.casic.dcms.ui;
+
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.utils.StringHelper;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 15:22
+ * @email : 290677893@qq.com
+ **/
+public class UserInfoActivity extends BaseActivity {
+
+ @BindView(R.id.userTopLayout)
+ QMUITopBarLayout userTopLayout;
+ @BindView(R.id.userNameView)
+ TextView userNameView;
+ @BindView(R.id.userPhoneView)
+ TextView userPhoneView;
+ @BindView(R.id.userDeptView)
+ TextView userDeptView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_user;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ userTopLayout.setTitle("个人资料").setTextColor(ContextCompat.getColor(this, R.color.white));
+ userTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ userTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ userNameView.setText(StringHelper.getUserName());
+ userPhoneView.setText(StringHelper.getUserPhone());
+ userDeptView.setText(StringHelper.getUserDept());
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
index a1e68ba..ed8bf57 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/DashBoardPageFragment.java
@@ -10,6 +10,11 @@
}
@Override
+ protected void setupTopBarLayout() {
+
+ }
+
+ @Override
protected void initData() {
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
index 4922b08..e467298 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java
@@ -3,9 +3,7 @@
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
-import android.text.TextUtils;
import android.widget.TextView;
-import android.widget.Toast;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -19,7 +17,7 @@
import com.casic.dcms.mvp.presenter.UserDataPresenterImpl;
import com.casic.dcms.mvp.view.IUserDataView;
import com.casic.dcms.ui.CaseUploadActivity;
-import com.casic.dcms.utils.TokenHelper;
+import com.casic.dcms.utils.StringHelper;
import com.qmuiteam.qmui.widget.QMUIRadiusImageView;
import butterknife.BindView;
@@ -49,15 +47,13 @@
}
@Override
- protected void initData() {
+ protected void setupTopBarLayout() {
context = getContext();
- userDataPresenter = new UserDataPresenterImpl(this);
+ }
- String token = TokenHelper.getToken();
- if (TextUtils.isEmpty(token)) {
- Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show();
- return;
- }
+ @Override
+ protected void initData() {
+ userDataPresenter = new UserDataPresenterImpl(this);
userDataPresenter.onReadyRetrofitRequest();
}
@@ -86,6 +82,7 @@
break;
case 4:
+ break;
case 5:
break;
@@ -114,16 +111,6 @@
});
}
- @Override
- public void showProgress() {
-
- }
-
- @Override
- public void hideProgress() {
-
- }
-
@SuppressLint("SetTextI18n")
@Override
public void obtainUserData(UserBean userBean) {
@@ -135,8 +122,10 @@
UserBean.DataBean data = userBean.getData();
userNameView.setText(data.getName());
userDeptView.setText(data.getDeptName() + data.getRoleNames());
- } else {
- Toast.makeText(context, "", Toast.LENGTH_SHORT).show();
+
+ StringHelper.saveUserName(data.getName());
+ StringHelper.saveUserPhone(data.getPhone());
+ StringHelper.saveUserDept(data.getDeptName());
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
index f698e72..8dd20ef 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
@@ -1,21 +1,98 @@
package com.casic.dcms.ui.fragment;
+import android.content.Context;
+import android.content.Intent;
+import android.view.View;
+import android.widget.TextView;
+
+import com.casic.dcms.BuildConfig;
import com.casic.dcms.R;
import com.casic.dcms.base.BaseFragment;
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.presenter.LoginOutPresenterImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+import com.casic.dcms.ui.ChangePasswordActivity;
+import com.casic.dcms.ui.HelpfulActivity;
+import com.casic.dcms.ui.UserInfoActivity;
+import com.casic.dcms.utils.BroadcastManager;
+import com.casic.dcms.utils.Constant;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
-public class MinePageFragment extends BaseFragment {
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class MinePageFragment extends BaseFragment implements View.OnClickListener, ILoginOutView {
+
+ private static final String TAG = "MinePageFragment";
+
+ @BindView(R.id.versionCodeView)
+ TextView versionCodeView;
+ @BindView(R.id.loginOutButton)
+ QMUIRoundButton loginOutButton;
+
+ private Context context;
+ private LoginOutPresenterImpl loginOutPresenter;
+
@Override
protected int initLayoutView() {
return R.layout.fragment_mine;
}
@Override
- protected void initData() {
+ protected void setupTopBarLayout() {
+ context = getContext();
+ }
+ @Override
+ protected void initData() {
+ versionCodeView.setText(BuildConfig.VERSION_NAME);
+ loginOutPresenter = new LoginOutPresenterImpl(this);
}
@Override
protected void initEvent() {
+ loginOutButton.setChangeAlphaWhenPress(true);
+ }
+ @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.loginOutButton})
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.userNameLayout:
+ startActivity(new Intent(context, UserInfoActivity.class));
+ break;
+ case R.id.passwordLayout:
+ startActivity(new Intent(context, ChangePasswordActivity.class));
+ break;
+ case R.id.helpfulLayout:
+ startActivity(new Intent(context, HelpfulActivity.class));
+ break;
+ case R.id.loginOutButton:
+ //退出登录对话框
+ new QMUIDialog.MessageDialogBuilder(context)
+ .setTitle("退出登录")
+ .setMessage("确定要退出吗?")
+ .setCanceledOnTouchOutside(false)
+ .addAction("取消", (dialog, index) -> dialog.dismiss())
+ .addAction("确定", new QMUIDialogAction.ActionListener() {
+ @Override
+ public void onClick(QMUIDialog dialog, int index) {
+ loginOutPresenter.onReadyRetrofitRequest();
+ }
+ }).create().show();
+ break;
+ default:
+ break;
+ }
+ }
+
+ @Override
+ public void obtainLoginOutResult(LoginOutResultBean resultBean) {
+// Log.d(TAG, "obtainLoginOutResult: " + new Gson().toJson(resultBean));
+ if (resultBean.isSuccess()) {
+ BroadcastManager.getInstance(context).sendBroadcast(Constant.LOGIN_OUT_ACTION, resultBean.getMessage());
+ }
}
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java
index f07526a..516830f 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/PhonePageFragment.java
@@ -10,6 +10,11 @@
}
@Override
+ protected void setupTopBarLayout() {
+
+ }
+
+ @Override
protected void initData() {
}
diff --git a/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java b/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
new file mode 100644
index 0000000..1b2bb6c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
@@ -0,0 +1,107 @@
+package com.casic.dcms.utils;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:55
+ * @email : 290677893@qq.com
+ **/
+public class BroadcastManager {
+ private static final String TAG = "BroadcastManager";
+ private Context mContext;
+ private static BroadcastManager broadcastManager;
+ private Map receiverMap;
+
+ private BroadcastManager(Context context) {
+ this.mContext = context;
+ receiverMap = new HashMap<>();
+ }
+
+ /**
+ * 双重锁单例
+ */
+ public static BroadcastManager getInstance(Context context) {
+ if (broadcastManager == null) {
+ synchronized (BroadcastManager.class) {
+ if (broadcastManager == null) {
+ broadcastManager = new BroadcastManager(context);
+ }
+ }
+ }
+ return broadcastManager;
+ }
+
+ /**
+ * 添加单个Action,广播的初始化
+ */
+ public void addAction(String action, BroadcastReceiver receiver) {
+ try {
+ IntentFilter filter = new IntentFilter();
+ filter.addAction(action);
+ mContext.registerReceiver(receiver, filter);
+ receiverMap.put(action, receiver);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 添加多个Action,广播的初始化
+ */
+ public void addAction(String[] actions, BroadcastReceiver receiver) {
+ try {
+ IntentFilter filter = new IntentFilter();
+ for (String action : actions) {
+ filter.addAction(action);
+ receiverMap.put(action, receiver);
+ }
+ mContext.registerReceiver(receiver, filter);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 发送广播
+ *
+ * @param action 唯一码
+ * @param msg 参数
+ */
+ public void sendBroadcast(String action, String msg) {
+ try {
+ Intent intent = new Intent();
+ intent.setAction(action);
+ intent.putExtra("data", msg);
+ mContext.sendBroadcast(intent);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 销毁广播
+ *
+ * @param actions action集合
+ */
+ public void destroy(String... actions) {
+ try {
+ if (receiverMap != null) {
+ for (String action : actions) {
+ BroadcastReceiver receiver = receiverMap.get(action);
+ if (receiver != null) {
+ mContext.unregisterReceiver(receiver);
+ }
+ }
+ }
+ } catch (IllegalArgumentException e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java
index 8c90ccd..e346e1d 100644
--- a/app/src/main/java/com/casic/dcms/utils/Constant.java
+++ b/app/src/main/java/com/casic/dcms/utils/Constant.java
@@ -33,4 +33,6 @@
public static final int PERMISSIONS_CODE = 999;
public static final String IP_KEY = "BASE_IP";
+
+ public static final String LOGIN_OUT_ACTION = "loginOut";
}
diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java
index 1781080..c5e0e37 100644
--- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java
@@ -2,4 +2,40 @@
public class StringHelper {
+ public static void saveUserName(String name) {
+ SaveKeyValues.putValue("userName", name);
+ }
+
+ public static String getUserName() {
+ return (String) SaveKeyValues.getValue("userName", "");
+ }
+
+ public static void saveUserPhone(String phone) {
+ SaveKeyValues.putValue("userPhone", phone);
+ }
+
+ public static String getUserPhone() {
+ return (String) SaveKeyValues.getValue("userPhone", "");
+ }
+
+ public static void saveUserDept(String dept) {
+ SaveKeyValues.putValue("userDept", dept);
+ }
+
+ public static String getUserDept() {
+ return (String) SaveKeyValues.getValue("userDept", "");
+ }
+
+ public static boolean isLetterAndDigit(String str) {
+ boolean isDigit = false;
+ boolean isLetter = false;
+ for (int i = 0; i < str.length(); i++) {
+ if (Character.isDigit(str.charAt(i))) {
+ isDigit = true;
+ } else if (Character.isLetter(str.charAt(i))) {
+ isLetter = true;
+ }
+ }
+ return isDigit && isLetter;
+ }
}
diff --git a/app/src/main/java/com/casic/dcms/utils/TokenHelper.java b/app/src/main/java/com/casic/dcms/utils/TokenHelper.java
index a02a103..0e63632 100644
--- a/app/src/main/java/com/casic/dcms/utils/TokenHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/TokenHelper.java
@@ -2,6 +2,14 @@
public class TokenHelper {
+ public static void savePublicKey(String key) {
+ SaveKeyValues.putValue("keyString", key);
+ }
+
+ public static String getPublicKey() {
+ return (String) SaveKeyValues.getValue("keyString", "");
+ }
+
public static void saveToken(String token) {
SaveKeyValues.putValue("token", token);
}
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
index d5dd48a..26c505c 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
@@ -2,6 +2,8 @@
import com.casic.dcms.bean.CaseLargeClassBean;
import com.casic.dcms.bean.CaseSmallClassBean;
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.bean.LoginOutResultBean;
import com.casic.dcms.bean.LoginResultBean;
import com.casic.dcms.bean.PublicKeyBean;
import com.casic.dcms.bean.SubmitInfoBean;
@@ -62,4 +64,20 @@
@POST("/case/add")
Observable submit(@Header("token") String token,
@Body SubmitInfoBean infoBean);
+
+ /**
+ * 退出登录
+ */
+ @GET("/user/logout")
+ Observable loginOut(@Header("token") String token);
+
+ /**
+ * 修改密码
+ * 如果有转义字符串,需要用FormUrlEncoded
+ */
+ @FormUrlEncoded
+ @POST("/mgr/changePwd")
+ Observable changePassword(@Header("token") String token,
+ @Field("oldPwd") String oldPwd,
+ @Field("newPwd") String newPwd);
}
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
index b557907..1477a0c 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
@@ -4,6 +4,8 @@
import com.casic.dcms.bean.CaseLargeClassBean;
import com.casic.dcms.bean.CaseSmallClassBean;
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.bean.LoginOutResultBean;
import com.casic.dcms.bean.LoginResultBean;
import com.casic.dcms.bean.PublicKeyBean;
import com.casic.dcms.bean.SubmitInfoBean;
@@ -107,4 +109,22 @@
RetrofitService service = retrofit.create(RetrofitService.class);
return service.submit(TokenHelper.getToken(), infoBean);
}
+
+ /**
+ * 退出登录
+ */
+ public static Observable getLoginOutResult() {
+ Retrofit retrofit = createRetrofit();
+ RetrofitService service = retrofit.create(RetrofitService.class);
+ return service.loginOut(TokenHelper.getToken());
+ }
+
+ /**
+ * 修改密码
+ */
+ public static Observable getChangePasswordResult(String oldPwd, String newPwd) {
+ Retrofit retrofit = createRetrofit();
+ RetrofitService service = retrofit.create(RetrofitService.class);
+ return service.changePassword(TokenHelper.getToken(), oldPwd, newPwd);
+ }
}
diff --git a/app/src/main/res/drawable/bg_editor.xml b/app/src/main/res/drawable/bg_editor.xml
new file mode 100644
index 0000000..949d474
--- /dev/null
+++ b/app/src/main/res/drawable/bg_editor.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_left_white.xml b/app/src/main/res/drawable/ic_left_white.xml
new file mode 100644
index 0000000..5487d77
--- /dev/null
+++ b/app/src/main/res/drawable/ic_left_white.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6a15228..7befe7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
+
+
+
+
2000) {
- Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ ToastHelper.showToast("再按一次退出程序", ToastHelper.DEFAULT);
clickTime = System.currentTimeMillis();
return true;
} else {
diff --git a/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
new file mode 100644
index 0000000..b1fd3d8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/ChangePasswordResultBean.java
@@ -0,0 +1,63 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 14:18
+ * @email : 290677893@qq.com
+ **/
+public class ChangePasswordResultBean {
+
+ /**
+ * code : 500.0
+ * data :
+ * exceptionClazz :
+ * message : 服务器异常
+ * success : false
+ */
+
+ private double code;
+ private String data;
+ private String exceptionClazz;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getExceptionClazz() {
+ return exceptionClazz;
+ }
+
+ public void setExceptionClazz(String exceptionClazz) {
+ this.exceptionClazz = exceptionClazz;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
new file mode 100644
index 0000000..8bbc26c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/LoginOutResultBean.java
@@ -0,0 +1,53 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:37
+ * @email : 290677893@qq.com
+ **/
+public class LoginOutResultBean {
+
+ /**
+ * code : 200
+ * data :
+ * message : 请求成功
+ * success : true
+ */
+
+ private int code;
+ private String data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
index d307cbc..f23402b 100644
--- a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
+++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java
@@ -22,9 +22,9 @@
* @param gridId 万米网格ID,后期地图接入后维护
* @param description 案件描述
* @param fieldintro 位置描述
- * @param fileIdVerify 核实照片id,即照片路径
- * @param bzhours 限制完成总时限(小时)
- * @param bzminis 限制完成总时限(分)
+ * @param fileIdVerify 核实照片id,即照片路径(非必填)
+ * @param bzhours 限制完成总时限(小时)(非必填)
+ * @param bzminis 限制完成总时限(分)(非必填)
*/
private String isNeedVerify;
private String isNeedRevisit;
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
new file mode 100644
index 0000000..cd640aa
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ChangePasswordModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+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 ChangePasswordModelImpl implements IChangePasswordModel {
+
+ private OnPasswordChangedListener listener;
+
+ public ChangePasswordModelImpl(OnPasswordChangedListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnPasswordChangedListener {
+ void onSuccess(ChangePasswordResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest(String oldPwd, String newPwd) {
+ Observable observable = RetrofitServiceManager.getChangePasswordResult(oldPwd, newPwd);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(ChangePasswordResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
new file mode 100644
index 0000000..1cfa514
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IChangePasswordModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IChangePasswordModel {
+ Subscription sendRetrofitRequest(String oldPwd, String newPwd);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
new file mode 100644
index 0000000..279a0dd
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/ILoginOutActionModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface ILoginOutActionModel {
+ Subscription sendRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
new file mode 100644
index 0000000..5bf3b34
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/LoginOutActionModelImpl.java
@@ -0,0 +1,54 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+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 LoginOutActionModelImpl implements ILoginOutActionModel {
+
+ private OnLoginOutListener listener;
+
+ public LoginOutActionModelImpl(OnLoginOutListener loginOutListener) {
+ this.listener = loginOutListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnLoginOutListener {
+ void onSuccess(LoginOutResultBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+
+ @Override
+ public Subscription sendRetrofitRequest() {
+ Observable observable = RetrofitServiceManager.getLoginOutResult();
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(LoginOutResultBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
new file mode 100644
index 0000000..3eba3f3
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ChangePasswordPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.ChangePasswordModelImpl;
+import com.casic.dcms.mvp.view.IChangePasswordView;
+
+public class ChangePasswordPresenterImpl extends BasePresenter implements IChangePasswordPresenter, ChangePasswordModelImpl.OnPasswordChangedListener {
+
+ private IChangePasswordView view;
+ private ChangePasswordModelImpl actionModel;
+
+ public ChangePasswordPresenterImpl(IChangePasswordView changePasswordView) {
+ this.view = changePasswordView;
+ actionModel = new ChangePasswordModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String oldPwd, String newPwd) {
+ addSubscription(actionModel.sendRetrofitRequest(oldPwd, newPwd));
+ }
+
+ @Override
+ public void onSuccess(ChangePasswordResultBean resultBean) {
+ view.obtainChangePassResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
new file mode 100644
index 0000000..fe6c5f7
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IChangePasswordPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IChangePasswordPresenter {
+ void onReadyRetrofitRequest(String oldPwd, String newPwd);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
new file mode 100644
index 0000000..4e2c7c1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ILoginOutPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface ILoginOutPresenter {
+ void onReadyRetrofitRequest();
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
new file mode 100644
index 0000000..74a6a24
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/LoginOutPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.LoginOutActionModelImpl;
+import com.casic.dcms.mvp.view.ILoginOutView;
+
+public class LoginOutPresenterImpl extends BasePresenter implements ILoginOutPresenter, LoginOutActionModelImpl.OnLoginOutListener {
+
+ private ILoginOutView view;
+ private LoginOutActionModelImpl actionModel;
+
+ public LoginOutPresenterImpl(ILoginOutView loginOutView) {
+ this.view = loginOutView;
+ actionModel = new LoginOutActionModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest() {
+ addSubscription(actionModel.sendRetrofitRequest());
+ }
+
+ @Override
+ public void onSuccess(LoginOutResultBean resultBean) {
+ view.obtainLoginOutResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
index 2119b70..0bcea6a 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java
@@ -17,7 +17,6 @@
@Override
public void onReadyRetrofitRequest() {
- view.showProgress();
addSubscription(actionModel.sendRetrofitRequest());
}
@@ -28,12 +27,11 @@
@Override
public void onSuccess(UserBean userBean) {
- view.hideProgress();
view.obtainUserData(userBean);
}
@Override
public void onFailure(Throwable throwable) {
- view.hideProgress();
+
}
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
new file mode 100644
index 0000000..c2a84ab
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IChangePasswordView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.ChangePasswordResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface IChangePasswordView {
+ void obtainChangePassResult(ChangePasswordResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
new file mode 100644
index 0000000..de3e421
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/ILoginOutView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.LoginOutResultBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 10:29
+ * @email : 290677893@qq.com
+ **/
+public interface ILoginOutView {
+ void obtainLoginOutResult(LoginOutResultBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
index 2b51d64..bcd16a9 100644
--- a/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IUserDataView.java
@@ -3,9 +3,5 @@
import com.casic.dcms.bean.UserBean;
public interface IUserDataView {
- void showProgress();
-
- void hideProgress();
-
void obtainUserData(UserBean userBean);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
new file mode 100644
index 0000000..ad70b7a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java
@@ -0,0 +1,61 @@
+package com.casic.dcms.ui;
+
+import com.bumptech.glide.Glide;
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.luck.picture.lib.photoview.PhotoView;
+import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
+
+import butterknife.BindView;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/14 17:09
+ * @email : 290677893@qq.com
+ **/
+public class BigPictureActivity extends BaseActivity {
+
+ @BindView(R.id.photoView)
+ PhotoView photoView;
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_big_pic;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ QMUIStatusBarHelper.setStatusBarLightMode(this);
+ }
+
+ @Override
+ public void initData() {
+// String mediaJson = getIntent().getStringExtra("mediaJson");
+//
+// List