diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUpdateVersionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUpdateVersionModel.java new file mode 100644 index 0000000..0e91862 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUpdateVersionModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IUpdateVersionModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUpdateVersionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUpdateVersionModel.java new file mode 100644 index 0000000..0e91862 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUpdateVersionModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IUpdateVersionModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UpdateVersionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UpdateVersionModelImpl.java new file mode 100644 index 0000000..a005f41 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/UpdateVersionModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +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 UpdateVersionModelImpl implements IUpdateVersionModel { + + private OnUpdateListener updateListener; + + public UpdateVersionModelImpl(OnUpdateListener listener) { + this.updateListener = listener; + } + + public interface OnUpdateListener { + void onSuccess(Object resultBean); + + void onFailure(Throwable throwable); + } + + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getVersionResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (updateListener != null) { + updateListener.onFailure(e); + } + } + + @Override + public void onNext(Object resultBean) { + if (resultBean != null) { + updateListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUpdateVersionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUpdateVersionModel.java new file mode 100644 index 0000000..0e91862 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUpdateVersionModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IUpdateVersionModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UpdateVersionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UpdateVersionModelImpl.java new file mode 100644 index 0000000..a005f41 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/UpdateVersionModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +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 UpdateVersionModelImpl implements IUpdateVersionModel { + + private OnUpdateListener updateListener; + + public UpdateVersionModelImpl(OnUpdateListener listener) { + this.updateListener = listener; + } + + public interface OnUpdateListener { + void onSuccess(Object resultBean); + + void onFailure(Throwable throwable); + } + + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getVersionResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (updateListener != null) { + updateListener.onFailure(e); + } + } + + @Override + public void onNext(Object resultBean) { + if (resultBean != null) { + updateListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUpdatePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUpdatePresenter.java new file mode 100644 index 0000000..feca3c2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUpdatePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IUpdatePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUpdateVersionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUpdateVersionModel.java new file mode 100644 index 0000000..0e91862 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUpdateVersionModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IUpdateVersionModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UpdateVersionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UpdateVersionModelImpl.java new file mode 100644 index 0000000..a005f41 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/UpdateVersionModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +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 UpdateVersionModelImpl implements IUpdateVersionModel { + + private OnUpdateListener updateListener; + + public UpdateVersionModelImpl(OnUpdateListener listener) { + this.updateListener = listener; + } + + public interface OnUpdateListener { + void onSuccess(Object resultBean); + + void onFailure(Throwable throwable); + } + + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getVersionResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (updateListener != null) { + updateListener.onFailure(e); + } + } + + @Override + public void onNext(Object resultBean) { + if (resultBean != null) { + updateListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUpdatePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUpdatePresenter.java new file mode 100644 index 0000000..feca3c2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUpdatePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IUpdatePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UpdatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UpdatePresenterImpl.java new file mode 100644 index 0000000..ce672d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UpdatePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.UpdateVersionModelImpl; +import com.casic.dcms.mvp.view.IUpdateVersionView; + +public class UpdatePresenterImpl extends BasePresenter implements IUpdatePresenter, UpdateVersionModelImpl.OnUpdateListener { + + private IUpdateVersionView view; + private UpdateVersionModelImpl actionModel; + + public UpdatePresenterImpl(IUpdateVersionView updateVersionView) { + this.view = updateVersionView; + actionModel = new UpdateVersionModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void onSuccess(Object resultBean) { + view.hideProgress(); + view.obtainVersionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUpdateVersionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUpdateVersionModel.java new file mode 100644 index 0000000..0e91862 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUpdateVersionModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IUpdateVersionModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UpdateVersionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UpdateVersionModelImpl.java new file mode 100644 index 0000000..a005f41 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/UpdateVersionModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +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 UpdateVersionModelImpl implements IUpdateVersionModel { + + private OnUpdateListener updateListener; + + public UpdateVersionModelImpl(OnUpdateListener listener) { + this.updateListener = listener; + } + + public interface OnUpdateListener { + void onSuccess(Object resultBean); + + void onFailure(Throwable throwable); + } + + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getVersionResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (updateListener != null) { + updateListener.onFailure(e); + } + } + + @Override + public void onNext(Object resultBean) { + if (resultBean != null) { + updateListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUpdatePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUpdatePresenter.java new file mode 100644 index 0000000..feca3c2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUpdatePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IUpdatePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UpdatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UpdatePresenterImpl.java new file mode 100644 index 0000000..ce672d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UpdatePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.UpdateVersionModelImpl; +import com.casic.dcms.mvp.view.IUpdateVersionView; + +public class UpdatePresenterImpl extends BasePresenter implements IUpdatePresenter, UpdateVersionModelImpl.OnUpdateListener { + + private IUpdateVersionView view; + private UpdateVersionModelImpl actionModel; + + public UpdatePresenterImpl(IUpdateVersionView updateVersionView) { + this.view = updateVersionView; + actionModel = new UpdateVersionModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void onSuccess(Object resultBean) { + view.hideProgress(); + view.obtainVersionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUpdateVersionView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUpdateVersionView.java new file mode 100644 index 0000000..1711538 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IUpdateVersionView.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.view; + +public interface IUpdateVersionView { + void showProgress(); + + void hideProgress(); + + void obtainVersionResult(Object resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUpdateVersionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUpdateVersionModel.java new file mode 100644 index 0000000..0e91862 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUpdateVersionModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IUpdateVersionModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UpdateVersionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UpdateVersionModelImpl.java new file mode 100644 index 0000000..a005f41 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/UpdateVersionModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +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 UpdateVersionModelImpl implements IUpdateVersionModel { + + private OnUpdateListener updateListener; + + public UpdateVersionModelImpl(OnUpdateListener listener) { + this.updateListener = listener; + } + + public interface OnUpdateListener { + void onSuccess(Object resultBean); + + void onFailure(Throwable throwable); + } + + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getVersionResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (updateListener != null) { + updateListener.onFailure(e); + } + } + + @Override + public void onNext(Object resultBean) { + if (resultBean != null) { + updateListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUpdatePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUpdatePresenter.java new file mode 100644 index 0000000..feca3c2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUpdatePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IUpdatePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UpdatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UpdatePresenterImpl.java new file mode 100644 index 0000000..ce672d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UpdatePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.UpdateVersionModelImpl; +import com.casic.dcms.mvp.view.IUpdateVersionView; + +public class UpdatePresenterImpl extends BasePresenter implements IUpdatePresenter, UpdateVersionModelImpl.OnUpdateListener { + + private IUpdateVersionView view; + private UpdateVersionModelImpl actionModel; + + public UpdatePresenterImpl(IUpdateVersionView updateVersionView) { + this.view = updateVersionView; + actionModel = new UpdateVersionModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void onSuccess(Object resultBean) { + view.hideProgress(); + view.obtainVersionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUpdateVersionView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUpdateVersionView.java new file mode 100644 index 0000000..1711538 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IUpdateVersionView.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.view; + +public interface IUpdateVersionView { + void showProgress(); + + void hideProgress(); + + void obtainVersionResult(Object resultBean); +} 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 35494e7..e349612 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 @@ -12,22 +12,27 @@ import com.casic.dcms.base.BaseFragment; import com.casic.dcms.bean.LoginOutResultBean; import com.casic.dcms.mvp.presenter.LoginOutPresenterImpl; +import com.casic.dcms.mvp.presenter.UpdatePresenterImpl; import com.casic.dcms.mvp.view.ILoginOutView; +import com.casic.dcms.mvp.view.IUpdateVersionView; 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.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import butterknife.BindView; import butterknife.OnClick; -public class MinePageFragment extends BaseFragment implements View.OnClickListener, ILoginOutView { +public class MinePageFragment extends BaseFragment implements View.OnClickListener, IUpdateVersionView, ILoginOutView { + private static final String TAG = "MinePageFragment"; @BindView(R.id.versionCodeView) TextView versionCodeView; @BindView(R.id.autoLoginSwitch) @@ -37,6 +42,8 @@ private Context context; private LoginOutPresenterImpl loginOutPresenter; + private QMUITipDialog loadingDialog; + private UpdatePresenterImpl updatePresenter; @Override protected int initLayoutView() { @@ -54,6 +61,11 @@ loginOutPresenter = new LoginOutPresenterImpl(this); boolean isAutoLogin = (boolean) SaveKeyValues.getValue("autoLogin", false); autoLoginSwitch.setChecked(isAutoLogin); + loadingDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("请求中,请稍后") + .create(); + updatePresenter = new UpdatePresenterImpl(this); } @Override @@ -67,7 +79,7 @@ }); } - @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.loginOutButton}) + @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) @Override public void onClick(View v) { switch (v.getId()) { @@ -80,6 +92,10 @@ case R.id.helpfulLayout: startActivity(new Intent(context, HelpfulActivity.class)); break; + case R.id.updateVersionView: + //TODO 更新接口有问题 + updatePresenter.onReadyRetrofitRequest(); + break; case R.id.loginOutButton: //退出登录对话框 new QMUIDialog.MessageDialogBuilder(context) @@ -106,4 +122,32 @@ BroadcastManager.getInstance(context).sendBroadcast(Constant.LOGIN_OUT_ACTION, resultBean.getMessage()); } } + + @Override + public void showProgress() { + loadingDialog.show(); + } + + @Override + public void hideProgress() { + loadingDialog.hide(); + } + + @Override + public void obtainVersionResult(Object resultBean) { + //下载路径为 http://111.198.10.15:11409/static/ 拼接downloadUrl +// Log.d(TAG, "obtainLoginOutResult: " + new Gson().toJson(resultBean)); + ToastHelper.showToast("暂无新版本,无需更新", ToastHelper.INFO); + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + if (loginOutPresenter != null) { + loginOutPresenter.disposeRetrofitRequest(); + } + if (updatePresenter != null) { + updatePresenter.disposeRetrofitRequest(); + } + } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUpdateVersionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUpdateVersionModel.java new file mode 100644 index 0000000..0e91862 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUpdateVersionModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IUpdateVersionModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UpdateVersionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UpdateVersionModelImpl.java new file mode 100644 index 0000000..a005f41 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/UpdateVersionModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +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 UpdateVersionModelImpl implements IUpdateVersionModel { + + private OnUpdateListener updateListener; + + public UpdateVersionModelImpl(OnUpdateListener listener) { + this.updateListener = listener; + } + + public interface OnUpdateListener { + void onSuccess(Object resultBean); + + void onFailure(Throwable throwable); + } + + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getVersionResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (updateListener != null) { + updateListener.onFailure(e); + } + } + + @Override + public void onNext(Object resultBean) { + if (resultBean != null) { + updateListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUpdatePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUpdatePresenter.java new file mode 100644 index 0000000..feca3c2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUpdatePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IUpdatePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UpdatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UpdatePresenterImpl.java new file mode 100644 index 0000000..ce672d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UpdatePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.UpdateVersionModelImpl; +import com.casic.dcms.mvp.view.IUpdateVersionView; + +public class UpdatePresenterImpl extends BasePresenter implements IUpdatePresenter, UpdateVersionModelImpl.OnUpdateListener { + + private IUpdateVersionView view; + private UpdateVersionModelImpl actionModel; + + public UpdatePresenterImpl(IUpdateVersionView updateVersionView) { + this.view = updateVersionView; + actionModel = new UpdateVersionModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void onSuccess(Object resultBean) { + view.hideProgress(); + view.obtainVersionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUpdateVersionView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUpdateVersionView.java new file mode 100644 index 0000000..1711538 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IUpdateVersionView.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.view; + +public interface IUpdateVersionView { + void showProgress(); + + void hideProgress(); + + void obtainVersionResult(Object resultBean); +} 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 35494e7..e349612 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 @@ -12,22 +12,27 @@ import com.casic.dcms.base.BaseFragment; import com.casic.dcms.bean.LoginOutResultBean; import com.casic.dcms.mvp.presenter.LoginOutPresenterImpl; +import com.casic.dcms.mvp.presenter.UpdatePresenterImpl; import com.casic.dcms.mvp.view.ILoginOutView; +import com.casic.dcms.mvp.view.IUpdateVersionView; 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.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import butterknife.BindView; import butterknife.OnClick; -public class MinePageFragment extends BaseFragment implements View.OnClickListener, ILoginOutView { +public class MinePageFragment extends BaseFragment implements View.OnClickListener, IUpdateVersionView, ILoginOutView { + private static final String TAG = "MinePageFragment"; @BindView(R.id.versionCodeView) TextView versionCodeView; @BindView(R.id.autoLoginSwitch) @@ -37,6 +42,8 @@ private Context context; private LoginOutPresenterImpl loginOutPresenter; + private QMUITipDialog loadingDialog; + private UpdatePresenterImpl updatePresenter; @Override protected int initLayoutView() { @@ -54,6 +61,11 @@ loginOutPresenter = new LoginOutPresenterImpl(this); boolean isAutoLogin = (boolean) SaveKeyValues.getValue("autoLogin", false); autoLoginSwitch.setChecked(isAutoLogin); + loadingDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("请求中,请稍后") + .create(); + updatePresenter = new UpdatePresenterImpl(this); } @Override @@ -67,7 +79,7 @@ }); } - @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.loginOutButton}) + @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) @Override public void onClick(View v) { switch (v.getId()) { @@ -80,6 +92,10 @@ case R.id.helpfulLayout: startActivity(new Intent(context, HelpfulActivity.class)); break; + case R.id.updateVersionView: + //TODO 更新接口有问题 + updatePresenter.onReadyRetrofitRequest(); + break; case R.id.loginOutButton: //退出登录对话框 new QMUIDialog.MessageDialogBuilder(context) @@ -106,4 +122,32 @@ BroadcastManager.getInstance(context).sendBroadcast(Constant.LOGIN_OUT_ACTION, resultBean.getMessage()); } } + + @Override + public void showProgress() { + loadingDialog.show(); + } + + @Override + public void hideProgress() { + loadingDialog.hide(); + } + + @Override + public void obtainVersionResult(Object resultBean) { + //下载路径为 http://111.198.10.15:11409/static/ 拼接downloadUrl +// Log.d(TAG, "obtainLoginOutResult: " + new Gson().toJson(resultBean)); + ToastHelper.showToast("暂无新版本,无需更新", ToastHelper.INFO); + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + if (loginOutPresenter != null) { + loginOutPresenter.disposeRetrofitRequest(); + } + if (updatePresenter != null) { + updatePresenter.disposeRetrofitRequest(); + } + } } 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 ad49fb9..91a4b1f 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 @@ -159,4 +159,10 @@ @GET("/process/historicalRecords") Observable obtainCaseProcess(@Header("token") String token, @Query("processId") String processId); + + /** + * 更新版本 + */ + @POST("/app/checkVersion") + Observable obtainVersion(@Header("token") String token); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUpdateVersionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUpdateVersionModel.java new file mode 100644 index 0000000..0e91862 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUpdateVersionModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IUpdateVersionModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UpdateVersionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UpdateVersionModelImpl.java new file mode 100644 index 0000000..a005f41 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/UpdateVersionModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +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 UpdateVersionModelImpl implements IUpdateVersionModel { + + private OnUpdateListener updateListener; + + public UpdateVersionModelImpl(OnUpdateListener listener) { + this.updateListener = listener; + } + + public interface OnUpdateListener { + void onSuccess(Object resultBean); + + void onFailure(Throwable throwable); + } + + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getVersionResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (updateListener != null) { + updateListener.onFailure(e); + } + } + + @Override + public void onNext(Object resultBean) { + if (resultBean != null) { + updateListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUpdatePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUpdatePresenter.java new file mode 100644 index 0000000..feca3c2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUpdatePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IUpdatePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UpdatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UpdatePresenterImpl.java new file mode 100644 index 0000000..ce672d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UpdatePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.UpdateVersionModelImpl; +import com.casic.dcms.mvp.view.IUpdateVersionView; + +public class UpdatePresenterImpl extends BasePresenter implements IUpdatePresenter, UpdateVersionModelImpl.OnUpdateListener { + + private IUpdateVersionView view; + private UpdateVersionModelImpl actionModel; + + public UpdatePresenterImpl(IUpdateVersionView updateVersionView) { + this.view = updateVersionView; + actionModel = new UpdateVersionModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void onSuccess(Object resultBean) { + view.hideProgress(); + view.obtainVersionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUpdateVersionView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUpdateVersionView.java new file mode 100644 index 0000000..1711538 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IUpdateVersionView.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.view; + +public interface IUpdateVersionView { + void showProgress(); + + void hideProgress(); + + void obtainVersionResult(Object resultBean); +} 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 35494e7..e349612 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 @@ -12,22 +12,27 @@ import com.casic.dcms.base.BaseFragment; import com.casic.dcms.bean.LoginOutResultBean; import com.casic.dcms.mvp.presenter.LoginOutPresenterImpl; +import com.casic.dcms.mvp.presenter.UpdatePresenterImpl; import com.casic.dcms.mvp.view.ILoginOutView; +import com.casic.dcms.mvp.view.IUpdateVersionView; 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.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import butterknife.BindView; import butterknife.OnClick; -public class MinePageFragment extends BaseFragment implements View.OnClickListener, ILoginOutView { +public class MinePageFragment extends BaseFragment implements View.OnClickListener, IUpdateVersionView, ILoginOutView { + private static final String TAG = "MinePageFragment"; @BindView(R.id.versionCodeView) TextView versionCodeView; @BindView(R.id.autoLoginSwitch) @@ -37,6 +42,8 @@ private Context context; private LoginOutPresenterImpl loginOutPresenter; + private QMUITipDialog loadingDialog; + private UpdatePresenterImpl updatePresenter; @Override protected int initLayoutView() { @@ -54,6 +61,11 @@ loginOutPresenter = new LoginOutPresenterImpl(this); boolean isAutoLogin = (boolean) SaveKeyValues.getValue("autoLogin", false); autoLoginSwitch.setChecked(isAutoLogin); + loadingDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("请求中,请稍后") + .create(); + updatePresenter = new UpdatePresenterImpl(this); } @Override @@ -67,7 +79,7 @@ }); } - @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.loginOutButton}) + @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) @Override public void onClick(View v) { switch (v.getId()) { @@ -80,6 +92,10 @@ case R.id.helpfulLayout: startActivity(new Intent(context, HelpfulActivity.class)); break; + case R.id.updateVersionView: + //TODO 更新接口有问题 + updatePresenter.onReadyRetrofitRequest(); + break; case R.id.loginOutButton: //退出登录对话框 new QMUIDialog.MessageDialogBuilder(context) @@ -106,4 +122,32 @@ BroadcastManager.getInstance(context).sendBroadcast(Constant.LOGIN_OUT_ACTION, resultBean.getMessage()); } } + + @Override + public void showProgress() { + loadingDialog.show(); + } + + @Override + public void hideProgress() { + loadingDialog.hide(); + } + + @Override + public void obtainVersionResult(Object resultBean) { + //下载路径为 http://111.198.10.15:11409/static/ 拼接downloadUrl +// Log.d(TAG, "obtainLoginOutResult: " + new Gson().toJson(resultBean)); + ToastHelper.showToast("暂无新版本,无需更新", ToastHelper.INFO); + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + if (loginOutPresenter != null) { + loginOutPresenter.disposeRetrofitRequest(); + } + if (updatePresenter != null) { + updatePresenter.disposeRetrofitRequest(); + } + } } 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 ad49fb9..91a4b1f 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 @@ -159,4 +159,10 @@ @GET("/process/historicalRecords") Observable obtainCaseProcess(@Header("token") String token, @Query("processId") String processId); + + /** + * 更新版本 + */ + @POST("/app/checkVersion") + Observable obtainVersion(@Header("token") String token); } 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 10b981e..7580693 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 @@ -209,4 +209,13 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.obtainCaseProcess(TokenHelper.getToken(), processId); } + + /** + * 更新版本 + */ + public static Observable getVersionResult() { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainVersion(TokenHelper.getToken()); + } }